本文解读我们ICLR2022上发表的论文《GiraffeDet: A Heavy-Neck Paradigm for Object Detection》。我们提出了一个新的目标检测网络结构范式:GiraffeDet,它具有极轻量级计算量的backbone和大计算量的neck,使得网络更关注于高分辨率特征图中空间信息和低分辨率特征图中语义信息的信息交互。同时这个设计范式允许检测网络在网络早期阶段就以相同优先级处理高层语义信息和低层空间信息,使其在检测任务上更加有效。大量实验表明,在相同head及同量级Flops下,GiraffeDet能够取得比之前SOTA模型更优的结果。

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

开源代码:https://github.com/jyqi/GiraffeDet

一、背景

图1. COCO和ImageNet数据集中前景目标分布[1]

目标检测任务面临的主要挑战在于尺度差异(Scale Variance)。图1 给出了ImageNet和COCO数据集中的前景目标在scale的分布,横轴(Relative Scale)为前景目标尺度相对于图片尺度的相对scale,竖轴(CDF)为当前scale下的前景目标数量占整个数据集中所有前景目标数量的百分比。可以看到:

  1. COCO数据集中的前景目标scale跨度大:10%的小前景目标的scale(0.024)和10%的大前景目标的scale(0.472)相差足足20倍;
  2. COCO数据集和ImageNet数据集的前景目标scale分布存在偏移:COCO数据集中小目标占比更大,有一半的目标的relative scale<0.106;相比之下ImageNet数据集中前景目标scale分布比较均匀,一半的前景目标的relative scale<0.556;

基于以上观察,在论文中,我们提出了两个问题:

  1. 如何解决scale variance的挑战,获得针对目标检测任务有效的多尺度的表征(multi-scale representation);
  2. 目标检测网络的backbone基本都为scale-decreased的模型,使用ImageNet数据集进行Pretrain,这类设计的backbone是否在目标检测任务上不可或缺;

针对上述问题,我们在文章中提出了创新性的轻计算量backbone重计算量neck的GiraffeDet模型。

二、方法

解决Scale Variance这个问题,常用的两大种策略就是Image Pyramid或者Feature Pyramid。Image Pyramid在deep learning时代比较经典的有MTCNN, SNIP等;另外一大类方法是Feature Pyramid,也就是在neck上进行不同尺度特征的融合,代表工作主要有FPN、PANet、BiFPN,具体实现见图2。考虑到Image Pyramid带来的训练和测试时间成本,我们使用Feature Pyramid。

图2. Feature Pyramid不同设计

从Feature Pyramid的演进我们能看到,BiFPN设计了更多的不同层的连接以及跳跃连接来增加更多的特征融合。然而,单层的BiFPN能否达到充分的特征融合,输出multi-scale representation呢?为了回答这个问题,我们做了一个对比实验,控制整个网络在同一FLOPs量级下,调整backbone和neck的计算量比例,观察哪种设计在目标检测任务上更有效,结果见图3。

图3. 不同backbone/neck计算量比例

从图3可以看到,scratch 3x训练下,轻计算量backbone重计算量neck的网络(R18+BiFPN*9)能够取得比重计算量backbone轻计算量neck的网络(R101+BiFPN)更优的精度,因此将更多计算量放在特征融合上对于解决scale variance问题是有所帮助的。

然而BiFPN的简单堆叠并非最优的,每个BiFPN block都是彼此独立,而且堆叠过深可能存在梯度消失的风险。基于此,我们提出了GFPN的neck结构。

1、GFPN

图4. GFPN结构

图4为我们提出的GFPN结构,主要有以下模块:

1) Skip Layer

图5. Skip Layer

借鉴DenseNet ,在每一层中,我们设计了dense-link,以增加更多的特征复用。然而由于额外连接带来的计算量提升,无法将GFPN设计的非常深。考虑到dense-link存在信息冗余,同时希望将GFPN设计的更深,我们将dense-link改进为log2n-link。相比于dense-link的 O(l2) 复杂度,log2n-link的复杂度为 O(l∗log2l) 。同时,在反向传播的过程中,log2n-link将最短距离从1提升到了 1+log2l 。因此,在同等计算量约束下,log2n-link能够将GFPN扩展的更深,并保留有效的特征复用,具体连接细节见图5。

