在YOLOv5的各类改进方案中,注意力机制几乎是“人手一个”的标配。从SE、CBAM到ECA、CA,再到近两年被频繁引用的GAM(Global Attention Mechanism),各类注意力模块的论文和开源实现层出不穷。但一个被反复回避的问题是:GAM到底能涨多少点?代价又是什么?
本文基于近期的学术论文和开源实践,系统梳理GAM在YOLOv5上的真实表现——涨点幅度、参数量与FLOPs增量、与CBAM/SE/ECA的横向对比,以及部署阶段的量化影响。结论先行:GAM在YOLOv5上的典型涨点幅度为mAP@0.5提升0.6~1.6个百分点,但FLOPs增幅通常在30%以上,部分场景推理速度下降接近18%。“涨点明显”是真的,“计算量增加”也是真的,关键看你的场景是否承受得起。
一、GAM是什么?为什么它能涨点?
GAM由论文《Global Attention Mechanism: Retain Information to Enhance Channel-Spatial Interactions》提出,核心设计思路与CBAM有本质区别。
CBAM的局限性在于:通道注意力使用全局平均池化,空间注意力使用7×7卷积,两者串行执行。这种设计在高分辨率特征图上会丢失大量空间位置信息。
GAM的做法是:通道注意力子模块使用3D排列(即C×W×H三维特征),通过多层感知机(MLP)同时建模通道与空间的交互;空间注意力子模块使用两个7×7卷积进行空间信息融合,压缩比为r。两