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

论文的主要贡献:

  1. 使用现有的pretrained模型权重建立了一个更强大的backbone CBNetV2,不需要额外预训练;
  2. CBNetV2使用更有效率和更友好的方式来融合较大的backbones,而不是简单的增加网络宽度、深度并在ImageNet上预训练;
  3. 大量在COCO基准上的实验验证了该方法的优势,HTC Dual-Swin-B模型在单模型单尺度上实现了新的记录,通过多尺度测试,在不使用额外数据实现了单模型的SOTA;

与Recurrent Convolution Neural Network(RCNN)在结构上有些相似,但实际上十分不同,如下图所示:

  1. CBNet是单向连接,RCNN是双向连接;
  2. 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;

融合方式

在这里插入图片描述

  1. Same Level Composition (SLC):融合相同stage的features,如图2a所示;
    在这里插入图片描述
    其中w表示1x1的卷积层和一个BN层;
  2. Adjacent Higher-Level Composition (AHLC):CBNetV1的方式;
    在这里插入图片描述
    其中U(·)表示上采样操作,如图2b所示;
  3. Adjacent Lower-Level Composition (ALLC):
    在这里插入图片描述
    其中D(·)表示下采样操作,如图2c所示;
  4. Dense Higher-Level Composition (DHLC):
    在这里插入图片描述
    如图2d所示,当K=2时,融合assisting backbone所有高层stages的features然后加到lead backbone的较低级stage;
  5. 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的激活;
在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值