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

本文涉及的产品
文件存储 NAS,50GB 3个月
简介: 论文阅读笔记 | 目标检测算法——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,并通过额外的可学习行的加权特征处理,实现了精确度上的提高。


相关实践学习
基于ECS和NAS搭建个人网盘
本场景主要介绍如何基于ECS和NAS快速搭建个人网盘。
阿里云文件存储 NAS 使用教程
阿里云文件存储(Network Attached Storage,简称NAS)是面向阿里云ECS实例、HPC和Docker的文件存储服务,提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。 产品详情:https://www.aliyun.com/product/nas
目录
相关文章
|
11天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
本研究基于MATLAB 2022a,使用GRU网络对QAM调制信号进行检测。QAM是一种高效调制技术,广泛应用于现代通信系统。传统方法在复杂环境下性能下降,而GRU通过门控机制有效提取时间序列特征,实现16QAM、32QAM、64QAM、128QAM的准确检测。仿真结果显示,GRU在低SNR下表现优异,且训练速度快,参数少。核心程序包括模型预测、误检率和漏检率计算,并绘制准确率图。
83 65
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
|
18天前
|
机器学习/深度学习 算法 安全
基于深度学习的路面裂缝检测算法matlab仿真
本项目基于YOLOv2算法实现高效的路面裂缝检测,使用Matlab 2022a开发。完整程序运行效果无水印,核心代码配有详细中文注释及操作视频。通过深度学习技术,将目标检测转化为回归问题,直接预测裂缝位置和类别,大幅提升检测效率与准确性。适用于实时检测任务,确保道路安全维护。 简介涵盖了算法理论、数据集准备、网络训练及检测过程,采用Darknet-19卷积神经网络结构,结合随机梯度下降算法进行训练。
|
6天前
|
机器学习/深度学习 人工智能 运维
[ICDE2024]多正常模式感知的频域异常检测算法MACE
[ICDE2024]多正常模式感知的频域异常检测算法MACE
|
3月前
|
机器学习/深度学习 自然语言处理 算法
调研180多篇论文,这篇综述终于把大模型做算法设计理清了
《A Systematic Survey on Large Language Models for Algorithm Design》综述了过去三年大型语言模型(LLMs)在算法设计中的应用。LLMs通过自然语言处理技术,助力生成、优化和验证算法,在优化、机器学习、数学推理等领域展现出广泛应用前景。尽管存在资源需求高、结果不确定等挑战,LLMs仍为算法设计带来新机遇。论文地址:https://arxiv.org/abs/2410.14716。
113 14
|
4月前
|
机器学习/深度学习 监控 算法
基于反光衣和检测算法的应用探索
本文探讨了利用机器学习和计算机视觉技术进行反光衣检测的方法,涵盖图像预处理、目标检测与分类、特征提取等关键技术。通过YOLOv5等模型的训练与优化,展示了实现高效反光衣识别的完整流程,旨在提升智能检测系统的性能,应用于交通安全、工地监控等领域。
|
5月前
|
监控 算法 数据安全/隐私保护
基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
本项目展示了基于FPGA与MATLAB实现的三帧差算法运动目标检测。使用Vivado 2019.2和MATLAB 2022a开发环境,通过对比连续三帧图像的像素值变化,有效识别运动区域。项目包括完整无水印的运行效果预览、详细中文注释的代码及操作步骤视频,适合学习和研究。
|
4月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA-PSO-SVM算法的混沌背景下微弱信号检测matlab仿真
本项目基于MATLAB 2022a,展示了SVM、PSO、GA-PSO-SVM在混沌背景下微弱信号检测中的性能对比。核心程序包含详细中文注释和操作步骤视频。GA-PSO-SVM算法通过遗传算法和粒子群优化算法优化SVM参数,提高信号检测的准确性和鲁棒性,尤其适用于低信噪比环境。
|
4月前
|
存储 JSON 算法
TDengine 检测数据最佳压缩算法工具,助你一键找出最优压缩方案
在使用 TDengine 存储时序数据时,压缩数据以节省磁盘空间是至关重要的。TDengine 支持用户根据自身数据特性灵活指定压缩算法,从而实现更高效的存储。然而,如何选择最合适的压缩算法,才能最大限度地降低存储开销?为了解决这一问题,我们特别推出了一个实用工具,帮助用户快速判断并选择最适合其数据特征的压缩算法。
96 0
|
5月前
|
机器学习/深度学习 安全 算法
计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-23(下)
计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-23(下)
73 0
|
5月前
|
安全 搜索推荐 算法
计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-23(上)
计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-23(上)
54 0

热门文章

最新文章