DetNet

文章:https://arxiv.org/abs/1804.06215

0 摘要

基于CNN的目标检测算法,无论是一阶段算法(YOLO,SSD,RetinaNet)还是两阶段算法(Faster R-CNN,R-FCN,FPN)都是在ImageNet目标分类模型上微调得到的。前面很少有论文探讨针对目标检测任务进行特征提取骨干网络的设计。但是,图像分类和目标检测任务存在下述区别:(1)最新的目标检测算法(FPN,RetinaNet)都在图像分类的基础上使用其他手段实现了多尺度的目标检测;(2)目标检测不仅需要分辨目标的类别,还需要进行准确的目标定位。大的下采样系数带来的大的感受野,这有益于目标分类,但不利于目标定位。正因为目标检测和图像分类之间存在了很大的差别,所以这里提出针对目标检测任务设计的骨干网络-DetNet。DetNet可以保证在网络的深层依然有大的特征尺寸。DetNet在coco数据集的目标检测和实力分割任务上取得了SOTA的效果。

1 DetNet:针对目标检测任务设计的骨干网络

1.1 动机

针对图像分类任务设计的CNN,随着网络层数的加深,特征图的空间尺寸在减小。虽然类似于FPN之类的检测算法通过上采样手段扩充了特征图的尺寸,但是仍然存在下述的问题:
在这里插入图片描述

  • 网络的阶段数不同:如图1(B)所示,传统的分类模型包含5个阶段,每个阶段通过池化或者stride为2的卷积操作,将特征图的尺寸缩减为原来的0.5倍,所以总体上特征图的尺寸缩减为了输入图像的1/32。使用了特征金字塔的检测器往往包含更多的stage,如FPN添加了P6去处理大目标的检测,RetinaNet中更是添加了P6和P7两个阶段。这些新添加的阶段在ImageNet的预训练模型中是未经过训练的。
  • 对大目标的检测能力较弱:对输入图像使用stride为32的下采样有助于提取具备强语义的特征,这对于图像分类任务而言是合适的。但是,对于目标检测任务而言,大尺寸的目标需要通过深层网络层进行检测和定位,但是由于深层网络层的stride较大,往往难以准确的实现目标定位。
  • 容易漏检小目标:浅层网络特征图尺寸大,但是其语义特征弱,不足以实现小目标的检测。FPN采用了将深层网络层的特征上采样和浅层网络层特征叠加的办法进行小目标的检测,但是如果深层网络层由于stride太大,本身就没有检测到小目标,将其特征上采样和浅层网络层的特征叠加之后也无法实现小目标的检测。

针对上述缺点,作者设计了适用于检测任务的骨干网络DetNet,其主要特点有:

  1. 网络的阶段数是按照检测的需求进行设计的;
  2. 虽然DetNet的阶段数比传统的图像分类模型更多,但在使用了大的感受野的同时仍然保持了大的特征分辨率。

使用DetNet替换ResNet进行目标检测的好处有:

  1. DetNet的阶段数更多,因此分类模型不包含的额外阶段可以在ImageNet数据集上预训练得到;
  2. 由于深层网络层的特征图尺寸更大,因此DetNet更适合于大目标的准确定位,也更容易避免漏检小目标。

1.2 DetNet的设计细节

设计高效准确的目标检测backbone有两个挑战,一是深度CNN保持大分辨率的特征需要特别大的内存/显存及计算时间;二是减小下采样系数也就等价于减小感受野的尺寸,这对图像分类和语义分割任务而言是不合适的。

DetNet以ResNet为参考,保持1,2,3,4阶段不变,从第5个阶段开始,Detnet开始进行独特的设计,具体的设计细节如图2所示。

在这里插入图片描述

作者设计了DetNet59,超过了ResNet50的分类效果。主要的不同是:

  • 添加了stage P6,适合于在FPN中进行目标检测。同时调整了网络参数,确保第4个stage的输出下采样了16倍;
  • 应用了图2(B)所示的bottleneck块,作者发现这对FPN很有帮助;
  • 应用空洞卷积可以在不增加参数数量的情况下增大感受野。由于空洞卷积的计算量依然很大,所以作者保持第5,6个stage和第四个stage具有相同数量的channel数,这和传统的设计思路是不一样的,传统的设计思路都是在后面的stage加倍channel数目。

作者将DetNet用作骨干网络,保持FPN的细节不变,构造了目标检测的模型。由于stage 4,5,6输出的空间尺寸一致,所以这里作者将其应用于FPN时,直接对这三个stage的输出相加,并未进行上采样操作。

2 实验

借鉴https://github.com/facebookresearch/Detectron的训练策略,在coco数据集上进行实验。
在这里插入图片描述在这里插入图片描述DetNet59和FPN结合,检测效果优于ResNet50和ResNet101,尤其是ResNet101比DetNet59的参数量更多,但效果尚比不过DetNet59,证明了DetNet适用于检测任务。

在这里插入图片描述Tabel 3显示的是在不同IOU阈值时的AP值,AP50表示的是模型的分类能力,AP85表示的是模型的定位精度,观察AP85可以发现,DetNet59远超ResNet50(40.0 vs 34.5),这说明DetNet59的对大目标的定位精度远超ResNet50,这是因为ResNet深度网络层的stride太大,大目标在特征图上的位置信息不够精确,因此也难以进行准确的目标定位。

在这里插入图片描述Tabel4记录的是不同IOU阈值时的AR值,也就是目标的漏检率。AR50表明的是合理的检测框的数量,AR85表明的是目标框的定位准确度。对比ResNet50和DetNet59,可以发现对于小目标,AR50的对比是60.0 vs 66.4,说明DetNet对小目标的查全率更高。这是因为,DetNet比ResNet的深度网络层的特征图的尺寸更大,所以可以在这些尺寸更大的特征图上发现小目标。DetNet对小目标的定位精度提升并无太大效果,只是有助于减小小目标的漏检。

总结实验结果,DetNet有助于减少小目标的漏检(对小目标的定位精度影响不大),有助于提升大目标的定位精度(对大目标的漏检率降低影响不大)

讨论

shortcut path上1*1卷积的作用:
对比图2(A)和图2(B)的bottleneck结构,作者认为即便空间尺寸不变的情况下,实验额外的1 * 1卷积也是有帮助的。为了进行实验的对比,作者设计了DetNet-59-NoProj,如图3所示。和图2(E)的区别是移除了stage6第一个bottleneck中的1 * 1 卷积,目的也就是验证在空间尺寸不变时1 * 1卷积的作用。
在这里插入图片描述在这里插入图片描述
表5的结果给出了DetNet59和DetNet59-NoProj分类和检测的结果对比,可以看出DetNet59的分类和检测效果都优于DetNet59-NoProj,说明了在shortcut path上应用 1 * 1 卷积的正向效果。作者认为,如果shortcut path是直连通道,那么输出的feature map和输入的feature map的差别很小,而添加了1*1卷积之后,输出的feature map和输入feature map的差距会增大,也就增添了新的语义信息。

从头训练检测模型还是从分类模型上微调:
在这里插入图片描述ResNet-50-dilated表示训练DetNet59-FPN的时候,前四个stage使用在ImageNet上预训练的ResNet50分类模型的参数,实验结果表明从头训练检测模型取得了更好的检测效果。

和其他SOTA的对比
在这里插入图片描述使用DetNet59为骨干网络,在计算量更小的情况下取得了更好的检测和实例分割效果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值