YOLOv5在neck添加cbam注意力机制公式推导
时间: 2023-12-18 18:14:32 浏览: 93
在 YOLOv5 的 neck 中添加 CBAM 注意力机制的公式推导如下:
假设输入特征图为 $X \in \mathbb{R}^{C \times H \times W}$,$C$、$H$、$W$ 分别表示通道数、高度和宽度。CBAM 注意力机制包括两个模块:通道注意力和空间注意力。
1. 通道注意力
首先,计算全局平均池化值:
$$\mathbf{a}_c = \frac{1}{H \times W} \sum_{i=1}^{H} \sum_{j=1}^{W} X_{c, i, j}$$
其中 $\mathbf{a}_c \in \mathbb{R}^C$ 表示通道 $c$ 的全局平均池化值。
接着,对全局平均池化值进行两层全连接层:
$$ \mathbf{z} = \mathrm{ReLU}(\mathbf{W}_2\delta(\mathbf{W}_1\mathbf{a})) $$
其中,$\mathbf{W}_1 \in \mathbb{R}^{C' \times C}$,$\mathbf{W}_2 \in \mathbb{R}^{C \times C'}$,$\delta$ 表示批归一化,ReLU 表示激活函数。
最后,对每个通道进行缩放,得到通道注意力的权重 $\mathbf{s} \in \mathbb{R}^C$:
$$\mathbf{s}_c = \frac{1}{Z} \mathbf{z}_c$$
其中,$Z = \sum_{c=1}^{C} \mathbf{z}_c$。
2. 空间注意力
对于每个通道 $c$,我们可以将其空间特征图视为一个向量 $\mathbf{x}_c \in \mathbb{R}^{H \times W}$,然后计算其对应的空间注意力权重 $\mathbf{r}_c \in \mathbb{R}^{H \times W}$:
$$ \mathbf{r}_c = \mathrm{softmax}(f(\mathbf{x}_c)) $$
其中,$f$ 表示一个卷积层和一个 sigmoid 激活函数,用于学习权重。$\mathrm{softmax}$ 表示对每个位置进行 softmax 归一化。
最后,将通道注意力权重和空间注意力权重相乘,得到最终的注意力权重 $\mathbf{w}_c \in \mathbb{R}^{H \times W}$:
$$\mathbf{w}_c = \mathbf{s}_c \odot \mathbf{r}_c$$
其中,$\odot$ 表示逐元素相乘。最终的特征图为:
$$Y_{c, i, j} = X_{c, i, j} \cdot \mathbf{w}_{c, i, j}$$
这样,我们就完成了 CBAM 注意力机制的推导。
阅读全文