一、本文介绍
本文记录的是利用Triplet Attention
模块优化YOLOv11
的目标检测网络模型。Triplet Attention
的作用在于通过三个分支结构捕捉跨维度交互,同时包含通道信息和空间信息,克服了常见注意力方法中通道和空间分离计算以及未考虑跨维度交互和维度缩减的问题。相比一些传统注意力机制,能更好地表达网络特征。本文将其应用到v11
中,并进行二次创新,使网络能够综合多种维度信息,更好地突出重要特征,从而提升模型在不同任务中的性能。
专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:YOLOv11改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!
二、Triplet Attention介绍
Rotate to Attend: Convolutional Triplet Attention Module
Triplet Attention Module
是一种轻量级的注意力机制模块,以下是对其模块设计的出发点、原理、结构和优势的详细介绍:
2.1 出发点
轻量级且高效的需求:现有的注意力机制如
SE
、CBAM
等虽然有效,但存在一些问题。例如CBAM在计算通道注意力时存在维度缩减,导致通道间非线性局部依赖关系的捕捉存在冗余,且部分方法需要较多额外的可学习参数。作者希望研究一种轻量级但有效的注意力机制,在保持或提高性能的同时,减少计算开销和参数数量。
强调跨维度交互的重要性:在计算注意力权重时,捕捉跨维度交互对于提供丰富的特征表示非常重要。作者观察到现有的一些方法如
CBAM
在通道注意力计算中未考虑跨维度交互,而这种交互对性能有积极影响。
2.2 原理
- 跨维度交互原理:传统的通道注意力计算方法通常是为输入张量中的每个通道计算一个单一权重,然后使用该权重对特征图进行统一缩放。这种方法在计算通道注意力时,通常会通过全局平均池化将输入张量在空间上分解为每个通道一个像素,导致空间信息丢失,以及通道维度和空间维度之间的相互依赖关系缺失。
Triplet Attention
通过在三个分支中分别捕捉输入张量的不同维度组合($(C, H)$、$(C, W)$和$(H, W)$)之间的依赖关系来解决这个问题。
- 注意力权重计算:对于每个分支,通过一系列操作计算注意力权重。首先对输入张量进行旋转操作,然后经过Z - pool层进行维度缩减,接着通过卷积层和批归一化层,最后通过sigmoid激活层生成注意力权重。这些权重用于对相应分支的特征进行加权,然后将三个分支的结果进行平均聚合,得到最终的输出张量。
2.3 结构
2.3.1 三个并行分支
两个跨维度交互分支:其中两个分支分别负责捕捉通道维度与空间维度($H$或$W$)之间的跨维度交互。
在第一个分支中,输入张量沿$H$轴逆时针旋转90°,然后经过Z - pool层、卷积层、批归一化层和sigmoid激活层生成注意力权重,再将权重应用于旋转后的张量并顺时针旋转90°恢复原始形状。第二个分支类似,只是沿$W$轴旋转。
一个空间注意力分支:最后一个分支类似于
CBAM
中的空间注意力
模块,用于构建空间注意力。输入张量先经过Z - pool层,然后通过卷积层
和批归一化层
,最后通过sigmoid激活层
生成空间注意力权重并应用于输入张量。2.3.2 聚合操作
三个分支
的输出通过简单平均进行聚合,得到最终的精炼张量。
2.4 优势
- 计算开销小:在计算注意力权重时,以可忽略的计算开销捕捉到丰富的判别性特征表示。例如在ResNet - 50上进行实验,与其他注意力机制相比,
Triplet Attention
增加的参数和FLOP非常少,但能提高性能。 - 强调跨维度交互且无维度缩减:与之前的方法不同,
Triplet Attention
强调跨维度交互的重要性,并且在计算过程中没有维度缩减,避免了通道和权重之间的间接对应关系,从而能够更好地捕捉特征之间的关系,提供更有效的特征表示。 - 性能优势:在多种计算机视觉任务上表现出色,如在ImageNet - 1k图像分类任务、MSCOCO和PASCAL VOC数据集的目标检测任务中,能够匹配或超越其他类似的注意力机制技术,同时引入的额外模型参数数量最少。
论文:https://arxiv.org/pdf/2010.03045.pdf
源码: https://github.com/landskape-ai/triplet-attention
三、实现代码及YOLOv11修改步骤
模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址: