【目标检测】DetNet: A Backbone network for Object

DetNet:一个为物体检测而生的Backbone

论文:DetNet: A Backbone network for Object 

链接:https://arxiv.org/abs/1804.06215

原文:https://www.sohu.com/a/241101484_418390

背景

      物体检测是计算机视觉研究领域的三大基础课题之一,旨在检测一张给定图像中每个物体的位置和分类。传统检测器借助手工设计的物体组件描述子,比如 HOG,SIFT,Edge Box 等,以从图像提取特征。长久以来,DPM 及其变体成为了传统物体检测领域的主导方法;直到深度神经网络再次崛起,基于 CNN 的方法取得瞩目成果,掀起一股物体检测新风潮。

    随着时间推移,基于 CNN 的物体检测器也开始暴漏出一些弊端,其 backbone 往往针对 ImageNet 分类任务而设计,并不适用于检测任务,不管是 one-stage(比如 YOLO,SSD,RetinaNet)还是 two-stage(比如 Faster R-CNN,RFCN,FPN)的。针对检测任务而设计的 backbone 仍是一项空白,所以才有了 DetNet,一个针对物体检测的更优的 backbone。

设计思想

    设计 DetNet 的起因是图像分类与物体检测任务之间存在的落差,后者不仅要识别物体的分类,还需借助边界框定位物体。具体而言,把分类 backbone 用于物体检测存在两个问题:1)相较于 ImageNet backbone,最新的检测器比如 FPN 通常有额外的 stage;2)传统的 backbone 感受野通常较大,这有利于图像分类,却会折中空间分辨率,导致无法精确定位大物体和识别小物体。

    DetNet 是一个针对上述问题而设计的全新 backbone。详细讲,DetNet 针对不同大小的物体而像 FPN 一样使用了更多的 stage。即便如此,它优于 ImageNet 预训练模型的地方在于成功保留了特征的空间分辨率,但同时也会增加神经网络的计算和内存成本。为保证 DetNet 的效率,本文引入了低复杂度的 dilated bottleneck。由此,DetNet 做到了较高分辨率和较大感受野的兼得。

网络架构

动机

     由于分类模型的设计原则并不适用于检测任务,从而在一些标准网络比如 VGG 16 和 ResNet 中特征图的空间分辨率逐渐降低。因此一些技术如 FPN(如图 1 A 所示)和 dilation 被应用在这些网络之中以保证空间分辨率。但是依然存在如下三个问题:

  • backbone 网络和检测网络的 stage 数量不同。
  • 大物体可视性较差:过大的下采样导致大物体看不清边界地区。
  • 小物体不可见:同样过大的下采样也可能会丢失小物体的信息。

图 1:FPN 中使用的不同 backbone。

    为解决上述问题,DetNet 具有以下特性:1)stage 的数量直接专为物体检测而设计;2)尽管相比传统分类网络,DetNet 有更多 stage(比如 6 stages 或者 7 stages),但是同时兼具空间分辨率和感受野。

    相较于把传统分类网络用于物体检测而言,DetNet 有以下优势:1)DetNet stage 的数量与 FPN 相同,因此额外的 stage 比如 P6 可在 ImageNet 中完成预训练;2)受益于最后 stage 中的高分辨率特征图,DetNet 在定位大物体边界框和发现小物体方面更为强大。

设计

    本节将详细展示 DetNet 结构。DetNet 基线为 ResNet-50,它被广泛用于众多物体检测器的 backbone。为了公平对比 ResNet-50,本文让 DetNet stage 1,2,3,4 与 ResNet-50 相同。

    打造一个有效而高效的物体检测 backbone 面临两个挑战:一方面,保证深度神经网络的空间分辨率非常消耗时间和内存;另一方面,减少下采样等于减小有效感受野,这将会影响很多视觉任务,包括图像分类和语义分割在内。

