标题:DSSD : Deconvolutional Single Shot Detector
作者:Cheng-Yang Fu, Wei Liu等
链接:https://arxiv.org/abs/1701.06659
摘要:
作者将传统的多层特征检测模型总结为三类:
- 使用卷积网络的不同层组合得到的feature map进行预测。如:ION、HyperNet等,缺点是时间和空间开销比较大。
- 由于感受域的不同,可以用浅层预测小物体,用深层预测大物体。如SSD、MS-CNN等,缺点是浅层信息提取不全,对小物体检测效果不好。
- 不仅仅借助feature map提取出的region,而且根据预先定义好的中心、边界等region进行预测,如Multi-Region CNN。
本文以新的ResNet101为基础搭建SSD,并引入反卷积层作为编码-解码器传递上下文信息,搭建了DSSD,在小物体检测上实现了优异的效果。
基于ResNet-101的SSD
由于ResNet相比于VGG有着更好的分类结果,所以替代VGG是很自然的想法。作者提取conv3、conv5和后面各层的特征进行预测,但是效果和原版SSD类似。
基于解卷积的SSD
为了提取更多的high-level context,作者将SSD中的预测层移到一系列解卷积层后,形成一种“沙漏模型”,并增加了“skip connection”。为了提高运行时速度,同时为了方便由初始化的参数进行训练,解卷积层没有设置得太深。构成了如图的结构:
以下介绍prediction module和deconvolution module。
预测模块(prediction module)
受MS-CNN的启发:
Improving the sub-network of each task can improve accuracy.
即:优化每个任务(大物体预测和小物体预测)的子网络可以提高整体任务(即:检测任务)的精度。所以作者在每个预测层之前都做了Res block处理,具体prediction module的实验方案包括:
实验效果如下:
解卷积模块(deconvolution module)
从架构图中可以看出,解卷积模块是个二进一出的结构,“二进"分别来自SSD层和deconv层,“一出”送向下一deconv层。
求和和求积两种组合方式的实验结果在上节可以看到。
训练
loss、正负样本的选取、类别平衡等方案和SSD类似,不再赘述。
时间复杂度分析
该方案并没有比SSD大幅提升运行速度,总结一下由三个原因:
- Resnet比VGG拥有更多层
- 额外的预测模块和解卷积模块很耗时
- 这里的default box数量远远多于SSD中的。
综上,DSSD比SSD在精度上有有限提升,速度类似,在小物体检测上表现卓著。