目标检测论文阅读:CBNet算法笔记

news2024/9/29 9:36:25

标题:CBNet: A Composite Backbone Network Architecture for Object Detection
期刊:TIP2022
论文地址:https://ieeexplore.ieee.org/document/9932281/
官方代码:https://github.com/VDIGPKU/CBNetV2
作者单位:北京大学、阿里巴巴蚂蚁集团、石溪大学

文章目录

  • Abstract
  • I. Introduction
  • II. Related Work
    • A. Object Detection
    • B. Backbones for Object Detection
    • C. Recurrent Convolution Neural Network
    • D. Model Ensemble
    • E. Our Approach
  • III. Proposed Method
    • A. Architecture of CBNet
    • B. Possible Composite Strategies
    • C. Auxiliary Supervision
    • D. Pruning Strategy for CBNet
    • E. Architecture of Detection Network With CBNet
  • IV. Experiments
    • A. Implementation Details
    • B. Comparison With State-of-the-Art
    • C. Generalization Capability of CBNet
    • D. Comparison With Relevant Works
    • E. Compatibility of CBNet
    • F. Ablation Studies
  • V. Conclusion

Abstract

现代顶级的目标检测器严重依赖于主干网络,通过探索更有效的网络结构,主干网络的进步带来了一致的性能增益。本文我们提出了一种新颖且灵活的主干框架,即CBNet,在预训练微调(pre-training fine-tuning)范式下利用现有的开源预训练主干来构建高性能检测器。特别地,CBNet结构组合了多个相同的主干,通过复合连接(composite connection)进行连接。具体来说,它融合了多个相同主干网络的高层和低层特征,并逐步扩大感受野,以更有效地进行目标检测。我们还针对CBNet-based检测器提出了一种更好的具有辅助监督(auxiliary supervision)的训练策略。CBNet对于不同主干和头部设计的检测器结构有着强大的泛化能力。CBNet无需对复合主干进行额外的预训练,可以适应各种主干(即CNN-based vs. Transformer-based)和大多数主流检测器的头部设计(即单阶段 vs. 两阶段,anchor-based vs. anchor-free-based)。实验提供了有力的证据表明,与简单地增加网络的深度和宽度相比,CBNet引入了更高效、有效和资源友好的方式来构建高性能的主干网络。尤其我们的CB-Swin-L在单模型、单尺度测试协议下的COCO test-dev上达到了59.4% box AP和51.6% mask AP,显著优于Swin-L取得的SOTA结果(即57.7% box AP和50.2% mask AP),同时减少了6×的训练时间。通过多尺度测试,在不使用额外训练数据的情况下,我们将当前最好的单模型结果推动至60.1% box AP和52.3% mask AP的新记录。

I. Introduction

