文章目录
谷歌大脑发布的高效高精度物体检测器。收录于CVPR 2020。
安利一个大佬的复现代码(zylo117复现Torch版本)
1. Introduction
现有的SOTA物体检测算法通常无法兼顾效率和精度,复杂的模型需要较大的计算量,而简单模型又会损失检测精度。因此,本文提出了一种简单且有效率的加权双向特征金字塔网络(BiFPN),实现跨尺度的特征融合。同时,我们提出了一种联合缩放方法,可以对主干网络、BiFPN、回归/分类网络及输入图片分辨率进行缩放。将联合缩放和BiFPN与EffcientNet结合,我们设计了一种全新的目标检测器EfficientDet。该方法在物体检测和分割任务上可以使用较少的参数和FLOPS得到SOTA的性能。
2. Methods
文章的主要贡献包括:(1)BiFPN。传统的方法只是将不同尺度的特征图进行相加,但是不同的特征图是从不同分辨率的图像中得到的,因此应当赋予不同的权重。为了解决上述问题,作者提出了一种双向加权的FPN,BiFPN通过引入一个可学习的加权值,达到跨尺度的特征融合。(2)Compound scaling,通过相关系数同时控制主体网络、特征网络、回归/分类网络及输入图片的尺寸。作者认为上述参数尺寸都会影响检测器的精度。(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以实现更多高阶特征融合。
作者还对比了三种不同的融合方法。无边界的融合容易造成训练的不稳定;Softmax-based融合会引入Softmax计算。因此,作者提出了快速归一化加权融合,对于图(d)中的两层节点的加权融合公式如式:
2.2 Compound Scaling
联合缩放方法通过联合系数同时控制主体网络、BiFPN网络、回归/分类网络及图片输入尺寸的缩放。缩放程度如图所示。
(1) BiFPN
式中,是BiFPN的通道数,而是BiFPN层数。
(2) 分类/回归网络
宽度保持不变,但是层数通过下式定义:
(3) 输入尺寸
2.3 EfficientDet
 EfficientDet网络结构如图所示。
3. Performance
4. Q & A
问题主要来源是cosmoshnight的提问 EfficientDet论文解读
1. 网络的权重是如何定义的,特征图融合后作为分类/回归网络时,融合的权重考虑了吗?
答:网络的权重是通过定义全连接层的方式实现的。特征图通过融合之后再进入分类/回归网络,这是在前向过程中对权重的考虑。同时,这个权重是网络可学习的参数,当有分类/回归Loss回传的时候,这是反向过程对权重的考虑。
2. 分类/回归网络结构是怎样的,它们相同吗?
答:从代码上看,二者网络结构大体相同,通过卷积神经网络进行操作,不过输出向量不相同。