CBNet: A Novel Composite Backbone Network Architecture for Object Detection 论文笔记
前言
目前大多数目标检测器的backbone通常是被设计用来进行图像分类的,在ImageNet上经过预训练之后,再经过微调以进行检测。那么问题就来了,直接采用这种backbone提取图像特征以进行目标检测真的能达到最优性能吗?但是如果设计一种新的backbone并在ImageNet上对其进行预训练,要达到优秀的检测性能所付出的代价又会是非常大的。因此本文提出了一种巧妙的思想,组合现有的backbone来构成一种新的专门用于目标检测的backbone。
如上图所示,本文提出一种复合主干网络(Composite Backbone Network,CBNet),它通过对相邻backbone位于同一水平位置的stage进行复合连接,从而将多个相同的backbone组合起来。从图中可以看出,整个的信息流动是从左到右的,assistant backbone的输出(也叫做高级特征)通过复合连接流动到下一个backbone中,作为同一水平位置的stage的输入,最后一个backbone(lead backbone)的输出用作目标检测。
CBNet融合了不同backbone的高级和低级特征,因此提升了检测性能。注意到,CBNet不需要进行预训练,只需要使用现成的经过预训练的backbone模型(比如ResNet,ResNetXt),来初始化CBNet中的每个backbone。也就是说,采用CBNet比设计一个新模型更高效,并且花费更少。
方法实现
CBNet中共包含个backbone,当时,称为dual-backbone(DB),如下图所示;当时,称为triple-backbone(TB)
CBNet主要包含两种类型的backbone:lead backbone 和assistant backbone ,每个backbone中都有个stage,每个stage都包含几个卷积层,并且特征图大小都是相同的。backbone的第个stage会进行一个非线性转换。
如上图所示,在CBNet中,将中第个stage的输出和中第个stage的输出融合起来,作为中第个stage的输入:
其中表示复合连接,它对进行降维和上采样操作后,作为当前backbone第个stage的输入。由于这种复合方式是将相邻backbone的高层stage的输出送入下一个backbone,因此被称为相邻高层复合(Adjacent Higher-Level Composition ,AHLC)。除了这种复合方式,本文还提出另外三种复合方式,如下图所示
- 图(a)就是上面说的AHLC;
- 图(b)是同层复合(Same Level Composition,SLC),是将相邻backbone中同一stage的输出作为下一个backbone的输入,这里没有复合连接:
- 图(c)是相邻低层复合(Adjacent Lower-Level Composition,ALLC),它与AHLC正好相反,它是将相邻backbone的低层stage的输出送入到下一个backbone:
- 图(d)是密集高层复合(Dense Higher-Level Composition,DHLC),将相邻backbone中所有高层stage的输出作为下一个backbone的输入:
实验表明,AHLC的效果是最好的,它带来的性能提升是最明显的,如下表所示:
关于backbone的数量,本文以FPN-ResNet作为baseline,实验结果如下图所示,可以看到,当backbone的数量增加时,detection mAP也在逐渐上升,但当backbone的数量达到3时,mAP开始收敛。因此,使用dual-backbone和triple-backbone的效果是最好的。
结论
本文利用现有的backbone,通过对它们进行复合连接,构成了一个专门用于目标检测的backbone,性能与其它目前的backbone相比也确实得到了提升。