| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 目标检测算法——EfficientDet(EfficientNet+BiFPN) -> 正文阅读 |
|
[人工智能]目标检测算法——EfficientDet(EfficientNet+BiFPN) |
下面借这篇blog记录一些阅读笔记,如果问题,恳请指出。 文章目录paper:EfficientDet: Scalable and Efficient Object Detection 第一次看见这个目标检测算法的时候觉得名字有点熟悉,然后找回之前的论文一看,果然作者是同一个人,都是来自Mingxing Tan。 在之前的学习笔记中,我同样的介绍了两个backbone:EfficientNetv1,EfficientNetv2,这两个backbone的主要解决的问题就是如何统一缩放神经网络的深度,宽度与分辨率,如何统筹好这三个因素从而在一些列不同的移动设备的限制上获得最佳的选择方案。 之前的两篇学习笔记链接如下: 简答回顾: 2)EfficientNetv2 而此paper的名字同样是EfficientDet,也就是作者将之前的思想用在了目标检测任务上。 1. Introductionpaper中指出,EfficientDet想要解决的问题是:是否有可能在广泛的资源限制范围内(例如,从3B到300B FLOPs)构建一个既具有更高精度又具有更好效率的可扩展检测架构?当设计网络结构时主要存在以下两个挑战:
在之后yolov4登场时,EfficientDet的准确率还是不逊色与yolov4的。虽然,在检测的速度上是远比不过yolov4.各有各的优缺点。 2. BiFPNBiFPN的本文中提出的最重要的一个结构。在此之前介绍一下其他的特征金字塔网络(FPN)结构:
2.1 Cross-Scale Connections传统的自上而下的FPN本质上受到单向信息流的限制。为了解决这个问题,PANet增加了一个额外的自下而上的路径聚合网络。PANet取得了比FPN和NAS-FPN更好的精度,但代价是更多的参数和计算。所以,BiFPN会在PANet的基础上进行一些改动:
所以,总的网络结构如下所示,不断堆叠BiFPN层的EfficientDet模型:(注意注释:基于不同的资源约束,BiFPN层和分裂类与回归参数网络预测层被重复多次) 2.2 Weighted Feature Fusion当融合不同分辨率的要素时,一种常见的方法是首先将它们调整到相同的分辨率,然后对它们进行求和。所有以前的方法都一视同仁地对待所有输入特征。 然而,作者观察到,由于不同的输入特征具有不同的分辨率,因此它们对输出特征的贡献通常是不相等的。为了解决这个问题,paper建议为每个输入增加一个额外的权重,并让网络学习每个输入特征的重要性。 作者提出了三种加权融合的方法:
O
=
∑
i
w
i
?
I
i
O = \sum_{i} w_{i}·I_{i}
O=i∑?wi??Ii? 作者发现了一个在最小计算成本下,可以媲美其他精确度的参数。但由于标量权重是无界的,它可能会导致训练不稳定。因此,我们采用权重归一化来限定每个权重的取值范围。
O
=
∑
i
e
w
i
∑
j
e
w
j
?
I
i
O = \sum_{i} \frac{e^{wi}}{\sum_{j} e^{wj}}·I_{i}
O=i∑?∑j?ewjewi??Ii?
O
=
∑
i
w
i
∈
+
∑
j
w
j
?
I
i
O = \sum_{i} \frac{w_{i}}{∈ + \sum_{j} w_{j}}·I_{i}
O=i∑?∈+∑j?wj?wi???Ii? 类似地,每个归一化权重的值也落在0和1之间,但是由于这里没有softmax操作,所以效率要高得多。实验结果研究表明,这种快速融合方法具有与基于softmax的融合非常相似的学习行为和准确性,但在图形处理器上运行速度高达30% 总结: P 6 o u t P^{out}_{6} P6out?是自下而上路径上第6级的输出特征。有衣蛾输入来自Pin 6,还有一个输入是Ptd 6,最后一个输入是来自Pout 5,一共有三个输入。其中的P5与P6的特征矩阵尺度同样是不一样的,所以需要进行上采样。 w与w’表示不同的权值矩阵,其他所有其他特征都以类似的方式构造。 3. EfficientDetpaper提出了一种新的用于目标检测的复合缩放方法,该方法使用简单的复合系数 φ φ φ来联合缩放主干、BiFPN、类/盒网络和分辨率的所有维度。
将EfficientNet B0-B6的相同宽度/深度缩放系数重用
线性增加BiFPN深度。对一系列值{1.2、1.25、1.3、1.35、1.4、1.45}执行网格搜索,并选择最佳值1.35作为BiFPN宽度比例因子。形式上,BiFPN的宽度和深度通过以下等式进行缩放。
将它们的宽度固定为始终与BiFPN相同,但是根据层数的增加会线性的增加。 D b o x = D c l a s s = 3 + [ ? / 3 ] \begin{aligned} D_{box} = D_{class} = 3 + [\phi/3] \end{aligned} Dbox?=Dclass?=3+[?/3]?
由于BiFPN中使用了3-7级特征,输入分辨率必须除以 2 7 = 128 2^{7} = 128 27=128,因此我们使用公式线性增加分辨率: R i n p u t = 512 + ? ? 128 \begin{aligned} R_{input} = 512 + \phi·128 \end{aligned} Rinput?=512+??128? 根据以上的公式,只使用了一个参数 ? \phi ?,对整个目标检测网络的backbone,BiFPN,分类预测与边界框回归预测,以及图像的分辨率进行联合缩放。 φ是控制所有其他缩放尺寸的复合系数;BiFPN、箱/类网和输入大小分别使用以上等式按比例放大。
4. Ablation Study除了以上的对比试验,paper中还提到了一些其他的实验 4.1 Disentangling Backbone and BiFPNpaper中还探讨了backbone与特征提取部分BiFPN对准确度的作用如何。 4.2 BiFPN Cross-Scale Connectionspaper还进行对BiFPN 特征融合的对比,分别与FPN,PANet,NAS-FPN进行对比。为了公平比较,这里我们重复它们中的每一个多个。这与BiFPN相同。我们使用相同的主干和类/盒预测网络,并且对所有实验使用相同的训练设置。 总结: EfficientDet使用了一个高效的backbone,既创造了一个新的多尺度特征融合网络BiFPN,并通过额外的可学习行的加权特征处理,实现了精确度上的提高。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/22 15:29:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |