只使用了 52M 参数、326B FLOPS 的 EfficientDet-D7 在 COCO 数据集上实现了当前最优的 51.0 mAP
在类似的准确率限制下,EfficientDet 的 FLOPS 仅为 YOLOv3 的 1/28、RetinaNet 的 1/30、NASFPN 的 1/19。
FLOPS:注意全大写,是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。
FLOPs:注意s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。(这应当是横坐标代表的意义)
detector
由三部分组成:
•
Backbone:
EfficientNet
•
feature network:
BiFPN
network
•
box/class prediction network
•
作者研究的两个出发点是:寻求高效的多尺度特征融合方式
(efficient multi-scale feature fusion)
和模型扩展方式
(model scaling)
。
BiFPN
以往的特征融合是平等地对待不同尺度特征,作者引入了权重(类似于attention),更好地平衡不同尺度的特征信息
•
FPN
引入了一条自顶向下的通道来融合特征;
•
PANet
在
FPN
基础上增加了一条自底向上的通道;
在搜索过程中,研究者的目标是发现具有相同输入和输出特征级别并且可以被重复应用的微粒架构。模块化搜索空间使得搜索金字塔架构变得易于管理。
但是它需要167M参数和3045BFLOPS(比RetinaNet[17]多30倍),模型尺寸巨大,计算成本昂贵。
目标检测的难点在于有效地表示和处理多尺度特征。早期的探测器通常直接根据从骨干网络提取的金字塔特征层次结构执行预测[2,20,28]。作为一个开创性的作品,特征金字塔网络(FPN)[16] 提出自上而下的方法来组合多尺度特征。遵循这个想法,PANet[19]添加了一个额外的FPN上自下而上的路径聚合网络;STDL[35]提出了一个规模转移模块来利用交叉规模特点;M2det[34]提出了一个U形模块来融合多尺度特性,G-FRNet[1]引入门单元用于控制功能之间的信息流。最近,NAS-FPN[5]利用神经架构搜索自动设计要素网络拓扑。尽管NAS-FPN能获得更好的性能,但它在搜索过程中需要数千个GPU小时,并且生成的特征网络是不规则的,因此很难解释。
•
一般的做法是:不同
resolution
的特征融合时直接相加,但实际上它们对最后
output
的贡献是不同的,所以作者希望网络来学习不同输入特征的权重,即
weighted feature fusion。
PANet比FPN和NAS-FPN具有更好的精度,但需要花费更多的参数和计算。
•
全连接的
FPN
•
PANet
的一种简化版,去除掉只有一条输入
边
和输出边
的
结点
•
BiFPN
,在
PANet
简化版的基础上,若输入和输出结点是同一
level
的,则添加一条额外的边,在不增加
cost
的同时融合更多的特征。(注意,
PANet
只有一条
top-down path
和一条
bottom-up path
,而本文作者是将
BiFPN
当作一个
feature network layer
来用的,重复堆叠它们来获得更高级的特征融合方式)
weight的三种讨论
1)Unbounded fusion,weight不做限制,可能会引起训练不稳定
2)Softmax-based fusion,计算softmax速度较慢,这个在前端尤其突出。
3)Fast normalized fusion,为了保证weight大于0,weight前采用relu函数。
•
实验表明,
unbounded fusion
效果是不错的,
softmax
-based fusion
效果最好但是计算资源消耗过大,
fast normalized fusion
精度与
softmax
-based fusion
相似但可以快
30%
。所以作者最终采用了
fast normalized fusion
方式。