论文阅读笔记 | 目标检测算法——EfficientDet(EfficientNet+BiFPN)

简介: 论文阅读笔记 | 目标检测算法——EfficientDet(EfficientNet+BiFPN)

paper:EfficientDet: Scalable and Efficient Object Detection


第一次看见这个目标检测算法的时候觉得名字有点熟悉,然后找回之前的论文一看,果然作者是同一个人,都是来自Mingxing Tan。


在之前的学习笔记中,我同样的介绍了两个backbone:EfficientNetv1,EfficientNetv2,这两个backbone的主要解决的问题就是如何统一缩放神经网络的深度,宽度与分辨率,如何统筹好这三个因素从而在一些列不同的移动设备的限制上获得最佳的选择方案。


之前的两篇学习笔记链接如下:

轻量级网络——EfficientNet

轻量级网络——EfficientNetV2


简答回顾:

1)EfficientNetv1

在EfficientNet中,作者将网络层抽象成了一个数学公式使之成为一个优化问题,对卷积网络按深度,宽度与分辨率三个因素进行一系列的缩放,获得了b0-b7一共8个基准。


2)EfficientNetv2

而在v2的版本中,作者稍稍改变了每层网络堆叠的block,使用Fused-MBConv与MBConv的结合版本。但是主要的优化对象是精准度,参数效率与训练效率,并使用Progressive Learning优化训练过程。


而此paper的名字同样是EfficientDet,也就是作者将之前的思想用在了目标检测任务上。


1. Introduction


paper中指出,EfficientDet想要解决的问题是:是否有可能在广泛的资源限制范围内(例如,从3B到300B FLOPs)构建一个既具有更高精度又具有更好效率的可扩展检测架构?当设计网络结构时主要存在以下两个挑战:


Challenge 1:高效的多尺度特征融合

在融合不同输入特征的同时,以往的大部分作品都是简单的不加区分的进行相加;然而,由于这些不同的输入特征具有不同的分辨率,我们观察到它们通常对融合输出特征的贡献是不相等的。为了解决这个问题,我们提出了一种简单而高效的加权双向特征金字塔网络(BiFPN),它引入了可学习的权重来学习不同输入特征的重要性,同时重复应用自顶向下和自底向上的多尺度特征融合。


Challenge 2:模型的缩放

以往的一些工作主要依赖于更大的backbone网络,或者是更大的输入图像尺寸以获得高精度。但是,在考虑准确性和效率时,缩放特征网络和类/边界框预测网络也很关键。然后作者提出了一种用于目标检测的复合缩放方法,该方法联合缩放所有主干、特征网络、盒/类预测网络的分辨率/深度/宽度。

image.png


可以看见,EfficientDet的准确率确实达到了那时的SOTA。不仅仅是准确率是最高,而且模型的参数,与浮点运算也要比其他的检测网络要小。同时在GPU/CPU上的速度也比以前的检测器快4倍至11倍。paper中还指出,通过简单的修改,EfficientDet用于语义分割的表现也要比DeepLabV3+要好。


在之后yolov4登场时,EfficientDet的准确率还是不逊色与yolov4的。虽然,在检测的速度上是远比不过yolov4.各有各的优缺点。

image.png


2. BiFPN


BiFPN的本文中提出的最重要的一个结构。在此之前介绍一下其他的特征金字塔网络(FPN)结构:


  • FPN:提出了一种自上而下的方法来组合多尺度特征
  • PANet:在FPN之上增加了一个额外的自下而上的路径聚合网络
  • STDL:提出了一个利用跨尺度特征的尺度转换模块
  • M2det:提出一种融合多尺度特征的U形模块
  • G-FRNet:介绍用于控制要素间信息流的门单元
  • NAS-FPN:利用神经架构搜索来自动设计特征网络拓扑结构
  • BiFPN:高效的双向跨尺度连接和加权特征融合


2.1 Cross-Scale Connections

传统的自上而下的FPN本质上受到单向信息流的限制。为了解决这个问题,PANet增加了一个额外的自下而上的路径聚合网络。PANet取得了比FPN和NAS-FPN更好的精度,但代价是更多的参数和计算。所以,BiFPN会在PANet的基础上进行一些改动:

image.png


  1. 移除那些只有一条输入边的节点,这是因为如果一个节点只有一条输入边而没有特征融合,那么它对以融合不同特征为目标的特征网络的贡献就比较小。这可以简化我们的双向网络。


  1. 如果原始输入节点和输出节点处于同一水平,我们会在它们之间增加一条额外的边,以便在不增加太多成本的情况下融合更多的特征。


  1. 与PANet只有一条自上而下和一条自下而上的路径不同,BiFPN将每条双向(自上而下&自下而上)路径视为一个特征网络层,并多次重复同一层,以实现更高级别的特征融合。如何确定层数数量是另外一个问题。


所以,总的网络结构如下所示,不断堆叠BiFPN层的EfficientDet模型:(注意注释:基于不同的资源约束,BiFPN层和分裂类与回归参数网络预测层被重复多次)

image.png


2.2 Weighted Feature Fusion

当融合不同分辨率的要素时,一种常见的方法是首先将它们调整到相同的分辨率,然后对它们进行求和。所有以前的方法都一视同仁地对待所有输入特征。


然而,作者观察到,由于不同的输入特征具有不同的分辨率,因此它们对输出特征的贡献通常是不相等的。为了解决这个问题,paper建议为每个输入增加一个额外的权重,并让网络学习每个输入特征的重要性。


作者提出了三种加权融合的方法:


  1. Unbounded fusion

image.png


其中wi 是一个可学习的权重,可以是标量(每个特征)、矢量(每个通道)或多维张量(每个像素)。


作者发现了一个在最小计算成本下,可以媲美其他精确度的参数。但由于标量权重是无界的,它可能会导致训练不稳定。因此,我们采用权重归一化来限定每个权重的取值范围。


  1. Softmax-based fusion

image.png


另一个直观的想法是将softmax应用于每个权重,这样所有权重都被归一化为一个概率,其值范围从0到1,表示每个输入的重要性。然而,额外的softmax会导致GPU硬件速度显著下降。


  1. Fast normalized fusion

image.png

其中w i ≥ 0是通过在每个wi后应用Relu来确保的。以及∈ = 0.0001是避免数值不稳定的小数值。


类似地,每个归一化权重的值也落在0和1之间,但是由于这里没有softmax操作,所以效率要高得多。实验结果研究表明,这种快速融合方法具有与基于softmax的融合非常相似的学习行为和准确性,但在图形处理器上运行速度高达30%


总结:

最终的BiFPN集成了双向跨尺度连接和快速归一化融合(Fast normalized fusion)。作为一个具体的例子,这里描述了图2(d)所示的BiFPN的两个融合特征:

image.png

image.png


3. EfficientDet


paper提出了一种新的用于目标检测的复合缩放方法,该方法使用简单的复合系数φ 来联合缩放主干、BiFPN、类/盒网络和分辨率的所有维度。


  1. Backbone network

将EfficientNet B0-B6的相同宽度/深度缩放系数重用

image.png


  1. BiFPN network

线性增加BiFPN深度。对一系列值{1.2、1.25、1.3、1.35、1.4、1.45}执行网格搜索,并选择最佳值1.35作为BiFPN宽度比例因子。形式上,BiFPN的宽度和深度通过以下等式进行缩放。

image.png


  1. Box/class prediction network

将它们的宽度固定为始终与BiFPN相同,但是根据层数的增加会线性的增加。

image.png


  1. Input image resolution

image.png


根据以上的公式,只使用了一个参数ϕ ,对整个目标检测网络的backbone,BiFPN,分类预测与边界框回归预测,以及图像的分辨率进行联合缩放。


φ是控制所有其他缩放尺寸的复合系数;BiFPN、箱/类网和输入大小分别使用以上等式按比例放大。

image.png

其中D7和D7x具有相同的BiFPN和head,但D7使用更高的分辨率,D7x使用更大的主干网络和多一个功能级别(从P3 to P8)。值得注意的是,我们的复合缩放是基于启发式的,可能不是最优的,但是我们将展示这个简单的缩放方法可以在一定程度上提高效率。

image.png


可以看见,EfficientDet在准确度上的提升还是很高。


4. Ablation Study


除了以上的对比试验,paper中还提到了一些其他的实验


4.1 Disentangling Backbone and BiFPN

paper中还探讨了backbone与特征提取部分BiFPN对准确度的作用如何。

image.png

可以看见,可以说是强强联合,backbone与BiFPN对准确度的提高均有作用。


4.2 BiFPN Cross-Scale Connections

paper还进行对BiFPN 特征融合的对比,分别与FPN,PANet,NAS-FPN进行对比。为了公平比较,这里我们重复它们中的每一个多个。这与BiFPN相同。我们使用相同的主干和类/盒预测网络,并且对所有实验使用相同的训练设置。

image.png

如图所示,传统的自上而下的FPN固有地受到单向信息流的限制,因此具有最低的精度。虽然重复的FPN+PANet实现了比NAS-FPN稍好的精度,但它也需要更多的参数和FLOPs。我们的BiFPN实现了与重复的FPN+PANet相似的精度,但使用的参数和FLOPs少得多。通过额外的加权特征融合,我们的BiFPN进一步用更少的参数和FLOPs达到了最好的精度。


总结:


EfficientDet使用了一个高效的backbone,既创造了一个新的多尺度特征融合网络BiFPN,并通过额外的可学习行的加权特征处理,实现了精确度上的提高。


相关实践学习
函数计算部署PuLID for FLUX人像写真实现智能换颜效果
只需一张图片,生成程序员专属写真!本次实验在函数计算中内置PuLID for FLUX,您可以通过函数计算+Serverless应用中心一键部署Flux模型,快速体验超写实图像生成的魅力。
目录
相关文章
|
4月前
|
监控 安全 算法
137_安全强化:输入过滤与水印 - 实现输出水印的检测算法与LLM安全防护最佳实践
随着大语言模型(LLM)在各行业的广泛应用,安全问题日益凸显。从提示注入攻击到恶意输出生成,从知识产权保护到内容溯源,LLM安全已成为部署和应用过程中不可忽视的关键环节。在2025年的LLM技术生态中,输入过滤和输出水印已成为两大核心安全技术,它们共同构建了LLM服务的安全防护体系。
|
4月前
|
存储 机器学习/深度学习 编解码
双选择性信道下正交啁啾分复用(OCDM)的低复杂度均衡算法研究——论文阅读
本文提出统一相位正交啁啾分复用(UP-OCDM)方案,利用循环矩阵特性设计两种低复杂度均衡算法:基于带状近似的LDL^H分解和基于BEM的迭代LSQR,将复杂度由$O(N^3)$降至$O(NQ^2)$或$O(iNM\log N)$,在双选择性信道下显著提升高频谱效率与抗多普勒性能。
300 0
双选择性信道下正交啁啾分复用(OCDM)的低复杂度均衡算法研究——论文阅读
|
6月前
|
机器学习/深度学习 算法 数据挖掘
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
没发论文的注意啦!重磅更新!GWO-BP-AdaBoost预测!灰狼优化、人工神经网络与AdaBoost集成学习算法预测研究(Matlab代码实现)
220 0
|
5月前
|
传感器 资源调度 算法
DDMA-MIMO雷达多子带相干累积目标检测算法——论文阅读
本文提出一种多子带相干累积(MSCA)算法,通过引入空带和子带相干处理,解决DDMA-MIMO雷达的多普勒模糊与能量分散问题。该方法在低信噪比下显著提升检测性能,实测验证可有效恢复目标速度,适用于车载雷达高精度感知。
698 4
DDMA-MIMO雷达多子带相干累积目标检测算法——论文阅读
|
4月前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
5月前
|
机器学习/深度学习 算法 算法框架/工具
256KB内存约束下的设备端训练:算法与系统协同设计——论文解读
MIT与MIT-IBM Watson AI Lab团队提出一种创新方法,在仅256KB SRAM和1MB Flash的微控制器上实现深度神经网络训练。该研究通过量化感知缩放(QAS)、稀疏层/张量更新及算子重排序等技术,将内存占用降至141KB,较传统框架减少2300倍,首次突破设备端训练的内存瓶颈,推动边缘智能发展。
392 6
|
6月前
|
人工智能 算法 安全
【博士论文】基于局部中心量度的聚类算法研究(Matlab代码实现)
【博士论文】基于局部中心量度的聚类算法研究(Matlab代码实现)
218 0
|
4月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
491 0
|
4月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
324 2
|
5月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
302 3

热门文章

最新文章