目标检测(target detection) DSOD: Learning Deeply Supervised Object Detectors from Scratch

转自:https://blog.****.net/zhangjunhit/article/details/77247695

DSOD: Learning Deeply Supervised Object Detectors from Scratch 
ICCV2017 
https://github.com/szq0214/DSOD

针对目标检测问题,本文提出了不需要预训练模型的检测算法,可以看作 SSD + DenseNet 的结合

以前的目标检测算法基本都是先在 ImageNet 数据库上进行预训练,然后再微调。这个微调也叫做 迁移学习 transfer learning。

在 pretrained models 上微调有两个好处: 
1)有很多好的模型是开源的,可以直接将他们用于目标检测; 
2)微调可以快速得的奥最终的模型,需要的训练数据也相对较少。

微调在目标检测问题上缺点: 
1) Limited structure design space, 基于 ImageNet 分类数据库的预训练模型大,参数太多。直接将它们用于目标检测,导致模型结构灵活性差,难以改变网络结构,计算量也大,限制其应用场合。 
2) Learning bias , 因为分类和检测任务的损失函数和 类别分布是不一样的,我们认为两者的搜索/优化空间是不一样的,所以在分类上预训练可能会导致在检测上的得到局部最优,而不是全局最优解 
3)Domain mismatch,尽管微调可以减少不同目标类别分布的差异性,但是对于一些目标域为 深度图、医学图像 和 ImageNet 的差异性太大, 微调效果不理想

我们的工作主要受下面两个问题的启发: 
1)可以从零开始训练得到一个好的目标检测网络吗? 
2)如果可以,设计这样的网络有没有什么原则可以遵守

  1. Related Work 
    Object Detection 目标检测 最近几年发展很快,可以分为两大类: 
    1)基于候选区域提取的方法,基于候选区域提取的方法有: R-CNN [5], Fast R-CNN [4], Faster R-CNN [27] and R-FCN [19]。 
    2)不用提取候选区域的方法,不用提取候选区域的方法主要有 SSD 和 YOLO

Network Architectures for Detection 
网络结构的发展也很快,AlexNet [17], VGGNet [28], GoogLeNet [32], ResNet [9] and DenseNet [10]。同时也提出了一些 regularization 技术 
这些新的模型和技术对目标检测的发展也有很大帮助。

Learning Deep Models from Scratch 
目前还没有这方面的工作

3.1. DSOD Architecture

SSD 
目标检测(target detection) DSOD: Learning Deeply Supervised Object Detectors from Scratch

Overall Framework SSD vs DSOD 
目标检测(target detection) DSOD: Learning Deeply Supervised Object Detectors from Scratch
由上图可以看出 SSD 在六个尺度的特征图上进行检测,将这六个检测结果综合起来。 
DSOD 则根据 DenseNet 的设计原理, 将相邻的检测结果一半一半的结合起来

DSOD architecture 
目标检测(target detection) DSOD: Learning Deeply Supervised Object Detectors from Scratch

DSOD 网络分两个部分: 用于特征提取的 backbone,用于目标预测的 front-end。backbone 子网络 类似于 DenseNets,由 stem block, four dense blocks, two transition layers and two transition w/o pooling layers 组成。

design principle : 
Principle 1: Proposal-free 基于候选区域提取的方法无法从零开始训练,不收敛。只有 proposal-free 方法可以从零开始训练并收敛。 
我们猜测原因是RoI pooling 需要好的初始化输入,于是我们选择了基于 SSD 来改进

Principle 2: Deep Supervision 
主要是参考 DenseNet 中 更多的 skip connections 实现 supervised signals 传递 
Transition w/o Pooling Layer 用这个层来增加 dense blocks 数量。 原来的 DenseNet 的dense blocks 数量是固定的

Principle 3: Stem Block 受 Inception-v3 [33]and v4 [31] 的启发 我们定义 Stem Block 为三个 3×3卷积层和一个 2×2 最大池化层, 
我们发现这么设计可以提升性能

Principle 4: Dense Prediction Structure 和 SSD类似,我们也是在6个尺度特征图进行目标检测,再融合,但是有SSD 有所区别的是怎么利用特征图的,我们这里是 Learning Half and Reusing Half,对照 Figure 1 看。

  1. Experiments

Effectiveness of various designs on VOC 2007 test set 
目标检测(target detection) DSOD: Learning Deeply Supervised Object Detectors from Scratch

Ablation study on PASCAL VOC 2007 test set 
目标检测(target detection) DSOD: Learning Deeply Supervised Object Detectors from Scratch
目标检测(target detection) DSOD: Learning Deeply Supervised Object Detectors from Scratch

目标检测(target detection) DSOD: Learning Deeply Supervised Object Detectors from Scratch