DetNet

DetNet: A Backbone network for Object Detection

一、摘要

一阶段、二阶段的检测器都是直接finetune ImageNet上预训练的分类模型。

有两个问题:

  1. 尺度不敏感
  2. 空间位置不敏感 (旋转平移不变性),原因:降采样系数大

解决:

  1. FPN
  2. 为了权衡深层的空间分辨率,和计算内存开销,采用:dilated bottleneck structure

二、最近工作

1.AlexNet

提高了CNN的深度,同时为了减少网络的计算量和提高有效的感受野,使用了32步长的降采样特征图。

2.VGGNet

使用$3\times 3$的卷积来构建更深的网络,同时仍采用了32的步长。

3.GoogleNet

提出了inception block,用于更加多样的特征。

4.ResNet

bottleneck,残差块来构建更深的网络。

5.RexNext Xception

引入group convolution层,减少了参数,同时提高了精度。

6.DenseNet

好几层进行拼接

7.Dilated Residual Network

使用更小的步长来提取特征,在分割领域效果显著。

8.ShuffleNet,MobileNet,SqueezeNet……

三、DetNet

3.1motivation

ImageNet上预训练的模型的三个问题:

1.训练不同的backbone网络时候的stages数量是不同的。一般的分类网络的阶段是5个,每个阶段降采样2倍(2步长的池化或者2步长的卷积来实现),所以最后输出的特征图的空间尺寸是32倍降采样的。

FPN还添加了额外的$P6$来处理更大的目标。Retinanet添加了$P6,P7$。当然额外添加的层是不没有预训练的。

2.大目标的可见性很弱。步长为32的的特征图拥有很强语义信息,有很大的感受野,同时在分类任务上很成功。
但是:对于目标定位来说不行,因为此时层数很深,这些目标的边界很模糊难以得到准确的回归。

3.小目标会丢失。 小目标因为在大步长的特征图上的空间分辨率变得很低,所以小目标信息会丢失。
FPN在浅层预测小目标,但是浅层的信语义信息不够,不足以识别目标实例的类别。因此检测器必须通过在深层特征图,因为其包含了上下文信息的高层次表达,因此能够提高的分类能力。但是如果小目标在深层特征图里丢失,那么上下文线索也就丢失了。

所以,DetNet的做了以下两点改进:

1.DetNet的stage直接是可以用来进行检测,也就是说检测的时候不需要新加层。

2.最后一个stage的分辨率很高,可以定位大目标的边界,找到遗失的小目标。

3.2DetNet Design

多GPU上的bn层的同步训练