图 2: DetNet 及基于 DetNet 的特征金字塔网络(FPN)的结构细节。

     通过精心设计的 DetNet 可攻克这两项挑战。具体而言,DetNet stage 1,2,3,4 与 ResNet 设置相同;不同的是 stage 5,以及用于图像分类的 DetNet 的概览,如图 2 D 所示。下面探讨一下(扩展了 ResNet-50 的)DetNet-59 的细节:

  • 本文在 backbone 中引入额外的 stage,比如 P6,它稍后用于物体检测,正如在 FPN 中一样。同时,在 stage 4 之后把空间分辨率固定为 16x 下采样。
  • 由于空间尺寸在 stage 4 之后是固定的,为引入一个新 stage,本文在每个 stage 开始使用一个带有 1x1 卷积投影(图 2 B)的 dilated bottleneck。
  • 借助 dilated bottleneck 作为基础模块以加大感受野。由于 dilated conv 依然耗时,DetNet stage 5,6 与 stage 4 通道数量相同(bottleneck 有 256 个输入通道),这不同于传统的 backbone 设计,其在新的 stage 需要双倍的通道。

实验结果

主要结果

     本文首先在 ImageNet 分类任务中训练 DetNet-59,结果如表 1 所示,在计算量为 4.8 G FLOPS 的情况下,DetNet-59 top-1 error 为 23.5,性能显著优于 ResNet-50(mAP 涨点 2+)。

表 1:FPN 中使用不同 backbone 的结果。

    由于 DetNet-59 相比 ResNet-50 有更多参数,一个自然的假设是提升主要来自参数的增多。为验证 DetNet-59 的有效性,本文在计算量为 7.6 G FLOPS 的情况下也训练了一个 backbone 为 ResNet-101 的 FPN,结果 mAP 为 39.8。可见 DetNet 在这方面要优于 ResNet。

    由于 DetNet 直接专为物体检测而设计,为进一步验证其优势,本文分别从头训练了 DetNet-59/ResNet-50-baesd FPN。结果如表 2 所示。为了从头开始,本文在训练期间使用了跨卡同步批归一化。由结果可知,DetNet-59 依然优于 ResNet-50 1.8 个点,从而进一步证明 DetNet 更适用于物体检测。

表 2:不同 backbone 的 FPN 结果,训练从头开始。

结果分析

本节将分析 DetNet 是如何提升物体检测性能的。

表 3:在不同 IoU 阈值和不同边界框大小的情况下,FPN AP 结果的对比。

表 4:在不同 IoU 阈值和不同边界框大小的情况下,FPN AR 结果的对比。

    相较于 ResNet-50,DetNet-59 在发现小物体方面更为强大,AR_50 涨点达到 6.4(66.4 vs 60.0);DetNet 在较深的 stage 比 ResNet 保有更高的分辨率,从而可以检测更小的物体。由于在图 1 A 中使用上采样,浅层也可以获取语义线索以发现小物体。但是 AR_85 @small 涨点并不明显(18.7 vs 19.6)。这是合理的,DetNet 无益于小物体定位,因为 ResNet-based FPN 已经使用大特征图检测小物体。

DetNet 擅长大物体定位,其 AR_85 为 56.3(vs 50.2)。但是 AR_50 并没有变化太多(95.4 vs 95.0)。一般来讲,DetNet 更擅长定位大物体而不是查漏大物体。

对比当前最优

   本文在 COCO test-dev 上评估 DetNet-59-based FPN,并对比表其他当前最优的方法(见表 7)。没有任何花哨的东西,DetNet 作为简单而高效的 backbone 在 COCO 物体检测上获得了新的当前最优,甚至超过强劲的对手 ResNet-101。

表 7:在 COCO test-dev 上,本文方法与其他当前最优方法在物体检测结果方面的对比。

为验证 DetNet 泛化能力,本文方法也用于了基于 Mask R-CNN 的 COCO 实例分割任务中。结果如表 8 所示。由于 DetNet-59 的优异性能,本文在实例分割方面同样刷新了当前最优结果。

表 8:在 COCO test-dev 上,本文方法与其他当前最优方法在实例分割结果方面的对比。

一些可视化结果如图 4、5 所示。本文只展示了分类分值不低于 0.5 的边界框和实例分割。

图 4:DetNet-59 based FPN 结果图示。

图 5:DetNet-59 based Mask R-CNN 结果图示。

结论

    本文专门针对物体检测任务设计了一个全新的 backbone——DetNet。一般来讲,backbone 多是针对图像分类任务而设计,当迁移至物体检测任务时,两者之间往往存在一定差异。为此,本文提出 DetNet,它不仅针对分类任务做了优化,对定位也很友好,并在 COCO 上的物体检测和实例分割任务中展现了出色的结果。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值