SSD: Single Shot MultiBox Detector在Linux上的配置及运行

SSD: Single Shot MultiBox Detector在Linux上的配置及运行

本博客是由SSD官方教程翻译而来,并经过博主的实验验证,总结成这篇博客,希望对广大DL学者有帮助作用!

本实验是在4块TianTan X的服务器上做的实验(学校为了搞深度学习,也是大出血),其上搭建了Caffe框架,处理速度快。一般的深度学习960显卡也是足矣。

话不多说,正式开启SSD的研究之旅!

  • SSD的安装
  • 准备工作
  • 训练模型
  • 实验效果
  • 后期工作
  • 作者给定的预训练模型

SSD的安装

  • 在home目录下,获取SSD的代码,下载完成后有一个caffe文件夹
   git clone https://github.com/weiliu89/caffe.git
   cd caffe
   git checkout ssd
  • 进入下载好的caffe目录,复制配置文件
   cd /home/usrname/caffe
   cp Makefile.config.example Makefile.config
  • 编译caffe三部曲
   make -j8  //-j8根据本机的处理器配置,8是八核处理器的意思
   make test -j8
   make runtest -j8
  • 额外编译,根据需要(因为SSD利用python完成,需编译pycaffe)
   make py

准备工作

  • 下载预训练模型 fully convolutional reduced (atrous) VGGNet,将它放入caffe/models/VGGNet/目录下

  • 下载VOC2007和VOC2012数据集,放到/home/data下。(请注意,这里改变了目录)

   cd ..
   mkdir data
   cd data/
  • 下载数据集
   wget  http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
   wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
   wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
  • 数据集解压
   tar -xvf VOCtrainval_11-May-2012.tar
   tar -xvf VOCtrainval_06-Nov-2007.tar
   tar -xvf VOCtest_06-Nov-2007.tar
  • 将图片转化为LMDB文件,用于训练
   cd ..
   cd caffe/
   ./data/VOC0712/create_list.sh  
   ./data/VOC0712/create_data.sh
  • 这里用的脚本实现批处理,可能会出现:no module named caffe等错误,这是由于caffe的Python环境变量未配置好,可按照下面方法解决:
   echo "export PYTHONPATH=/home/usrname/caffe/python" >> ~/.profile  
   source ~/.profile  
   echo $PYTHONPATH #检查环境变量的值

训练模型

  • 在下载的caffe根目录执行如下命令训练,在examples/ssd下存在几个.py文件,训练的时间较长,迭代60000次,博主训练了一天!
   python examples/ssd/ssd_pascal.py

实验效果

(1)在图片测试集上测试

   python examples/ssd/score_ssd_pascal.py

利用它跑了一遍数据集,得出准确率可以达到百分之70多

(2)在视频上测试

   python examples/ssd/ssd_pascal_video.py 

博主利用师兄的行人视频做了测试,实时性高,但是漏检率蛮严重的,这是不可避免的
SSD: Single Shot MultiBox Detector在Linux上的配置及运行_第1张图片
SSD: Single Shot MultiBox Detector在Linux上的配置及运行_第2张图片
当然,直接跑是他自带的视频,想跑自己的代码的话,要先用vim打开该文件,定位到51行,修改视频路径为已有本地视频,这样就可以畅快的跑自己的视频

(3)在摄像头上测试

   python examples/ssd/ssd_pascal_webcam.py

博主移植到台式机上出现了问题,还没有改好bug,改好了会分享给大家

后期工作

  • 研究SSD的python源代码,用来训练和检测交通标志

作者给定的预训练模型

如果没有好的机器配置或者省事一些的,可以使用作者给出的训练好的模型:

  • Models trained on VOC0712:SSD300 SSD500
  • 还有其他的模型,这里就不一一列举,感兴趣的可以去官方主页看,链接已在前面给出


你可能感兴趣的:(深度学习之旅)