基于单阶段的经典目标检测算法主要有 YOLO 系列算法和 SSD(Single Shot Multi Box Detector)系列算法,不需要 region proposal 阶段,可以直接产生目标物体的类别概率和位置坐标,没有滑动窗口和候选区域的流程,经过单次检测即可直接得到最终的检测结果,所以在检测速度上有大幅提升。
Liu 等人提出了 SSD算法,算法的主要网络结构是 VGG16,网络结构如上图所示,针对 YOLO 算法存在的检测精度不高的缺陷,SSD 在保持 YOLO 算法回归思想的同时,也采用了 Faster R-CNN 的 anchor 机制。普通的方法针对输入图片获取不同尺度的特征映射,但是在预测阶段仅仅使用了最后一层的特征映射,而SSD 不仅获得不用尺度的特征映射,同时在不同的特征映射上面进行预测,可以从结构图看到,每个卷积层后都有个预测模块,浅层卷积层可以得到目标物体边缘的信息,而深层网络可以得到更细节更抽象的特征,如果结合不同尺度的特征进行预测,通常会提高检测精度,这样既保持速度的同时又得到较高的检测精度。但是SSD 算法需要人工设置默认框的参数,比如 prior box 的大小 min_size,max_size和 aspect_ratio(长宽比)值。网络中预选框的基础大小和形状需要手工设置。而网络中每一层 feature 使用的预选框大小和形状不一样,导致调试过程非常依赖经验。虽然采用了特征金字塔的思路,但对小目标的识别效果依然一般,可能是因为 SSD使用 Conv4_3 浅层 feature 去检测小目标,而浅层特征卷积层少,存在特征提取不充分的问题。