目录
论文:EfficientDet: Scalable and Efficient Object Detection
来源:2019
1. 贡献
- 提出了简单且高效的多尺度特征融合方法:双向特征金字塔网络(bi-directional feature pyramid network,BiFPN)。BiFPN通过引入可学习的权重来衡量不同输入特征的重要程度,并重复使用top-down和bottom-up方式来融合多尺度特征。
- 对目标检测器的各个部分(如backbone, feature network, box/class prediction network)的分辨率、深度、宽度进行了统一缩放,得到多个具有不同准确度和速度的目标检测器EfficientDet-D0~D7。
2. Motivation
现有的多尺度特征融合方法主要有以下几种:
- (a) FPN introduces a top-down pathway to fuse multi-scale features from level 3 to 7 (P3 - P7);
- (b) PANet adds an additional bottom-up pathway on top of FPN;
- (
c
c
c) NAS-FPN uses neural architecture search to find an irregular feature network topology and then repeatedly apply the same block;
这些方法在进行多尺度特征融合时,对不同输入特征采用直接相加的操作,并未考虑不同输入特征对输出的重要程度(直接相加可认为重要程度相等)。
- 假设不同尺度的输入特征为 P ⃗ i n = ( P l 1 i n , P l 2 i n , . . . ) \vec P^{in}=(P_{l_1}^{in},P_{l_2}^{in},...) Pin=(Pl1in,Pl2in,...),其中 P l i i n P_{l_i}^{in} Pliin表示第 l i l_i li层的特征,多尺度特征融合要寻找合适的函数 f ( ) f() f(),使得 P ⃗ o u t = f ( P ⃗ i n ) \vec P^{out}=f(\vec P^{in}) Pout=f(Pin)。
- 以FPN为例,其输入特征为
P
⃗
i
n
=
(
P
3
i
n
,
.
.
.
,
P
7
i
n
)
\vec P^{in}=(P_3^{in},...,P_7^{in})
Pin=(P3in,...,P7in),则输出特征为
但是从分辨率或者不同层级的反向传播路径可以看出,不同层级的特征对输出的重要程度应该是不同的,所以BiFPN为不同输入特征设置了可学习的权重。
3. EfficientDet
3.1 overview
-
以EfficientNet为backbone network,以由多个BiFPN layer重复连接而成的BiFPN为feature network,以不同层级共享参数的class/box prediction net为detection head。
-
不同检测器的配置如下表所示:
3.2 Cross-Scale Connections
- PANet在FPN的基础上再添加bottom-up pathway,取得比FPN更好的效果;虽然NAS-FPN使用网络结构搜索的方式得到比PANet更好的效果,但其搜索出的拓扑结构缺乏解释性,所以本文选择PANet为基础模块,并加以修改。
- 移除所有单输入特征的结点,原因是:与多输入特征相比,单输入特征对多尺度特征融合的贡献较小,移除所有单输入特征的结点可以简化网络结构。
- 在同级特征中添加一条输入输出直接通道。
- 以上述2步得到的结构为BiPFN layer,并重复使用该结构。
- BiPFN的3处网络结构修改应该是以NAS-FPN为先验的。
3.3 Weighted Feature Fusion
3种特征加权融合方法:Unbounded fusion,Softmax-based fusion,Fast normalized fusion
-
Unbounded fusion:
O = ∑ i w i I i O=\sum_iw_iI_i O=i∑wiIi其中, w i w_i wi表示第 i i i个输入特征 I i I_i Ii所对应的可学习权重, w i w_i wi可以是标量(per-feature)、向量(per-channel)、矩阵(per-pixel)。作者发现这3个类型的 w i w_i wi的效果很接近,但是标量型 w i w_i wi的计算量较小,所以将 w i w_i wi确定为标量。但由于标量是无界的,为使模型比较稳定,应该对 w i w_i wi进行归一化。 -
Softmax-based fusion:
采用softmax归一化至[0,1],但是softmax在GPU中的计算速度比较慢,所以提出第3种方法:快速归一化。 -
Fast normalized fusion:
实验发现,Fast normalized fusion与Softmax-based fusion具有相近的准确度,但Fast normalized fusion比Softmax-based fusion快30%。 -
以 P 6 P_6 P6为例,采用Fast normalized fusion进行多尺度特征融合的公式为:
3.4 Compound Scaling
- 在目标检测器中,使用更深的backbone(VGG → \to →ResNet → \to →ResNeXt)或提高输入图像的分辨率( 512 × 512 → 1536 × 1536 512\times512\to1536\times1536 512×512→1536×1536)均可显著提高目标检测性能,但目前很多研究只是单独增大某一方面。
- 目标检测框架包括backbone, feature network, box/class prediction network,这些子网络又可以在分辨率、深度、宽度进行缩放,所以本文研究了统一对各个方面进行缩放的效果。
- Backbone network:直接选取EfficientNet-B0~B6,EfficientNet的各个版本具有不同的网络深度和网络宽度
- BiFPN network:BiFPN的深度指BiFPN layer的个数,记为
D
b
i
f
p
n
D_{bi\ fpn}
Dbi fpn,而BiFPN的宽度指BiFPN layer中特征的通道数,记为
W
b
i
f
p
n
W_{bi\ fpn}
Wbi fpn
- Box/class prediction network:令 W p r e d = W b i f p n W_{pred}=W_{bi\ fpn} Wpred=Wbi fpn,且
- Input image resolution :最大下采样率为128,所以输入图像分辨率应该是128的倍数
4. 实验
-
将RetinaNet的ResNet-50换成EfficientNet-B3, A P AP AP提高 3.3 % 3.3\% 3.3%,表明EfficientNet-B3效果更好;
-
将EfficientNet-B3+FPN的FPN换成BiFPN, A P AP AP再次提高 4.1 % 4.1\% 4.1%,表明BiFPN效果更好。
-
相比于Softmax Fusion,Fast Fusion的 A P AP AP稍低,但速度更快
-
最终性能