背景
R-CNN系列算法检测速度不够快,YOLO v1检测准确率较低,而且无法检测到密集目标。
方法
SSD算法跟YOLO类似,都属于one stage的算法,即通过回归算法直接从原图得到预测结果,为了解决YOLO v1检测效果一般的问题,SSD提出了多尺度检测的方法以及在不同尺度上特征点的default box。
1.多尺度检测模型
如图所示是SSD模型跟YOLO模型的对比,我们可以看到最主要的区别是:
YOLO是在Conv层后面加上两个FC层,得到7*7*30的tensor用来回归预测;而SSD是添加金字塔式的Conv层,在不同Scale的feature map上做回归预测。
2.Default Box
SSD回归的对象是提前设置好的Default Box,有点类似于Faster R-CNN里面的Anchor Box,不过是也是多尺度的,这是为了实现在前面大的特征图上预测小目标,在后面晓得特征图上预测大目标,达到多尺度检测的目的。
对于某个feature map的每个特征点,需要预测k个Default Box,类别为c(包括背景类),以及他们的坐标偏移量(cx,cy,w,h),所以feature map的通道数是k(c+4)。
所有的Default Box加起来:38*38*4+19*19*6+10*10*6+5*5*6+3*3*4+1*1*4=8732个
总结
可以看到SSD所做出的改进无非就是引入多尺度检测的思想,相比于YOLO,还增加Anchor Box的数量,然后优化了一下网络结构,取得了非常好的效果。