论文 SSD: Single Shot MultiBox Detector
Motivation
目标检测算法R-CNN系列、YOLO系列的精度虽然高,但是速度不快,不能作为实时检测算法。因此作者提出了实时目标检测算法SSD。
Innovation
SSD没有region proposal过程和特征重采样阶段,加快网络速度。SSD在不同尺寸的feature map上进行预测,提高了网络的精度,如下图所示。
Adavantage
SSD在提高网络的速度的同时,提高了网络的精度。下表是在VOC 2007 test的测试结果
| Method | FPS | mAP |
|---|---|---|
| SSD | 59 | 74.3 |
| Faster R-CNN | 7 | 73.2 |
| YOLO | 45 | 63.4 |
可以看到SSD在速度和精度上都有很大的优势。
Model
SSD是前向传播网络,它会预测固定数量的bounding box和box里对象的类别分数,随后非极大值抑制整理bounding box并输出最终结果。SSD使用目标分类的标准网络架构,比如VGG,截断最后一层分类层,称为基础网络,然后在基础网络上添加一些辅助结构。
下面是SSD的主要特征。
Multi-scale feature maps for detection
之前已经说了,SSD在不同大小的feature map上进行预测。这些feature map来自不同的卷积层,这些卷积层加在基础网络的后面,而且尺寸逐渐减少。这样做的目的是可以让网络一次就能检测不同大小的物体对象。R-CNN系列算法的做法是改变输入图片的尺寸,这样做的结果是耗时,对一张图片要预测几次。相比来说,SSD一次就能预测不同大小的物体对象,提高网络的速度和精度。
下图表示SSD300模型的架构图
SSD300表示输入图片大小为300。从上图可以看到SSD在不同尺寸的feature map上进行预测,这样做既捕获细小物体的特征,又能捕获尺寸大的物体的特征,提高预测精度。同时可以看出SSD是一个端对端的网络,每个region proposal的过程,是one-stage算法。
Convolutional predictors for detection
SSD使用卷积预测器在feature map上进行检测。假设在一个大小为m×n通道数为p的feature map上,SSD使用一个3×3×p的卷积核,在feature map的每个位置进行卷积预测物体种类的分数和与default box的偏移量。而YOLO使用一个中等全连接层进行预测。
Default boxes and aspect ratios
default boxes类似于anchor box,default boxes有不同的尺寸,对应不同大小的feature map。而不同尺寸的default box又有不同的宽高比。在每个feature map的单元上,SSD预测与这个单元的default box的偏移量和每个类别的分数。假设每个单元关联k个default box,那么一个feature map位置使用个过滤器,一个feature map产生个输出。
下图是一些default box的例子
图b表示一个8×8大小的feature map,图中显示了两个位置的default box,可以看到同一个位置对应了4个default boxes,每个default box对应不同的宽高比。图c显示了一个位置的default box,这些default box的宽高比与图b相同,但是它们的尺寸与图b不同,因为这些default boxes位于不同的feature map,接受域不同,尺寸也就不同。
Training
接着讲讲SSD如何训练。
Matching strategy
在训练的时候需要确定哪些default boxes与ground truth box对应。对于每个ground truth box, 选择与它有最好的jaccard overlap(交并比)的default box与它匹配。对于每个default boxes,选择与它的交并比大于0.5的任何一个ground truth box与它进行匹配。
Training objective
令表示第i个default box与类别p的ground truth box是否匹配。SSD的目标损失函数为
其中是置信度损失,是位置损失,取R-CNN的 Smooth L1 loss。N是匹配的default boxes的数量。如果,令损失为0.
置信度损失是softmax损失
Choosing scales and aspect ratios for default boxes
假设我们使用m个feature maps进行预测,那么每个feature map的尺寸为
其中, ,其他的模型可能取其他值,上面的式子的意思是在中取出m个相同间隔的数。
作者定义了default box的宽高比,他们是。default box的宽为,高为,可以看到面积为。对于宽高比1,作者添加一个尺寸为,这样每个feature map的每个位置有6种default box。
Hard negative mining
根据匹配策略,很多default box都是负样本,特别当default boxes的数量很多时。为了解决数据不平衡问题,作者根据置信度损失对负样本进行排序,取最高的置信度损失的负样本。这样处理使得负样本和正样本的比例为3:1。
Data augmentation
为了使模型对不同输入对象大小和形状更加鲁棒性,作者对每个训练图片进行如下某一种随机取样操作。
- 使用整个原始的输入图片。
- 选择一个图片块,与对象最小的交并比为0.1,0.3,0.5,0.7或0.9。
- 随机选择一个图片块。
图片块大小为原图片的,宽高比在之间。
Experiment Results
作者使用的基础网络是VGG,实验过程中使用了两个SSD模型,分别是SSD300和SSD512,输入图片大小分别是300和512。
这里陈述SSD在PASCAL VOC2007的实验和实验结果。
实验中SSD300和SSD512两个模型的区别是
| > | > | > | > | SSD300 | > | > | > | > | SSD512 | |
|---|---|---|---|---|---|---|---|---|---|---|
| 尺度 | 宽高比 | #default box | feature map size | #total box | 尺度 | 宽高比 | #default box | feature map size | #total box | |
| conv4_3 | 0.1 | 4 | 38×38 | 4×38×38 | 0.07 | |||||
| conv7(fc7) | 0.2 | 6 | 19×19 | 6×19×19 | 0.15 | |||||
| conv8_2 | 0.375 | 6 | 10×10 | 6×10×10 | 0.3 | |||||
| conv9_2 | 0.55 | 6 | 5×5 | 6×5×5 | 0.45 | |||||
| conv10_2 | 0.725 | } | 4 | 3×3 | 4×3×3 | 0.6 | ||||
| conv11_2 | 0.9 | } | 4 | 1×1 | 4×1×1 | 0.75 | ||||
| conv12_2 | - | - | - | - | - | 0.9 | ||||
| total | - | - | - | - | 8732 | - |
未填的表格论文中未提及,需要查看源代码才能了解到具体数据。
实验对比结果为