目标检测旨在从任意图像预定义的类别集合中定位每个目标实例。它在自动驾驶、智能视频监控、遥感等领域有着广泛的应用。近年来,随着深度卷积网络的蓬勃发展,目标检测取得了很大的进展,很多优秀的检测器被提出,如SSD、YOLO、Faster R-CNN、RetinaNet、ATSS、Mask R-CNN、Cascade R-CNN等。
通常,在基于神经网络(Neural Network,NN)的检测器中,主干网络用于提取检测目标的基本特征,并且在大多数情况下是为图像分类而设计的,在ImageNet上预训练。直观上,主干提取的特征越具有代表性,其宿主检测器的性能越好。为了获得更高的精度,主流检测器采用了更深更宽的主干(即从mobile-size模型 和ResNet到ResNeXt和Res2Net)。最近,基于Transformer的主干表现出了非常有前景的性能。总的来说,在目标检测中,大型主干预训练的进展显示了更有效的多尺度表示的趋势。
受预训练的基于大型主干的检测器取得成果的激励,我们寻求进一步的改进,利用现有设计良好的主干结构及其预训练权重来构建高性能检测器。尽管可以设计一个新的改进的主干,但是专家知识和计算资源开销可能是昂贵的。一方面,设计新的主干结构需要专家经验和大量试错。另一方面,在ImageNet上预训练一个新的主干(特别是对于大型模型)需要大量的计算资源,这使得遵循预训练和微调范式来获得更好的检测性能需要付出高昂的代价。或者,从头开始训练检测器可以节省预训练的成本,但需要更多的计算资源和训练技巧。
在本文中,我们提出了一种在预训练微调范式下使用现有预训练主干的简单且新颖的组合方法。不同于以往大多数方法侧重于模块化精心制作,需要在ImageNet上进行预训练来增强表示,我们改进了现有的主干表示能力,无需额外的预训练。如图1所示,我们的解决方案称为复合主干网络(Composite Backbone Network,CBNet),将多个相同的主干网络组合在一起。具体来说,并行的主干(命名为协助主干(assisting backbone)和领导主干(lead backbone))通过复合连接进行连接。在图1中,从左到右,协助主干每个阶段的输出流向其后继兄弟节点的并行且更低层的阶段。最后,将领导主干的特征馈送给颈部和检测头进行边界框回归和分类。与简单网络的加深或加宽相反,CBNet融合了多个主干网络的高层和低层特征,并逐步扩大感受野,以实现更有效的目标检测。值得注意的是,CBNet每个组成的主干都是由现有开源预训练的单个主干的权重初始化的(例如,CB-ResNet50网络由ResNet50网络的权重初始化,在开源社区中可以获得)。此外,为了进一步挖掘CBNet的潜力,我们为协助主干提出了一种有效的监督训练策略,在不牺牲推理速度的情况下实现了更高的检测精度。尤其我们提出了一种剪枝策略,在不牺牲准确率的同时降低了模型复杂度。
在这里插入图片描述
我们提出了两个版本的CBNet。第一个称为CBNetV1,它只连接并行主干的相邻阶段,提供了复合主干一种易于遵循的简单实现。另一个是CBNetV2,结合了稠密高层组合策略、辅助监督和一个特殊的剪枝策略,充分挖掘了CBNet在目标检测方面的潜力。我们通过实验证明了CBNetV2相对于CBNetV1的优越性。
我们通过在具有挑战性的MS COCO基准测试集上进行实验来证明我们框架的有效性。实验表明,CBNet对不同主干和头部设计的检测器结构具有很强的泛化能力,这使得我们能够训练出明显优于基于较大主干的检测器的检测器。具体来说,CBNet可以应用于各种主干网络,从基于卷积的到基于Transformer的。与原始主干相比,CBNet将其性能提升了3.4%-3.5% AP,证明了所提CBNet的有效性。在模型复杂度相当的情况下,我们的CBNet仍然提高了1.1%-2.1% AP,表明复合的主干比预训练更宽和更深的网络更有效。并且,CBNet可以灵活地插入到主流检测器(例如RetinaNet、ATSS、Faster R-CNN、Mask R-CNN、Cascade R-CNN和Cascade Mask R-CNN 等)中,以3%-3.8% AP一致地提升这些检测器的性能,表明其对不同头部设计的检测器具有很强的适应性。此外,CBNet与特征增强网络和模型集成方法兼容。值得注意的是,它提出了一个通用的资源友好性框架来驱动高性能检测器的精度上限。在不加修饰情况下,我们的CB-Swin-L在COCO test-dev上实现了59.4% box AP和51.6% mask AP的单模型单尺度结果,超过了SOTA的结果(即Swin-L取得的57.7% box AP和50.2% mask AP),同时减少了6×的训练计划。通过多尺度测试,我们将当前最好的单模型结果推动至60.1% box AP和52.3% mask AP的新纪录。
本文的主要贡献如下:

  • 我们提出了一个通用、高效、有效的框架CBNet(Composite Backbone Network),来构建高性能的目标检测主干网络,无需额外的预训练。
  • 在预训练微调范式下,我们提出了稠密高层组合(Dense High-Level Composition,DHLC)策略、辅助监督和一个剪枝策略来高效利用现有的预训练权重进行目标检测。
  • 我们的CB-Swin-L在COCO上以比Swin-L更短(6×)的训练时间取得了单模型单尺度结果的新记录。通过多尺度测试,我们的方法在没有额外训练数据的情况下获得了最好的结果。

II. Related Work

A. Object Detection

回顾了主流的目标检测器。首先介绍了主流范式的构成:主干、颈部和头部。然后提及了一些单阶段、两阶段、center-based anchor-free、keypoint-based anchor-free以及Transformer-based检测器。最后回顾了几个在检测器中应用NAS的方法。

B. Backbones for Object Detection

回顾了目标检测中一些经典的主干。众所周知,设计和预训练一个新的鲁棒的主干需要相当数量的计算成本。或者,我们提出了一种更经济、更高效的解决方案,通过组合多个相同的现有主干(如ResNet、ResNeXt、Res2Net、HRNet、Swin Transformer等)来构建更强大的目标检测主干。

