CBNet: A Novel Composite Backbone Network Architecture for Object Detection 论文笔记

前言

目前大多数目标检测器的backbone通常是被设计用来进行图像分类的,在ImageNet上经过预训练之后,再经过微调以进行检测。那么问题就来了,直接采用这种backbone提取图像特征以进行目标检测真的能达到最优性能吗?但是如果设计一种新的backbone并在ImageNet上对其进行预训练,要达到优秀的检测性能所付出的代价又会是非常大的。因此本文提出了一种巧妙的思想,组合现有的backbone来构成一种新的专门用于目标检测的backbone。
CBNet: A Novel Composite Backbone Network Architecture for Object Detection 论文笔记
如上图所示,本文提出一种复合主干网络(Composite Backbone Network,CBNet),它通过对相邻backbone位于同一水平位置的stage进行复合连接,从而将多个相同的backbone组合起来。从图中可以看出,整个的信息流动是从左到右的,assistant backbone的输出(也叫做高级特征)通过复合连接流动到下一个backbone中,作为同一水平位置的stage的输入,最后一个backbone(lead backbone)的输出用作目标检测。

CBNet融合了不同backbone的高级和低级特征,因此提升了检测性能。注意到,CBNet不需要进行预训练,只需要使用现成的经过预训练的backbone模型(比如ResNet,ResNetXt),来初始化CBNet中的每个backbone。也就是说,采用CBNet比设计一个新模型更高效,并且花费更少。


方法实现

CBNet中共包含KK个backbone,当K=2K=2时,称为dual-backbone(DB),如下图所示;当K=3K=3时,称为triple-backbone(TB)
CBNet: A Novel Composite Backbone Network Architecture for Object Detection 论文笔记
CBNet主要包含两种类型的backbone:lead backbone BKB_K和assistant backbone B1,B2,...BK1B_1,B_2,...B_{K-1},每个backbone中都有LL个stage,每个stage都包含几个卷积层,并且特征图大小都是相同的。backbone的第ll个stage会进行一个非线性转换Fl()F^l(\cdot)

如上图所示,在CBNet中,将BkB_k中第l1l-1个stage的输出xkl1x^{l-1}_kBk1B_{k-1}中第ll个stage的输出xk1lx_{k-1}^l融合起来,作为BkB_k中第ll个stage的输入:
CBNet: A Novel Composite Backbone Network Architecture for Object Detection 论文笔记
其中g()g(\cdot)表示复合连接,它对xk1lx_{k-1}^l进行降维和上采样操作后,作为当前backbone第ll个stage的输入。由于这种复合方式是将相邻backbone的高层stage的输出送入下一个backbone,因此被称为相邻高层复合(Adjacent Higher-Level Composition ,AHLC)。除了这种复合方式,本文还提出另外三种复合方式,如下图所示
CBNet: A Novel Composite Backbone Network Architecture for Object Detection 论文笔记

  • 图(a)就是上面说的AHLC
  • 图(b)是同层复合(Same Level Composition,SLC),是将相邻backbone中同一stage的输出作为下一个backbone的输入,这里没有复合连接:
    CBNet: A Novel Composite Backbone Network Architecture for Object Detection 论文笔记
  • 图(c)是相邻低层复合(Adjacent Lower-Level Composition,ALLC),它与AHLC正好相反,它是将相邻backbone的低层stage的输出送入到下一个backbone:
    CBNet: A Novel Composite Backbone Network Architecture for Object Detection 论文笔记
  • 图(d)是密集高层复合(Dense Higher-Level Composition,DHLC),将相邻backbone中所有高层stage的输出作为下一个backbone的输入:
    CBNet: A Novel Composite Backbone Network Architecture for Object Detection 论文笔记

实验表明,AHLC的效果是最好的,它带来的性能提升是最明显的,如下表所示:
CBNet: A Novel Composite Backbone Network Architecture for Object Detection 论文笔记

关于backbone的数量,本文以FPN-ResNet作为baseline,实验结果如下图所示,可以看到,当backbone的数量增加时,detection mAP也在逐渐上升,但当backbone的数量达到3时,mAP开始收敛。因此,使用dual-backbone和triple-backbone的效果是最好的。
CBNet: A Novel Composite Backbone Network Architecture for Object Detection 论文笔记


结论

本文利用现有的backbone,通过对它们进行复合连接,构成了一个专门用于目标检测的backbone,性能与其它目前的backbone相比也确实得到了提升。