CBNetV2: A Composite Backbone Network Architecture for Object Detection论文阅读
paper:https://arxiv.org/pdf/2107.00420v2.pdf
code:https://github.com/VDIGPKU/CBNetV2
介绍
性能强大的检测器往往需要强大的backbone,而比较常见的增强backbone的方法就是将其变得更深、更宽,或者设计更强大的backbone,且需要在imagenet等数据集上预训练,会有昂贵的预训练成本;当然也可以不使用预训练权重,直接从头开始训练检测器,但这会需要更多的计算资源和训练技巧;
论文提出了一种有效率的方法来融合现有的pre-trained权重作为一个检测器的backbone,不像其他致力于精心制作模块并且需要在ImageNet上预训练来加强模型的表达能力,CBNetv2通过一种新的融合方法直接提升现有的pre-trained模型表达能力,不需要预训练;
如图1所示,并行的backbone(assisting backbone,lead backbone)通过“融合连接”连接到一起;assisting backbone的每个stages的输出流到其后续backbone的并行级stage和较低级别stage;
与简单的网络深化或扩宽不同,CBNetV2融合了多个骨干网络的高、低层特性,并逐渐扩展接收域,以更有效地进行目标检测。值得一提的是CBNetV2不需要为检测器预训练任何模型,只需要使用现有开源pretrained单个backbone的权重来初始化CBNetV2的每个组装backbone;
CBNetV2适用于one-stage, two-stage, anchor-based, anchor-free等检测方法,并且在Faster R-CNN, Mask R-CNN, Cascade R-CNN,Cascade Mask R-CNN,ATSS等方法上均有超过3%的精度提升;
并且CBNetV2方法比那些将网络加深,加宽带来的提升更多,且更有效率,例如Dual-ResNeXt50-32x4d比ResNeXt101-64x4d作为backbone带来了0.7%的AP提升,但只有其70%的参数;
Dual-Swin-T比 Swin-B有更少的参数和FLOPs,并有1.7%的AP提升;
HTC Dual-Swin-B在COCOtest-dev上实现了58.6%的box AP和51.1%的mask AP,在多尺度测试下实现了59.3%的box AP和51.8%的mask AP;
论文的主要贡献:
- 使用现有的pretrained模型权重建立了一个更强大的backbone CBNetV2,不需要额外预训练;
- CBNetV2使用更有效率和更友好的方式来融合较大的backbones,而不是简单的增加网络宽度、深度并在ImageNet上预训练;
- 大量在COCO基准上的实验验证了该方法的优势,HTC Dual-Swin-B模型在单模型单尺度上实现了新的记录,通过多尺度测试,在不使用额外数据实现了单模型的SOTA;
与Recurrent Convolution Neural Network(RCNN)在结构上有些相似,但实际上十分不同,如下图所示:
- CBNet是单向连接,RCNN是双向连接;
- RCNN中并行的stages在不同的时间步骤下是共享权重的,然而CBNet并行的stages是独立的,并且如果使用RCNN作为backbone,也需要在ImageNet上预训练;
方法
CBNetV2使用K(K ≥ 2)个相同的backbone融合,K=2时称之为Dual-Backbone (DB),k=3为 Triple-Backbone (TB);
在单个backbone下,每个stage的输入为上一个stage的输出:
xl为当前stage输出,Fl为当前stage操作,xl-1位上一个stage输出;
CBNetV2
CBNetV2采用assisting backbones B1,B2,BK-1来增强lead backboneBK的表达能力:
其中gl-q(
⋅
\cdot
⋅)表示融合连接,将来自 assisting backbones的输出作为输入,然后输出一个与xl-1k有相同shape的输出;
Bk−1的输入特征经过转换作为Bk每个stage的输入;
只有Lead backbone的输出会送给Neck和Head,assisting backbones的输出送给其随后的backbone;
融合方式
- Same Level Composition (SLC):融合相同stage的features,如图2a所示;
其中w表示1x1的卷积层和一个BN层; - Adjacent Higher-Level Composition (AHLC):CBNetV1的方式;
其中U(·)表示上采样操作,如图2b所示; - Adjacent Lower-Level Composition (ALLC):
其中D(·)表示下采样操作,如图2c所示; - Dense Higher-Level Composition (DHLC):
如图2d所示,当K=2时,融合assisting backbone所有高层stages的features然后加到lead backbone的较低级stage; - Full-connected Composition (FCC):
融合assisting backbones所有stages的features并喂给lead backbone的每个stage,如图2e所示,其中I(·)表示尺度resize, 当i > l时,I(·) = D(·);i < l时,I(·) = U(·);
对Assistant的监督
在CBNetV1中,虽然backbone是并行的,但后一个backbone(如图4.a中的主干)通过前一个backbone之间的相邻连接深化网络,为了更好的训练网络,作者提出通过使用辅助检测头的监督来生成assisting backbone的初始结果,以提供额外的正则化。
如图4b所示,detection head 1接收lead backbone的输出特征,通过正常的loss训练,detection head 2接收assisting backbone的输出特征,增加一个辅助loss辅助训练;head 1和head 2是共享权重的,将两部分loss结合:
LLead是lead backbone的损失,LAssist是assisting backbone的辅助损失,
λ
\lambda
λi是损失权重;
在前向推理的时候会舍弃辅助分支,仅使用lead backbone的输入特征;
CBNetV2整体结构如图1所示;
实验
与SOTA的比较
目标检测
实例分割
在主流backbone架构上的通用性
与更宽更深的网络比较
与可变形卷积的兼容
在主流检测器上的模型适用性
在Swin Transformer上的模型适用性
消融实验
不同的融合方式
考虑到精度与cost的综合,选择DHLC的方式作为CBNetV2的默认设置;
对assistant的监督实验
每个组件的重要性
backbones的数量
数量位3的时候开始达到瓶颈,所以作者建议使用2或者3,即Dual-Backbone和Triple-Backbone架构;
激活图可视化
使用Grad-CAM可视化;
相比于baseline,CBNetV2在stage5有更多的APs的激活;