C. Recurrent Convolution Neural Network

不同于CNN的前馈(feed-forward)结构,循环卷积神经网络(Recurrent CNN,RCNN)在每个卷积层中融入循环连接,以增强模型的上下文信息整合能力。如图3所示,我们提出的复合主干网络与展开的RCNN有一些相似之处,但它们有很大的不同。首先,CBNet中并行阶段之间的连接是单向的,而RCNN中并行阶段之间的连接是双向的。其次,在RCNN中,并行阶段在不同的时间步长(time steps)共享参数权重,而在所提出的CBNet中,主干的并行阶段是相互独立的。此外,如果将RCNN作为检测器的主干,需要在ImageNet上对其预训练。相比之下,CBNet不需要额外的预训练,因为它直接使用已有的预训练权重。
在这里插入图片描述

D. Model Ensemble

众所周知,许多不同预测器的组合可以导致更准确的预测,例如,集成方法被认为是许多机器学习挑战的SOTA解决方案。模型集成通过训练多个不同的模型,并通过后处理将它们的预测结果进行组合,从而提高单个模型的预测性能。
模型集成有两个关键的特点:模型多样性(model diversity)和投票(voting)。模型多样性是指具有不同结构或训练技术的模型被单独训练,其对于模型集成的重要性得到了很好的建立。大多数集成方法需要投票策略来比较不同模型的输出,并对最终的预测进行优化。就以上两个特点而言,我们的CBNet与模型集成有很大的不同。事实上,CBNet得益于相同主干的组合,通过联合训练以循环式的特征增强。此外,领导主干的输出直接用于最终的预测,而不需要与其它主干进行集成。
在实际中,MS COCO或OpenImage等挑战性目标检测基准的主要方法都是基于模型集成的使用。例如,Liu等人分别训练了28个不同结构、头部、数据划分、类别采样策略、增强策略和监督的模型,并通过集成的方法对这些检测器的输出进行聚合。Mao等人提出了概率排序感知集成(Probabilistic Ranking Aware Ensemble,PRAE),细化了来自不同检测器的边界框的置信度。我们的CBNet与其它传统的主干一样,与这些模型集合方法兼容。

E. Our Approach

我们的网络并行地组合多个相同的主干。它融合了多个相同主干的高层和低层特征,并逐步扩大感受野以更有效地进行目标检测。本文是我们之前的会议论文CBNetV1一个非常重要的扩展,CBNetV2的结果是在最近开发的SOTA目标检测框架下得到的。与CBNetV1相比,主要的技术创新在于三个方面。①我们对CBNetV1进行了扩展,并进行了3个修改:一个专门的训练方法、一个更好的复合策略和一个剪枝策略,分别优化了训练过程、更有效地增强了特征表示和降低了CBNetV2的模型复杂度。②我们展示了CBNetV2对于各种主干和头部设计的检测器结构的强大泛化能力。③我们展示了CBNetV2相对于CBNetV1的优越性,并展现了CBNetV2在目标检测中的SOTA结果。

III. Proposed Method

A. Architecture of CBNet

