原文链接:重磅开源!目标检测新网络 DetectoRS:54.7 AP,特征金字塔与空洞卷积的完美结合

论文地址:https://arxiv.org/abs/2006.02334

代码地址(基于mmdetection实现):

https://github.com/joe-siyuan-qiao/DetectoRS

本文是谷歌团队提出的最新的目标检测方案,并且已经完全开源。整个算法将递归特征金字塔(RFP,Recursive Feature Pyramid)和可切换的空洞卷积(SAC,Switchable Atrous Convolution)结合在一起,在COCO test-dev目标检测任务中,达到了54.7% box AP,相比之前提升1.4 AP,性能强悍。

简介

目标检测一直都是计算机视觉中最值得关注的领域,从经典的两阶段(论文中将其概括为两次looking和thinking机制)方法Faster RCNN、单阶段的YOLO系列、SSD系列,到近段时间性能卓越的EfficientDet、CBNet、ResNeSt等,可以看出,通过backbone结构的改进来提升目标检测的性能是目前涨点和研究的新热点,值得大家关注与创新。

而在本文中,DetectoRS同样从backbone的角度出发,对目标检测性能进行强化,具体来说有两大部分的创新:

1、首先,DetectoRS在宏观层面上,提出了递归特征金字塔(RFP,Recursive Feature Pyramid),它将特征金字塔网络(Feature Pyramid Networks)的额外反馈连接加入到在自下而上的骨backbone层中。

2、其次,DetectoRS在微观层面上,提出了可切换的空洞卷积(SAC,Switchable Atrous Convolution),它以不同的空洞率(rate)对特征进行卷积,并使用switch函数合并卷积后的结果,SAC可以实现从标准卷积到Contional卷积的有效转换,而无需更改任何预训练模型。

将递归特征金字塔(RFP,Recursive Feature Pyramid)和可切换的空洞卷积(SAC,Switchable Atrous Convolution)合并形成了DetectoRS,大大增强了目标检测的性能。具体来说,在COCO test-dev数据集上达到了54.7% box AP的SOTA性能,同时在COCO实例分割任务上达到47.1% mask AP的的性能,在COCO全景分割任务上达到49.6% AQ的性能。

