开始之前声明:
博主用的环境是ubuntu18.04+anaconda3+pytorch1.4+pycharm
1.下载SSD-Pytorch代码
SSD-pytorch代码链接: https://github.com/amdegroot/ssd.pytorch
git clone https://github.com/amdegroot/ssd.pytorch
运行该代码下载到本地(如果下载太慢可以上传到码云,然后git clone码云地址)
2.准备数据集
没有数据集的同学可以下载代码自带的VOC和COCO数据集(./data/scripts目录下)

- 有自己的数据集请将数据集放置在./data目录下,例如VOC格式数据集,新建VOCdevkit文件夹,如下图所示,可以参考:https://blog.csdn.net/qq_34806812/article/details/81673798.
- 在Annotations中放置所有的标签,在JPEGimages中放置所有的图片,在ImagesSets/Main中放置train.txt/val.txt/test.txt(内容只有图片的名字,例如:00001,00002,不能带后缀jpg或者png)等,可以用脚本自己生成:https://blog.csdn.net/GeekYao/article/details/105074574.

3.根据自己的数据集修改代码
博主用的VOC格式的数据集,下面修改都是以VOC格式为例
3.1 config.py
- 找到config.py文件,打开修改VOC中的num_classes,根据自己的情况修改:classes+1(背景算一类),我这里就只有一类,所有是2
- 第一次调试最好修改一下max_iter,不然迭代次数太大,要好长时间
- 其他都是一些超参数,可以占时不修改

3.2VOC0712.py

- 根据自己的标签进行修改,博主这里只有一类,所以只有一个dargon fruit(注:如果只有一类,需要加上[ ])

- image_sets中修改一下,根据自己的设置的数据集修改,我这里只有train和val
3.3 train.py

- 下载预训练模型。VGG16_reducedfc.pth
链接:https://pan.baidu.com/s/1SsRN066zjmtWCbNClB6Z7Q 密码: jqs1

- 根据自己的显存修改batch_size,建议一开始修改小一点,博主1660ti 6G显存

- 将保存训练模型的参数调低一点,之前iter设置的1000,这里设置为500,之后根据自己情况在设置
- 顺便修改一下保存的模型名字,也可以之后修改,把COCO改成VOC,博主这里没修改
3.4 eval.py

- 添加训练好的模型到eval.py,对模型进行验证,我这里训练好的是ssd300_VOC_500.pth
- 将下面的
args = parser.parse_args()
修改为
args,unknow= parser.parse_known_args()
3.5 SSD.py

- 修改num_classes,跟上面config.py中的一致就行
修改完成后,运行train.py,完成训练之后,博主运行eval.py验证了训练的模型,AP只有63%,可能是博主数据集太少了
运行eval.py只能看到AP值,想要测试自己的图片,在jupyter notebook中运行demo.ipynb
将对应部分的代码,修改为以下这样即可,注意正确添加图片的路径
image = cv2.imread('../data/example3.jpg', cv2.IMREAD_COLOR

本文档介绍了如何在Ubuntu18.04环境下,利用SSD-Pytorch框架训练自定义数据集的过程。首先从GitHub下载源码,然后准备VOC格式的数据集,包括修改配置文件config.py、VOC0712.py,设置train.py和eval.py。在训练过程中,可能会遇到维度不匹配、训练自动停止等问题,文中提供了相应的解决方案。训练完成后,通过eval.py评估模型性能,并在jupyter notebook中运行demo.ipynb进行图片检测。
最低0.47元/天 解锁文章

1万+

被折叠的 条评论
为什么被折叠?



