bi-fpn模块数学公式推导
时间: 2023-09-30 16:09:19 浏览: 179
Python-NASFPN用于对象检测的学习可扩展特征金字塔结构
3星 · 编辑精心推荐
BiFPN (Bidirectional Feature Pyramid Network) 是一种用于目标检测的网络模块,可以有效地融合多层特征图信息。下面是 BiFPN 的数学公式推导:
设输入特征图为 $F_0, F_1, ..., F_{L-1}$,其中 $L$ 为输入特征图的层数。BiFPN 的输出特征图为 $F_0', F_1', ..., F_{L-1}'$,满足:
$$F_l'^{(0)} = F_l, l=0,1,...,L-1$$
$$F_l'^{(t)} = \sum_{k\in\mathcal{N}(l)}w_{lk}^{(t)}\cdot F_k'^{(t-1)}, t=1,2,...,T, l=0,1,...,L-1$$
$$F_l' = \text{Conv}_p(F_l'^{(T)}), l=0,1,...,L-1$$
其中,$\mathcal{N}(l)$ 表示第 $l$ 层特征图在双向连接中的邻居层,$w_{lk}^{(t)}$ 是连接第 $l$ 层和第 $k$ 层的权重,$T$ 是 BiFPN 的迭代次数,$\text{Conv}_p$ 表示使用 $1\times1$ 的卷积操作并应用批归一化和激活函数。
权重 $w_{lk}^{(t)}$ 的计算方式如下:
$$w_{lk}^{(t)} = \frac{\text{softmax}(s_{lk}^{(t)})}{\sum_{j\in\mathcal{N}(l)}\text{softmax}(s_{lj}^{(t)})}$$
其中,$s_{lk}^{(t)}$ 是连接第 $l$ 层和第 $k$ 层的权重系数,计算方式如下:
$$s_{lk}^{(t)} = \text{Conv}_s([F_l'^{(t-1)},F_k'^{(t-1)},F_l'^{(t-1)}-F_k'^{(t-1)},F_l'^{(t-1)}\cdot F_k'^{(t-1)}])$$
其中,$\text{Conv}_s$ 表示使用 $1\times1$ 的卷积操作并应用批归一化和激活函数。
BiFPN 的输出特征图 $F_0', F_1', ..., F_{L-1}'$ 可以直接输入目标检测网络中进行目标检测任务。
阅读全文