提出的CBNet由 K K K个相同的主干( K ≥ 2 K≥2 K2)组成。特别地,我们将 K = n K=n K=n的情况称为CB-Backbone-K n n n,其中当 K = 2 K=2 K=2时,“-K n n n”被省略。
如图1所示,CBNet结构包括两种类型的主干:领导主干 B K B_K BK和协助主干 B 1 , B 2 , . . . , B K − 1 B_1,B_2,...,B_{K-1} B1,B2,...,BK1。每个主干包含 L L L个阶段( L = 5 L=5 L=5),每个阶段由若干个具有相同尺寸特征图的卷积层组成。主干的第 l l l个阶段执行非线性变换 F L ( ⋅ ) ( L = 1 , 2 , . . . , L ) F^L(·)(L=1,2,...,L) FL()(L=1,2,...,L)
大多数传统的卷积网络遵循将输入图像编码成具有单调递减分辨率的中间特征的设计。特别地,第 l l l个阶段将先前第 l − 1 l-1 l1个阶段的输出(记为 x l − 1 x^{l-1} xl1)作为输入,可以表示为:
x l = F l ( x l − 1 ) ,    l ≥ 2 (1) x^l=F^l(x^{l-1}),~~l≥2\tag{1} xl=Fl(xl1),  l2(1)不同的是,我们采用协助主干 B 1 , B 2 , . . . , B K − 1 B_1,B_2,...,B_{K-1} B1,B2,...,BK1来提高领导主干 B K B_K BK的表示能力。我们以逐阶段(stage-by-stage)的方式将一个主干的特征迭代到其继承者。因此,公式1可以改写为:
x l = F k l ( x k l − 1 + g l − 1 ( x k − 1 ) ) ,    l ≥ 2 , k = 2 , 3 , . . . , K (2) x^l=F_k^l(x_k^{l-1}+g^{l-1}(\boldsymbol{x_{k-1}})),~~l≥2,k=2,3,...,K\tag{2} xl=Fkl(xkl1+gl1(xk1)),  l2,k=2,3,...,K(2)其中, g l − 1 ( ⋅ ) g^{l-1}(·) gl1()表示复合连接,它将来自协助主干 B k − 1 B_{k-1} Bk1的特征(记为 x k − 1 = { x k − 1 i ∣ i = 1 , 2 , . . . , L } \boldsymbol{x_{k-1}}=\{x_{k-1}^i|i=1,2,...,L\} xk1={xk1ii=1,2,...,L})作为输入,将与 x k l − 1 x_k^{l-1} xkl1相同尺寸的特征作为输出。因此, B k − 1 B_{k-1} Bk1的输出特征被变换,并贡献到 B k B_k Bk中每一阶段的输入。注意, x 1 1 , x 2 1 , . . . , x K 1 x_1^1,x_2^1,...,x_K^1 x11,x21,...,xK1是共享权重的。
对于目标检测任务,只有领导主干的输出特征 { x K i , i = 2 , 3 , . . . , L } \{x_K^i,i=2,3,...,L\} {xKi,i=2,3,...,L}被输入到颈部,然后是RPN/检测头,而协助主干的输出则是输入到其后继兄弟。值得注意的是, B 1 , B 2 , . . . , B K − 1 B_1,B_2,...,B_{K-1} B1,B2,...,BK1可用作各种主干结构(例如ResNet、ResNeXt、Res2Net、Swin Transformer等),并直接根据单个主干的预训练权重进行初始化。

B. Possible Composite Strategies

对于复合连接 g l ( x ) g^l(x) gl(x),它将来自一个协助主干的 x = { x i ∣ i = 1 , 2 , . . . , L } \boldsymbol{x}=\{x^i|i=1,2,...,L\} x={xii=1,2,...,L}作为输入,并输出一个与 x l x^l xl相同尺寸的特征(出于简单省略了 k k k),我们提出以下五种不同的复合策略。
在这里插入图片描述
①同一层复合(Same Level Composition,SLC):一种直观简单的复合方式是将来自主干同一阶段的输出特征进行融合。如图2a所示,SLC操作可以表示为:
g l ( x ) = w ( x l ) ,    l ≥ 2 (3) g^l(x)=\bold{w}(x^l),~~l≥2\tag{3} gl(x)=w(xl),  l2(3)其中, w \bold{w} w表示一个1×1卷积层和一个批标准化层。
②相邻更高层复合(Adjacent Higher-Level Composition,AHLC):受特征金字塔网络的启发,自顶向下的路径引入了空间上更粗糙但语义上更强的高层特征来增强自底向上路径中的低层特征,我们引入AHLC来将前一个主干的相邻更高层阶段的输出提供给随后的一个主干(图2b中从左到右):
g l ( x ) = U ( w ( x l + 1 ) ) ,    l ≥ 1 (4) g^l(x)=\bold{U}(\bold{w}(x^{l+1})),~~l≥1\tag{4} gl(x)=U(w(xl+1)),  l1(4)其中, U ( ⋅ ) \bold{U}(·) U()表示上采样操作。
③相邻更低层复合(Adjacent Lower-Level Composition,ALLC):与AHLC相反,我们引入一个自底向上的路径,将前一个主干的相邻更低层阶段的输出提供给随后的一个主干。我们在图2c中展示了ALLC,其用公式表示为:
g l ( x ) = D ( w ( x l − 1 ) ) ,    l ≥ 2 (5) g^l(x)=\bold{D}(\bold{w}(x^{l-1})),~~l≥2\tag{5} gl(x)=D(w(xl1)),  l2(5)其中, D ( ⋅ ) \bold{D}(·) D()表示下采样操作。
④稠密更高层复合(Dense Higher-Level Composition,DHLC):在DenseNet中,每一层都与随后的所有层相连以构建综合特征。受此启发,我们在CBNet结构中使用稠密复合连接。DHLC操作的表示如下:
g l ( x ) = ∑ i = l + 1 L U ( w i ( x i ) ) ,    l ≥ 1 (6) g^l(x)=\sum_{i=l+1}^L\bold{U}(\bold{w}_i(x^i)),~~l≥1\tag{6} gl(x)=i=l+1LU(wi(xi)),  l1(6)如图2d所示,当 K = 2 K=2 K=2时,我们将前一个主干中所有更高层阶段的特征进行组合,然后将它们加到后一个主干中的更低层阶段。
⑤全连接复合(Full-Connected Composition,FCC):如图2e所示,我们将前一个主干中所有阶段的特征进行组合,并将它们提供给后一个主干中的每个阶段。与DHLC相比,我们在低到高层(low-high-level)的情况下增加了连接。FCC操作可以表示为:
g l ( x ) = ∑ i = 2 L I ( w i ( x i ) ) ,    l ≥ 1 (7) g^l(x)=\sum_{i=2}^L\bold{I}(\bold{w}_i(x^i)),~~l≥1\tag{7} gl(x)=i=2LI(wi(xi)),  l1(7)其中, I ( ⋅ ) \bold{I}(·) I()表示尺度缩放,当 i > l i>l i>l时, I ( ⋅ ) = D ( ⋅ ) \bold{I}(·)=\bold{D}(·) I()=D(),当 i < l i<l i<l时, I ( ⋅ ) = U ( ⋅ ) \bold{I}(·)=\bold{U}(·) I()=U()

