DSSD论文学习

《DSSD: Deconvolutional Single Shot Detector》基于DSSD的目标检测

  • 作者: Cheng- Yang Fu, Wei Liu
  • 单位: UNC Chapel, Amazon Inc
  • 发表会议及时间:CVPR 2017

研究背景(Research background)

DSSD是SSD算法改进分支中最为著名的一个,SSD的其他改进还包括RSSD,SSD的缺点在于其对小目标不够鲁棒。
虽然SSD在浅层网络的小网格上可以检测出小物体的位置,但是浅层网络对物体属于哪个类别无法做出准确判断。

研究成果

DSSD是对SSD算法的优化改进,主要改进点如下

  1. 提出基于top down的网络结构,用反卷积代替传统的双线性插值上采样
  2. 在预测阶段引入残差单元,优化候选框回归和分类任务输入的特征图
  3. 采用两阶段训练方法

DSSD在VOc2007数据集上,513*513的输入图片上,DSSD的mAP值达到81.5%
但是fps只有6fps左右。

SSD框架

SSD【18】构建在“基础网络之上,该网络以一些卷积层结束(或截断到末端)。SSD增加了一系列逐渐变小的卷积层,如下图顶部的蓝色所示(基本网络以白色显示)。每个添加的层和一些较早的基础网络层用于预测某些预定义默认边界框的分数和偏移。这些预测由3×3通道维度滤波器执行,每个类别得分一个滤波器,并且回归的边界框的每个维度它使用非最大抑制(NMS)对预测进行后处理以获得最终的检测结果。更多细节可以在【18】中找到,其中探测器使用VGG【26】作为基础网络。
DSSD论文学习

使用 Resnet-101替换VGG

我们的第一个改进是使用 Residua-101代替原始SSD论文中使用的VGG,特别是我们使用【14】中的 Residual-101网络。目标是提高准确性。图1顶部显示了使用Residua|-101作为基础网络的SSD。这里我们在conv5x之后添加层,并预测conv3x,conv5x和其他层的得分和偏移量,这本身并没有提高结果。
考虑到表4中的研究结果,顶行显示SSD的mAP为76.4,在 PASCAL VOC2007测试的321×321输入上带有 Residual-101的版本mAP低于带有VGG的SSD在77×300输入上的77.5(参见表3)。然而,添加下一个描述的附加预测模块可显着提高性能。

预测模块

SSD的直接从数个卷积层中分别引出预测函数,预测量多达7000多,梯度计算量也很大。MS-CNN方法指出,改进每个任务的子网可以提高准确性。根据这一思想,作者在每一个预测层后增加残差模块,并且对于多种方案进行了对比,如下图所示。结果表明,增加残差预测模块后,高分辨率图片的检测精度比原始SSD提升明显。
DSSD论文学习

反卷积SSD模块

为了帮助集成来自早期特征图和解卷积层的信息,我们引入了一个解卷积模块,如下图所示。该模块进入整个DSSD架构,如图1底部的实心圆所示。解卷积模块受到 Pinheiro等【22】的启发,他提出用于改造网络的去卷积模块的因子版本具有与更复杂的相同的准确度,并且网络将更加高效,我们进行以下修改并在下图中显示它们。
DSSD论文学习
首先,在每个卷积层之后添加批量标准化层。其次,我们使用学习的反卷积层而不是双线性
上采样。最后,我们测试了不同的组合方法:元素总和元素相乘。实验结果表明,元素相乘提供了最好的准确度。

网络训练

我们遵循与SSD相同的训练策略。首先,依然采用SSD的 default boxes。对于每个 default box,我们将其与最佳IoU大于阈值(例如0.5)的任何 default box进行匹配,在不匹配的 default box中,我们根据信度损失选择某些框作为负样本,以便与正样本的比例为3:1,然后我们最小化联合定位损失(例如Smooth L1)和置信度损失(例如 Softmax)。
因为在 Fast R-CNN和 faster RCNN中没有特征或像素重新采样阶段,所以它依赖于数据扩充,值得注意的是,最新的SSD还包括一个随机扩展增强技巧,这对于检测小对象非常有用,我们也在DSSD框架中采用它。
我们还对先前的宽高比设置进行了微小的改变。在最初的SSD模型中,长宽比为2和3的框在实验中被证明是有用的。为了了解训练数据( PASCAL VOC2007和2012 trainval)中边界框的纵横比,我们在训练框上运行K- means聚类,并以方框区域的平方根为特征。我们从两个集群开始,如果错误可以提高20%以上,则会增加集群数量。

K-means

  1. 首先选择好将数据分成2类,然后随机初始化2个点作为中心点。
  2. 对于每一个数据点,选取与之距离最近的中心点作为自己的类别。
  3. 当所有数据点都归类完毕后,调整中心点:把中心点重新设置为该类别中所有数据点的中心位置,每一轴都设置为平均值(所以称为 means)
  4. 重复以上2-3步骤直至数据点的类别不再发生变化。
    DSSD论文学习

实验部分

我们的实验都是基于 Residual-101【14】.它是在 LSVRC CLS-LOC数据集上预先训练的【25】。在R-FCN【3】之后,我们将conv5阶段的有效步幅从32像素更改为16像素,以增加特征图分辨率,在conv5阶段中具有步幅2的第一个卷积层被修改为1.然后遵循“trous算法【15】.对于内核大小大于1的conv5阶段中的所有卷积层,我们将它们的扩张从1增加到2到由减少的步幅引起的“洞”。继SSD之后,我们使用 Residual blocks来添加些额外的图层来减少特征贴图的大小。

上一篇:树莓派4b通过外接ssd硬盘启动系统失败的排查和解决


下一篇:M1 Mac用户:如何检查SSD是否过度磨损