EfficientDet: Scalable and Efficient Object Detection(BiFPN)

EfficientDet: Scalable and Efficient Object Detection

论文:EfficientDet: Scalable and Efficient Object Detection
论文地址:https://arxiv.org/pdf/1911.09070.pdf

卷积神经网络的速度和精度之间存在权衡,而 EfficientDet 是一个总称,可以分为 EfficientDet-D1 ~ EfficientDet-D7,速度逐渐变慢,但是精度也逐渐提高。
EfficientDet: Scalable and Efficient Object Detection(BiFPN)
由上图可知,EfficientDet-D7的参数量52M,FLOPs为325B的情况下,在COCO测试集上达到了53.7的AP,是一个SOTA结果。

BiFPN

EfficientDet-D7最重要的贡献就是提出了BiFPN的特征融合。
EfficientDet: Scalable and Efficient Object Detection(BiFPN)
自从FPN提出之后,各种连连看式的特征融合方法被提出来,FPN是将高层语义信息通过自顶向下的路径进行传递,PAN为了让低层的位置信息也能传递到高层语义信息层,添加了一个自低向上的路径,学术界戏称为“双塔模型”。NAS-FPN是使用神经搜索融合结构,然后重复结构块。

  • 经过作者观察,PAN性能比FPN和NAS-FPN要好,但是需要更多参数和计算成本。
  • 作者从PAN出发,移除了只有一个输入的节点,并假定这个只有一个输入的节点对特征融合贡献不大。
  • 在相同level层添加一个skip connection,为了能融合更多的特征信息。
  • 以一个自顶向下和一个自低向上的连法作为一个基础层,不断重复这个模块,就形成了BiFPN特征融合模块。

以前的特征融合都是单纯地Resize到相同尺度,Conv到相同通道数,然后Concatrate或者point-wise addition,这样就会导致一个问题,融合的特征权重相等,但实际上特征的权重应该由网络自适应地去学习,如ASFF一样。
但是如果不对权重进行归一化到[0, 1]的话,会导致网络学习不稳定,因而一般使用softmax对权重进行归一化。
EfficientDet: Scalable and Efficient Object Detection(BiFPN)
作者发现softmax带有指数运算,因而会对性能有所损失,就简化了softmax的运算方式,去掉了softmax的指数运数,在 GPU 上能快 30%,性能微微损失一点。
EfficientDet: Scalable and Efficient Object Detection(BiFPN)
EfficientDet: Scalable and Efficient Object Detection(BiFPN)
最后来一个EfficientDet的整体架构图:
EfficientDet: Scalable and Efficient Object Detection(BiFPN)
至此,BiFPN就介绍完毕了,Efficient里面还有一个针对Model Scaling而做的“炼丹方”,应该是作者经过大量模型实践得到的,有兴趣的可以去原文查看。