2) Queen Fusion

图6. Queen Fusion

为了让GFPN能够克服大的尺度变化,我们设计了Queen-Fusion的结构以增加更多的特征融合。如图6,每一个节点不仅接收上一个节点的输入,同时还接收斜上方、斜下方节点的输入。并且,考虑到sum的方式进行特征融合会带来信息的丢失,我们使用concat方式进行特征融合,具体结构见图6。 Ω

2、Lightweight Space-to-Depth Chain

大多数目标检测范式中,特征金字塔网络以常规CNN-backbone提取的多尺度特征为基础上进行特征融合。然而,随着CNN的发展,backbone变得越来越大,计算量越来越高。此外,backbone基本采用ImageNet进行预训练。我们认为:这些预训练骨干并不适用于检测任务,仍存在域漂移(domain-shift)问题。另外,FPN更多聚焦于高层语义信息与底层空域信息的交互。因此,我们认为:相比常规骨干,FPN在检测模型中的作用更为重要。

受启发于PixelShuffle与FRVSR的工作,我们提出了Space-to-Depth Chain(S2D Chain)作为轻量级的backbone,结构见图7。它包含两个3x3卷积与五个堆叠的S2D-block模块。具体来说,卷积用于初始的下采样并引入更多非线性变换;每个S2D-block包含一个S2D层与一个1x1卷积。S2D将更多的空域信息移动到深度维度,同时可以起到无参下采样作用。然后采用卷积提供通道维度池化以生成固定通道数的特征。

图7. S2D Chain

4、GiraffeDet Pipeline

GiraffeDet整体的框架见图8,包含轻量级space-to-depth chain作为backbone、Generalized-FPN作为neck以及head,它延续了一阶段检测设计范式。

图8. GiraffeDet Pipeline

4、GiraffeDet Family

我们设计了一系列GiraffeDet模型以满足不同资源约束。相比于之前检测网络通过对backbone进行缩放来调整模型大小,我们聚焦于调整进行多尺度特征融合的Neck部分。具体来说,我们采用两个系数 ϕd 、 ϕw 来控制GFPN的深度与宽度,图9给出了本文所设计的不同大小的GiraffeDet缩放系数信息。

图9. GFPN缩放信息

三、实验

0、超参设置

图10. 实现细节

在具体实现方面,GiraffeDet采用了GFocalV2作为检测头,采用ATSS进行标签分配。为增强从头开始训练的稳定性,我们采用了多尺度训练。相关训练超参见图10。

1、SOTA对比

我们按照模型计算量的维度,调整GFPN的深度和宽度(通道数),给出了不同大小的GiraffeDet模型,并与同计算量级别的目标检测网络进行了对比,结果见图11。可以看到,1)与resnet-based的方法相比,我们的方法在检测小目标(AP_s)和大目标(AP_l)下具有显著的性能提升,说明GiraffeDet在应对large scale-variation的问题上具有更好的效果。2) 与大FLOPs量级的ResNext-based方法对比上,GiraffeDet具有更高的性能,这说明在目标检测上,一个好的heavy-neck设计比heavy-backbone的设计更重要。3) 在不同FLOPs量级下与其他方法相比,我们提出的GiraffeDet模型也能够取得更高的精度,达到SOTA。搭配Multi-Scale Testing, GiraffeDet能够取得54.1%mAP。其中小尺度AP提升2.8%,大尺度AP提升2.3%,均高于中尺度的1.9%提升。

图11. SOTA表

我们也针对不同尺度的目标进行了对比,如图12所示。可以看到, GiraffeDet在不同像素尺度范围均取得了最佳性能,这意味着:轻骨干+重Neck的设计可以更有效的解决大尺度变化问题。同时,受益于跳层与跨尺度连接,高层语义信息与底层空域信息可以进行更充分的信息交互。

图12. 不同目标尺度对比

2、消融实验

1)GFPN连接对比

图13. 不同skip连接对比

Skip-Layer Connection: 从图13可以看到,GFPN-log2n取得了最优的结果,同时GFPN-dense略优于GFPN w/o skip。表明log2n-link能够提供更有效的信息传输和特征复用,而dense-link可能存在冗余的信息传输,并且,log2n-link能够在相同FLOPs量级下提供相比于dense-link更深的GFPN。值得注意的是,不同连接的GFPN都能够取得比FPN、PANet、BiFPN简单堆叠更高的性能,说明我们提出的GFPN在目标检测任务上是更有效的。

