目录

  • EfficientDet:目标识别领域的 EfficientNet
    • 0、背景
    • 1、Bi-FPN
      • 1.1 加权特征融合
    • 2、EfficientDet
      • 2.1 整体架构
      • 2.2 复合缩放
    • 3、消融实验

EfficientDet:目标识别领域的 EfficientNet

阅读本文可能需要一些其他模型或算法方面的先验知识:

  • 对 FPN 特征金字塔网络要了解
  • 对 EfficientNet 分类模型架构要熟悉

Quoc Le 这个大神真是无处不在,NLP、CV 领域均可以看到他的影子,所以不同领域可能处理任务不同,在一些方法论上还是相通的。近日,这位大神在 Twitter 上发文中,提出了一种新的家族式目标检测算法,是基于 图片分类任务中的 EfficientNet 的,而且又是一篇 SOTA 论文,目前论文已公开,代码在路上。

看看下面这幅图,这种图往左上角瞅,越往左,计算量(FLOPS,每秒钟的浮点数计算量,FLOPs,浮点数计算量,实际此处 S 应为 s,这种针不必计较)越小,越往上 mAP(mean Average Precision,一种用于比较目标检测算法性能的指标,越大越好)越高。
【图 1】

我们先说结论,直接看论文摘要部分即可,作者提出两个方法:

  • BiFPN: 这个毋庸置疑,肯定是从 FPN 发展过来的,至于 Bi 就是双向,原始的 FPN 实现的自顶向下(top-down)融合,所谓的 BiFPN 就是两条路线既有 top-down 也有 down-top。

    • 在融合过程中,之前的一些模型方法没有考虑到各级特征对融合后特征的g共享度问题,即之前模型认为各级特征的贡献度相同,而本文作者认为它们的分辨率不同,其对融合后特征的贡献度不同,因此在特征融合阶段引入了 weight。
  • 复合缩放方法(compound scaling method):这个主要灵感来自于 EfficientNet,即在基线网络上同时对多个维度进行缩放(一般都是放大),这里的维度体现在主干网络、特征网络、以及分类/回归网络全流程的整体架构上
    • 整体网络由主干网络、特征网络以及分类/回归网络组成,可以缩放的维度比 EfficientNet 多得多,所以用网络搜索方式不合适了,作者提出一些启发式方法,可以参照论文的 Table 1。

0、背景

在简介部分,作者提出了一个“不要脸”的想法,“Is it possible to build a scalable detection architecture with both higher accuracy and better efficiency across a wide spectrum of resource constraints (e.g., from 3B to 300B FLOPS)?” 这句话翻译过来就是 “鱼与熊掌俺能兼得乎?”

要知道在此之前,实际目标检测算法家族已经提出了很多很多经典的算法,有 two-stage 方法的,主要是早期的一些算法,如 Fast R-CNN、Faster R-CNN,一般检测精度较高但速度慢,为了加快速度,后来逐步发展为 one-stage,从 RoI 的提取到识别检测全部融合在一个框架下,实现 end to end,加快检测速度,但一般是以牺牲精度换速度的。

因此在 FPN 及 EfficientNet 的影响下,作者分别基于此在 FPN 基础上进行优化提出 BiFPN 以及全方位的模型缩放探索。

下面重点介绍 Bi-FPN 以及复合缩放方法。

1、Bi-FPN

【图 2】

如上图的(a)是原始的 FPN 方法,一般在卷积网络中,低层的特征语义信息比较少,但是目标位置准确;高层的特征语义信息比较丰富,但是目标位置比较粗略。在 FPN 论文中,作者实际比较了很多不同的连接方式,最后提出了(a)图所示的架构,即抽取除第 3~7 层的特征图进行融合,每一层特征图的大小为输入图像的1/2i1/2^i1/2i 。例如,如果图片大小为 640×640640\times 640640×640,则第三层特征的边长为 640/23=80640/2^3=80640/23=80 。例外注意高层的特征有一个向下的箭头,即 top-down 融合:

P7out=Conv⁡(P7in)P6out=Conv⁡(P6in+Resize⁡(P7out))⋯P3out=Conv⁡(P3in+Resize⁡(P4out))\begin{array}{l}{P_{7}^{o u t}=\operatorname{Conv}\left(P_{7}^{i n}\right)} \\ {P_{6}^{o u t}=\operatorname{Conv}\left(P_{6}^{i n}+\operatorname{Resize}\left(P_{7}^{o u t}\right)\right)} \\ {\cdots} \\ {P_{3}^{o u t}=\operatorname{Conv}\left(P_{3}^{i n}+\operatorname{Resize}\left(P_{4}^{o u t}\right)\right)}\end{array}P7out​=Conv(P7in​)P6out​=Conv(P6in​+Resize(P7out​))⋯P3out​=Conv(P3in​+Resize(P4out​))​

结合公式+图例,我想应该都能理解,这里的 Resize 主要是上采样或下采样操作(此处为上采样,要将上层的小图放大到下层大图的大小)

在 PANet 网络中,实际就已经提出了双向的概念,如(b)所示,在 NAS-FPN 中借助网络框架搜索(NAS)技术进行搜索,搜索出来的玩意儿反正是人类看不懂解释不了,不规则而且需要的参数量计算量还大,如(c)所示,而我们的方式是:

  • 第一步:在 PANet 的基础上,移除了只有一个输入来源的特征节点,也就变成了(e),对比(b)少了两个节点(这个图画的让人容易误会,实际删除的是 b 图虚框中左上角和右下角的这个,图中一打眼看起来感觉删除的是左上角和左下角,不过图本身没问题),之所以删除这样的节点,是因为就一个输入源,肯定没做融合,对将来的贡献可能也比较少
  • 第二步:将每层的原始特征图加入进去,就是(f),会看到有一些弧线,可以在不增加额外计算量的同时融合更多的特征
  • 第三步:把这个双向过程(就是虚框中的内容)作为一个整体,重复多次,如图 3 所示。

1.1 加权特征融合

这里给出三种策略:

  • Unbounder fusion: O=∑iwi⋅IiO=\sum_i w_i \cdot I_iO=∑i​wi​⋅Ii​,我们的特征图都是三维的,有 W、H、C(channel),如果我们把它当做一个整体,即每个特征层一个权重,则 wiw_iwi​ 是一个标量,如果每个通道一个权重,则 wiw_iwi​ 是一个向量,而如果每个像素有自己的权重,则 wiw_iwi​ 是三维的,实验证明,用标量的计算量最小且实现的精度差不多,但是标量是无界的,不易控制,所以还是需要借助正则化手段
  • softmax-based fusion:O=∑iewi∑jewj⋅IiO=\sum_{i} \frac{e^{w_{i}}}{\sum_{j} e^{w_{j}}} \cdot I_{i}O=∑i​∑j​ewj​ewi​​⋅Ii​,能用 softmax 是一种很自然的想法,但是这个玩意一直因分母求和而诟病,在 GPU 下明显速度下降很多。
  • Fast normalized fusion: O=∑iwiϵ+∑jwj⋅IiO=\sum_{i} \frac{w_{i}}{\epsilon+\sum_{j} w_{j}} \cdot I_{i}O=∑i​ϵ+∑j​wj​wi​​⋅Ii​,实际就是加和求平均,这里的 wiw_iwi​ 可以用 ReLU 保证其 wi≥0w_{i} \geq 0wi​≥0。和 softmax 一致,其分布范围在 0~1,其值代表该层的贡献度。

这样一来,我们结合图 2 (f),来两个具体的示例:

P6td=Conv⁡(w1⋅P6in+w2⋅Resize⁡(P7in)w1+w2+ϵ)P6out=Conv⁡(w1′⋅P6in+w2′⋅P6td+w3′⋅Resize⁡(P5out)w1′+w2′+w3′+ϵ)\begin{aligned} P_{6}^{t d} &=\operatorname{Conv}\left(\frac{w_{1} \cdot P_{6}^{i n}+w_{2} \cdot \operatorname{Resize}\left(P_{7}^{i n}\right)}{w_{1}+w_{2}+\epsilon}\right) \\ P_{6}^{o u t} &=\operatorname{Conv}\left(\frac{w_{1}^{\prime} \cdot P_{6}^{i n}+w_{2}^{\prime} \cdot P_{6}^{t d}+w_{3}^{\prime} \cdot \operatorname{Resize}\left(P_{5}^{o u t}\right)}{w_{1}^{\prime}+w_{2}^{\prime}+w_{3}^{\prime}+\epsilon}\right) \end{aligned}P6td​P6out​​=Conv(w1​+w2​+ϵw1​⋅P6in​+w2​⋅Resize(P7in​)​)=Conv(w1′​+w2′​+w3′​+ϵw1′​⋅P6in​+w2′​⋅P6td​+w3′​⋅Resize(P5out​)​)​

其中 P6tdP^{td}_6P6td​ 是第 6 层的中间状态值。

2、EfficientDet

2.1 整体架构

整体架构图如图 3 所示:
【图 3】

主干网络采用的是 EfficientNet 网络,BiFPN 是基于其 3~7 层的特征图进行的,融合后的特征喂给一个分类网络和 box 网络,分类与 box 网络在所有特征级上权重是共享的。

2.2 复合缩放

主干网络部分:这部分直接把 EfficientNet 缩放拿过来用即可,即 EfficientNet B0-B6,借助其现成的 checkpoints,就不折腾了

BiFPN 网络部分:这部分借鉴 EfficientNet,在 Channel 上直线指数级增加,在深度上线性增加,具体的缩放系数公式为:Wbifpn=64⋅(1.35ϕ),Dbifpn=2+ϕW_{b i f p n}=64 \cdot\left(1.35^{\phi}\right), \quad D_{b i f p n}=2+\phiWbifpn​=64⋅(1.35ϕ),Dbifpn​=2+ϕ

Box/class 预测网络部分:其宽度与 BiFPN 部分保持一致,深度方面采用 Dbox=Dclass=3+⌊ϕ/3⌋D_{b o x}=D_{c l a s s}=3+\lfloor\phi / 3\rfloorDbox​=Dclass​=3+⌊ϕ/3⌋

图片分辨率部分: 因为特征提取选择的是 3~7 层,第 7 层的大小为原始图片的 1/271/2^71/27 ,所以输入图像的大小必须是 128 的倍数,Rinput=512+ϕ⋅128R_{i n p u t}=512+\phi \cdot 128Rinput​=512+ϕ⋅128
【图 4】

上图 D7 明显是超出内存大小了,只是在 D6 基础上增加了分辨率大小。
【图 5】

D7 的 mAP 为 51.0,目前是 SOTA,参数量 52M,比之前的 SOTA(AmoaNet+NAS-FPN+AA)小 4 倍, 计算量小 3045/326=9.33045/326=9.33045/326=9.3 倍。

3、消融实验

第一部分是比较了 BiFPN 和 主干网络的共享度,实验结果证明,都很重要。如下图所示:
【图 6】

图 6 中的表三,baseline 是 ResNet50 + FPN,中间一行是仅仅将 ResNet50 替换为 EfficientB3,性能提高差不多 3 个点,参数量和计算量都小了很多,最后一行在上一行基础上替换 FPN 为 BiFPN,性能和参数、计算量等都进一步得到优化。

至于 BiFPN 的连接方式,结合图 2和 图 6 中的表 4,我们看到最好的是(f)图,(d)全连接方式计算量又大性能还差;

另外关于 softmax 和求和取平均的对比,性能上差不多,但是求和取平均速度要快 1.26-1.31 倍

最后,我们在各个维度上分别看一下:
【图 7】

我们可以尝试小结一下这张图:

  • 扩大任何一个方面,折线都在上升,从识别精度上讲都在提高
  • 扩大 box/class(紫色线)几乎平稳,所有对于 box/class 但单方面提高没有意义了
  • 扩大通道数(蓝色的)计算量上升急剧,但精度上升缓慢
  • 扩大图片分辨率(绿色)上升趋势很大,D6-D7 的区别
  • 扩大 BiFPN 层数(浅蓝色)也在上升,可以尝试进一步加大
  • 复合放大(红色)综合各方面考虑,实现了较单独维度更好的策略

由于需要考虑的维度过多,无法进行系统化全面维度综合调整,作者此处给出的方案(红线)也只是鉴于先验知识下或目前已有条件下的一个浅尝辄止,针对上面单变量的分析,也很难说在多变量条件下增加通道或增加 box/class 网络层是否一定投入产出比较低。

