SSD-pytorch复现笔记
#笔记仅供参考,欢迎批评指正
(1) 下载ssd-pytorch的包
git clone https://github.com/amdegroot/ssd.pytorch ##这个里面的程序本人配置(pytorch0.4.1, torchvision0.2.2)pytorch1.0以上版本可能出现各种报错现象,建议降低版本
git clone https://github.com/acm5656/ssd_pytorch ##这个程序相对友好,对初学者有很好的效果
(2)下载VOC的数据集
因为在训练过程我只用了VOC的数据集,所以没有下载COCO的数据集,对于跑算法流程,COCO数据集太大,个人觉得VOC足够,测试算法性能另说.
cd ~/ssd.pytorch
sh data/scripts/VOC2007.sh ##这个是voc2007的数据集,包括了训练集和测试集,建议使用该方式下载,方便整合数据集,下载速度较慢
sh data/scripts/VOC2012.sh ##这个是voc2012的训练集
voc2012的训练集可以在网上自己下载,这个数据集1.9G,网上很多教程,不做赘述.
(3)训练数据
1.下载权重文件
cd ~/ssd.pytorch
mkdir weights
cd weights
wget https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth
2.在训练之前需要修改一些文件,防止训练过程报错
在multibox_loss.py的97行和98行互换,在114行改为N = num_pos.data.sum.float( )
结果如下图:
3.训练
python train.py
训练过程如下图(采用 https://github.com/amdegroot/ssd.pytorch 的代码):
训练过程出现了很多NAN值,初步分析应该是loss函数没有收敛,建议增加batch,或者减小学习率,在 train.py 中可以修改
训练过程如下图(https://github.com/acm5656/ssd_pytorch)的代码:
该算法训练过程比较简单,loss函数收敛较快,初学者可以使用该代码,但只能用VOC的数据集进行测试。
(4) 测试数据
python test.py
测试效果如下:
最后会在ssd.pytorch 根目录下生成一个文件夹,包含检测的结果。
(5) 评估数据
python eval.py
评估结果如下:
评估完成在ssd.pytorch 根目录下生成一个eval的文件夹,文件夹包含结果: