注意力机制在计算机视觉领域得到了广泛的研究和应用,利用构建通道或空间位置之间的依赖关系的能力,有效地应用于各种计算机视觉任务。本文研究了轻量级但有效的注意力机制,并提出了一种新的计算注意力权重的方法——三元组注意力,通过一个三分支结构捕捉跨维度交互。对于输入张量,三元组注意力通过旋转操作和残差变换建立跨维度的依赖关系,并以极小的计算开销编码了跨通道和空间信息。这种方法既简单又高效,可以轻松地插入经典的主干网络中作为附加模块。在各种具有挑战性的任务中,如ImageNet-1k图像分类和MSCOCO和PASCAL VOC数据集上的目标检测,证明了该方法的有效性。此外,通过可视化检查GradCAM和GradCAM++结果,提供了对三元组注意力性能的深入见解。本文方法的实证评估支持了在计算注意力权重时捕捉跨维度依赖关系的重要性的直觉。相关代码可以在https://github.com/LandskapeAI/triplet-attention上公开访问。
三元组注意力机制是一种注意力机制,旨在有效地处理跨维度的交互。它由三个分支组成,每个分支负责捕捉输入中空间维度和通道维度之间的跨维度交互特征。具体来说,对于一个输入张量
,该机制首先将输入传递给每个分支进行操作。每个分支负责聚合输入中特定维度与通道维度之间的交互特征。
第一分支负责处理输入中空间维度H和W与通道维度C之间的交互特征。它通过在空间维度上应用最大池化和平均池化操作,然后将结果展平并沿着通道维度连接,以获得跨空间维度的交互特征。
第二分支负责处理输入中空间维度H和W与通道维度C之间的交互特征。它首先对输入进行全局平均池化操作,然后使用1×1卷积核将结果展平并沿着通道维度连接,以获得跨空间维度的交互特征。
第三分支负责处理输入中通道维度C与空间维度H和W之间的交互特征。它首先对输入进行全局最大池化操作,然后使用1×1卷积核将结果展平并沿着通道维度连接,以获得跨通道维度的交互特征。
最后,将三个分支的结果连接起来,得到最终的跨维度交互特征。这种机制可以有效地捕捉输入中不同维度之间的交互特征,从而更好地理解图像内容。
链接:
https://blog.csdn.net/m0_47867638/article/details/134697564?spm=1001.2014.3001.5501
三元组注意力机制相对于其他注意力机制,如自注意力、多头注意力等,具有以下优势和特点:
实验结果主要表明了三方面:
YOLOv8l summary (fused): 268 layers, 43631280 parameters, 0 gradients, 165.0 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 29/29 [
all 230 1412 0.922 0.957 0.986 0.737
c17 230 131 0.973 0.992 0.995 0.825
c5 230 68 0.945 1 0.995 0.836
helicopter 230 43 0.96 0.907 0.951 0.607
c130 230 85 0.984 1 0.995 0.655
f16 230 57 0.955 0.965 0.985 0.669
b2 230 2 0.704 1 0.995 0.722
other 230 86 0.903 0.942 0.963 0.534
b52 230 70 0.96 0.971 0.978 0.831
kc10 230 62 0.999 0.984 0.99 0.847
command 230 40 0.97 1 0.995 0.811
f15 230 123 0.891 1 0.992 0.701
kc135 230 91 0.971 0.989 0.986 0.712
a10 230 27 1 0.555 0.899 0.456
b1 230 20 0.972 1 0.995 0.793
aew 230 25 0.945 1 0.99 0.784
f22 230 17 0.913 1 0.995 0.725
p3 230 105 0.99 1 0.995 0.801
p8 230 1 0.637 1 0.995 0.597
f35 230 32 0.939 0.938 0.978 0.574
f18 230 125 0.985 0.992 0.987 0.817
v22 230 41 0.983 1 0.995 0.69
su-27 230 31 0.925 1 0.995 0.859
il-38 230 27 0.972 1 0.995 0.811
tu-134 230 1 0.663 1 0.995 0.895
su-33 230 2 1 0.611 0.995 0.796
an-70 230 2 0.766 1 0.995 0.73
tu-22 230 98 0.984 1 0.995 0.831
Speed: 0.2ms preprocess, 3.8ms inference, 0.0ms loss, 0.8ms postprocess per image
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 15/15 [00:01<00:00, 8.19it/s]
all 230 1412 0.969 0.964 0.991 0.745
c17 230 131 0.996 0.992 0.995 0.828
c5 230 68 0.986 1 0.995 0.817
helicopter 230 43 0.976 0.966 0.984 0.585
c130 230 85 1 0.971 0.994 0.648
f16 230 57 1 0.93 0.989 0.681
b2 230 2 0.916 1 0.995 0.723
other 230 86 1 0.921 0.979 0.56
b52 230 70 0.984 0.971 0.981 0.826
kc10 230 62 0.997 0.984 0.989 0.837
command 230 40 0.995 1 0.995 0.821
f15 230 123 0.963 0.984 0.993 0.7
kc135 230 91 0.982 0.989 0.984 0.705
a10 230 27 1 0.522 0.968 0.509
b1 230 20 0.998 1 0.995 0.752
aew 230 25 0.94 1 0.995 0.789
f22 230 17 0.887 1 0.995 0.771
p3 230 105 1 0.982 0.995 0.814
p8 230 1 0.841 1 0.995 0.796
f35 230 32 1 0.83 0.989 0.611
f18 230 125 0.984 0.983 0.992 0.829
v22 230 41 0.995 1 0.995 0.696
su-27 230 31 0.993 1 0.995 0.857
il-38 230 27 0.994 1 0.995 0.823
tu-134 230 1 0.833 1 0.995 0.895
su-33 230 2 1 1 0.995 0.697
an-70 230 2 0.91 1 0.995 0.726
tu-22 230 98 0.999 1 0.995 0.819
Speed: 0.1ms preprocess, 5.0ms inference, 0.0ms loss, 0.6ms postprocess per image
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 15/15 [00:01<00:00, 9.17it/s]
all 230 1412 0.956 0.959 0.987 0.748
c17 230 131 0.973 0.992 0.995 0.816
c5 230 68 0.944 0.988 0.993 0.832
helicopter 230 43 0.968 1 0.985 0.591
c130 230 85 0.988 0.994 0.995 0.663
f16 230 57 1 0.939 0.977 0.667
b2 230 2 0.887 1 0.995 0.849
other 230 86 0.981 0.919 0.973 0.546
b52 230 70 0.979 0.971 0.983 0.824
kc10 230 62 0.997 0.984 0.988 0.841
command 230 40 0.993 1 0.995 0.849
f15 230 123 0.94 0.984 0.992 0.713
kc135 230 91 0.985 0.989 0.987 0.689
a10 230 27 0.965 0.667 0.868 0.446
b1 230 20 0.972 0.95 0.993 0.669
aew 230 25 0.935 1 0.995 0.802
f22 230 17 0.935 1 0.995 0.721
p3 230 105 1 0.996 0.995 0.811
p8 230 1 0.804 1 0.995 0.895
f35 230 32 0.98 0.969 0.993 0.567
f18 230 125 0.986 0.992 0.992 0.835
v22 230 41 0.99 1 0.995 0.671
su-27 230 31 0.98 1 0.995 0.86
il-38 230 27 0.986 1 0.995 0.825
tu-134 230 1 0.792 1 0.995 0.895
su-33 230 2 1 0.571 0.995 0.697
an-70 230 2 0.868 1 0.995 0.796
tu-22 230 98 0.997 1 0.995 0.823
Speed: 0.1ms preprocess, 3.7ms inference, 0.0ms loss, 0.6ms postprocess per image
本文尝试了使用三元注意力机制改进YoloV8,虽然是比较老的论文,但是效果还是可以的。两种改进均有提点,但没有增加太多的运算量。