EfficientDet系列(零)-EfficientDet算法解读

EfficientDet:Scalable and Efficient Object Detection

Google Brain团队的三位 Auto ML 大佬 Mingxing Tan, Ruoming Pang, Quoc V. Le 在 CVPR 2020 发表一篇文章 EfficientDet:Scalable and Efficient Object Detection,代码已经开源到了 Github

这篇工作可以看做是中了 ICML 2019 Oral 的 EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 的扩展,从分类任务扩展到检测任务 (Object Detection)。

众所周知,神经网络的速度和精度之间存在权衡,而 EfficientDet 是一个总称,可以分为 EfficientDet D1 ~ EfficientDet D7 ,速度逐渐变慢,但是精度也逐渐提高。

从下图可以看出,EfficentDet-D7 的性能非常的惊人:在326B FLOPS,参数量 52 M 的情况下,COCO 2017 validation 数据集上取得了 51.0 的 mAP,state-of-the-art 的结果。和 AmoebaNet + NAS-FPN 相比,FLOPS 仅为其十分之一的情况下取得了更好的结果。
在这里插入图片描述
这篇文章的主要贡献点是 BiFPN,Compound Scaling 两部分,会在下面一一介绍

BiFPN

在这里插入图片描述
CVPR 2017 的 FPN 指出了不同层之间特征融合的重要性,并且以一种比较简单,Heuristic 的方法把底层的特征乘两倍和浅层相加来融合。之后人们也试了各种别的融合方法,比如 PANet 先从底向上连,再自顶向下连回去;M2Det 在连的时候加入 skip-connection; Libra-RCNN 先把所有 feature 都汇聚到中间层,然后再 refine

总之上述都是一些人工连连看的设计,包含 Conv,Sum,Concatenate,Resize,Skip,Connection 等候选操作。很明显使用哪些操作、操作之间的顺序是可以用 NAS 搜的。进入 AutoML 时代之后,NAS-FPN 珠玉在前,搜到了一个更好的 neck 部分的结构。

本文的作者基于下面的观察结果/假设,进一步进行了优化:

  1. 作者观察到 PANet 的效果比 FPNNAS-FPN 要好,就是计算量很大;

参考1:EfficientDet 算法解读
参考2:【项目实践】EfficientDet原理讲解与目标检测项目实践

猜你喜欢

转载自blog.csdn.net/qq122716072/article/details/109283197