网站首页 > 技术文章 正文
往期的文章里,我们介绍了分类模型EfficientNet 【AI论技】EfficientNet的原理和应用
由谷歌大脑实验室提出的目标检测网络EfficientDet也非常优秀。该模型是以EfficientNet为骨架网络,并沿用了其compound scaling方法,在目标检测任务中实现了精度和速度的极佳平衡。
本文作者Eddie
品览视觉算法研究员
密歇根大学安娜堡分校硕士
两年AI算法经验
EfficientDet概述
说到新一代的高性能目标检测网络,除了Yolo系列外,谷歌大脑实验室提出的EfficientDet模型[1]也非常优秀。该模型是以分类模型EfficientNet为骨架网络,并沿用了其compound scaling方法[10],在目标检测任务中实现了精度和速度的极佳平衡。由于模型不包含RoI(Region of Interest)推理模块,EfficientDet仍然属于one-stage检测器。相比two-stage检测器(比如Fast-RCNN系列),one-stage检测器结构简单,推理速度快。在模型设计上,EfficientDet仍然采取了“特征抽取backbone + 多尺度feature融合 + box/class预测”的架构,这种架构与RetinaNet和Yolo等主流one-stage检测模型是相似的。
图1. EfficientDet的模型架构[1]。使用了EfficientNet作为特征抽取backbone,然后用BiFPN网路把不同尺寸的特征加权融合,最后通过输出层预测物体的box和class。
EfficientDet系列包含D1~D7七个模型,序号越大表示模型的算力消耗和参数量越大,但精确度越高。EfficientDet-D7在COCO数据集上取得了53.7的mAP(论文发表时的mAP是52.2,后来被研究者又提升到了53.7,见官方源码[7]),在COCO数据集的精确度排行榜上稳居前三。在耗时上,EfficientDet的性价比也很高。最轻的EfficientDet-D0的精确度略高于YoloV3,但是FLOPS(floating point operations per second, 用来衡量计算量的参数)只有YoloV3的二十八分之一。
此外,EfficientDet具有的简洁漂亮的模型结构,独具特色的特征融合方法,系统高效的模型扩增方法等众多可圈可点之处,给这个系列带来了长足的潜力。
图2. EfficientDet与其他检测模型的性能对比[1]。这里没有包括YoloV4, DetecoRS等2020年中旬才提出的最新检测模型。
多尺度特征融合
目标检测的一大难点就是克服不同物体的尺寸差异。比如COCO数据集中物体的尺寸就非常不平衡,而且包含大量小尺寸物体,为高精度的目标检测带来了很大的难度。因此早期的目标检测任务中,对输入图片采用了图像金字塔采样的方法,确保模型可以较好地识别出不同尺寸的物体(FPN的论文[2]中有相应的回顾)。然而这个方法大幅增加了推理耗时,也没有用到CNN模型天然的特征多尺度性(深层feature map比浅层feature map的长宽要小,但通道数更多)。
为了利用到CNN中的多尺度特征,SSD模型[3]通过skip-layer-architecture,将骨架网络VGG中最后几个block的输出feature map各自取出分别预测物体的box和class,再把每个尺度feature map的物体检测结果stack在一起。这使得SSD取得了超过YoloV1的精度和速度。
进一步提高模型的精度不单单需要用到多尺度特征,还需要将不同尺度的特征高效融合。FAIR实验室于2017年提出的FPN网络(Feature Pyramid Network),将从backbone网络取出的不同尺寸特征图,用包含cross-scale connection的CNN网络进行重组。具体的做法是把用1x1卷积和上采样把两个feature map的通道数和长宽转化为相同后,再把两个feature map相加。FPN在COCO数据集上将Faster-RCNN模型的mAP提升了8个点。之后沿用到RetinaNet[4]中也取得了很好的效果。自此以后,FPN及其衍生出的结构成为了目标检测模型中的一大常用结构。
图3. FPN结构图[3]
BiFPN结构
FPN中只有top-down流向的信息通路,即把深层的小尺寸特征图上采样后与浅层的大尺寸特征图融合。PA-Net[5]和NAS-FPN[6]加入了把浅层大尺寸特征下采样后与深层小尺寸特征进行融合的bottom-up通路,进一步提升了精度。EfficientDet借鉴了PA-Net的思路,提出了独具特色的BiFPN结构。
图4. BiFPN与其他特征融合网络的结构对比[1]
具体做法是在PA-Net中的第一层中只保留输入边和输出边个数都为2的节点,在第二层中的每个节点增加一条来自相同层级的原始特征图的输入边。相比PA-Net, BiFPN的结构更加紧凑,特征融合效率更高。同时,研究者对每个特征图的融合权重做了快速正则化(Fast normalized fusion),增加了融合过程中稳定性(这里推荐看一下原始论文)。
模型扩展
研究者基于启发式(heuristic)的参数,决定了EfficientDet中轻型模型和重型模型在图片分辨率,通道数和模型深度方面的递增关系。
图5. EfficientDet D0~D7的分辨率,模型宽度,模型深度的递增关系[1]
这种方法通过均匀地增大分辨率,模型宽度和模型深度,使得模型尽可能以最小的FLOPs增加带来最大的精度提升。从EfficientDet D0~D6上模型每升一级,FLOPS大约增加一倍,但是精度提升明显。比如D2~D3,FLOPS从11 billion增加大25 billion提升了2.27倍(近似2倍),但COCO测试集上的mAP提升了2.8个点。
图6. EfficientDet D0~D7的性能对比[1]
最轻的EfficientDet-D0的mAP与YoloV3相当,但FLOPs只有不到二十分之一。最深的EfficientDet-D7的mAP可以达到52.2(目前这一mAP已被提高到53.7)。
5
总结
根据谷歌在efficientDet开源实现上给出的数据[7],在tesla-v100上,EfficentDet-D0的单张推理速度可以达到97FPS,EfficientDet-D4的单张推理速度可以达到24FPS(且COCO测试集上的mAP高达49.4)。
在这个基于深度学习的检测模型百花齐放的年代, EfficientDet也遇到了的大量对手。2020年中旬提出的DetectoRS模型[8],目前在COCO数据集上占据榜首(mAP高达54.7);2020年4月提出的YoloV4模型[9],在COCO数据集上的mAP达到43.5,而FPS高达65。值得注意的是,YoloV4中仍然采取了PA-Net进行多尺度特征融合,可提升之处还是很大的。
总体而言,EfficientDet系列结构简洁,模型拓展高效,具备很高的性能和发展潜力。
参考文献:
[1]. Mingxing Tan Ruoming Pang Quoc V. Le, EffificientDet: Scalable and Effiicient Object Detection
[2]. Tsung-Yi Lin, Piotr Dollar , Ross Girshick, Kaiming He, Bharath Hariharan, and Serge Belongie, Feature Pyramid Networks for Object Detection
[3]. W. Liu, D. Anguelov, D. Erhan, C. Szegedy, and S. Reed., SSD: Single shot multibox detector
[4]. Tsung-Yi, Lin Priya Goyal, Ross Girshick, Kaiming He , and Piotr Dollar, Focal Loss for Dense Object Detection
[5]. Shu Liu, Lu Qi, Haifang Qin, Jianping Shi, and Jiaya Jia., Path aggregation network for instance segmentation.
[6]. Golnaz Ghiasi, Tsung-Yi Lin, Ruoming Pang, and Quoc V. Le. Nas-fpn, Learning scalable feature pyramid architecture for object detection.
[7]. 谷歌基于tensorflow的efficientDet的开源实现:
https://github.com/google/automl/tree/master/efficientdet
[8]. Siyuan Qiao, Liang-Chieh Chen, Alan Yuille, DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution
[9]. Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao, YOLOv4: Optimal Speed and Accuracy of Object Detection
[10]. Mingxing Tan, Quoc V. Le, EffificientNet: Rethinking Model Scaling for Convolutional Neural Networks
品览Pinlan是AI物品识别专家,我们的产品结合了AI的认知识别能力,Cloud的强劲算力,IoT的边缘支持。我们的使命是让物品识别能力无处不在,赋能星球上的每一个企业与个体。在AI应用领域,团队服务过欣和集团、上汽集团、顶新集团(味全)、Farfetch、自如、英德知、河南中烟等客户。我们同全球顶级合作伙伴微软,企业微信,百度AI大脑等一起为企业客户提供AI巡店通,AI亿览通,小览机器人以及品识-AI商品识别平台产品服务。
猜你喜欢
- 2024-11-07 谷歌AI公开新一代“目标检测”系统
- 2024-11-07 NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 2024-11-07 学会这招,再也不怕下载大文件失败了
- 2024-11-07 Gemini 目标检测能力实测 目标检测nms
- 2024-11-07 2024 年十大物体检测模型 物体检测算法的源代码
- 2024-11-07 基于改进EfficientDet的电力元件及缺陷智能检测方法研究
- 2024-11-07 应用efficientdet-tf2目标检测算法进行深度学习和目标预测
- 2024-11-07 EfficientDet目标检测谷歌官方终于开源了!
- 2024-11-07 手把手教物体检测——EfficientDet
- 2024-11-07 比当前SOTA小4倍、计算量少9倍,谷歌最新目标检测器EfficientDet
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)