一、本文介绍
作为入门性篇章,这里介绍了EMA注意力在YOLOv8中的使用。包含EMA原理分析,EMA的代码、EMA的使用方法、以及添加以后的yaml文件及运行记录。
二、EMA原理分析
EMA官方论文地址:EMA文章
EMA代码:EMA代码
EMA注意力机制(高效的多尺度注意力):通过重塑部分通道到批次维度,并将通道维度分组为多个子特征,以保留每个通道的信息并减少计算开销。EMA模块通过编码全局信息来重新校准每个并行分支中的通道权重,并通过跨维度交互来捕获像素级别的关系。
相关代码:
EMA注意力的代码,如下:
class EMA_attention(nn.Module):
def __init__(self, channels, c2=None, factor=32):
super(EMA_attention, self).__init__()
self.groups = factor
assert channels // self.groups > 0
self.softmax = nn.Softmax(-1)
self.agp = nn.AdaptiveAv