C/C++教程

目标检测学习-EfficientDet

本文主要是介绍目标检测学习-EfficientDet,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.背景介绍

在绝大多数目标检测网络中,如下图Fig1特征金字塔(Feature Pyramid Network,FPN)是一个不可缺少的部分,FPN网络主要解决的问题是目标检测在处理多尺度变化问题的不足。FPN主要有以下两个作用:1)多尺度特征融合,提高了特征的丰富程度;2)使用分治法,将目标检测任务按照目标尺寸不同,分成若干个检测子任务。

2. 文中挑战

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

关于不同输入特征的融合,大部分的融合是不对特征进行区分的,只是简单的将特征汇总加和起来。然而,这些不同的输入特征往往是来自不同分辨率下的,它们对于输出的特征的贡献程度应该是不相等的。为了解决这个问题,文中提出了一种加权双向特征金字塔网络(BiFPN),该网络引入了可学习的权重,用于学习不同输入特征的贡献程度。

Challenge 2 :模型缩放

为了获得高准确率,在之前的研究中往往会依赖于较大的backbone和尺寸较大的输入图像。文中注意到,考虑到准确性和效率,对于网络的扩展也很关键。基于此,文中对于目标检测的问题提出了一种混合缩放的方法,该方法可以对网络的分辨率、深度、宽度进行统一的缩放。

3.文中创新部分

3.1 BiFPN

1.Fig2(a)中为传统的FPN网络,其仅包含自上而下的特征融合,融合的过程仅包括从低分辨率到高分辨率的融合。FPN在实际应用中会面临高层级特征和较低层级特征之间的路径长的问题, 如在大型Backbone 中, FPN低层信息经过多层网络到高层的时候, 由于路径过长导致部分低层级特征丢失, 然而低层级的特征对于大型实例的识别其实是很有用的。

2.Fig2(b)中为PANet网络,PANet添加自下而上的路径以增强FPN中的自上而下的路径, 缩短了低层级信息传输到高层级的路径。

3.Fig2(c)为NAS-FPN网络,NAS-FPN使用强化学习的方式对FPN网络自动搜索,但是其计算成本高,大约需要1000小时的GPU才能确定最佳连接。

4.Fig2(d)为本文提出的BiFPN网络,相对于PANet,BiFPN的改进有如下3点:

1)删除那些只有一个输入边缘的节点,文中认为如果一个节点只有一个输入边缘,没有特征融合,那么它对目的是特征融合不同的特征的特征网络的贡献就会更小。

2)如果原始输入节点处于同一水平,将从原始输入添加一个额外的边到输出节点,以便融合更多的特征,而不增加大量的成本。

3)与只有一个自顶向下和一个自底向上路径的PANet不同,论文将每个双向(自顶向下和自下而上)路径视为一个特征网络层,并多次重复同一层,以实现更多的高级特征融合。

3.2 加权特征融合

以前的大部分方法对待所有的输入特征都是一视同仁的。然而文章中认为对于不同的输入特征在不同的分辨率,这些特征的贡献度是不相同的。为了解决这个问题,论文建议为每个输入特征增加一个可学习的权重,让网络去学习每个输入特征的重要性(如下图Fig3)。文中使用Fast normalized fusion(Wi > 0),该方法与Softmax类似但是速度比Softmax要快30%。

 3.3 网络结构

下图Fig4为EfficientDet网络结构,采用EfficientNet作为网络的backbone;BiFPN作为特征网络;将从backbone网络出来的特征使用多个BiFPN进行自上而下和自下而上的特征融合。经过多个BiFPN后的特征通过class prediction net和box prediction net 对检测类别和检测框分别进行预测。

 3.4 复合缩放

3.4.1 缩放规则

1.BiFPN network:

2.Box/class prediction network:宽度与BiFPN一样,仅对深度进行缩放。

3.Input image resolution:

3.4.2模型全部参数

 

 4.实验

从下图Fig5可以看出,使用BiFPN的EfficientNet-B3要比使用FPN在准确度上提高了4个点,参数量和运算量也极大缩小。

 

 下图Fig6为EfficienDet系列与各类模型在coco上的比较。

 

 

 

 

这篇关于目标检测学习-EfficientDet的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!