cbam注意力机制嵌入yolov5模型中进行数学推导
时间: 2023-12-16 20:05:41 浏览: 80
融合CBAM通道注意力机制的YOLOv5-v6.1版本源码
CBAM(Convolutional Block Attention Module)是一种卷积神经网络注意力机制结构,通过学习特征图中通道和空间的关系,来对特征图进行加权,从而提高模型的性能。在YOLOv5模型中,可以将CBAM注意力机制嵌入到骨干网络中的卷积层中,以提高模型的性能。
下面是CBAM注意力机制嵌入YOLOv5模型中的数学推导:
假设输入特征图为 $X \in R^{C \times H \times W}$,其中 $C$ 表示通道数,$H$ 和 $W$ 分别表示特征图的高和宽。CBAM模块主要包含两个部分,通道注意力和空间注意力。
通道注意力部分首先对输入特征图进行全局平均池化,得到通道维度上的全局信息,然后通过两个全连接层来学习通道之间的关系,得到每个通道的重要性权重。具体地,对于每个通道 $c$,其重要性权重为:
$$
f_{c} = \sigma(W_{2} \delta (W_{1} \frac{1}{HW} \sum_{i=1}^{H} \sum_{j=1}^{W} X_{c,i,j}))
$$
其中,$\delta$ 表示激活函数,$\sigma$ 表示sigmoid函数,$W_{1} \in R^{\frac{C}{r} \times C}$ 和 $W_{2} \in R^{C \times \frac{C}{r}}$ 分别表示两个全连接层的权重,$r$ 是一个可调的超参数,通常取 $r=16$。
通过通道注意力部分得到每个通道的重要性权重后,可以使用这些权重对特征图进行加权,得到加权后的特征图 $\tilde{X}$:
$$
\tilde{X}_{c,i,j} = f_{c} X_{c,i,j}
$$
空间注意力部分主要是对加权后的特征图 $\tilde{X}$ 进行空间维度上的注意力加权。具体地,空间注意力部分首先对加权后的特征图 $\tilde{X}$ 进行最大池化和平均池化,得到空间维度上的最大值和均值信息,然后通过一个全连接层来学习空间维度上的关系,得到每个空间位置的重要性权重。具体地,对于每个空间位置 $(i,j)$,其重要性权重为:
$$
g_{i,j} = \sigma(W_{4} \delta (W_{3} [maxpool(\tilde{X}),avgpool(\tilde{X})]))
$$
其中,$[maxpool(\tilde{X}),avgpool(\tilde{X})]$ 表示将最大池化和平均池化的结果在通道维度上进行拼接,$W_{3} \in R^{2d \times d}$ 和 $W_{4} \in R^{d \times 2d}$ 分别表示两个全连接层的权重,$d$ 是一个可调的超参数,通常取 $d=16$。
通过空间注意力部分得到每个空间位置的重要性权重后,可以使用这些权重对加权后的特征图进行加权,得到最终的特征图 $Y$:
$$
Y_{c,i,j} = g_{i,j} \tilde{X}_{c,i,j}
$$
最后,将特征图 $Y$ 送入后续的卷积层进行处理。这样,就完成了CBAM注意力机制的嵌入。
阅读全文