【论文阅读笔记】EfficientDet:Scalable and Efficient Object Detection
论文地址:EfficientDet
论文总结
本文是基于EfficientNet展开的检测网络,其提出了一种新的特征融合手段(BiFPN),以及检测器上的缩放方案(如EfficientNet一样的多维度组合缩放方案),可以得到一个高效率又高性能的网络。
BiFPN通过对FPN添加一个bottom-up的路径以及做了一些修改,之后又对每一个特征融合的特征添加了权重的影响,这与传统的相同大小feature map直接相加不同。
网络性能展示如下:
论文介绍
BiFPN是一个有效的双向的同尺度连接(cross-scale connections),如下图的(d)所示。
有效的跨尺度连接方案如下:
- 移除只有一个输入的边;作者认为如果一个结点只有一个输入,没有特征融合,则其可以认为是相对没那么重要的;
- 特征融合的时候添加多一个同一尺寸大小的输入,这样就可以在没有增加太多计算量的情况下融合更多的特征信息;
- 不像PANet只有一个top-down和一个bottom-up路径,EfficientNet将这个组合作为一个基本block,可重复多次来获得更高层次的特征融合。
同时,作者认为特征融合不同输入的权重应该不一样,所以本文提出增加学习特征融合的Input对应的weight。一般来说,增加权重有几种方式:(1)标量,即每一个输入对应一个标量的权重;(2)向量,即每一个输入的每一个channel都对应一个权重;(3)张量,即每一个元素都有其对应的权重。经过实验,作者发现标量的权重可以达到和向量、张量一样的效果。
但张量是无边界的,可能会带来训练的不稳定,所以作者打算通过归一化使得权重限制在~之间。一开始使用softmax,但那会带来性能的降低(速度慢),后来直接用权值进行归一化,也获得了差不多的结果;
一般特征融合之后会使用一个conv操作。为了进一步提升性能,EfficientDet使用depthwise conv用于特征融合后的操作。
网络架构
组合缩放
Backbone network使用EfficientNet一样的缩放策略,即EfficientNet-B0~B6,这样就可以简单利用ImageNet预训练好的checkpoint。
BiFPN network,宽度(channel)使用指数增长的缩放:文中在{1.2,1.25,1.3,1.35,1.4,1.45}中使用网格搜索,最终选择使用1.35作为width的缩放系数;深度(layer)使用线性增长的方案: Box/class prediction network,使用的channel数与BiFPN一致,但layers数以如下方式增长: Input image resolution,因为网络最后下采样,所以以作为系数:
需要注意的是,缩放方案是基于启发式的,但并不是最优的。
论文实验
损失函数使用Focal Loss,其系数,。使用RetinaNet的训练预处理:多分辨率crop/scale 和 flip;没有使用自动增强(数据增强)策略。
性能对比:
softmax归一化和普通归一化的实验对比:
从图5中的三个随机结点的权重学习可以看出,两种方案的学习曲线是相似的。最后的性能(AP)也相差不大,却有不小的速度差异。