EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

   2023-03-08 学习力1009
核心提示:EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)昨天收录于话题3 12 51 4 29欢迎关注“计算机视觉研究院”计算机视觉研究院专栏作者:Edison_G疫情以来,已经被研究出很多高效高精度的框架,在深度学习领域,模型效

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

昨天
EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)欢迎关注“计算机视觉研究院
EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

计算机视觉研究院专栏

作者:Edison_G

疫情以来,已经被研究出很多高效高精度的框架,在深度学习领域,模型效率也是越来越重的一个研究课题。不仅仅停留在训练的提速,现在推理应用的速度更加关键。因此,现在很多研究趋势朝着更高效更小型化发展
今天应粉丝同学们的要求,再次以详细说说EfficientDet框架。

 

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

 

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

1.摘要模型效率在计算机视觉领域中越来越重要。作者研究了神经网络结构在目标检测中的设计选择,并提出了提高检测效率的几个关键优化方案。首先提出了一种加权双向特征金字塔网络(BiFPN),该网络能够方便、快速的进行多尺度特征融合;其次,提出了一种混合缩放方法,可以同时对所有主干网络、特征网络以及最后的预测网络(boxes/classes)的分辨率、深度和宽度进行均匀缩放。特别地,是在单模型和单比例尺的情况下,EfficientDet-D7在52M参数和325B FLOPs的情况下,实现了map在 COCO数据集的最高水平(52.2),比之前最好的检测器更小,使用更少的FLOPs(325B),但仍然更准确(+0.2% mAP)。2.背景

近年来,在更精确的目标检测方面取得了巨大的进展;同时,最先进的物体探测器也变得越来越昂贵(消耗)。例如,最新的基于AmoebaNet-based NAS-FPN检测器[Barret Zoph, Ekin D. Cubuk, Golnaz Ghiasi, Tsung-Yi Lin, Jonathon Shlens, and Quoc V. Le. Learning data aug- mentation strategies for object detection. arXiv preprint arXiv:1804.02767, 2019]需要167M参数和3045B FLOPs(比RetinaNet多30倍)才能达到最先进的精度。大型的模型尺寸和昂贵的计算成本阻止了他们在许多现实世界的应用,如机器人和自动驾驶,其中模型大小和延迟受到高度限制。鉴于这些现实世界的资源约束,模型效率对于目标检测变得越来越重要。

一个自然的问题是:是否有可能在广泛的资源约束(例如从3B到300B FLOP)中建立一个具有更高精度和更高效率的可伸缩检测体系结构? 作者旨在通过系统研究检测器结构的各种设计选择来解决这一问题。基于one- stage detector paradigm,研究了主干网络、特征融合和类/box网络的设计选择,并确定了两个主要挑战:

挑战1:高效的多尺度特征融合    自[Tsung-Yi Lin, Piotr Dolla ́r, Ross Girshick, Kaiming He, Bharath Hariharan, and Serge Belongie. Feature pyramid networks for object detection. CVPR, 2017]引入以来,FPN已被广泛应用于多尺度特征融合。最近,PANET、NAS-FPN和其他研究开发了更多的跨尺度特征融合网络结构。在融合不同的输入特征的同时,大多数以前的工作只是不加区分地总结它们;然而,由于这些不同的输入特征具有不同的分辨率,我们观察到它们通常对融合的输出特征作出不平等的贡献。为了解决这一问题,作者提出了一个简单而高效的加权双向特征金字塔网络(BiFPN),它引入可学习的权重来学习不同输入特征的重要性,同时反复应用自顶向下和自底向上的多尺度特征融合。

挑战2:模型缩放   虽然以前的工作主要依靠更大的主干网络[如:Joseph Redmon and Ali Farhadi. Yolov3: An incremental improvement. arXiv preprint arXiv:1804.02767, 2018;Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. Faster r-cnn: Towards real-time object detection with region proposal networks. NIPS, 2015]或更大的输入图像大小[Kaiming He, Georgia Gkioxari, Piotr Dolla ́r, and Ross Girshick. Mask r-cnn. ICCV, pages 2980–2988, 2017]来获得更高的精度,但我们观察到,在考虑精度和效率时,扩展特征网络和框/类预测网络也是至关重要的。 在最近的工作[Mingxing Tan and Quoc V. Le. Efficientnet: Rethinking model scaling for convolutional neural networks. ICML, 2019]的启发下,作者提出了一种目标检测器的复合缩放方法,它联合缩放所有主干网络、特征网络、框/类预测网络的分辨率/深度/宽度。

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

最后,我们还观察到,最近引入的Efficientnet比以前使用的主干网获得了更好的效率。将有效的网络骨架与作者提出的BiFPN和复合缩放相结合,开发了一个新的目标检测器集合,称为EfficientDet,它始终以比以前的目标检测器更少的参数和FLOPs来获得更好的精度。在类似的Accuracy约束下,EfficinetDet使用的FLOPS比YOLOv3少28倍,比RetinaNet少30倍,FLOPs比最近基于ResNet的NAS-FPN少19倍。 特别是,在单模型和单一测试时间尺度下,EfficinetDet-D7实现了最先进的52.2AP,具有52M参数和325B FLOPs,在1.5AP的情况下优于预期的最佳检测器[Barret Zoph, Ekin D. Cubuk, Golnaz Ghiasi, Tsung-Yi Lin, Jonathon Shlens, and Quoc V. Le. Learning data aug- mentation strategies for object detection],同时更小4倍,使用13倍的FLOPs。EfficinetDet检测器在GPU/CPU上的速度也比以前的检测器快3倍至8倍。

3.BiFPN

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

CVPR 2017的FPN指出了不同层之间特征融合的重要性,并且以一种比较简单,Heuristic的方法把底层的特征乘两倍和浅层相加来融合。之后人们也试了各种别的融合方法,比如PANet先从底向上连,再自顶向下连回去;NAS-FPN通过搜索找到一种不规则的连接结构。总之上述都是一些人工各种连接的设计,包含Conv,Sum,Concatenate,Resize,Skip Connection等候选操作。很明显使用哪些操作、操作之间的顺序是可以用NAS搜的。进入Auto ML时代之后,NAS-FPN在前,搜到了一个更好的 neck部分的结构。
  • PANet效果好于FPN和NAS-FPN,计算代价也更高;
  • 如果一个结点本身没有融合的特征,那么对以特征融合为目标的结构贡献就不大,所以PANet中移除了P3,P7的中间结点;

     

    EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

  • 同一尺度的输入和输出又加了一个连接,因为计算量不大,得到上图(d);
  • 上图(d)中虚线框内作为一层,会重复多次以得到high-level feature fusion。

加权融合

当融合具有不同分辨率的特征时,一种常见的方法是首先将它们调整到相同的分辨率,然后对它们进行融合。金字塔注意网络[Hanchao Li, Pengfei Xiong, Jie An, and Lingxue Wang. Pyramid attention networks. BMVC, 2018]引入全局自注意上采样来恢复像素定位,在[Golnaz Ghiasi, Tsung-Yi Lin, Ruoming Pang, and Quoc V. Le. Nas-fpn: Learning scalable feature pyramid architecture for object detection. CVPR, 2019]中进一步研究。以前的所有方法都一视同仁地对待所有输入特性。 然而,我们观察到,由于不同的输入特征具有不同的分辨率,它们通常对输出特征的贡献是不平等的。 为了解决这个问题,作者建议为每个输入增加一个额外的权重,并让网络学习每个输入特性的重要性。 基于这一思想,考虑了三种加权融合方法。

① Unbounded fusion

 

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

我们发现一个尺度可以达到与其他方法相当的精度,以最小的计算成本。然而,由于标量权重是无界的,它可能会导致训练不稳定。因此,作者采用权重归一化来约束每个权重的值范围。

② Softmax-based fusion

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

 

一个直观的想法是将softmax应用于每个权重,这样所有权重都被归一化为一个值范围为0到1的概率,表示每个输入的重要性。然而,如下文的ablation研究所示,额外的Softmax导致GPU硬件的显著减速。 为了最小化额外的延迟成本,作者进一步提出了一种快速融合方法。

 

③ Fast normalized fusion

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

同样,每个归一化权重的值也在0到1之间,但由于这里没有Softmax操作,所以效率要高得多。ablation研究表明,这种快速融合方法与基于Softmax的融合具有非常相似的学习行为和准确性,但在GPU上运行速度高达30%(如下表6)。

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

最终BiFPN集成了双向跨尺度连接和快速归一化融合。作为一个具体的例子,描述了上图(d)所示的BiFPN在level 6的两个融合特征。

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

4.EfficientDet

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

Compound Scaling

 

backbone: 

作者重用了EfficientNet-B0到B6的相同宽度/深度缩放系数,因此可以轻松地重用ImageNet预训练的检查点。

BiFPN network:

作者将线性增加BiFPN深度(#layers),因为深度需要四舍五入为整数。对于BiFPN宽度(#channels),将BiFPN宽度指数增长,类似于EfficientNet。在值列表{1.2、1.25、1.3、1.35、1.4、1.45}上,并选择最佳值1.35作为宽度尺度因子。BiFPN的宽度和深度通过以下公式缩放:

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

 

Box/class prediction network:

作者将它们的宽度固定为与BiFPN相同,但使用方程线性增加深度:

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

 

Input image resolution:

由于在BiFPN中使用了特征level3-7,所以输入分辨率必须可分2^7=128,所以作者用方程线性地增加分辨率:

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

在具有不同φ的方程之后,作者开发了EfficientDet-D0(φ=0)到D7(φ7),如下表所示,其中D7与D6相同,但分辨率较高。值得注意的是,作者的缩放是基于启发式的,可能不是最优的,但这种简单的缩放方法可以显著提高效率,相比下图中的其他单维缩放方法。

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

实践 | 目前最快精度最高检测框架(EfficientDet)

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)© THE END我们开创“计算机视觉协会”知识星球一年有余,也得到很多同学的认可,我们定时会推送实践型内容与大家分享,在星球里的同学可以随时提问,随时提需求,我们都会及时给予回复及给出对应的答复。

EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

如果想加入我们“计算机视觉研究院”,请扫二维码加入我们。我们会按照你的需求将你拉入对应的学习群!
计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!



EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)

扫码关注我们

公众号 : 计算机视觉研究院

扫码回复:efficientdet,获取下载链接

1135
 
13
 
EfficientDet框架详解 | 目前最高最快最小模型,可扩缩且高效的目标检测(附源码下载)
写下你的留言
 
反对 0举报 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • 目标检测(R-CNN)和实例分割 mask R-CNN
    目标检测(R-CNN)和实例分割 mask R-CNN
    目标检测•   RCNN        RCNN(Regions with CNN features)是将CNN方法应用到目标检测问题上的一个里程碑,由年轻有为的RBG大神提出,借助CNN良好的特征提取和分类性能,通过RegionProposal方法实现目标检测问题的转化。        算法可以分为
    03-08
  • 目标检测综述 目标检测综述2022
    目标检测综述 目标检测综述2022
    目标检测的综述~总体介绍  目标检测是计算机视觉里面十分重要的任务,其主要解决检测在数字图像中某一类别可见的实例。最终的目的是为了开发一种计算模型和技术,来提供计算机视觉应用所需要的一个基础的信息即:目标在哪?  作为计算机视觉中众多基础问
    03-08
  • YOLOV3目标检测模型训练实例 yolo5目标检测
    YOLOV3目标检测模型训练实例 yolo5目标检测
    从零开始学习使用keras-yolov3进行图片的目标检测,比较详细地记录了准备以及训练过程,提供一个信号灯的目标检测模型训练实例,并提供相关代码与训练集。DEMO测试YOLO提供了模型以及源码,首先使用YOLO训练好的权重文件进行快速测试,首先下载权重文件https:
    03-08
  • 10行Python代码实现目标检测
    10行Python代码实现目标检测
    要知道图像中的目标是什么?或者你想数一幅图里有多少个苹果?在本文中,我将向你展示如何使用Python在不到10行代码中创建自己的目标检测程序。如果尚未安装python库,你需要安装以下python库:opencv-pythoncvlibmatplotlibtensorflow下面的代码导入所需的pytho
    03-08
  • 目标检测中的AP计算 目标检测precision计算
    目标检测中的AP计算 目标检测precision计算
    转载自:https://blog.csdn.net/lppfwl/article/details/108018950目标检测中的AP计算最近在学习目标检测,对模型评价指标AP的计算过程有点疑问,经过查找资料、问师兄,最终算是有了一个相对明确的了解,特此记录一下,方便以后查看,不足之处还请大家批评指
    03-08
  • 目标检测数据集分析 目标检测数据预处理
    目标检测数据集分析 目标检测数据预处理
    目录目标检测数据集分析图片数量、标注框数量、类别信息所有图片宽度和高度的散点图所有标注框宽度和高度的散点图标注框宽度和高度之比每一类的标注框数量每一类图片数量每一张图片上的标注框数量不同尺寸的图片数量每一类标注框的宽度高度散点图使用方法Inst
    03-08
  • 目标检测框回归问题
    本文转自知乎,作者mileistone,已获作者授权转载,请勿二次转载。https://zhuanlan.zhihu.com/p/330613654目标检测模型训练的时候有两个任务,框分类(框里是什么)和框回归(框在哪),本文主要讲第二点。框回归可以分为两大类,基于x,y,w,h的回归(比如
    03-08
  • 目标检测算法-Mask-RCNN 目标检测算法的主要目的是找到图像中用户感兴趣的
    目标检测算法-Mask-RCNN 目标检测算法的主要目
    Mask_RCNN是何凯明基于以往的faster-rcnn构架提出的新的卷积网络,该方法再有效的目标的同时完成了高质量的语义分割。主要思路就是把原有的faster-rcnn进行扩展,添加一个分支使用现有的检测对目标进行并行预测,可以很方便的应用其他的应用领域,向目标检测
    03-08
  • 手机端 19FPS 的实时目标检测算法:YOLObile
    手机端 19FPS 的实时目标检测算法:YOLObile
    本文转载自机器之心。本文提出了一套模型压缩和编译结合的目标检测加速框架,根据编译器的硬件特性而设计的剪枝策略能够在维持高 mAP 的同时大大提高运行速度,压缩了 14 倍的 YOLOv4 能够在手机上达到 19FPS 的运行速度并且依旧维持 49mAP(COCO dataset)的
    03-08
  • 复旦大学Ph.D沈志强:用于目标检测的DSOD模型
    复旦大学Ph.D沈志强:用于目标检测的DSOD模型
    复旦大学Ph.D沈志强:用于目标检测的DSOD模型 玄学酱 2017-10-24 09:59:00 浏览1318深度学习 性能 HTTPS github 目标检测作为一个基础的计算机视觉任务,在自动驾驶、视频监控等领域拥有非常广泛的应用前景。目前主流的目标检测方法都严重依赖于在大规
    02-10
点击排行