由于项目需求,最近花了约三周的时间,尝试在我们自己的教学场景数据集上,完成SSD目标检测模型的测试,检测目标只有一个类别:举手(Handraising)。实际上,项目中已经存在可以完成举手目标检测的方案R-FCN,所以目的是为了验证SSD是否会有检测效果和检测速度的提升,这里简要记录一下整个流程,尽管之后在测试数据集上,SSD的检全率和准确率并不比R-FCN更好。
一、背景介绍:
截止到SSD发布,它应该是最优的目标检测算法,之后同年公布的R-FCN也表现出几乎相同的检测准确率,但并未与SSD作比较。到了现在,物体检测方面最优的方法应该要算YOLO v2,下面是近些年出现的一些物体检测算法列表:
PS:总结主要来自博客
http://blog.csdn.net/hx921123/article/details/55804685?locationNum=3&fps=1
DPM(时间 2008)
Adiscriminatively trained, multiscale, deformable part model
OverFeat(时间 2013)
OverFeat:Integrated Recognition, Localization and Detection using Convolutional Networks
SPP-Net(时间 2015)
Spatial PyramidPooling in Deep Convolutional Networks for Visual Recognition
DeepID-Net(时间 2014)
DeepID-Net:Deformable Deep Convolutional Neural Networks for Object Detection
RCNN(时间 2014)
Rich featurehierarchies for accurate object detection and semantic segmentation
Fast RCNN(时间 2015)
Fast R-CNN
Faster RCNN(时间 2015)
Faster R-CNN towards real-time object detection with region proposalnetworks
R-FCN(时间 2016)
R-FCN Object Detection via Region-based Fully Convolutional Networks
Yolo(时间 2016)
You Only Look Once - Unified, Real-Time Object Detection
SSD(时间 2016)
SSD Single Shot MultiBox Detector
Yolo v2(时间 2016)
YOLO9000 - Better, Faster, Stronger
Mask R-CNN(时间 2017)
Mask R-CNN
……
可以看到,物体检测算法层出不穷,让人应接不暇,这里只选取SSD物体检测算法来进行总结,理论分析部分不再讨论,详细记述模型使用过程。
二、SSD配置及调试步骤:
源码网址:https://github.com/weiliu89/caffe/tree/ssd
其实github上已经给出了详细使用步骤,这里再重复一遍,同时就自己遇到的一些问题给出解决办法。
这里按照该网址提供的步骤来记录
1、Installation
2、Preparation
3、Train/Eval
4、Models
1、Installation
1)首先是下载源码并安装,选择将其放在自己的某个文件夹下
git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd
(出现“分支”则说明copy-check成功...作者caffe目录下有三个分支fcn/master/ssd, 利用git checkout来切换分支,否则只有master目录下的文件)
2)之后需要编译源码
# Modify Makefile.config according to your Caffe installation.
cp Makefile.config.example Makefile.config
#这里需要根据电脑具体的配置修改Makefile.config
make -j8
# Make sure to include $CAFFE_ROOT/python to your PYTHONPATH.
make py
make test -j8
# (Optional)
make runtest -j8
编译过程中,只要配置好了caffe所需要的文件,一般不会出现什么问题
2、Preparation
1)下载已经训练好的VGGNet16模型,fullyconvolutional reduced (atrous) VGGNet,确认将其放在$CAFFE_ROOT/models/VGGNet/ 目录下
网址中提供的链接不可用,这里使用网上搜到的预训练模型