EfficientDet论文解读

EfficientDet是一种高效且精确的目标检测网络,采用双向特征金字塔网络(BiFPN)进行特征融合,联合尺度缩放方法统一调整网络各部分,适用于不同硬件资源。相比现有模型,EfficientDet参数更少,计算量更低,精度更高。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文: EfficientDet: Scalable and Efficient Object Detection

1.论文动机

        本文作者的目标是要找到一种精度高同时效率高并且还能在各种不同的硬件资源下都能使用的目标检测网络。之所以提出这个目标是因为,前面的一些工作在追求高精度时,所建立的模型很大,因此效率就比较低。而另一些工作在追求效率时,需要压缩模型,导致精度下降。并且这些提出的模型只能适用于有限的资源要求(比如硬件资源)。

        在实现上述目标时,本文主要有如下三个贡献:

        1.提出了双向特征金字塔网络(BiFPN),在做特征融合时采用加权的方法;

        2.提出了一种新的联合尺度缩放方法来统一的调节骨干网络、双向特征金字塔网络、检测框/类别网络以及输入分辨率。

        3.基于前面的这两个双向金字塔网络和联合尺度缩放方法,作者提出了一种新的更加高效的目标检测网络,它的尺度小,精度高,并且可以适用于资源条件差别很大的各种设备上。

 

2.论文主要思路

  • 先提出了双向金字塔网络(BiFPN)

      首先要介绍的是多尺度特征融合问题,也就是将不同尺度的特征图合并成新的特征图。下图1展示的是已有的特征融合网络以及本文提出的新的特征融合方法。

图1.P3~P7是从骨干网络中输出的特征图(不要误解为DNN中的神经元)。

       图1(a)展示的是特征金字塔网络的融合方式。网络的融合方式采用的是自上而下融合,需要经过一个上采样的过程。可以用下面的一组公式来代表:

该公式显示,第7层输出特征图是由第7层输入特征图经过一个卷积后得到的。对第7层输出特征图进行上采样后与第6层输入特征图相加所得的融合特征图做卷积,就可以得到第6层输出特征图。依此类推,对第4层输出特征图进行上采样后与第3层输入特征图相加所得的融合特征图做卷积,就可以得到第3层输出特征图。

        图1(b) 显示的PANet改进了FPN的特征融合方法,不仅采用自上而下(top-down)方法,也结合了自下而上(bottom-up)的方法;图1(c)是采用neural architecture search(NAS)方法找到了一种不规则的特征网络拓扑结构,即NAS-FPN,要获得该结果,需要成千上万的GPU计算时间,;图1(d)采用的是一种全连接式的FPN,其计算量就大大增加。

       作者发现PANet的精度要比FPN和NAS-FPN都要高,但是模型参数以及计算量也相应的更多。基于此,本文作者进行了3种优化:

         (1) 提出了简化版的PANet(图1(e)): 如果一个节点(特征图)只有1个输入,那么它对于特征融合的贡献就很小,可以删除掉。

              因此图1(c)上有两个节点可以被删除就成了图1(e)了(注意,图1(e)容易让人误解,其最右下角红色的节点应该放在最下
             边中间才对)。

        (2)  作者在每一层(level)建立了跳跃连接,目的是在不花多少代价的情况下融合更多的特征。图1(f) 就是本文提出的BiFPN。

        (3) 与PANet只用一个top-down, bottom-up结构不同,作者提出每一个BiFPN可以作为一个模块进行拼接,前一个BiFPN的

             输出可以作为下一个BiFPN的输入,具体需要多少个这种结构视情况而定。

 

  • 三种加权特征融合方法

       对不同尺度的特征进行融合时,通常的做法是先将尺度统一,然后对应特征相加。这种做法默认不同的特征对于最终融合特征的贡献/权重是一样的。而实际上,不同的输入特征由于其分辨率不同,对最终的融合特征的贡献也应该不同。因此作者提出了三种加权的特征融合方法:

       (1) 一般加权融合特征: 

                          O = \sum_{i} w_{i}\cdot I_{i}   

            这里的权重可以是标量(应用于整个特征图)、矢量(应用于特征图的单个channel)或张量(应用于特征图的每个元素)。作者

           发现标量形式的权重在不明显损失精度的情况下所需大计算代价是最小的,因此采用标量形式的权重。这种加权方法的缺

           点是权重的大小没有约束,使得模型的训练可能不稳定。

       (2) 基于softmax的融合特征:

                          O = \sum _{i}\frac{e^{w_{i}}}{\sum _{j} e^{w_{j}}} \cdot I_{i}

              等于是对前一个权重做了归一化。但这种方法的缺点是增加了运算量。所以又提出了下面的方法。

       (3) 快速归一化融合特征

                         O = \sum _{i} \frac{w^{_{i}}}{\epsilon + \sum _{j} w_{j}} 

            \epsilon = 0.00001 避免数值不稳定性,因为模型采用ReLu激活函数,所以可以保证 w_{i} \geq 0。消融研究表明,这种加权方法的

            结果与采用softmax特征融合的结果差不多,但是在GPU上的运算速度提升了30%左右。本文采用的就是这种方法。

 

  • EfficientDet 的网络结构

       下图2展示了EfficientDet的网络结构。该结构由三部分组成,第一部分是由在ImageNet上预训练好的EfficientNet作为骨干网络;第二部分是BiFPN,作为特征提取网络,它将EfficientNet中的level 3~7的输出特征多次做top-down和bottom-up的特征融合;第三部分就是分类和检测框预测网络。第二部分和第三部的模块可以多次重复,依赖于硬件条件。

