BiFPN可以作为一个常备块在修改网络时使用。在用代码实现BiFPN之前,我们需要对其网络结构及细节原理有一个清晰的认识,下图时BiFPN的原理图:
【视觉检测图像分割干货|浅谈BiFPN结构并在mmdetection中从Registry开始逐步实现】
文章图片
该图清晰明了的阐明了BiFPN的数据流向,下面做进一步具体分析:
- 图中所有Add操作均为用可学习的权重参数进行加权特征融合而非直接的Add相加,也就是每融合一次,都要进行一次加权求和。由于权重的无界性,如果将特征直接乘以权重相加会造成训练的不稳定。因此,采用权重归一化的方式进行融合,以p6_td和p6_out为例,其Add操作的公式如下:
文章图片
- p3,p4,p5为Backbone的3个stage输出的特征层。p6_in是由p5降采样得到的,p7_in是由p6_in降采样得到的。p3_in、p4