windows操作系统上运行ultralytics/yolov3进行目标检测

修订记录
序号修订内容修订时间
1增加了几个图,增加了4.1 权重的下载2020.01.06
2由于官网版本去掉了config,增加yml配置,所以重新进行了修订2020.01.07

 

 

 

 

 

一、情况说明

1、源代码和数据集

使用的源代码是https://github.com/ultralytics/yolov3,使用的数据集是COCO。

2、环境

操作系统是win7,CPU模式(没有独立显卡),内存8G。

Python环境使用的是Python3.7,anaconda环境,IDE使用的是Pycharm社区版2020。

 

二、环境准备

0、如果高兴,创建一个新的虚拟环境,然后需要在Pycharm中指定Python interpreter使用这个虚拟环境

conda create -n yolo python=3.7

conda activate yolo

1、下载源代码到本地

git clone https://github.com/ultralytics/yolov3

2、打开Pycharm,打开Project,然后开始安装所缺少的库

这个可能每个人不一样,把train.py、detect.py和test.py这几个文件点开,看有什么红的,或者看Pycharm的提示进行安装。

也可以按照源代码作者的意思,pip install去安装那个requirement.txt。

3、下载COCO数据集(我用的2014的)
http://images.cocodataset.org/zips/train2014.zip

http://images.cocodataset.org/zips/val2014.zip

https://pjreddie.com/media/files/coco/labels.tgz

https://pjreddie.com/media/files/coco/5k.part

https://pjreddie.com/media/files/coco/trainvalno5k.part

将两个.part文件后缀修改为txt,然后按照如下格式来放(注意两个shapes文件是后来自己生成的)。这个coco目录具体放哪里问题不大,但是需要调整data目录下的train2014.data文件中的路径。理论上,COCO数据集和权重文件,都可以通过运行getxxxx.sh文件自动获得,但是一个是国内要翻墙,另外windows7上跑不起来sh文件。

4、下载预训练权重文件(这个有很多种,和cfg目录下的配置文件一一对应的,可以自己尝试修改下面链接最后的文件名)

注意,代码中默认是使用的yolov3-spp的这个。

https://pjreddie.com/media/files/yolov3-tiny.weights

https://pjreddie.com/media/files/yolov3-spp.weights

4.1、通过研究ultralytics在utils/google_utils.py里的代码,发现也可以直接去下载如下的权重文件。

注意,这里ultralytics的代码里是写的v1.0,据说有个v9.0是为了能和yolov5匹配的最新版本,选择哪个自己决定吧。

如果在这里直接下载的pt文件,就可以跳过 5、转换权重文件

(另外,如果你直接运行detect.py,也会自动去帮你下载对应的pt文件)

https://github.com/ultralytics/yolov3/releases/download/v1.0/yolov3.pt 
https://github.com/ultralytics/yolov3/releases/download/v1.0/yolov3-tiny.pt
https://github.com/ultralytics/yolov3/releases/download/v1.0/yolov3-spp.pt

5、转换权重文件

下载的权重文件是darknet格式的,需要手工转换成.pt的pytorch格式。当然,也可以直接去网上搜索yolov3-spp-ultralytics.pt这个文件,不过大多需要积分下载。

源代码中在models.py里提供了一个convert函数,可以将weights文件转换成pt文件。

转换好的pt文件,修改名称为yolov3-spp-ultralytics.pt后,放到weights目录下去。

 

四、使用预训练的权重文件进行推理

1、原始图片准备 

在data/samples目录下有两张用于推理的测试文件,如果你需要使用自己的文件、视频进行目标检测,直接放在这个目录下即可(视频我使用的mp4文件是没有问题的)。

2、运行detect.py

这个不需要进行训练,直接到output目录下去看结果。运行前,先检查你的权重文件是否已经下载并放在正确的位置,检查你要进行推理的图片的位置是否正确。

比如我这里的权重文件,就是放在根目录下的,而不是weights目录下的,因为我前面放到了weights目录下,这里就需要更改。

五、使用COCO数据集进行训练

1、下载coco数据集

首先,现在真的没有必要使用coco2014了,直接上coco2017吧。根据scripts/get_coco.sh中指明的下载路径和解压路径,去下载和解压train2017.zip等文件。如果你自行下载,放置的位置不同,需要修改yml配置文件。

https://github.com/ultralytics/yolov5/releases/download/v1.0/coco2017labels.zip
http://images.cocodataset.org/zips/train2017.zip
http://images.cocodataset.org/zips/val2017.zip
http://images.cocodataset.org/zips/test2017.zip

1、修改配置文件

老版本的yolov3有一个cfg目录,下面是cfg的配置。不过最新的版本在data目录下放置yml文件作为配置,我们按照最新的来说。

在train.py中,默认使用的coco128.yml,这个coco128是一个小型的数据集,是从coco中取的前128张图片组成的。

如果是按照默认的位置下载的,会自动解压到正确的位置,手工下载的请按照coco.yml或者coco128.yml配置文件的配置路径放置文件。

需要放置在其他地方的,则修改coco.yml或者coco128.yml文件里的配置。

2、修改train.py文件

源代码默认是使用的coco128数据集,这里需要注意权重文件的位置,使用的数据集文件位置。

然后就可以开始运行train.py了,我的机器尝试了一下,基本上没七八个月是跑不完的。所以真的要想训练这个,一张好一点的显卡还是必须的。

3、如果像我一样没有显卡的,可以把那个提示Apex的告警屏蔽掉

六、一些问题说明

1、安装cv2

如果直接在PyCharm中老安装失败,就到anaconda命令行下直接安装吧(不要告诉我你没有清华源):conda install opencv

2、页面文件太小

在笔记本上运行报这个错,把--workers从8修改小后,仍然提示:buy new RAM。只能说如果要进行深度学习,一台好电脑是必备的。

 
  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值