dsd编程解读(DSOD论文解读)

. 前言¶

DSOD(Deeply Supervised Object Detectors) 是 ICCV 2017 的一篇文章,它表达了一个非常有意思的东西。这篇论文不是从目标检测的高 mAP 值或者速度更快出发,而是从另外一个角度切入来说明 fine-tune 后的检测模型和直接训练的检测模型的差距其实是可以减少的,也即是说一些检测模型可以摆脱 fine-tune 这一过程,并且相比于 fine-tune 训练出来的模型效果并不会变差。

2. 介绍

DSOD 这一算法是在 SSD 的基础上进行的改进,可以简单地看成:

DSOD=SSD DenseNet

作者在论文中提到他也实验了从0 开始训练 Region Proposal Based 的检测算法比如 Faster RCNN,R-FCN 等,但这些模型很难收敛。而 One-Stage 的目标检测算法比如 SSD 却可以收敛,虽然效果很一般,因此最后作者使用 SSD 作为了这篇论文接下来讨论的 BaseLine。然后本文基于 SSD 改进的 DSOD 在 VOC2007 trainval 和 2012 trainval 数据集上训练模型,然后在 VOC2007 testset 上测试的表现 (77.7%mAP) 超过了使用 fine-tune 策略的 SSD300S(69.6%mAP)和 SSD300(75.8mAP),原文是这样描述的。

Our DSOD300 achieves 77.7% mAP, which is much better than the SSD300S that is trained from scratch using VGG16 (69.6%) without deep supervision. It is also much better than the fine-tuned results by SSD300 (75.8%)

3. 出发点

这篇文章的出发点是什么呢?作者认为几乎的所有检测网络都在使用 fine-tune 这一技巧,那么一定要用 fine-tune 吗?作者列出来了 3 个原因来尝试说明 fine-tune 不是必须的。原因如下:(1)预训练的模型一般是在分类图像数据集比如 Imagenet 上训练的,不一定可以迁移到检测模型的数据上(比如医学图像);(2)预训练的模型,其结构都是固定的,因此如果想要再修改的话比较麻烦。 - 预训练的分类网络的训练目标一般和检测目标不一致,因此预训练的模型对于检测算法而言不一定是最优的选择。基于上面这几点原因,论文提出了一个从0开始的检测模型 DSOD。

4. DSOD 网络结构

下面的 Figure1 分别展示了 SSD 的整体结构和 DSOD 的整体结构。

dsd编程解读(DSOD论文解读)(1)

Figure1 左图的plain connection表示 SSD 网络中的特征融合操作,这里对于300×300300×300 的输入图像来说,一共融合了66 种不同 scale 的特征。在每个虚线矩形框内都有一个1×1的卷积和一个3×3 的卷积操作,这也可以被叫作 BottleNeck,也就是1×1卷积主要起到降维从而降低3×3卷积计算量的作用。Figure1 右图的dense connection表示本文的 DSOD 引入了 DenseNet 的思想。dense connection左边的虚线框部分和plain connection右边的虚线框部分结构一致,区别在于里面的channel个数,dense connection中3×3卷积的channel个数是plain connection中3×3 卷积的一半。主要是因为在plain connection中每个 BottleNeck 的输入是前面一个 BottleNeck 的输出,而在dense connection中,每个 bottleneck 的输入是前面所有 bottleneck 的输出的 concate,所以为了降低计算量减少了通道数。

同时,dense connection部分右边的矩形框是下采样模块,包含一个2×2的最大池化层(降采样作用)和一个1×1 的卷积层(降低channel个数的作用),作者也提到先进行降采样再进行1×1卷积可以进一步减少计算量。因此可以看出 DSOD 即是 SSD DenseNet 的结果。下面的 Table1 详细展示了 DSOS 网络的结构。其中 Dense Block 就是 DenseNet 网络的子模块,然后stem block由3×3 卷积和2×2池化组成,后面实验证明了这个stem block可以提高 mAP 值。

dsd编程解读(DSOD论文解读)(2)

5. 实验结果

下面的 Table3 展示了在 VOC2007 testset 上不同参数的实验结果

dsd编程解读(DSOD论文解读)(3)

下面的 Table4 则展示了更丰富的结果

dsd编程解读(DSOD论文解读)(4)

6. 总结

DSOD 是在 SSD 的基础上结合了 DenseNet 的思想,使得网络可以在不使用预训练模型的条件下收敛得和使用预训练模型的 BaseLine 模型一样好,另外 DenseNet 的引入也使得相比 SSD 来说 DSOD 的参数数量大大减少,注意参数量不等于推理速度会变快。如果专注于特殊图像检测或者难以搞定预训练模型的场景这篇文章的思想是值得借鉴的。

7. 参考
  • 论文链接:https://arxiv.org/abs/1708.01241
  • 代码:https://github.com/szq0214/DSOD
  • 参考博客:https://blog.csdn.net/u014380165/article/details/77110702

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页