C. Auxiliary Supervision

虽然增加深度通常会带来性能的提升,但可能会引入额外的优化困难,例如在图像分类的情况下。Inception和InceptionV3为中间层引入辅助分类器来提高非常深的网络的收敛性。在原始的CBNet中,虽然复合主干是并行的,但是后一个主干(如图4a中的领导主干)通过与前一个主干(如图4a中的辅助主干)之间的相邻连接加深了网络。为了更好地训练CBNet-based检测器,我们提出通过辅助颈部和检测头的监督来生成协助主干的初步结果,以提供额外的正则化。
在这里插入图片描述
图4b给出了 K = 2 K=2 K=2时有监督的CBNet的一个例子。除了使用领导主干的特征来训练检测头1的原始损失外,另一个检测头2以协助主干的特征作为输入,产生辅助监督。注意,检测头1和检测头2是共享权重的,两个颈部也是如此。辅助监督有助于优化学习过程,而原始损失对于领导主干来说承担着最大的责任。我们加入权重来平衡辅助监督,总损失定义为:
L = L L e a d + ∑ i = 1 K − 1 ( λ i ⋅ L A s s i s t i ) (8) \mathcal{L}=\mathcal{L}_{\mathrm{Lead}}+\sum_{i=1}^{K-1}(\lambda_i·\mathcal{L}_{\mathrm{Assist}}^i)\tag{8} L=LLead+i=1K1(λiLAssisti)(8)其中, L L e a d \mathcal{L}_{\mathrm{Lead}} LLead是领导主干的损失, L A s s i s t \mathcal{L}_{\mathrm{Assist}} LAssist是协助主干的损失, λ i \lambda_i λi是第 i i i个协助损失的损失权重。
在推理阶段,我们舍弃辅助监督分支,只利用CBNet中领导主干的输出特征(图4b)。因此,辅助监督并不会影响推断速度。

D. Pruning Strategy for CBNet

为了降低CBNet的模型复杂度,我们探索了在第 2 , 3 , . . . , K 2,3,...,K 2,3,...,K个主干中剪枝不同数量阶段的可能性,来代替以整体的方式组合主干。为了简单起见,我们在图5中展示了 K = 2 K=2 K=2时的5种剪枝方法。 s i s_i si表示在第 2 , 3 , . . . , K 2,3,...,K 2,3,...,K个主干中有 i i i个阶段 { x j ∣ j ≥ 6 − i   a n d   j ≤ 5 , i = 0 , 1 , 2 , 3 , 4 } \{x_j|j≥6-i~\mathrm{and}~j≤5,i=0,1,2,3,4\} {xjj6i and j5,i=0,1,2,3,4},剪枝后的阶段由第1个主干中相同阶段的特征来填补。
在这里插入图片描述

