[CVPR 2020] EfficientDet: Scalable and Efficient Object Detection论文笔记

文章目录

  • 1. Introduction
  • 2. Methods
    • 2.1 BiFPN
    • 2.2 Compound Scaling
    • 2.3 EfficientDet
  • 3. Performance
  • 4. Q & A

谷歌大脑发布的高效高精度物体检测器。收录于CVPR 2020。

安利一个大佬的复现代码(zylo117复现Torch版本)

1. Introduction

   现有的SOTA物体检测算法通常无法兼顾效率和精度,复杂的模型需要较大的计算量,而简单模型又会损失检测精度。因此,本文提出了一种简单且有效率的加权双向特征金字塔网络(BiFPN),实现跨尺度的特征融合。同时,我们提出了一种联合缩放方法,可以对主干网络、BiFPN、回归/分类网络及输入图片分辨率进行缩放。将联合缩放和BiFPN与EffcientNet结合,我们设计了一种全新的目标检测器EfficientDet。该方法在物体检测和分割任务上可以使用较少的参数和FLOPS得到SOTA的性能。

2. Methods

   文章的主要贡献包括:(1)BiFPN。传统的方法只是将不同尺度的特征图进行相加,但是不同的特征图是从不同分辨率的图像中得到的,因此应当赋予不同的权重。为了解决上述问题,作者提出了一种双向加权的FPN,BiFPN通过引入一个可学习的加权值,达到跨尺度的特征融合。(2)Compound scaling,通过相关系数 ϕ \phi ϕ同时控制主体网络、特征网络、回归/分类网络及输入图片的尺寸。作者认为上述参数尺寸都会影响检测器的精度。(3)结合EfficientNet、BiFPN及Compound Scaling,作者提出了EfficientDet,可以使用较少的参数量和FLOPS得到较高的性能。

2.1 BiFPN

  传统的FPN只有一条自上而下的通路,没有实现双向信息流;PANet又引入了一条自下而上的通路;NAS-FPN使用了网络结构搜索,对算力的要求较高。对比这三种方法可知,PANet可以得到最好的性能,但是需要更多的参数。作者提出了BiFPN提升PANet的效率,BiFPN网络结构如图所示。方法主要包括:(1)去掉了只有一个输入的点,作者认为仅有一个输入的点对于特征融合的影响不大;(2)同层节点之间的short-cut,同层的输入到输出之间多了一条边,这样可以在不增加成本的情况下融合更多的特征;(3)FPN块堆叠,将每个双向FPN作为一个Block,算法多次重复该Block以实现更多高阶特征融合。
[CVPR 2020] EfficientDet: Scalable and Efficient Object Detection论文笔记_第1张图片
  作者还对比了三种不同的融合方法。无边界的融合容易造成训练的不稳定;Softmax-based融合会引入Softmax计算。因此,作者提出了快速归一化加权融合,对于图(d)中的两层节点的加权融合公式如式:
P 6 t d = C o n v ( w 1 ⋅ P 6 i n + w 2 ⋅ R e s i z e ( P 7 i n ) w 1 + w 2 + ϵ ) P 6 o u t = C o n v ( w 1 ′ ⋅ P 6 i n + w 2 ′ ⋅ P 6 t d + w 3 ′ ⋅ R e s i z e ( P 5 o u t ) w 1 ′ + w 2 ′ + w 3 ′ + ϵ ) P_{6}^{td}=Conv\left ( \frac{w_{1}\cdot P_{6}^{in}+w_{2}\cdot Resize(P_{7}^{in})}{w_{1}+w{2}+\epsilon }\right ) \\ P_{6}^{out}=Conv\left ( \frac{w_{1}^{'}\cdot P_{6}^{in}+w_{2}^{'}\cdot P_{6}^{td} + w_{3}^{'}\cdot Resize(P_{5}^{out})}{w_{1}^{'}+w_{2}^{'}+w_{3}^{'} + \epsilon }\right ) P6td=Conv(w1+w2+ϵw1P6in+w2Resize(P7in))P6out=Conv(w1+w2+w3+ϵw1P6in+w2P6td+w3Resize(P5out))

2.2 Compound Scaling

  联合缩放方法通过联合系数 ϕ \phi ϕ同时控制主体网络、BiFPN网络、回归/分类网络及图片输入尺寸的缩放。缩放程度如图所示。
[CVPR 2020] EfficientDet: Scalable and Efficient Object Detection论文笔记_第2张图片
(1) BiFPN
W b i f p n = 64 ⋅ ( 1.3 5 ϕ ) , D b i f p n = 3 + ϕ W_{bifpn}=64\cdot(1.35^{\phi}), D_{bifpn}=3+\phi Wbifpn=64(1.35ϕ),Dbifpn=3+ϕ
式中, W b i f p n W_{bifpn} Wbifpn是BiFPN的通道数,而 D b i f p n D_{bifpn} Dbifpn是BiFPN层数。
(2) 分类/回归网络
宽度保持不变,但是层数通过下式定义:
D b o x = D c l a s s = 3 + ⌊ ϕ ⌋ D_{box}=D_{class}=3+\left \lfloor \phi \right \rfloor Dbox=Dclass=3+ϕ
(3) 输入尺寸
R i n p u t = 512 + ϕ ⋅ 128 R_{input}=512 + \phi \cdot 128 Rinput=512+ϕ128

2.3 EfficientDet

  EfficientDet网络结构如图所示。
[CVPR 2020] EfficientDet: Scalable and Efficient Object Detection论文笔记_第3张图片

3. Performance

[CVPR 2020] EfficientDet: Scalable and Efficient Object Detection论文笔记_第4张图片

4. Q & A

问题主要来源是cosmoshnight的提问 EfficientDet论文解读
  1. 网络的权重是如何定义的,特征图融合后作为分类/回归网络时,融合的权重考虑了吗?
  答:网络的权重是通过定义全连接层的方式实现的。特征图通过融合之后再进入分类/回归网络,这是在前向过程中对权重的考虑。同时,这个权重是网络可学习的参数,当有分类/回归Loss回传的时候,这是反向过程对权重的考虑。

  2. 分类/回归网络结构是怎样的,它们相同吗?
  答:从代码上看,二者网络结构大体相同,通过卷积神经网络进行操作,不过输出向量不相同。

你可能感兴趣的:(论文阅读,物体检测)