EfficientDet详解
EfficientDet
EfficientDet: Scalable and Efficient Object Detection
EfficientDet
EfficientDet是google在2019年11月发表的一个目标检测算法系列,分别包含了从D0~D7总共八个算法,对于不同的设备限制,能给到SOTA的结果,在广泛的资源约束下始终比现有技术获得更好的效率。特别是在单模型和单尺度的情况下,EfficientDet-D7在COCO测试设备上达到了最先进的52.2AP,具有52M参数和325B FLOPs,相比与之前的算法,参数量缩小了4到9倍,FLOPs缩小了13到42倍。
首先,google提出了一种加权双向特征金字塔网络(BiFPN),它允许简单、快速的多尺度特征融合;其次,提出了一种复合特征金字塔网络缩放方法,统一缩放所有backbone的分辨率、深度和宽度、特征网络和box/class预测网络。
BiFPN
传统的top-down FPN只有自顶向下单向信息流,PANet增加了自底向上的信息流,NAS-FPN通过大量计算和搜索有更复杂的信息流。论文中对不同FPN实验发现,PANet的效果最佳,但参数量计算量也较大。论文在PANet的基础上提出了几种跨尺度连接的优化方法:
- 删除那些只有一个输入边缘的节点。
论文中认为如果一个节点只有一个输入边缘,没有特征融合,那么它对目的是融合不同的特征的特征网络的贡献就会更小。这引出了一个简化的双向网络; - 如果原始输入节点处于同一水平,将从原始输入添加一个额外的边到输出节点,以便融合更多的特征,而不增加大量的成本;
- 与只有一个自顶向下和一个自底向上路径的PANet不同,论文将每个双向(自顶向下和自下而上)路径视为一个特征网络层,并多次重复同一层,以实现更多的高级特征融合。
加权特征融合
当融合不同分辨率的特征时,一种常见的方法是首先将它们调整到相同的分辨率,然后将它们进行总结。金字塔注意网络global self-attention上采样恢复像素定位。所有以前的方法都一视同仁地对待所有输入特征。 然而,论文中认为由于不同的输入特征在不同的分辨率,他们通常贡献的输出特征不平等。为了解决这个问题,论文建议为每个输入增加一个权重,并让网络学习每个输入特性的重要性。
- Fast normalized fusion:wi>0,与softmax有相似的学习规律,但速度在GPUs上比softmax快30%。
Compound Scaling
- Backbone network:采用相同的宽度/深度缩放系数的efficientnet-B0到B6。
- BiFPN network:
- Box/class prediction network:宽度与BiFPN一样,仅对深度进行缩放。
- Input image resolution:
由于特征级3-7在BiFPN中使用,输入分辨率必须可分27=128,因此使用方程线性增加分辨率。