42

组合主干网络带来目标检测新SOTA?北大等提出CBNet

 5 years ago
source link: https://www.tuicool.com/articles/yQJFVjq
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

导语:费力构建更强大的新型主干网络还不如组合多个同样的主干网络?近日,来自北京大学王选计算机研究所和纽约州立大学石溪分校的研究者发表了一篇论文:集成多个相同的主干网络可以构建更加强大的新型主干网络,从而实现更好的检测性能。

在现有的 CNN 检测器中,主干网络是特征提取的重要组件,检测器的性能很大程度上依赖于主干网络。近日,来自北京大学王选计算机研究所和纽约州立大学石溪分校的研究者发表了一篇论文:基于现有主干网络(如 ResNet 和 ResNeXt)构建更加强大的新型主干网络,从而实现更好的检测性能。

具体而言,研究者提出一种集成多个同样主干网络的新策略,即通过邻近主干网络之间的组合连接(composite connection)构建一个更强大的主干网络——Composite Backbone Network (CBNet)。CBNet 按照阶段迭代地将前一个主干网络的不同输出特征(即高层抽象特征)输入到下一个主干网络的对应层级中,一直到最后一个主干网络(Lead Backbone),然后使用 Lead Backbone 的特征图进行目标检测。

研究表明,CBNet 可以轻松整合到当前最优的检测器,并大幅提升性能。例如,它将 FPN、Mask R-CNN 和 Cascade R-CNN 在 COCO 数据集上的 mAP 提升了 1.5%-3.0%。同时,实验结果证明,CBNet 还可以提升实例分割结果:简单地将 CBNet 集成到基线检测器 Cascade Mask R-CNN,即可实现单个模型在 COCO 数据集上的新 SOTA 结果(mAP 达到 53.3),这表明 CBNet 架构非常有效。

  • 代码参见:https://github.com/PKUbahuangliuhe/CBNet

目标检测任务中,主干网络扮演了什么角色?

目标检测是计算机视觉领域中最基本的问题之一,可用于大量应用领域,如自动驾驶、智能视频监控、遥感等。近年来,由于深度卷积网络的蓬勃发展,目标检测实现了巨大的进步,研究人员提出了多个强大的检测器,如 SSD、Faster R-CNN、Retinanet、FPN、Mask R-CNN、Cascade R-CNN 等。

典型的 CNN 目标检测器通常使用主干网络来提取基本特征,进而用于目标检测,而这些主干网络通常是为图像分类任务设计,并在 ImageNet 数据集上进行预训练。因此,如果主干网络能够提取更具表示性的特征,则检测器将获得更好的性能。也就是说,主干网络越强大,目标检测性能越好(如下表 1 所示)。因此,从 AlexNet 开始,当前最优的检测器纷纷使用深度更深、规模更大的主干网络,例如如 VGG、ResNet、DenseNet、ResNeXt 等。

然而,尽管基于更深更大主干网络的当前最优检测器能够获得不错的检测结果,但是它们在性能方面仍有很大的提升空间。此外,通过设计更强大的新型主干网络并在 ImageNet 数据集上进行预训练来获得更好的检测性能,这种做法成本高昂。而且,由于几乎所有现有主干网络最初的设计目标是图像分类任务,因此,直接利用它们提取目标检测基础特征可能导致次优性能。

63miqan.png!web

表 1: 当前最优检测器 Cascade Mask R-CNN 使用现有主干网络和 CBNet 时,在 COCO test-dev 数据集上的结果。 该表说明,深度更深、规模更大的主干网络可以带来更好的检测性能,而 CBNet 架构可以进一步强化现有强大目标检测主干网络的性能,如 ResNeXt152。

CBNet 是何方神圣?

为了解决上述问题,来自北大和纽约州立大学石溪分校的研究者提出了一种新方法:集成多个同样主干网络构建更强大的目标检测主干网络,如下图 1 所示。

集成后的主干网络被视为一个整体,叫做 Composite Backbone Network (CBNet)。具体而言,CBNet 包含多个同样的主干网络(最后一个主干网络叫做 Lead Backbone,之前的叫做 Assistant Backbone),以及邻近主干网络之间的组合连接。从左到右,Assistant Backbone 每一阶段的输出(即高级特征)作为输入的一部分,通过组合连接流向下一个主干网络的并行阶段。最后,末尾主干网络(即 Lead Backbone)的特征图被用于目标检测。

显然,CBNet 提取的目标检测特征融合了多个主干网络的高级和低级特征,从而提升检测性能。值得一提的是,CBNet 无需预训练。研究者仅需要使用单个主干网络的预训练模型对 CBNet 的集成主干网络进行初始化即可,而单个主干网络的预训练模型在今天已经是触手可得,比如 ResNet 和 ResNeXt。也就是说,相比设计一个更强大的新型主干网络并在 ImageNet 数据集上进行预训练,使用 CBNet 的成本更低,也更加高效。

Yn2qaiY.png!web

图 1: CBNet 架构图示。

研究者在 MS-COCO 基准上进行实验,将 CBNet 应用于多个当前最优目标检测器,如 FPN、Mask RCNN、Cascade R-CNN。实验结果表明,所有检测器的 mAP 都有 1.5%-3.0% 的增长,证明了 CBNet 的有效性。此外,CBNet 还提升了实例分割的结果:Triple-ResNeXt152(3 个 ResNeXt152 组成的 CBNet 架构)在 COCO 数据集上实现了最新 SOTA 结果(mAP 达到 53.3),优于之前的目标检测器。

该研究的主要贡献包括两部分:

  • 提出了一种构建更强大目标检测主干网络的新方法:集成多个同样的主干网络,从而显著提升不同当前最优检测器的性能。

  • 实现了单个模型在 MSCOCO 数据集上的最新 SOTA 结果——目标检测 mAP 达到 53.3。

CBNet 方法详解

CBNet 架构

CBNet 架构包括 K 个同样的主干网络(K ≥ 2)。研究者将 K = 2 的情况叫做 Dual-Backbone (DB),将 K=3 的情况叫做 Triple- Backbone (TB)。

如下图所示,CBNet 架构包括两种主干网络:Lead Backbone B_K 和 Assistant Backbone B_1, B_2, ..., B_K−1。每个主干网络包含 L 个阶段(通常 L = 5),每个阶段包含多个卷积层,其特征图的规模一致。主干网络的第 l 阶段实现非线性变换 F^l (·)。

U7BrieM.png!web

CBNet 架构图示。

其他组合形式

CBNet 有多种组合形式,如下图所示:

IriUfaz.png!web

图 3: Dual-Backbone 架构(一个 Assistant Backbone 和一个 Lead Backbone)的四种组合形式。

如上所示,a)邻近高级组合(Adjacent Higher-Level Composition,AHLC);b)同级组合(Same Level Composition,SLC);c)邻近低级组合(Adjacent Lower-Level Composition,ALLC);d)密集高级组合(Dense Higher-Level Composition,DHLC)。蓝色框中的组合连接表示一些简单运算,如元素级运算、缩放、1×1 卷积层和 bn 层。

实验

研究者在 MS-COCO 基准的边界框检测任务和实例分割任务上进行了实验,使用 trainval35k 数据集作为训练数据(trainval35k 数据集包括 train 的 80k 图像和 val 的 35k 子集)。研究者在 test-dev 数据集上报告 COCO AP 结果,以方便对比。

检测结果

uuiq6rY.png!web

表 2:在 MS-COCO test-dev 数据集上的检测结果。

上图显示了四种检测器的目标检测和实例分割结果,以展示 CBNet 的效果。Single:基线主干网络;DB:Dual-Backbone 架构;TB:Triple-Backbone 架构。第 5-7 列展示了目标检测的结果,第 8-10 列展示了实例分割的结果。

neuiyaJ.png!web

表 3: CBNet 方法和当前最优检测器在 COCO test-dev 数据集上的目标检测性能对比。 * 表示使用了多尺度测试。

不同组合形式的对比

yUn6NvM.png!web

表 4: 不同组合形式的对比,基线主干网络为 FPN ResNet101。

CBNet 的加速版

CBNet 的主要缺陷是:使用更多主干网络来提取特征导致计算复杂度增大,从而减缓了基线检测器的推断速度。如下表 6 所示,DB 将 FPN 的 AP 提升了 1.6%,但检测速度从 8.1 fps 降低到了 5.5 fps。

为了缓解该问题,研究者提出了 CBNet 的加速版,如下表 5 所示,加速版本移除了 Assistant Backbone 的两个早期阶段。加速版可以显著提升速度(从 5.5 fps 提升到 6.9 fps),同时对检测准确率没有大的损害(从 41.0 到 40.8)。

emYFVrM.png!web

图 5: CBNet 的加速版(K = 2)。

BrIfeuv.png!web

表 6: 原始 DB 和加速版的性能对比。DB:DualBackbone。Ψ:为加速所做的修改。

CBNet 在提取基础特征方面的效果

研究者认为 CBNet 性能优于单个目标检测主干网络的根本原因是:相比于后者,CBNet 提取出的基础特征更具表示性。为了验证此观点,研究者对 CBNet 和原始单个主干网络提取的特征图进行了可视化和对比。如下图 6 所示:

yuUj2yR.png!web

图 6: CBNet (Dual-ResNet101) 和原始主干网络 (ResNet101) 提取特征的视觉对比,基线检测器为 FPN-ResNet101。

对于每一个主干网络,上图根据前景物体的大小,对 Res2 和 Res5 进行可视化。我们可以看到 CBNet 的特征图更具表示性,它的前景物体激活值更大,背景的激活值更小。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK