全球计算机视觉三大顶会之一 ECCV 2018 (European Conference on Computer Vision)即将于9月8 -14日在德国慕尼黑拉开帷幕。届时,旷视首席科学家孙剑博士将带领团队远赴盛会,助力计算机视觉技术的交流与落地。而在此之前,旷视将陆续推出 ECCV 2018 接受论文系列解读。本文是第 1 篇解读,一个专门为物体检测任务而设计的 Backbone——DetNet。
论文名称:DetNet: A Backbone network for Object Detection
论文链接:https://arxiv.org/abs/1804.06215
导语
人工智能的爆发与深度学习的发轫来自于计算机视觉领域,是从机器之眼开始,正如五亿四千万年之前,寒武纪生物大爆发的一个主要原因是眼睛的出现。能看的机器之眼,是计算机视觉技术与应用的共同目标,只不过技术是第一步。本文创新性地提出 DetNet——一个专为物体检测而设计的骨干网络,从底层技术的维度更新了计算机视觉网络,将会进一步推动其相关应用落地,优化产品服务。DetNet 将会更快更准地检测和分割一张给定图像之中的物体,完善在智慧城市、新零售、仓储物流、消费终端等诸多领域的技术应用。
背景
物体检测是计算机视觉研究领域的三大基础课题之一,旨在检测一张给定图像中每个物体的位置和分类。传统检测器借助手工设计的物体组件描述子,比如 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 被应用在这些网络之中以保证空间分辨率。但是依然存在如下三个问题:
lbackbone 网络和检测网络的 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 上的物体检测和实例分割任务中展现了出色的结果。
参考文献
1.Lin, T.Y., Doll´ar, P., Girshick, R., He, K., Hariharan, B., Belongie, S.: Feature pyramid networks for object detection
2.He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition.
3.Girshick, R., Radosavovic, I., Gkioxari, G., Doll´ar, P., He, K.: Detectron. https: //github.com/facebookresearch/detectron (2018)
4.He, K., Gkioxari, G., Doll´ar, P., Girshick, R.: Mask r-cnn.
5.Lin, T.Y., Maire, M., Belongie, S., Hays, J., Perona, P., Ramanan, D., Doll´ar, P., Zitnick, C.L.: Microsoft coco: Common objects in context.
2.旷视科技目标检测概述:Beyond RetinaNet and Mask R-CNN.