DetNet: A Backbone network for Object Detection

ECCV2018
TsingHua University && Face++
Zeming Li

1. Motivation

当前的目标检测模型,不管是one-stage还是two-stage,都是采用的ImageNet分类数据集上预训练的分类模型来在检测数据集上fine-tune。但是分类模型应用到检测任务的主要问题是:
分类模型为了提高分类的准确率,通过很多次downsample来提高有效的receptive field。但是过多的downsample会让网络对物体的位置变化不敏感,同时容易丢失小目标的信息,以及普通目标的形状和边缘信息。这样会不利于目标检测任务。

2. DetNet Design

作者的DetNet是基于resnet-50,其基本模型以及FPN,DetNet的示意图如下所示:

B表示resnet-50的分类模型,通过5次downsample之后,feature map变成输入的1/32,然后GAP-分类。

A表示基于resnet的FPN结构,在stage5的基础上,再加了一次downsample构成stage6,然后添加一路top-down branch和低层特征图融合,在多个尺度上做预测。

C表示作者设计的DetNet结构,和FPN相比,同样是6个stage,但是stage5和stage6都用了dilated convolution来保持feature map的resolution和感受野。另外,因为引入dilated convolution会增大计算量和存储消耗,stage5和6的channel数目都限制在和stage4一样=256。


具体的DeNet中的模块以及基于DetNet的FPN检测模型结构如下所示:

图C表示正常的resnet的bottleneck,图A表示dilated bottleneck,图B表示作者设计的带projection的dilated bottleneck。

E表示基于DetNet的FPN具体结构。stage1-4和resnet50一样,stage5和6都是B-A-A结构。
因为stage4-5-6输出的特征图大小一样,所以top-down branch省去了upsample的过程。

3. Experiments

3.1. Detector training and inference
  1. 8卡并行训练,每张卡上batch size=2,总的有效batch size=16;
  2. 短边resize到800,长边限制不超过1333,一张卡上两张图通过padding右下角保证大小一样;
  3. 初始lr=0.02,之后120k和160k迭代各降10倍,warm up lr=0.02 * 0.3,迭代500次;
  4. 权重使用ImageNet上分类模型初始化, stage1参数固定,fine-tune检测模型的时候BN固定;
  5. 只采用了水平翻转augmentation;

Main results
在ImageNet上分类以及在COCO上fine-tune检测的结果如下所示:

DetNet-59的参数性能比是最好的,即能够在不怎么增加参数的基础上,提高检测精度

Train from scratch

直接在COCO上train from scratch,结果如上表所示,可以看出DetNet作为backbone更适合object detection

Result Analysis


在COCO上具体的AP和AR值如上所示,可以看到,DetNet对于大的目标预测的precision明显更高(AP@85),同时能够找到更多的小目标(AR@50)

Discussion
为了验证bottleneck中1x1 projection的有效性,作者将stage-6中的1x1projection去掉,如下所示:

对比模型的检测精度如下所示:

可以看到1x1projection能够有效产生一个新的stage,而不仅仅是可以看成对stage-5的加深

同时作者也尝试了将普通的resnet50 stage5加dilation,新的模型相比detnet-59增加了不少计算量(stage5的channel数目更多),但是精度没有detnet-59好。

你可能感兴趣的:(Computer,Vision)