目录
1. 概述2. SSD2.1 网络结构2.2 anchor的设置2.3 label assignment2.4 损失函数与RPN基本相同2.5 正负样本平衡策略:
3. 实验4. 优点
论文:SSD: Single Shot MultiBox Detector 时间及出处:CVPR 2016
1. 概述
SSD的整体架构借鉴了YOLOv1,即,直接在特征图上输出物体的类别和位置。与YOLOv1不同的是,SSD引入了Faster R-CNN中的anchor机制,并且去掉了YOLOv1的全连接层,采用卷积层进行预测。
SSD最大的贡献就是引入多尺度特征预测
YOLOv1只在最后一层特征图上预测物体的类别和位置,SSD则在多个不同大小的特征图上同时预测物体的类别和位置;Faster R-CNN中的RPN只在最后一层特征图上设置anchor,SSD则在多个不同大小的特征图上同时设置anchor
2. SSD
2.1 网络结构
以去除全连接层的VGG16作为backbone,并在后面添加一系列的卷积,得到6个不同大小的预测特征图(conv4、conv7~conv11),对于每一个预测特征图,采用
3
×
3
3\times3
3×3的卷积核做预测,在特征图的每一个位置输出
(
c
+
4
)
k
(c+4)k
(c+4)k维向量,
k
=
4
k=4
k=4是每个位置的anchor数量,c是类别数(包含背景类)。
2.2 anchor的设置
s
k
s_k
sk是第
k
k
k层特征图上的anchor映射到原图之后,占原图大小的比例。假设原图大小为
300
×
300
300\times300
300×300,特征图大小为
8
×
8
8\times8
8×8,该特征图上的anchor面积占原图的比例为
s
k
=
0.6
s_k=0.6
sk=0.6,则该特征图的anchor的面积为
300
×
300
×
0.6
300\times300\times0.6
300×300×0.6。从公式(4)看出,显然每层anchor的面积是线性递增的。浅层特征图的anchor面积小,适合用来检测小物体;深层特征图的anchor面积大,适合用来检测大物体。
2.3 label assignment
anchor和ground truth的匹配策略如下:
正样本负样本描述表示该anchor负责预测某个gt,即含有object表示该anchor不负责预测任何gt,即不含有object准则(1)对于每个gt,选择与其IoU最大的anchor:保证所有的gt至少有一个anchor负责预测它。(2)若某个anchor与任何一个gt的IoU大于0.5,则为positiveotherwise作用用于多分类和边界框回归用于多分类 注:与RPN的区别是没有设置忽略样本。
2.4 损失函数与RPN基本相同
softmax多分类损失+smoothL1回归损失。
2.5 正负样本平衡策略:
在线难例挖掘(OHEM):对所有负样本的loss(只有分类损失)进行排序,选取损失最高的一定数量的负样本,保证正负样本的比例为1:3。
3. 实验
4. 优点
速度比Faster R-CNN和YOLOv1快准确度比Faster R-CNN和YOLOv1高