E. Architecture of Detection Network With CBNet

CBNet可以应用于各种现成的检测器,无需对网络结构进行额外的修改。在实际中,我们给领导主干附上功能性网络,例如FPN和检测头。CBNet的推理阶段如图1所示。注意,我们提出了两个版本的CBNet。第一个称为CBNetV1,仅使用AHLC复合策略,提供了复合主干一种易于遵循的简单实现。另一个是CBNetV2,它结合了DHLC复合策略、辅助监督和一个特殊的剪枝策略,充分挖掘了CBNet在目标检测方面的潜力。下面我们通过实验证明CBNetV2比CBNetV1的优越性。在本文中如果没有特别说明,接下来的实验里CBNet表示CBNetV2。

IV. Experiments

A. Implementation Details

介绍实验用的数据集以及训练和推理阶段的实现细节。

B. Comparison With State-of-the-Art

在这里插入图片描述
在这里插入图片描述
在目标检测和实例分割上与SOTA的对比,具体的实验结论可以参照原文。

C. Generalization Capability of CBNet

在这里插入图片描述
CBNet的有效性,具体的实验结论可以参照原文。
在这里插入图片描述
CBNet的高效性,具体的实验结论可以参照原文。
在这里插入图片描述
在Swin Transformer上的泛化能力,具体的实验结论可以参照原文。
在这里插入图片描述
在一些特殊主干上的泛化能力,具体的实验结论可以参照原文。
在这里插入图片描述
在不同检测器(头部设计)上的泛化能力,具体的实验结论可以参照原文。

D. Comparison With Relevant Works

在这里插入图片描述
在这里插入图片描述
和几个相关/类似的工作的对比,具体的实验结论可以参照原文。

E. Compatibility of CBNet

在这里插入图片描述
与可变形卷积的兼容性,具体的实验结论可以参照原文。
在这里插入图片描述
与模型集成的兼容性,具体的实验结论可以参照原文。

F. Ablation Studies

在这里插入图片描述
不同复合策略的对比,DHLC和FCC效果最好,具体的实验结论可以参照原文。
在这里插入图片描述
DHLC在不同主干上的泛化能力,具体的实验结论可以参照原文。
我们通过代理任务进行网格搜索(grid search)来寻求更好的复合策略。为了降低搜索代价,我们只搜索复合主干中 x 3 x_3 x3 x 4 x_4 x4 x 5 x_5 x5阶段包含的连接来简化搜索空间,并设计了一个代理任务,其输入尺寸设为800×500,训练集为COCO的1/5。这样,我们只需要用205个GPU天训练 ( 2 3 ) 3 = 512 (2^3)^3=512 (23)3=512个检测器。搜索到的最佳策略是简化的DHLC( s 3 s_3 s3),不需要前一个主干的 x 4 x_4 x4与后一个主干的 x 3 x_3 x3的输入相连。该搜索策略具有69.1M和126GFLOPs达到了37.3% AP,与我们设计的DHLC(37.3% AP,具有69.7M和127GFLOPs)不相上下,进一步验证了在我们的在手工设计中进行高到低(high-to-low)连接的必要性。
在这里插入图片描述
加权辅助监督的有效性,具体的实验结论可以参照原文。
在这里插入图片描述
剪枝策略的有效性,具体的实验结论可以参照原文。
在这里插入图片描述
CBNetV2比CBNetV1的优越性,具体的实验结论可以参照原文。
在这里插入图片描述
相同主干对CBNet的重要性。使用不同的主干需要不同的优化策略,这些主干通常会输出非常不同的学习到的特征,并且难以进行联合训练。具体的实验结论可以参照原文。

V. Conclusion

