先给出论文链接:SSD: Single Shot MultiBox Detector

        本文将对SSD中一些难以理解的细节做仔细分析,包括了default box和ground truth的结合,default box结合到不同检测的feature map层上,难样本挖掘,数据扩充,Atrous Algorithm算法原理等。包括了SSD对一阶段目标检测的贡献以及总结了SSD对其他目标检测方法的关键改进点。

一、SSD具有如下主要特点

        1. 从YOLO中继承了将detection转化为regression的思路,一次完成目标定位与分类。

        2. 基于Faster RCNN中的Anchor,提出了相似的(default box)Prior box。

        3. 加入基于特征金字塔(Pyramidal Feature Hierarchy)的检测方式,即在不同感受野的feature map上预测目标。

SSD(Single shot multibox detector)目标检测模型架构和设计细节分析

二、优点和缺点

        SSD算法的优点应该很明显:运行速度可以和YOLO媲美,检测精度可以和Faster RCNN媲美。除此之外,还有一些鸡毛蒜皮的优点,不解释了。这里谈谈缺点:

        1. 需要人工设置prior box的min_size,max_size和aspect_ratio值。网络中prior box的基础大小和形状不能直接通过学习获得,而是需要手工设置。而网络中每一层feature使用的prior box大小和形状恰好都不一样,导致调试过程非常依赖经验。

        2. 虽然采用了pyramdial feature hierarchy的思路,但是对小目标的recall依然一般,并没有达到碾压Faster RCNN的级别。作者认为,这是由于SSD使用conv4_3低级feature去检测小目标,而低级特征卷积层数少,存在特征提取不充分的问题。

三、关键点分析

        1. 多尺度feature map得到default boxes及其 4个位置偏移和21个类别置信度。

        对于不同尺度feature map(图中 38x38x512,19x19x512, 10x10x512, 5x5x512, 3x3x512, 1x1x256)上的所有特征点:以5x5x256为例,它的#defalut_boxes = 6。

SSD(Single shot multibox detector)目标检测模型架构和设计细节分析

SSD(Single shot multibox detector)目标检测模型架构和设计细节分析

SSD(Single shot multibox detector)目标检测模型架构和设计细节分析

        结合这个图,就可以厘清上面的思路。

SSD(Single shot multibox detector)目标检测模型架构和设计细节分析

四、其他相关技术点分析

        1. Hard Negative Mining(难负样本挖掘)

        指的是分类错误,很难分辨的样本,包括了前景和背景。SSD做了这方面的处理。有一个名词是OHEM(Online Hard Example Mining)。是将容易分为负样本的正类,即图像中的目标类别。

SSD(Single shot multibox detector)目标检测模型架构和设计细节分析

        2. 数据扩充

SSD(Single shot multibox detector)目标检测模型架构和设计细节分析

        3. Atrous Algorithm

        SSD在设计模型的时候,用了Atrous算法,这提高了模型的性能。其实Atrous算法就是一个下采样算法。在卷积操作的时候,stride增加,比如stride为2,则feature map下采样为1/4大小(长宽分别为上一层的1/2),此时表示感受野增加。相反,当stride减少时,比如stride为1,则feature map不变,此时你获得的特征感受野就减少。为了防止feature map和receptive filed之间的互斥性,采用了Atrous 算法。具体的讲解如下分析所示。

SSD(Single shot multibox detector)目标检测模型架构和设计细节分析

SSD(Single shot multibox detector)目标检测模型架构和设计细节分析

SSD(Single shot multibox detector)目标检测模型架构和设计细节分析

SSD(Single shot multibox detector)目标检测模型架构和设计细节分析

五、总结

        1. SSD对目标检测的贡献

        (1). SSD, a single-shot detector for multiple categories (faster than YOLO, accurate as Faster R-CNN).

        (2). The core of SSD is predicting category scores and box offsets for a fixed set of default bounding boxes using small convolutional filters applied to multiple feature maps from different layers.

        (3). Experimental evidence: high accuracy, high speed, simple end-to-end training (single shot).

        2. SSD对于其他方法的改进的关键点

        (1). Using a small convolutional filter to predict object categories and offsets in bounding box locations.

        (2). Using separate predictors (filters) for different aspect ratio detections.

        (3). Using multiple layers for prediction at different scales (apply these filters to multiple feature maps to perform detection at multiple stages).

六、感谢

        感谢这些博主的详细分析。给出他们的链接:

        目标检测方法——SSD:https://www.bbsmax.com/A/gGdX0Vepd4/

        SSD分析: https://zhuanlan.zhihu.com/p/24954433