谷歌最新目标检测器EfficientDet

 论文EfficientDet:Scalable and Efficient Object Detection

论文链接:https://arxiv.org/abs/1911.09070

民间实现代码:https://github.com/toandaominh1997/EfficientDet.Pytorch

https://github.com/zylo117/Yet-Another-EfficientDet-Pytorch

谷歌大脑 Mingxing Tan、Ruoming Pang 和 Quoc V. Le 提出新架构 EfficientDet,结合 EfficientNet(同样来自该团队)和新提出的 BiFPN,实现新的 SOTA 结果(同时满足高精度和高效率)。

在计算机视觉领域,模型效率的重要性越来越高。近日,谷歌大脑团队 Quoc V. Le 等人系统研究了多种目标检测神经网络架构设计,提出了能够提升模型效率的几项关键优化。首先,他们提出加权双向特征金字塔网络(weighted bi-directional feature pyramid network,BiFPN),从而轻松、快速地实现多尺度特征融合;其次,他们提出一种复合缩放(compound scaling)方法,同时对所有主干网络、特征网络和边界框/类别预测网络的分辨率、深度和宽度执行统一缩放。

基于这些优化,研究者开发了新型目标检测器 EfficientDet。在广泛的资源限制下,这类模型的效率仍比之前最优模型高出一个数量级。具体来看,结构简洁只使用了 52M 参数、326B FLOPS 的 EfficientDet-D7 在 COCO 数据集上实现了当前最优的 51.0 mAP,准确率超越之前最优检测器(+0.3% mAP),其规模仅为之前最优检测器的 1/4,而后者的 FLOPS 更是 EfficientDet-D7 的 9.3 倍。

下图展示了多个模型在 COCO 数据集上的性能对比情况。在类似的准确率限制下,EfficientDet 的 FLOPS 仅为 YOLOv3 的 1/28、RetinaNet 的 1/30、NASFPN 的 1/19。

近来研究高效目标检测算法主要有one-stage、anchor-free、model compress等,这些方法提高了效率但同时也降低了精度。我们常常有一个概念,SSD 等单阶段目标检测器很快,但准确性比不上 Mask R-CNN 等两阶段目标检测器,尽管两阶段目标检测推断速度要慢许多。那么有没有一种兼顾两者的目标检测器?设计这样的检测器又会出现什么挑战?这就是该论文作者所关心的。

近年来,在实现更准确的目标检测方面出现了大量进展,然而当前最优目标检测器的成本也越来越高昂。例如,近期提出的基于 AmoebaNet 的 NASFPN 检测器需要 167M 参数和 3045B FLOPS(是 RetinaNet 的 30 倍)才能获得当前最优准确率。大模型规模和昂贵的计算成本阻碍了它们在一些现实世界应用中的部署,例如模型规模和延迟高度受限的机器人、自动驾驶汽车等应用。由于这些现实世界的资源限制,模型效率对于目标检测的重要性越来越高。

这篇论文系统性地研究了多种检测器架构设计,试图解决该问题。基于单阶段检测器范式,研究者查看了主干网络、特征融合和边界框/类别预测网络的设计选择,发现了两大主要挑战:

挑战 1:高效的多尺度特征融合。尽管大部分之前工作融合了不同的输入特征,但它们仅仅是不加区分地将其汇总起来。而由于这些输入特征的分辨率不尽相同,它们对输出特征的贡献也不相等。

应对方法:研究者提出一种简单高效的加权双向特征金字塔网络(BiFPN),该模型引入了可学习的权重来学习不同输入特征的重要性,同时重复应用自上而下和自下而上的多尺度特征融合。

挑战 2:模型缩放。尽管之前研究主要依赖大型主干网络或者较大的输入图像规模,但研究者发现,在同时考虑准确率和效率的情况下,扩大特征网络和边界框/类别预测网络非常关键。

应对方法:结合谷歌大脑之前的文章EfficientNet,本文在此基础上提出目标检测模型复杂度联合缩放方法,统一扩大backbone、FPN、边界框/类别预测网络的depth、width、resolution。

BiFPN

传统的top-down FPN只有自顶向下单向信息流,PANet增加了自底向上的信息流,NAS-FPN通过大量计算和搜索有更复杂的信息流。本文对不同FPN实验发现,PANet的效果最佳,但参数量计算量也较大(见后文Ablation实验)。本文在PANet的基础上提出三步优化[2]

1)去掉没有进行融合的单一特征图参数学习(其背后的想法很简单:如果一个节点只有一个输入边没有特征融合,则它对特征网络的贡献较小;

2)同一层中增加从原始节点到输出节点的边,从而在不增加大量成本的情况下融合更多特征;

3)与只有一条自上而下和自下而上路径的 PANet 不同,研究者将每个双向路径(自上而下和自下而上)作为一个特征网络层,并多次重复同一个层,以实现更高级的特征融合。

 

Weighted Feature Fusion

在融合不同分辨率的输入特征时,常见的方法是先将其分辨率调整至一致再相加。金字塔注意力网络(pyramid attention network)引入了全局自注意力上采样来恢复像素定位,这在 [5] 中有进一步研究。

之前的特征融合方法对所有输入特征一视同仁,不加区分同等看待。但是,研究者观察到,由于不同输入特征的分辨率不同,它们对输出特征的贡献也不相等。为解决该问题,研究者提出在特征融合过程中为每一个输入添加额外的权重,再让网络学习每个输入特征的重要性。

整体框架设计沿用RetinaNet,backbone采用EfficientNet,FPN替换成堆叠的BiFPN,并使用共享的边界框/类别预测网络,框架如图:

复合缩放

结合EfficientNet中提出的联合调整策略,本文提出目标检测框架的联合调整策略,用复合系数φ统一调整目标检测的backbone、BiFPN层数、prediction网络以及分辨率。和EfficientNet不同,由于参数多采用网格搜索计算量大,本文采用启发式的调整策略。

实验

研究者在 COCO 2017 检测数据集上对 EfficientDet 进行评估。EfficientDet 模型是使用批大小 128 在 32 块 TPUv3 芯片上训练而成的。

小网络EfficientDet-D0和YOLOv3差不多精度,计算量少28倍;EfficientDet-D1和RetinaNet、MaskRCNN差不多精度,参数量少8倍,计算量少25倍。总的来说,EfficientDet精度速度双丰收,最高精度达到51.0 mAP,登顶COCO检测榜单。

表1 EfficientDet 在 COCO 数据集上的性能

由于 EfficientDet 既使用了强大的主干网络又应用了新型 BiFPN,研究者想了解这两个网络对准确率和效率提升的贡献。分别替换EfficientNet和BiFPN,结果看出两者都显著提升mAP。

表2 第一行是标准的 RetinaNet (ResNet50+FPN),研究者首先将其主干网络替换为 EfficientNet-B3(第二行),然后将基线 FPN 替换成 BiFPN(第三行)。

将各种FPN堆叠5层,对比看出设计的BiFPN和PANet效果相当,使用更少的参数量和计算量,使用学习的加权和会有一点提升。

表 3  不同跨尺度连接时模型的准确率和复杂度。

研究者使用复合缩放方法,统一扩大主干网络、BiFPN 和边界框/类别预测网络的所有维度——深度/宽度/分辨率。下图对比了该复合缩放方法和其他仅扩大其中一个维度的方法。

 

参考博客:

https://baijiahao.baidu.com/s?id=1651514751262272881&wfr=spider&for=pc

https://zhuanlan.zhihu.com/p/93346058

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值