在本文中,我们提出了一种新颖且灵活的主干框架,称为复合主干网络(Composite Backbone Network,CBNet),以提高前沿目标检测器的性能。CBNet由并行的一系列具有相同网络结构的主干、稠密更高层复合策略和辅助监督组成。它们组成构建了一个在预训练微调范式下,使用现有预训练主干的鲁棒的有代表性的主干网络。CBNet对于不同主干和头部设计的检测器结构具有强大的泛化能力。大量的实验结果表明,本文提出的CBNet能够兼容各种主干,包括基于CNN的(ResNet、ResNeXt、Res2Net)和基于Transformer的(Swin-Transformer)。同时,CBNet比简单地增加网络的深度和宽度更加有效和高效。此外,CBNet可以灵活地插入到大多数主流检测器中,包括单阶段的(例如RetinaNet)和两阶段的(Faster R-CNN、Mask R-CNN、Cascade R-CNN、Cascade Mask R-CNN)检测器,以及anchor-based(例如Faster R-CNN)和anchor-free-based(ATSS)检测器。CBNet与特征增强网络(DCN和HRNet)和模型集成方法兼容。具体来说,上述检测器的性能提高了3%以上。尤其是我们的CB-Swin-L在COCO test-dev上取得了59.4% box AP和51.6% mask AP的新纪录,优于之前的单模型单尺度结果。通过多尺度测试,在没有额外训练数据的情况下,我们获得了60.1% box AP和52.3% mask AP的SOTA结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/375411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【正点原子FPGA连载】第二十章AXI4接口之DDR读写实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十章AXI4接口…

如何查看Spring Boot各版本的变化

目录 1.版本 2.基础特性和使用 3.新增特性和Bug修复 1.版本 打开Spring官网&#xff0c;点进Spring Boot项目我们会发现在不同版本后面会跟着不同的标签&#xff1a; 这些标签对应不同的版本&#xff0c;其意思如下&#xff1a; GA正式版本&#xff0c;通常意味着该版本已…

VsCode安装PlatformIO 开发ESP arduino,买的板子或者随便ESP,PlatformIO添加Board(不是自定义Board)

这次主要记录怎么给新建选板子的时候没有的板子下程序 我这里是一块 WiFi Kit 32 (V3) PlatformIO里面只有到V2 先从头开始&#xff0c;安装PlatformIO 安装PlatformIO 直接搜索安装 安装有时候会比较慢&#xff0c;左侧出现蚂蚁图标之后点击会显示 右下角会提示正在安…

【神经网络】Transformer基础问答

1.Transforme与LSTM的区别 transformer和LSTM最大的区别就是LSTM的训练是迭代的&#xff0c;无法并行训练&#xff0c;LSTM单元计算完T时刻信息后&#xff0c;才会处理T1时刻的信息&#xff0c;T 1时刻的计算依赖 T-时刻的隐层计算结果。而transformer的训练是并行了&#xff0…

AndroidStudio打包HBuilderX的H5+项目为安卓App【一次过,无任何异常报错】

目录 1.查看HBuilderX的版本号 2.下载Dcloud上对应的安卓SDK 3.下载完安卓SDK后&#xff0c;我们解压它&#xff0c;注意不要放在任何有中文组成的文件夹中【是否有中文决定于你鼠标单击上面路径后&#xff0c;第一张图还没鼠标单击&#xff0c;第二张已鼠标单击&#xff0c…

【前端工程化】01-Node.js基础

Node.js基础认识NodeNode的定义Node的应用场景Node的安装和版本管理Node的基本操作Node.js执行文件Node的参数传递Node的REPL认识Node Node的定义 Node.js是一个基于V8 JavaScript引擎的JavaScript运行时环境 Node.js为JavaScript提供了一些服务器级别的操作API 文件读写网…

背靠“湘潭系”的谭新乔,能带领湖南裕能再上一个台阶吗?

文丨熔财经作者|kinki近日&#xff0c;磷酸铁锂正极材料龙头湖南裕能正式登陆A股&#xff0c;上市当天市值超过了400亿元&#xff0c;投资者中一签可赚1.49万元&#xff0c;可谓近年低迷的资本市场中一支“大肉签”。不过在 “开门红”之后&#xff0c;湖南裕能的股价便一路下挫…

ETL工具(kettle) 与 ETL产品(BeeloadBeeDI) 差之毫厘,谬以千里

E T L——是英文Extract-Transform-Load的缩写&#xff0c;用来描述将数据从来源端经过抽取&#xff08;extract&#xff09;、转换&#xff08;transform&#xff09;、加载&#xff08;load&#xff09;至目的端的过程。工具——原指工作时所需用的器具&#xff0c;后引申为达…

Clickhouse学习(一):MergeTree概述

MergeTree一、Clickhouse表引擎概述二、MergeTree表引擎<一>、ReplacingMergeTree引擎<二>、SummingMergeTree引擎<三>、AggregatingMergeTree引擎三、MergeTree分区一、Clickhouse表引擎概述 MergeTree表引擎:允许根据日期和主键创建索引 1、ReplacingMerge…

