admin管理员组文章数量:1487745
YoloV8改进策略:三元注意力,小参数大能力,即插即用,涨点自如
摘要
注意力机制在计算机视觉领域得到了广泛的研究和应用,利用构建通道或空间位置之间的依赖关系的能力,有效地应用于各种计算机视觉任务。本文研究了轻量级但有效的注意力机制,并提出了一种新的计算注意力权重的方法——三元组注意力,通过一个三分支结构捕捉跨维度交互。对于输入张量,三元组注意力通过旋转操作和残差变换建立跨维度的依赖关系,并以极小的计算开销编码了跨通道和空间信息。这种方法既简单又高效,可以轻松地插入经典的主干网络中作为附加模块。在各种具有挑战性的任务中,如ImageNet-1k图像分类和MSCOCO和PASCAL VOC数据集上的目标检测,证明了该方法的有效性。此外,通过可视化检查GradCAM和GradCAM++结果,提供了对三元组注意力性能的深入见解。本文方法的实证评估支持了在计算注意力权重时捕捉跨维度依赖关系的重要性的直觉。相关代码可以在。
三元注意力机制
三元组注意力机制是一种注意力机制,旨在有效地处理跨维度的交互。它由三个分支组成,每个分支负责捕捉输入中空间维度和通道维度之间的跨维度交互特征。具体来说,对于一个输入张量
,该机制首先将输入传递给每个分支进行操作。每个分支负责聚合输入中特定维度与通道维度之间的交互特征。
第一分支负责处理输入中空间维度H和W与通道维度C之间的交互特征。它通过在空间维度上应用最大池化和平均池化操作,然后将结果展平并沿着通道维度连接,以获得跨空间维度的交互特征。
第二分支负责处理输入中空间维度H和W与通道维度C之间的交互特征。它首先对输入进行全局平均池化操作,然后使用1×1卷积核将结果展平并沿着通道维度连接,以获得跨空间维度的交互特征。
第三分支负责处理输入中通道维度C与空间维度H和W之间的交互特征。它首先对输入进行全局最大池化操作,然后使用1×1卷积核将结果展平并沿着通道维度连接,以获得跨通道维度的交互特征。
最后,将三个分支的结果连接起来,得到最终的跨维度交互特征。这种机制可以有效地捕捉输入中不同维度之间的交互特征,从而更好地理解图像内容。
链接:
代码语言:javascript代码运行次数:0运行复制.2014.3001.5501
三元组注意力机制的优点
三元组注意力机制相对于其他注意力机制,如自注意力、多头注意力等,具有以下优势和特点:
- 捕捉三元组信息:三元组注意力机制能够捕捉到三个元素之间的相互作用关系,从而更好地理解输入信息。这种机制可以有效地应用于各种任务,如视觉目标检测、语言翻译、语音识别等。
- 计算效率高:相较于其他注意力机制,三元组注意力机制的计算效率更高。它只关注三个元素之间的相互作用,而不是对整个输入进行计算,从而减少了计算量和时间复杂度。
- 可扩展性强:三元组注意力机制可以方便地扩展到更大的输入尺寸。由于它只关注三个元素之间的相互作用,因此可以在保持较低计算复杂度的同时,对更大的输入进行操作。
- 适用于各种数据类型:三元组注意力机制可以适用于各种数据类型,如图像、文本、音频等。由于它关注的是三个元素之间的相互作用,因此可以广泛应用于各种不同的任务和领域。
- 可解释性强:三元组注意力机制具有更强的可解释性。它可以清楚地解释哪些三元组对输出有影响,从而使得模型更容易理解和调试。
实验结果主要表明了三方面:
- 对比于单一路线注意力机制,triplet注意力机制在多个标准图像识别数据集上,如ImageNet、Pascal VOC等,都表现出了优越的性能。
- 在一些轻量级的模型,如MobileNetV2上,triplet注意力机制在保证精度的同时,参数的增加并不多,为约0.03%。
- 与其他几种注意力机制相比,triplet注意力机制在参数数量上是最少的,且在ImageNet数据集上的top-1错误率降低了0.98%。
YoloV8实验结果
代码语言:javascript代码运行次数:0运行复制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
三元注意力代码
测试结果
代码语言:javascript代码运行次数:0运行复制 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
改进二
测试结果
代码语言:javascript代码运行次数:0运行复制 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,虽然是比较老的论文,但是效果还是可以的。两种改进均有提点,但没有增加太多的运算量。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2024-01-31,如有侵权请联系 cloudcommunity@tencent 删除数据类型性能连接模型数据本文标签: YoloV8改进策略三元注意力,小参数大能力,即插即用,涨点自如
版权声明:本文标题:YoloV8改进策略:三元注意力,小参数大能力,即插即用,涨点自如 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/shuma/1754669381a3176204.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论