来自 科技 2021-06-22 00:10 的文章

纸镇是什么 比当前SOTA小4倍、计算量少9倍,谷歌最新目标检测器EfficientDet_模型

什么检测器能够兼顾准确率和模型效率?如何才能实现?最近,谷歌大脑 Mingxing Tan、Ruoming Pang 和 Quoc V. Le 提出新架构 EfficientDet,结合 EfficientNet(同样来自该团队)和新提出的 BiFPN,实现新的 SOTA 结果。

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

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

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

我们可以先看看效果

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

图 1:模型 FLOPS vs COCO 数据集准确率,所有数字均为单个模型在单一尺度下所得。EfficientDet 的计算量较其他检测器少,但准确率优于后者,其中 EfficientDet-D7 获得了当前最优性能。

具体而言,在都使用单个模型和单一测试时间尺度的前提下,EfficientDet-D7 以 52M 的参数量和 326B FLOPS,获得了当前最优性能 51.0 mAP,超出之前最优模型 0.3%,而且其规模和 FLOPS 分别是之前最优模型的 1/4 和 10.8%。此外,EfficientDet 模型在 GPU 和 CPU 上的计算速度分别是之前检测器的 3.2 倍和 8.1 倍,参见图 4 和表 2。

图 4:模型大小和推断延迟对比。延迟均为使用批大小 1 在同样的机器上测量得到(这些计算机均配备一块 Titan V GPU 和 Xeon CPU)。AN 表示使用自增强训练得到的 AmoebaNet + NAS-FPN。

目标检测能够既准确又快速吗?

我们常常有一个概念,SSD 等单阶段目标检测器很快,但准确性比不上 Mask R-CNN 等两阶段目标检测器,尽管两阶段目标检测推断速度要慢许多。那么有没有一种兼顾两者的目标检测器?设计这样的检测器又会出现什么挑战?这就是该论文作者所关心的。

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

已经有很多研究试图开发更高效的检测器架构,如单阶段检测器和 anchor-free 检测器,或者压缩现有模型。尽管这些方法可以实现更优的效率,但这通常是以准确率为代价的。此外,大部分之前研究仅关注某个或某些特定的资源要求,而大量现实应用(从移动设备到数据中心)通常具备不同的资源限制。

那么问题来了:在面对广泛的资源约束时(如 3B 到 300B FLOPS),构建兼具准确率和效率的可扩展检测架构是否可行?

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

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

})();