实践IC-GVINS: 以惯导为核心的GNSS-Visual-INS组合导航系统

视觉导航系统对环境比较敏感&#xff0c;受到光照变化、重复纹理、动态物体等影响&#xff1b;惯性导航系统(INS)则完全自主工作&#xff0c;不受外部环境影响&#xff0c;能够实现连续、高频的自主导航&#xff0c;但其误差发散较快。两者组合能够取长补短&#xff0c;形成视觉…

毕业设计 基于STM32单片机生理监控心率脉搏TFT彩屏波形曲线设计

基于STM32单片机生理监控心率脉搏TFT彩屏波形曲线设计1、项目简介1.1 系统构成1.2 系统功能2、部分电路设计2.1 STM32F103C8T6核心系统电路设计2.2心率检测电路设计2.3 TFT2.4寸彩屏电路设计3、部分代码展示3.1 ADC初始化3.2 获取ADC采样值3.3 LCD引脚初始化3.3 在LCD指定位置显…

15 Nacos客户端实例注册源码分析

Nacos客户端实例注册源码分析 实例客户端注册入口 流程图&#xff1a; 实际上我们在真实的生产环境中&#xff0c;我们要让某一个服务注册到Nacos中&#xff0c;我们首先要引入一个依赖&#xff1a; <dependency><groupId>com.alibaba.cloud</groupId>&l…

Android与flutter混合开发

这里我使用的android studio版本是2020.3.1&#xff1b;flutter版本2.5.3。此前在网上搜索的很多教教程版本都不一样&#xff0c;新版的IDE和SDK让我遇到了很多坑故这里整理一下。一、创建项目1.在Android项目中点击File->New->New Flutter Project。File->New->Ne…

认识STM32和如何构建STM32工程

STM32介绍什么是单片机单片机(Single-Chip Microcomputer)是一种集成电路芯片&#xff0c;把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种/0口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电…

快速找到外贸客户的9种方法(建议收藏)

所有外贸企业想要做好外贸出口的头等大事&#xff0c;就是要快速的找到优质的外贸客户和订单&#xff0c;没有订单的达成&#xff0c;所有的努力都是图劳&#xff0c;还有可能会陷入一种虚假的繁荣&#xff0c;每天都很忙&#xff0c;但是没有结果。今天&#xff0c;小编就来分…

在VScode中添加Linux中的Docker容器中的Python解释器

VScode编辑器在安装好Python插件之后会自动选择环境变量中排序最高的那一个解释器作为默认解释器&#xff0c;而想要额外添加新的Python解释器就需要自己设置。 VScode编辑器安装在本地电脑 支持Python的docker安装在远程服务器 第一步&#xff0c;在/usr/local/下新建pytho…

Telnet 基础实验1: Telnet 实验

Telnet 基础实验1&#xff1a; Telnet 实验 拓扑图 配置命令 R1 的配置 undo ter mo sys sys R1 interface g0/0/0 ip address 192.168.1.1 255.255.255.0 qR2 的配置 undo ter mo system-view sysname R2 interface g0/0/0 ip address 192.168.1.2 255.255.255.0 q两台设…

微信小程序和webview使用postMessage交互

小程序和webview能交互&#xff0c;但是没有你想的那个完美小程序向webview传递参数只能使用url携带参数webview向小程序传递参数可以使用postMessage, 但是注意了&#xff0c;postMessage只会在特定的时机执行&#xff0c;请看官方文档由此可见&#xff0c;如果你想点击webvie…

深度剖析指针(上)——“C”

各位CSDN的uu们你们好呀&#xff0c;今天&#xff0c;小雅兰的内容是指针噢&#xff0c;在学习C语言的过程中&#xff0c;指针算是一个比较重要的内容&#xff0c;当然&#xff0c;难度也是比较大的&#xff0c;那么现在就让小雅兰来带大家进入指针的世界吧 字符指针 数组指针…

HiEV洞察 | 特斯拉HW4.0再爆猛料,高精定位、雷达均有变动

作者 | 查理斯 编辑 | 王博特斯拉 HW4.0 消息传出后&#xff0c;有人爆料说在硬件层面发生了巨大变化&#xff0c;引发行业轰动。大家都在猜测HW4.0 具体做了哪些改动。 2月16日&#xff0c;Twitter用户greentheonly爆出HW4.0的主板拆解照片。2月18日又爆出毫米波雷达的拆解照片…