DetectoRS的baseline:HTC(Hybrid Task Cascade)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9BdgVbaG-1591350773431)(https://bbs.cvmart.net/uploads/images/202006/04/3/NQXjvtgfzC.gif?imageView2/2/w/1240/h/0)]

首先,来介绍一下Cascade RCNN。2018年CVPR上的Cascade RCNN算法通过级联多个检测器来不断优化结果,每个检测器都基于不同的IoU阈值来界定正负样本,前一个检测器的输出作为后一个检测器的输入,并且检测器越靠后,IoU的阈值越高。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZyEIrqpZ-1591350773433)(https://bbs.cvmart.net/uploads/images/202006/04/3/6pwV0TRlDU.gif?imageView2/2/w/1240/h/0)]

Cascade RCNN具体结构

上图是Cascade RCNN采用的级联方法,可以看到每一个检测器的边框输出作为下一个检测器的输入,并且检测器的IoU阈值是逐渐提升的,因此这种方法可以逐步过滤掉一些误检框,并且提升边框的定位精度。Cascade RCNN算法深入探讨了IoU阈值对检测器性能的影响,并且在不增加任何tricks的前提下,在多个数据集上都有了明显的精度提升。

接下来,来看HTC(Hybrid Task Cascade),HTC可以看作是在cascade R-CNN和mask R-CNN的基础上,作者想通过级联和来实现实例分割,进而找出一种最好的级联结构,来实现检测,提高mAP。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nx5z82B2-1591350773435)(https://bbs.cvmart.net/uploads/images/202006/04/3/EQllaMKQKW.gif?imageView2/2/w/1240/h/0)]

HTC是一种多任务多阶段的混合级联结构,融合了一个语义分割的分支来增强 spatial context。整个框架的演进可以用上面的四张图来表示,其中 M 表示 mask 分支,B 表示 box 分支,数字表示 stage,M1 即为第一个 stage 的 mask 分支。HTC这种框架取得了明显优于 Mask R-CNN 和 Cascade Mask R-CNN 的结果。

HTC的关键思想是:通过在每个阶段结合级联和多任务来改善信息流,并利用空间背景来进一步提高准确性。整个网络是多任务多阶段的混合级联结构,训练时每个 stage 内 box 和 mask 分支采用交替执行,并在不同 stage 的 mask 分支之间引入直接的信息流。

HTC在相邻的 stage 的 mask 分支之间增加一条连接,提供 mask 分支的信息流,让Mi+1M_{i+1}Mi+1​能知道 MiM_iMi​的特征。


同时,HTC将语义分割引入到实例分割框架中,以获得更好的 spatial context。

宏观角度:RFP(递归特征金字塔)

RFP(递归特征金字塔)= Recursive Structure + Bottom-up Backbone Layers + Top-down FPN Layers + ASPP as the Connecting Module

RFP提出的递归方法与最近提出的CBNet 中的递归方法相似,CBNet方法中将多个主干级联以输出特征作为FPN的输入。相比之下,RFP通过包含ASPP结构的FPN和有效的融合模块一起来执行递归计算。

1、Recursive Feature Pyramid

递归特征金字塔(RFP)主要将反馈连接添加到FPN自下而上的过程中(FPN结构最左侧为普通的卷积网络,默认使用ResNet结构,用作提取语义信息)

在RFP环节对ResNet进行了改进,以使其同时接受原来的特征图输入和反馈信息作为RFP结构的输入。一般来说,ResNet具有四个阶段,每个阶段都由几个相似的基本残差block组成。这里仅对每个阶段的第一个块进行更改,如图3所示。整体的改进结构比较简单,很好地融合了输入Input和RFP的特征。

那么,如何实现级联呢? 主要来看下面这两个模块。

2、ASPP as the Connecting Module

使用带有空洞卷积的空间金字塔池化(ASPP)模块来实现两个递归特征金字塔的级联连接,该连接模块以其特征为输入并将其转换为图3中使用的RFP的特征(RFP Feature)。


ASPP结构示意图,本文中有所修改去除了1x1卷积分支

本文中的ASPP有四个并行分支对其输入进行扩展,然后将它们的输出沿通道维连接在一起,以形成的最终输出。它们的三个分支使用卷积层,然后是ReLU层,输出通道数是输入通道数的1/4。最后一个分支使用全局平均池化层来压缩特征,然后使用1x1卷积层和ReLU层将压缩后的特征转换为1/4尺寸(逐通道)的特征。最后,将其调整大小并与其他三个分支的特征进行连接。**三个空洞模块的配置:kernel size = [1, 3, 3], atrous rate =[1, 3, 6], padding = [0, 3, 6]。**四个分支中的每个分支都产生一个具有输入特征通道数量1/4的通道的特征,将它们连接起来将生成与RFP的输入特征尺寸相同的特征。

3、Output Update by the Fusion Module

融合模块与循环神经网络中的更新过程非常相似。融合模块通过卷积层和Sigmoid运算来计算注意力图,然后将结果注意力图用于计算更新后的加权和。

微观角度:SAC(Switchable Atrous Convolution)

SAC(可切换的空洞卷积)= Different atrous rates + Switch functions

1、SAC(可切换的空洞卷积)结构

作者将主干网络ResNet中的每个3x3卷积层都转换为SAC,从而在不同的空洞率之间实现对卷积计算的软切换。上图中的锁表示权重相同,只是训练的细节差异有所不同。两个全局上下文模块将图像级信息添加到特征中。

SAC的计算过程可以用上面的式子来表示,其中x为输入,w为权重,r为空洞卷积的空洞率rate,这也是SAC的超参数。Δw表示具有可训练的权重,并且switch切换函数S(·)由5x5的平均池化层和1x1卷积层组成,其与输入和位置相关。

SAC中锁定机制,通过将一个权重设置为w而另一个权重设置为w +Δw,其原因如下:目标检测器通常使用预训练的checkpoint来初始化权重。但是,**对于从标准卷积层转换而来的SAC层,较大的空洞率rate的权重通常是缺失的。由于可以通过相同的权重以不同的粗略度粗略地检测出不同比例的物体,因此用预训练模型中的权重来初始化丢失的权重是可以的。本文使用w + ∆w表示从预训练checkpoint开始的缺失的权重,并使用0初始化∆wi。**当固定Δw= 0时,通过实验观察到AP下降了0.1%,但是没有锁定机制的∆w会使AP降低很多。

2、SAC中的全局上下文模块(Global Context)

如图4所示,作者在SAC的主要组件之前和之后插入两个全局上下文模块。当输入特征首先被全局平均池化层压缩时,这两个模块的权重就降低了。全局上下文模块与SENet相似,但有两个主要区别:(1)全局上下文模块只有一个卷积层,没有任何非线性层;(2)输出被回到主干中,而不是将输入乘以通过Sigmoid重标定操作后的值。

从实验上发现在SAC组件之前添加全局上下文信息(即在switch函数功能中添加全局信息)对检测性能有积极影响。作者推测这是因为在可以获得全局信息时,switch函数可以做出更稳定的切换预测。然后,将全局信息移至切换功能之外,并将其放置在主体之前和之后,以便卷积层和switch函数都能获取全局上下文信息。

3、SAC的实现细节

使用可变形卷积替换图4中的卷积运算,通过SAC替换骨干网络ResNet中的所有3x3卷积层,全局上下文模块中的权重和偏差用0初始化。switch函数中的权重用0初始化,偏置设置为1。Δw用0初始化。

实验与结果

训练数据集作者采用的COCO数据集。作者使用mmdetection 实现了Detec-toRS。baseline模型是HTC ,在单个NVIDIA TITAN RTX显卡上测试。为了方便对比,整体的实验配置和HTC网络保持一致。

消融实验:

baseline:HTC + ResNet-50 + FPN

将提出的RFP和SAC添加到baseline,这两者都能够将AP提高4%以上,而速度不会降低太多。将它们组合在一起的DetectoRS可以以3.9 fps的速度获得49%的box AP和42.1%的Mask AP。

下表是RFP和SAC各个模块的作用,验证了结构设计的优势。

[

从上面的可视化对比图可以看出,RFP与选择性增强或抑制神经元激活的人类视觉类似,能够更轻松地找到被遮挡的对象,而附近的上下文信息则更为关键。由于SAC可以根据需要增加感受野,因此它更有能力检测图像中的大物体。

对比实验

在COCO test-dev 目标检测中,DetectoRS在使用ResNet-50和ResNeXt-101-32x4d作为主干网络时达到54.7% AP,超越了其他的算法。

扩展实验

在COCO test-dev 实例分割中,DetectoRS在使用ResNet-50和ResNeXt-101-32x4d作为主干网络时达到47.1% AP,目前与ResNeSt并列排名第一。

在COCO test-dev 全景分割中,DetectoRS达到49.6% PQ,相比于其他算法有将近两个点的提升。

更多实验细节可以参考原文的代码。

◎作者档案

Rocky X,一个乐于分享技术干货的AI爱好者

个人公众号:AI算法修炼营

欢迎大家联系极市小编(微信ID:fengcall19)加入极市原创作者行列

关注极市平台公众号(ID:extrememart),获取计算机视觉前沿资讯/技术干货/招聘面经等

重磅开源!目标检测新网络 DetectoRS:54.7 AP,特征金字塔与空洞卷积的完美结合相关推荐

  1. CVPR 2020 | CentripetalNet:目标检测新网络,COCO 48 % AP超现所有Anchor-free网络

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 Anchor-free目标检测新网络,在COCO上可达48 AP!性能优于CenterNet.RPDe ...

  2. 目标检测新网络——Matrix Net (xNet)参数更少,训练更快

    摘要 提出了一种新的深度目标检测体系结构--矩阵网(xNets).xNets将具有不同大小和长宽比的对象映射到层中,这些层中对象的大小和长宽比几乎一致.因此,xnet提供了支持比例和高宽比的体系结构. ...

  3. 57.1 AP!CenterNet++来了!Anchor-free目标检测新网络

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 转载自:集智书童 CenterNet++ for Object Detection 论文:https://a ...

  4. CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 作者:不一样的子湘 知乎链接:https://zhuanlan.zhihu.com ...

  5. 旷视孙剑团队提出Anchor DETR:基于Transformer的目标检测新网络

    开放了预训练,r50 400多m 写在前面 在本文中,作者提出了一种基于Transformer的目标检测器.在以前基于Transformer的检测器中,目标的查询是一组可学习的embedding.然而 ...

  6. anchor free 目标检测_CVPR 2020 | 商汤提出 Anchor-free 目标检测新网络

    2 动机 1.现有的基于关键点的目标检测网络(如CornerNet.CenterNet.ExtremeNet等)通过使用关联嵌入向量进行物体关键点的匹配,然而关联嵌入向量具有训练难度大且容易混淆同类物 ...

  7. NanoDet目标检测新网络!比YOLO跑的还快

    项目链接:https://github.com/RangiLyu/nanodet 作者:RangiLyu NanoDet Super fast and lightweight anchor-free ...

  8. CVPR 2020 | 港中文提出3D目标检测新框架DSGN

    ©PaperWeekly 原创 · 作者|张承灏 学校|中科院自动化所硕士生 研究方向|双目深度估计 本文介绍的是香港中文大学贾佳亚团队在 CVPR 2020 上提出的 3D 目标检测新框架--深度立 ...

  9. 港中大、商汤开源目标检测工具包mmdetection,对比Detectron如何?

    近日,香港中文大学-商汤联合实验室开源了基于 PyTorch 的检测库--mmdetection.上个月,商汤和港中大组成的团队在 COCO 比赛的物体检测(Detection)项目中夺得冠军,而 m ...

最新文章

  1. Microsoft .NET Pet Shop 4 架构与技术分析
  2. 目标检测--Training Region-based Object Detectors with Online Hard Example Mining
  3. 200多位专家热议“智慧城市” 建议尽快完善标准体系
  4. C++ 模板偏特化-来自STL的思考
  5. 如何一键部署项目代码自动更新
  6. 世界对一名颓废者的惩罚——SDOI2019R1游记
  7. Solaris11 磁盘分区
  8. Agglomerated SSL 1.2.0 发布
  9. java属性定义_Kotlin 真香系列:扩展函数和属性
  10. 字符串_KMP算法(求next[]模板 hdu 1711)
  11. Vue warn 屏蔽
  12. LSF10.1安装(server端)
  13. NLP 中文分词-双向匹配算法(理论+Python实现)
  14. ArcGIS模拟风场(流场)
  15. 我的世界服务器怎么自己修改op权限,我的世界op权限指令
  16. Google Perftools简介与使用
  17. 21考研:一研为定,定为研一
  18. 上海市高校计算机等级(一级)考试成绩查询,上海市高校计算机等级考试(一级).doc...
  19. 字符串存储的可修改性
  20. Android 为应用或Textview设置自定义字体,主流字体包

热门文章

  1. Mybatis学习链接
  2. mybatis自我总结
  3. 备份mysql数据库以及文件--脚本
  4. [小北De编程手记] : Lesson 05 玩转 xUnit.Net 之 从Assert谈UT框架实践
  5. 使用WebClient 获得网页内容或提交请求
  6. 【牢骚】360,你怎么对待别人,别人就怎么对待你。
  7. java验证码识别--2
  8. DNN模块开发入门指导
  9. 问题 | Spare BA 中的Eigen运行错误
  10. C语言 | 基于MPU6050的卡尔曼滤波算法(代码类)