EfficientDet:目标识别领域的 EfficientNet相关推荐

  1. 深度残差网络的无人机多目标识别

    深度残差网络的无人机多目标识别 人工智能技术与咨询 来源:<图学学报>.作者翟进有等 摘要:传统目标识别算法中,经典的区域建议网络(RPN)在提取目标候选区域时计算量大,时间复杂度较高,因 ...

  2. 采用优化卷积神经网络的红外目标识别系统

    采用优化卷积神经网络的红外目标识别系统 人工智能技术与咨询 前天 本文来自<光学精密工程>,作者刘可佳等 关注微信公众号:人工智能技术与咨询.了解更多咨询! 摘要 针对视频数据利用低效和光 ...

  3. 全景解密量子信息技术:高层集中学习,国家战略,三大领域一文看懂

    来源:智东西   内参来源:中国信通院 IPRdaily中文网 10月16日下午,高层就量子科技研究相关前景举行了一次会议,强调当今世界正经历百年未有之大变局,科技创新是其中一个关键变量.要充分认识推 ...

  4. 分享一些在ICME2016会议上获得的多媒体领域学术与科技动态

    上周参加了ICME2016国际会议,做了presentation,也了解到了很多多媒体领域的学术动态和前沿科技,在这里整理分享给大家,希望大家有机会也多多参加这些优秀的会议,在开会的城市游玩之余也是能 ...

  5. 基于深度学习的水声被动目标识别研究综述

    源自:电子与信息学报 作者:张奇 笪良龙 王超  张延厚 禚江浩 摘 要 被动声呐通过接收目标自身发出的辐射噪声信号进行目标探测.水声目标识别通过分析水声信号来判别目标个体,是水声工程领域的重点研究方 ...

  6. 译文Deep Learning in Bioinformatics --深度学习在生物信息学领域的应用(2)

    译文Deep Learning in Bioinformatics --深度学习在生物信息学领域的应用(2) 深度学习在生物信息学领域的应用(2) 原文链接:https://arxiv.org/abs ...

  7. 如何入门多视角3D目标识别?超详细最新综述来袭!

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨祁少华.宁欣.杨国为等 编辑丨极市平台 导读 本文将对多视角3D目标识别方法的主要进展.代表性研 ...

  8. 2021年小目标检测最新研究综述 很全面值得收藏

    摘要 小目标检测长期以来是计算机视觉中的一个难点和研究热点.在深度学习的驱动下,小目标检测已取得了重大突破,并成功应用于国防安全.智能交通和工业自动化等领域.为了进一步促进小目标检测的发展,本文对小目 ...

  9. 目标检测算法(YOLOv4)

    目标检测算法(YOLOv4) 本文要来介绍很火的目标检测算法YOLOv4,该算法是在原有YOLO目标检测架构的基础上,采用了近些年CNN领域中最优秀的优化策略,从数据处理.主干网络.网络训练.激活函数 ...

  10. 从视觉到语言:半监督式学习的大规模实际运用

    来源:TensorFlow本文约2300字,建议阅读5分钟 Noisy Student 半监控式蒸馏的实践应用案例. 监督式学习 (Supervised Learning),即使用已知的结果数据(即标 ...

最新文章

  1. 怎么用python打印照片_[宜配屋]听图阁
  2. android垂直排列元素_Android弹性布局(FlexboxLayout)
  3. OO实现ALV TABLE 十一:ALV的聚合,排序,过滤
  4. 电脑微信不用手机确认_不用安装第三方软件,手机投屏到电脑就这么简单
  5. php crypt mysql password_使用PHP 5.5的password_hash和password_verify函数
  6. 如何让jpa 持久化时不校验指定字段
  7. zuul网关,springsecurity认证中心 和 Swagger2 整合遇到的问题
  8. 慧荣SM2246XT主控的固态硬盘修复开卡不识别怎么短接方法
  9. 射频能量用于治疗和美容
  10. 计算机广告制作专业范围,计算机广告制作专业
  11. 第七章 算术操作指令的实现
  12. 全球及中国阻力带行业市场前瞻及投资竞争力分析报告2022-2027年
  13. 黑客长期摇号不中黑掉北京小客车摇号网
  14. 股市里赚钱最快的是什么股?有些股票的机会来了!
  15. c++将浮点数转换为整数类型,要求四舍五入
  16. 关于numeric_limits
  17. 苏鹏谈TechEd2009
  18. 一阶低通滤波器方程_一阶低通滤波器c语言
  19. 天线接收功率计算公式_天线增益的计算公式
  20. roszhong指定rviz的点启动_Rviz 实现 pannel 插件

热门文章

  1. word按backspace键不能删除问题
  2. 文本分类入门(二)——训练
  3. The second sprint
  4. google浏览器缓存文件在哪里
  5. 设置ubuntu终端光标开启自动显示
  6. KMP,LCA(XJT Love Strings,玲珑杯 Round#8 A lonlife 1079)
  7. 解决Dev-C++ [Error] ‘for‘ loop initial declarations are only allowed in C99 or C11 mode
  8. 精选黑科技资源站点,总会有你需要的干货!
  9. 双击计算机文档,电脑双击文件都是打开属性窗口怎么办
  10. 如何下载google play上的软件