Cross-Scale Connection: 从图13可以看到,具有双向信息传输的PANet、BiFPN相比于单向信息传输的FPN能够取得更高的性能,表明在neck中充分的信息交互是必要的。而GFPN取得了更好的性能,这证明我们提出的Queen-Fusion可以做到充分的不同尺度特征图的信息交互,值得注意的是,在没有skip-layer connection的情况下,我们的GFPN仍然优于其他方法。

2)GFPN深度、宽度对比

图14. 不同深度、宽度对比

从图14能够看到,保证网络同量级FLOPs下,我们提出的GFPN在深度、宽度两个层面均优于其他的neck结构,表明log2n-link和Queen-fusion能够有效地提供信息传输和不同尺度特征信息的融合。

3)不同backbone和neck计算量比例

图15. Backbone/neck不同比例

在同FLOPs量级下,图15比较了不同backbone/Neck计算量比例设置下的模型性能,可以看到:1)S2D-chain+GFPN的组合取得了优于其他骨干的性能,这验证了我们的假设:相比常规骨干,FPN对于检测性能更重要;2)ResNet+GFPN组合时,伴随骨干部分变大,模型的性能会下降。我们认为:这可能源自于域漂移问题。

4)GFPN+DCN

图16. S2D Chain+GFPN_DCN

图17. R2-101-DCN + GFPN

Deformable Convolution Network(DCN)[3]被广泛应用在backbone上来提升检测性能。从图16实验中我们能够看到,DCN应用在GFPN上也能够显著提升检测网络的性能,表明GFPN也能够和目前通用可提升检测性能的toolkits组合。图17实验给出了强backbone+GFPN的实验,结果表明单纯使用GFPN替换原始FPN也能在原有SOTA baseline上取得性能提升,且随着GFPN深度提升,模型性能可进一步增加。

5)latency比较

图18. 推理时间比较

图18给出了同等FLOPs水平下所提GiraffeDet与ResNet-FPN-GFocalV2的速度-性能对比,从中可以看到:1)GiraffeDet取得了显著性能提升,同时具有相近的推理速度;2)以FPS作为参考,GiraffeDet的性能下降更慢。

6)standard backbone + GFPN

图19. Standard backbone + GFPN对比

图19对比了backbone为ResNet18时不同Neck的性能,可以看到:1) 在同等FLOPs水平下,所提GFPN具有比BiFPN更优的性能;2) 检测器性能会随GFPN的深度增加而进一步提升。

7)Qualitative Results

图20. 可视化结果

图20给出了不同检测网络检测结果的可视化对比,从中可以看到:GiraffeDet可以检测到更多实例,尤其在小目标检测方面表现更佳。这进一步验证了所提Light-backbone、Heavy-Neck架构在目标大尺度变化方面的优秀处理能力

四、结语

我们在本篇文章提出了GiraffeDet这一新的目标检测框架,将更多的计算量和关注度放在了进行特征融合的neck上,并极大缩减仅进行scale-decrease的backbone的计算量,大量对比实验证明了这一结构的有效性。希望我们的工作能够给目标检测领域提供一个新的模型设计的视角,并在此基础上做出更多的改进。

参考

