【导读】今天我们来聊一聊在COCO数据集上成功刷榜的两大模型-CBNet和DetectoRS。它们先后刷新了COCO 数据集上的单模型目标检测精度的最高记录:单尺度测试CBNet—50.7AP和DetectoRS—53.3AP,多尺度测试CBNet—53.3AP和DetectoRS—54.7AP。
论文:CBNet
- 论文链接:https://arxiv.org/abs/1909.03625
- 代码地址:https://github.com/PKUbahuangliuhe/CBNet
摘要与创新点
在现有的基于CNN的检测器中,骨干网络(backbone)是提取基本特征的一个非常重要的组成部分,检测器的性能高度依赖于骨干网络。在本文中,我们的目标是通过在现有的ResNet和ResNeXt骨干上构建一个更强大的骨干来实现更好的检测性能。具体地说,我们提出了一种新的策略,利用相邻骨干网之间的复合连接来组成多个相同骨干网,并以此形成一个更强大的主干网络。我们把它叫做CBNet。通过这种方式,CBNet将前一个主干的输出特征(即高级特征)作为输入特征的一部分逐级地反馈给后续的主干,最后使用最后一个骨干(Lead Backbone)的特征映射进行目标检测。我们证实了,CBNet可以非常容易地集成到最先进的检测器,并显著提高其性能。例如,它在COCO数据集上的FPN、Mask R-CNN和Cascade R-CNN的映射中提升了大约1.5%到3.0%。此外,CBNet 还提升了实例分割的结果:Triple-ResNeXt152(3 个 ResNeXt152 组成的 CBNet 架构)在 COCO 数据集上实现了最新 SOTA 结果(mAP 达到 53.3),优于之前的目标检测器。从而证明了所提出的CBNet架构的有效性。
该研究的主要贡献包括两部分:
- 提出了一种构建更强大目标检测主干网络的新方法:集成多个同样的主干网络,从而显著提升不同当前最优检测器的性能。
- 实现了单个模型在 MSCOCO 数据集上的最新 SOTA 结果——目标检测 mAP 达到 53.3。
CBNet结构图如下所示:
CBNet通过复合连接来组合多个相同的主干网络,复合连接作用于相邻的主干网络的平行阶段(如ResNet中的stage i)。从上图中可已看到,前一个主干网输出的特征会作为后续主干网输入特征的一部分。在并行的N个主干网络中,前N-1个称为Assistant Backbones,第N个称为Lead Backbone,Lead Backbone的输出用于后续子任务,如回归、分类,或者说检测模型的FPN、detection head等。
效果展示如下:
CBNet及其组合方式如下图所示。
如上图所示,a)邻近高级组合(Adjacent Higher-Level Composition,AHLC);b)同级组合(Same Level Composition,SLC);c)邻近低级组合(Adjacent Lower-Level Composition,ALLC);d)密集高级组合(Dense Higher-Level Composition,DHLC)。蓝色框中的组合连接表示一些简单运算,如元素级运算、缩放、1×1 卷积层和 bn 层。
主要差异体现在:复合连接所作用的前一阶段主干网的输出特征层级 与 复合连接输出的特征在当前阶段主干网输入的特征层级 之间的关系。
关于目标检测和实例分割的实验结果如下表。其中DB表示组合2个相同的主干网络,TB表示组合3个相同的主干网络。
CBNet及其变种的对比实验结果如下表所示。
使用Cascade Mask R-CNN作为baseline,组合2个和3个相同的backbone——ResNeXt152,结合多尺度测试,CBNet刷新了coco的检测记录。
最后是关于并行的主干网络数目N与检测精度之间关系的消融实验结果,如下图。合情合理,N越大精度越高,但N>3之后精度趋于饱和。可以想见,N越大,参数量越大、计算复杂度越高、推理速度越慢。
论文:DetectoRS
- 论文链接:https://arxiv.org/abs/2006.02334
- 代码地址:https://github.com/joe-siyuan-qiao/DetectoRS
摘要与创新点
DetectoRS的思想来自looking and thinking twice ,作者将这一思想应用于主干网的改进上。
- 在宏观层面上,作者提出了递归特征金字塔(RFP,Recursive Feature Pyramid),它结合了从特征金字塔网络到自下而上的backbone层的额外反馈连接,具体如图1(a)所示。
- 在微观层面上,作者提出了可切换的空洞卷积(SAC,Switchable Atrous Convolution),它以不同的空洞率(rate)对特征进行卷积,并使用switch函数合并卷积后的结果,SAC可以实现从标准卷积到Contional卷积的有效转换,而无需更改任何预训练模型。具体如图1(b)所示:
将它们组合在一起将产生DetectoRS,这将大大提高目标检测的性能。
DetectoRS = Detector RFP SAC = Detector Recursive Feature Pyramid Switchable Atrous Convolution
DetectoRS 在COCO test-dev数据集上达到了54.7% box AP的SOTA性能,同时在COCO实例分割任务上达到47.1% mask AP的的性能,在COCO全景分割任务上达到49.6% AQ的性能。
宏观角度:RFP(递归特征金字塔)
RFP(递归特征金字塔)= Recursive Structure Bottom-up Backbone Layers Top-down FPN Layers ASPP as the Connecting ModuleRFP提出的递归方法与最近提出的CBNet 中的递归方法相似,CBNet方法中将多个主干级联以输出特征作为FPN的输入。相比之下,RFP通过包含ASPP结构的FPN和有效的融合模块一起来执行递归计算。
微观角度:SAC(可切换的空洞卷积)
SAC(可切换的空洞卷积)= Different atrous rates Switch functions
结构图如下所示:
作者将主干网络ResNet中的每个3x3卷积层都转换为SAC,从而在不同的空洞率之间实现对卷积计算的软切换。上图中的锁表示权重相同,只是训练的细节差异有所不同。两个全局上下文模块将图像级信息添加到特征中。
SAC的计算过程可以用上面的式子来表示,其中x为输入,w为权重,r为空洞卷积的空洞率rate,这也是SAC的超参数。Δw表示具有可训练的权重,并且switch切换函数S(·)由5x5的平均池化层和1x1卷积层组成,其与输入和位置相关。
消融实验:
baseline:HTC ResNet-50 FPN
HTC(基于ResNet) RFP SAC 的涨点情况,直接从42.0 AP涨到49.0 AP
下表是RFP和SAC各个模块的作用,验证了结构设计的优势。
对比实验在COCO test-dev 目标检测中,DetectoRS在使用ResNet-50和ResNeXt-101-32x4d作为主干网络时达到54.7% AP,目前排名第一,遥遥领先!
在COCO test-dev 实例分割中,DetectoRS达到47.1% AP!目前与ResNeSt并列排名第一!
在COCO test-dev 全景分割中,DetectoRS达到49.6% PQ!目前排名第一,遥遥领先!