图2.
  • 联合缩放方法 (Compound Scaling)

       本文的目标是要找到一种精度高效率也高的目标检测网络,并且可以适用于不同的硬件资源。因此与EfficientNet类似,可以生成一个系列的网络以用于不同的硬件设备上。因此作者采用复合系数\phi 来联合起来缩放骨干网络、BiFPN网络、分类/检测框网络和分辨率。(我的理解,不同部分采用同一个\phi,而不是不同部分采用不同的\phi,这是“联合”的意义。)

        (1) 骨干网络:采用EfficientNet-B0 ~ B6, 其宽度w和深度d和它们7个网络也一样。

        (2) 双向金字塔网络的宽度指数式增长,宽度线性增加:

                W_{bifpn} = 64 \cdot (1.35)^{\phi }, D_{bifpn} = 2 + \phi     

        (3) 检测框/类别预测网络(box/class prediction network): 

             该网络的宽度(即channel) 与前一部分BiFPN的输出一致。但是深度满足下面的公式:

                  D_{box} = D_{class} = 3 + \left \lfloor \phi /3 \right \rfloor

        (4) 图像分辨率:

             由于BiFPN的输入是采用的骨干网络的P3~P7层,因此输入的图像的分辨率应该能被2^{7} = 128 整除,所以图像的分辨率应该满足如下公式:

                  R_{input} = 512 + \phi \cdot 128

利用上面这些公式,不同的\phi就代表了不同EfficientDet, 本文给出了EfficientDet-D0 (\phi =0) 到EfficientDet-D6(\phi = 6)的结构。\phi取更大的值得话,显卡内存就不够用了。

 

下表1显示的EfficientDet-D0 到 EfficientDet-D7 的结构。其中EfficientDet-D7只是输入图像尺寸变大,其余参数和EfficientDet-D6完全相同。

Table 1. 

3.论文结果

       下表2显示的本文的模型和其他模型的对比。在预测精度差不多的情况下,本文的模型的参数、计算量,在GPU和CPU上的模型推断时间都明显要比其他模型的高效。

Table 2. EfficientDet在COCO数据集上和其他模型的对比。

总之一句话,EfficientDet完败其他模型,在模型参数比已有的最好的模型小4倍(~209M/51.9M),计算量少9.3(~3045B/326B)倍的情况下模型性能还高了0.3%(51.0减50.7)。

 


4. 杂记

(1) 文中有个细节没有说明,就是在将BiFPN的特征图融合后作为 检测框/类别网络的输入时,融合的权重考虑了吗?怎们考虑的呢?

(2) box/class 网络的结构是怎们样的,它们相同吗?

(3) 再强调一下,本文之所以说它是对整个网络的三个部分做联合尺度缩放,是因为这三部分尺度缩放都是靠参数\phi来控制的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值