目标检测ssd复现pytorch代码以及更换自己的数据集

目标检测ssd复现pytorch代码以及更换自己的数据集_第1张图片2019.5.14日记录目标检测SSD算法,实现复现pytorch代码以及更换自己的数据集。

1、下载代码:https://github.com/amdegroot/ssd.pytorch

2、数据集按照作者自己的voc0712.sh文件下载,下载后的数据集在主目录C:\Users\自己的用户名\data\VOCdevkit 如下图1,VOC2007的下载后,训练和测试集混合在一起了。

 

3、train.py文件,运行会出现很多bug, 我自己电脑的配置:pytorch版本是1.0.1版本, 出现的几个问题都可以在issues里面找到,需要修改几个地方。
训练网络,可以通过visiom观察totalloss变化,在下降到6后,loss下降变得很慢

4、运行eval.py文件:得到算法的总的精度
AP for tvmonitor = 0.7669
Mean AP = 0.7749

5、运行test.py文件:得到每张图中框的具体细节,写入到一个txt文档中。

6、运行demo.py:
得到测试集每张图片的具体细节,图片显现,分为3张图片,第一张原图显示,第二张是分割的图片显示,第三张是检测的带框图片。

需要做的:还需要返回图片的名称等,筛选谁有框。


更换自己的数据集:

首先利用自己的图片1.jpg,统一命名为数字,
再利用Lableimg软件进行标注,必须保证标注文件与原图片命名一致,
对标注的文件进行检查,长与宽属性是否正确,XML文件需要进行统一修改,这里利用别人的代码:https://blog.csdn.net/dingkm666/article/details/88775428。

再生成Main文件夹下的几个txt文件,利用代码生成。网上很多。

还需要修改几个文件:config.py VOC0712.py ssd.py demo.py

参考:https://blog.csdn.net/dingkm666/article/details/88775428

demo.py 
修改:net = build_ssd('test', 300, 2)    # initialize SSD

参考:https://blog.csdn.net/weixin_43380510/article/details/83004127


我自己将类改为2,其实只有一个类,再加一个背景类。

特别注意的是:如果只有一个类,需要加[]
VOC_CLASSES = [(# always index 0
    'feng')]

至此,基本就可以运行成功。

如果出现这个错误:进入pytest,会报错

需要退出pytest模式。File>setting>Python Integrated Tools 的Default test runner, 选择其他选项,别选pytest

并且需要,run》Edit configuration> ,按减号,把那个XX.py文件删除pytest模式

 

 

 

 

 

 

 

你可能感兴趣的:(ssd)