[1] Singh B, Davis L S. An analysis of scale invariance in object detection snip[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 3578-3587.

[2] Huang G, Liu Z, Van Der Maaten L, et al. Densely connected convolutional networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 4700-4708.

[3] Dai J, Qi H, Xiong Y, et al. Deformable convolutional networks[C]//Proceedings of the IEEE international conference on computer vision. 2017: 764-773.

ICLR2022系列解读之三:一个新的目标检测网络结构范式GiraffeDet相关推荐

  1. CVPR2021|Anchor-free新玩法,一个head统一目标检测,实例分割,姿态估计三种任务...

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文转自小马哥@知乎,https://zhuanlan.zhihu.com/p/366651996. ...

  2. 同r做一个窗口_目标检测(Object Detection):R-CNN/SPPnet/R-FCN/Yolo/SSD

    这篇文章我是Survey目标检测(Object Detection)系列论文的一个总结. 包括R-CNN系列.SPP-net.R-FCN.YOLO系列.SSD.DenseBox等. 基本概念 目标识别 ...

  3. 自动驾驶采标系列四:基于激光雷达的目标检测方法

        标注猿的第55篇原创        一个用数据视角看AI世界的标注猿   上一篇文章我们讲了基于图像的目标检测技术,但对于标注人员来说这部分内容就相对比较难一些,只是作为一个了解就可以,但是如 ...

  4. 用PaddleDetection做一个完整的目标检测项目(上)

    文章转载自:微信公众号:飞桨PaddlePaddle的微信文章 原文章中由于排版问题,导致文字遮挡,不便阅读,因此对文章格式稍作更改,增加了一些关键词加粗,便于后续阅读. PaddleDetectio ...

  5. Python实现一个简单的目标检测

    Python实现一个简单的目标检测 相关介绍 实验环境 基本思路 代码实现 输出结果 相关介绍 选择性搜索(Select Search)算法属于候选区域算法,用分割不同区域的办法来识别潜在的物体.在分 ...

  6. Facebook发布Detectron2,下一个万星目标检测新框架

    作者 | CV君 来源 | 我爱计算机视觉(ID:aicvml) Detectron是Facebook于2018年发布的专注于目标检测的深度学习框架,基于Caffe2深度学习框架,实现了众多state ...

  7. AAAI 2019 论文解读 | 基于区域分解集成的目标检测

    作者丨文永亮 学校丨哈尔滨工业大学(深圳) 研究方向丨目标检测.GAN 本文解读的是一篇发表于 AAAI 2019 的 paper,文章提出了一种 R-DAD 的方法来对 RCNN 系列的目标检测方法 ...

  8. Grid R-CNN解读:商汤最新目标检测算法,定位精度超越Faster R-CNN

    作者 | 周强 来源 | 我爱计算机视觉 Grid R-CNN是商汤科技最新发表于arXiv的一篇目标检测的论文,对Faster R-CNN架构的目标坐标回归部分进行了替换,取得了更加精确的定位精度, ...

  9. 深度学习和目标检测系列教程 5-300:早期的目标检测RCNN架构

    @Author:Runsen 最早期的目标检测基于RCNN的算法,下面介绍RCNN的架构 RCNN架构 R-CNN 的目标是获取图像,并正确识别图片中的主要对象(通过边界框)的位置. 输入:图像: 输 ...

最新文章

  1. ALSM_EXCEL_TO_INTERNAL_TABLE
  2. 视图、触发器、事务、存储过程、函数
  3. python sort 多级排序_sort、sorted排序技巧(多级排序)
  4. Vue项目端口号占用
  5. WPF中的命令(Command)
  6. 感染EXE文件代码(C++)
  7. 求输入的单词个数(单词间用空格隔开 不限空格个数) 首尾不能用空格
  8. 存储高手速成:推荐10个存储技术网站和论坛
  9. Linux Socket学习(五)
  10. putty远程连接以及密钥
  11. 主数据管理功能模块、实施、提供厂商
  12. uniApp微信小程序获取当前用户手机号码(前端)
  13. MyBatis中mapper.xml其属性resultSets的作用及研究
  14. 12306html布局,12306无法登陆怎么办
  15. Discuz采集之Discuz论坛采集全网文章采集伪原创发布方法(图文)
  16. 计算圆周率可以根据公式如下:请利用Python提供的itertools模块,我们来计算这个序列的前N项和——python
  17. Javascript技巧(230个)[转载]
  18. 核心函数--少儿编程
  19. 计算机编码种类(ASCII/gbk/unicode/utf-8)
  20. 解决win10内存占用逐渐变大(亲测有效)

热门文章

  1. Go 学习之旅之-- Chanel
  2. Typora 破解版 Mac自取
  3. 数据结构-第二章(5)-链式存储结构
  4. 利用canvas实现钟表效果
  5. SonarQube 9.x集成Jenkins生成PDF扫描报告并通过邮件附件的方式发送;
  6. linux中的当前命令,Linux中查询当前用户的命令总结
  7. 网上拍卖系统 /竞拍系统/在线拍卖系统
  8. adsi在计算机网络中是什么意思,ADSI是什么意思
  9. 站在产业制高点去眺望远方
  10. CUDA和Compute Capability