YOLOv5使用ASPP 和BiFPN的公式推导
时间: 2023-12-15 17:10:18 浏览: 109
YOLOv5是一种目标检测算法,该算法使用了ASPP和BiFPN来增强其性能。下面是它们的公式推导:
1. ASPP
ASPP(Atrous Spatial Pyramid Pooling,空洞空间金字塔池化)是一种有效的特征提取方法,它通过在不同采样率下对输入图像进行卷积操作来捕获多尺度特征。
假设输入特征图为$X∈R^{H×W×C}$,ASPP的输出特征图为$Y∈R^{H×W×D}$,其中$D$是输出通道数。ASPP包含一个全局池化层和三个卷积层,每个卷积层都有一个不同的采样率。
全局池化层:
$$
f_{global}=\frac{1}{H×W}\sum_{i=1}^H\sum_{j=1}^WX_{i,j,:}
$$
具有3个采样率的卷积层:
$$
f_i(X)=ReLU(Conv(X, W_i))
$$
其中,$W_i$是卷积核,$i∈\{1,2,3\}$代表不同的采样率。ASPP的输出特征图$Y$可以通过将全局池化层和3个卷积层的结果拼接在一起得到:
$$
Y=Concat(f_{global}, f_1(X), f_2(X), f_3(X))
$$
2. BiFPN
BiFPN(Bidirectional Feature Pyramid Network,双向特征金字塔网络)是一种多尺度特征融合方法,它可以在不同的层次上进行信息交流和特征融合。
假设输入特征图为$X∈R^{H×W×C}$,BiFPN的输出特征图为$Y∈R^{H×W×D}$,其中$D$是输出通道数。BiFPN包含了一个自顶向下的信息传递和一个自底向上的信息传递,它们分别被称为Top-Down Path和Bottom-Up Path。
Top-Down Path:
$$
F_k^t=Conv_k^t(X_k)+Upsample(F_{k+1}^t)
$$
其中,$F_k^t$表示来自第$k$层的自顶向下的特征,$Conv_k^t$是一个$3×3$的卷积层,$X_k$是第$k$层的输入特征,$Upsample$是上采样操作,$F_{k+1}^t$是来自第$k+1$层的自顶向下的特征。在Top-Down Path中,从下到上逐层计算$F_k^t$,然后将其传递给Bottom-Up Path。
Bottom-Up Path:
$$
F_k^b=Conv_k^b(X_k)+Pool(F_{k-1}^b)+Upsample(F_{k+1}^t)
$$
其中,$F_k^b$表示来自第$k$层的自底向上的特征,$Conv_k^b$是一个$3×3$的卷积层,$Pool$是平均池化操作,$F_{k-1}^b$是来自第$k-1$层的自底向上的特征,$F_{k+1}^t$是来自Top-Down Path的自顶向下的特征。在Bottom-Up Path中,从上到下逐层计算$F_k^b$,然后将其传递给Top-Down Path。
最终输出特征图$Y$可以通过将Top-Down Path和Bottom-Up Path的结果拼接在一起得到:
$$
Y=Concat(F_k^t, F_k^b)
$$
阅读全文