论文 SSD: Single Shot MultiBox Detector

Motivation

目标检测算法R-CNN系列、YOLO系列的精度虽然高,但是速度不快,不能作为实时检测算法。因此作者提出了实时目标检测算法SSD。

Innovation

SSD没有region proposal过程和特征重采样阶段,加快网络速度。SSD在不同尺寸的feature map上进行预测,提高了网络的精度,如下图所示。
SSD 笔记

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模型的架构图
SSD 笔记

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位置使用(c+4)k(c+4)k个过滤器,一个feature map产生(c+4)kmn(c+4)kmn个输出。

下图是一些default box的例子
SSD 笔记

图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

xijp={1,0}x_{ij}^{p} = \{ 1, 0 \}表示第i个default box与类别p的ground truth box是否匹配。SSD的目标损失函数为
L(x,c,l,g)=1N(Lconf(x,c)+αLloc(x,l,g))L(x, c, l, g) = \frac{1}{N}(L_{\text{conf}}(x,c) + \alpha L_{\text{loc}(x, l, g)})
其中Lconf(x,c)L_{\text{conf}}(x,c)是置信度损失,Lconf(x,c)L_{\text{conf}}(x,c)是位置损失,取R-CNN的 Smooth L1 loss。N是匹配的default boxes的数量。如果N=0N=0,令损失为0.

置信度损失是softmax损失
Lconf(x,c)=xPosNxijplog(c^ip)iNeglog(c^i0) where c^ip=exp(cip)pexp(cip) L_{\text{conf}}(x,c) = - \sum_{x \in \text{Pos}}^N x_{ij}^p \log (\hat{c}_i^p) - \sum_{i \in \text{Neg}} \log (\hat{c}_i^0) \text{ where } \hat{c}_{i}^p = \frac{\exp(c_i^p)}{\sum_p \exp(c_i^p)}

Choosing scales and aspect ratios for default boxes

假设我们使用m个feature maps进行预测,那么每个feature map的尺寸为
sk=smin+smaxsminm1(k1),k[1,m] s_k = s_{\min} + \frac{s_{\max} - s_{\min}}{m-1} (k - 1), k \in [1, m]
其中smin=0.2s_{\min} = 0.2, smax=0.9s_{\max}=0.9,其他的模型可能取其他值,上面的式子的意思是在[smin,smax][s_{\min}, s_{\max}]中取出m个相同间隔的数。

作者定义了default box的宽高比,他们是ar{1,2,3,12,13}a_r \in \{1,2,3,\frac{1}{2}, \frac{1}{3}\}。default box的宽为wka=skarw_k^a = s_k \sqrt{a_r},高为hka=sk/arh_k^a = s_k / \sqrt{a_r},可以看到面积为ar2a_r^2。对于宽高比1,作者添加一个尺寸为sk=sksk+1s'_k=\sqrt{s_k s_{k+1}},这样每个feature map的每个位置有6种default box。

Hard negative mining

根据匹配策略,很多default box都是负样本,特别当default boxes的数量很多时。为了解决数据不平衡问题,作者根据置信度损失对负样本进行排序,取最高的置信度损失的负样本。这样处理使得负样本和正样本的比例为3:1。

Data augmentation

为了使模型对不同输入对象大小和形状更加鲁棒性,作者对每个训练图片进行如下某一种随机取样操作。

  1. 使用整个原始的输入图片。
  2. 选择一个图片块,与对象最小的交并比为0.1,0.3,0.5,0.7或0.9。
  3. 随机选择一个图片块。

图片块大小为原图片的[0.1,1][0.1, 1],宽高比在[12,2][\frac{1}{2}, 2]之间。

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 {1,2,12}\{1,2,\frac{1}{2}\} 4 38×38 4×38×38 0.07
conv7(fc7) 0.2 {1,2,3,12,13}\{1,2,3,\frac{1}{2}, \frac{1}{3}\} 6 19×19 6×19×19 0.15
conv8_2 0.375 {1,2,3,12,13}\{1,2,3,\frac{1}{2}, \frac{1}{3}\} 6 10×10 6×10×10 0.3
conv9_2 0.55 {1,2,3,12,13}\{1,2,3,\frac{1}{2}, \frac{1}{3}\} 6 5×5 6×5×5 0.45
conv10_2 0.725 {1,2,12\{1,2,\frac{1}{2}} 4 3×3 4×3×3 0.6
conv11_2 0.9 {1,2,12\{1,2,\frac{1}{2}} 4 1×1 4×1×1 0.75
conv12_2 - - - - - 0.9
total - - - - 8732 -

未填的表格论文中未提及,需要查看源代码才能了解到具体数据。

实验对比结果为
SSD 笔记

相关文章: