CBNet( composition backbone network for object detection)论文详读

摘要

现有基于CNN的检测器中,骨干网络对特征的提取是非常重要的,且检测器的性能主要依赖骨干网络。本文提出一个更有效的骨干网络,尤其是提出一个新的策略——通过相邻骨干之间的组合连接来组合多个相同的骨干网络,以形成一个名为复合骨干网(CBNet)的更有效的骨干网络。CBNet把前面骨架网络输出的特征进行迭代,作为后续骨架网络输入的一部分,最后一个骨架网络输出的特征图(被称作Lead Backbone)被用于进行目标检测。实验表明CBNet可以与大多数的state-of-the art检测器进行结合,并提升他们的性能表现,在物体分割和目标检测都有着比较好的效果提升。

在这里插入图片描述

Introduce

通过现存的所有的检测方法可以看出,如果一个检测器的骨干网络可以提取更多有代表性的特征的话,基于该骨干网络的检测器也将具有刚好的性能和表现。但是为了实现更好的效果而设计一个新的、更有效的骨干网络,并将其在ImageNet上进行预训练是非常expensive的。除此之外,现存的骨干网络最初都是为图像分类而设计,直接使用他们进行检测可能会导致性能欠佳。

为解决上述问题,本文提出CBNet的方法来复合多个骨干网络,以生成一个更有效的检测骨干网络。从左到右,在辅助骨干网络中每一步的输出被称为high-level特征,流入后续并行的骨干网络,作为输入的一部分。最后一个骨干网络生成的特征图称为Lead Backbone,被用于进行目标检测。明显可以看出CBNet网络连接了多个骨干网络的high-level和low-level特征,从而可以增强检测的性能表现。

CBNet使用时不需要进行预训练,只需要初始化每个组成CBNet的骨干网络和骨干网络的预训练模型,如今这些都比较容易获得。

目标检测算法

现存的目标检测算法可以简单的分为两种,一种是单步方法,如YOLO、SSD、FSAF、NAS-FPN等,另一类是两步方法,如Faster RCNN、FPN、Mask RCNN、Cascade RCNN、Libra RCNN等,虽然现存的算法已经在很多方面取得了很多的进步,但是仍有很大的进步空间,比如在MS COCO benchmark上只取得了52.5的mAP。

目标检测算法的骨干网络

自从RCNN等被应用与目标检测,近些年的检测器都是使用预训练(pretraining)和微调(fine-tuning)的方法进行改进,但是这些骨干网络(VGG、ResNet、ResNeXt等)最初都是为了对ImageNet的数据进行分类而设计的,所以直接使用有可能会导致性能不佳。2018年提出了两个转为检测设计的复杂骨干网络DetNet和FishNet,但它们仍然需要在ImageNet上进行预训练和微调。因为一个新的网络想要使用需要耗费非常多的人力和计算来,本文提出了一种经济有效的方法——通过把现有的骨干网络进行结合以达到相同的效果。

RCNN

在这里插入图片描述

左侧为CBNet骨干网络,右侧为展开的RCNN

可能看起来CBNet和RCNN差不多,但是它们有着本质的区别,第一,它们在相邻步骤之间的连接方式不同;第二,RCNN相邻步骤之间共享参数,而CBNet不共享参数;第三,如果把RCNN作为检测器的骨干网络,那么需要在ImageNet中进行预训练,而CBNet不需要预训练。

CBNet的结构

CBNet由K(K>=2)个独立的骨干网络构成,把K=2时的CBNet称为Dual-Backbone(DB),K=3时称为Triple-Backbone(TB)

扫描二维码关注公众号,回复: 12909925 查看本文章

在这里插入图片描述

如上图所示,CBNet主要由两种骨干网络组成,一种是Assistance Backbone(B1,B2…Bk-1),一种是Lead Backbone(Bk),每一个骨干网络具有L步(一般L=5),每一步由几个卷积层和尺寸相同的特征图组成。第L步实现一个非线性的转变FL

传统的卷积网络一般只有一个骨干,第L步把前L-1步的输出作为输入,可以表达为:

在这里插入图片描述

CBNet使用Assistant Backbone来增强Lead Backbone的特征(迭代K-1个Assistant Backbone的输出结果来作为Lead Backbone输入的一部分)。Lead Backbone第L步的输入融入了Lead Backbone前L-1的输出结果(XL-1K)和相邻的Assistant Backbone(BK-1)的输出结果(XLK-1):

在这里插入图片描述

其中g(·)表示复合连接——由1×1的卷积层和批量正则化层组成,用于减少通道数和上采样操作,该方法被称为Adjacent Higher-Level Composition(AHLC)

对于检测任务来说,只有Lead Backbone的L个输出可以用作RPN或detection head的输入。Assistant Backbone的每一步输出则作为输入传导到临近的骨干网络中。

其他的组合方式

  1. Same Level Composition(SLC):一个简单直接的组合方式就是把不同骨干网络同一步骤的输出特征图进行组合;
    在这里插入图片描述

  2. Adjacent Lower-level Composition(ALLS):与AHLC方法相反,把相邻的低层次步骤的输出作为后续骨干网络的输入(如下Bk的输入为Bk第l-1步的输出加上相邻骨干网络Bk-1的复合输出):
    在这里插入图片描述

  3. Dense Higher-Level Composition(DHLC):DenseNet网络中每一层与后续的网络都会建立链接,以便在某一部建立密集的链接。根据该方法,本文在CBNet结构中使用了密集组合连接:
    在这里插入图片描述

在这里插入图片描述

(a)为AHLC                                            (b)为SLC                        (c)为ALLC                                (d)为DHLC

几种方法的结果对比:在这里插入图片描述

其中,第一行的baseline是FPN ResNet101的结果,DB是Dual-Backbone,ADLC是Adjacent Dense Level Composition。

其他方面的测试

  1. 经过测试,可以看出挡在不同的骨干网络之间分享权重,不会增加检测的准确率(使用Dual-ResNet101进行测试,APbox是在COCO test-dev数据集的测试结果,mb是模型大小):
    在这里插入图片描述

  2. 随着复合的骨干网络数量的增加(数量超过3个),CBNet的性能也趋于平缓,综合考虑速度和内存因素,推荐使用DB或TB进行目标检测。
    在这里插入图片描述

其中基础的骨干网络为FPN ResNet101。
3. 由下图可以看出FPN网络和ResNet101复合的骨干网络比baseline的mAP提高了一点点,但是速度却由8.1下降到了5.5。
在这里插入图片描述

为了加快CBNet的速度,把Assistant Backbone的前两步移除,由此加快了CBNet的速度,检测效果也没有受到太大的影响。

在这里插入图片描述

  1. 根据分析,CBNet方法可以比单骨干网络的方法获取更多有代表性的特征,下图可以看出CBNet方法可以对前景特征进行增强,而对背景进行弱化。
    在这里插入图片描述

Conclusion

CBNet是一个复合链接多个骨干网络的方法,与单骨干网络的方法相比可以获取更多有代表性的特征,从而弥补了为图像检测而设计的方法移植到视频检测所产生的缺陷,对现有的FPN、Mask RCNN、Cascade RCNN等方法一般会增强其1.5%—3%的mAP表现。

猜你喜欢

转载自blog.csdn.net/weixin_41963310/article/details/111628444