SSD特点
- 从YOLO中继承了将detection转化为regression的思路,一次完成目标定位与分类
- 基于Faster RCNN中的Anchor,提出了相似的Prior box
- 加入基于特征金字塔(Pyramidal FeatureHierarchy)的检测方式,即在不同感受野的feature map上预测目标。
SSD结构简述
主网络结构是VGG16,将最后两个全连接层改成卷积层,并随后增加了4个卷积层来构造网络结构。对其中5种不同的卷积层的输出(feature map)分别用两个不同的 3×3的卷积核进行卷积,一个输出分类用的confidence,每个default box 生成21个类别confidence;一个输出回归用的 localization,每个 default box生成4个坐标值(x, y, w, h)。
Multi-scale feature maps for detection(多尺度特征映射)
SSD(右图)在base network之后加入多个卷积层,获得不同尺度的feature map, 这些层的大小逐渐减小,可以进行多尺度预测。
Convolutional predictors for detection
对于一个大小为mn、p通道的特征层,使用33的卷积核进行预测,在某个位置上预测出一个值,该值可以是某一类别的得分,也可以是相对于default bounding boxes的偏移量,并且在图像的每个位置都将产生一个值。
Default boxes and aspect ratio
SSD在不同的特征层的feature map上的每个feature map cell生成K个default boxes。
对于每个box,预测C个类别得分,以及相对于default bounding box的4个偏移值,这样需要(C+4)k个预测器,在mn的特征图上将产生(C+4)km*n个预测值。
Choosing scales and aspect ratios for default boxes(default boxes 生成规则)
以feature map上每个点的中点为中心(offset=0.5)生成一系列同心的Defult box(然后中心点的坐标会乘以step,相当于从feature map位置映射回原图位置)。
对于每个feature map,default box的尺度计算如下:
其中,smin = 0.2,smax = 0.9
default box的aspect ratios 有:{1, 2, 3,1/2,1/3},对于 aspect ratio = 1,额外增加一个default box,该box的尺度为
。
每一个default box,宽度、高度、中心点计算如下:
可以看出这种default box在不同的feature层有不同的scale,在同一个feature层又有不同的aspect ratio,因此基本上可以覆盖输入图像中的各种形状和大小的object。
Matching strategy
在训练过程中,需要从不同位置,不同大小,不同长宽比的一系列Default boxes中选出与Ground truth 拥有最佳jaccard overlap的boxes,在SSD中,当jaccard overlap大于某一阈值(0.5),则认为该box与ground truth匹配成功, 作为训练的正样本,如果匹配失败,则作为负样本。
Jaccard overlap
显然,负样本的数据要远远多于正样本,为了控制正负样本的数量满足一定比例(1:3),所以采用Hard negative mining对负样本进行选择。
Hard negative mining
先将每一个物体位置上对应 predictions(default boxes)是 negative 的 boxes 进行排序,按照 default boxes 的 confidence 的大小。 选择最高的几个,保证最后 negatives、positives 满足比例 。
Trainning objective
总的损失函数是localization loss (loc) 和 confidence loss (conf) 的加权和。
localization loss:
confidence loss: