SSD学习笔记
SSD(ECCV 2016)
1.概述:
- 一阶段算法,全称single shot multibox detector
- 全卷积网络,即用CNN直接检测,没有FC,在不同的尺度进行特征提取,在最后组合起来,进行回归和分类
- 用大尺度特征图(较前面产生的)检测小物品,小尺度特征图(后面产生的)检测大物品
- 检测框尺度和长宽比不同(Prior boxes, Default boxes),类比Faster R-CNN中的Anchors
- 精度下降,速度提高了
(基本框架)
2.过程
-
多尺度:大特征图检测小物体(小物体都被包含了,好识别),小特征图检测大物体(检测框大点,部分也可识别,因为分辨率够高)
-
检测:SSD直接采用卷积对不同的特征图来进行提取检测结果。对于形状为 m * n * p 的特征图,只需要采用 3 * 3 * p 这样比较小的卷积核得到检测值
-
预选框的产生:prior box(与anchor类似)
-
以feature map上的每个像素点(可看作一个小框)的中心点为中心,生成四个同心的框,两个正方形(分为最小和最大,边长由公式决定),两个矩形框(长宽由两个正方形边长和预设纵横比决定)
3.网络结构:在VGG16的基础上,用卷积层换掉原有的FC(6、7层),去掉了dropout、FC8,新增了多个卷积层
4.损失函数:
- 分类:使用softmax交叉熵损失函数
- 边框回归:bbox回归(同RCNN)
5.匹配
6.数据增强
7.总结:
- 实现了端到端(?);容易和backbone net融合;用了多尺度的特征图提取特征
- 小目标检测不好,预选框需要手动调节