自学内容网 自学内容网

YOLOv8模型改进 第九讲 添加EMAttention注意力机制

        本篇文章将介绍一种全新的改进机制——EMAttention注意力机制,并展示其在YOLOv8中的实际应用。现有通道或空间注意力机制在计算机视觉任务中展现了显著效果,但通道维度压缩可能影响深层视觉特征的提取。因此,高效多尺度注意力(EMA)模块,通过通道与批次维度重组和跨维度交互,捕捉全局信息和像素级成对关系,提升特征表达能力,在保留每个通道信息的同时降低计算开销。

 1. 高效多尺度注意力EMAttention概述

         1. 通道分组:EMA模块首先将输入通道分组为若干子特征组,减少通道间冗余,确保每组内的空间语义特征均匀分布。

         2. 并行分支处理特征:一个分支进行水平和垂直方向的全局池化提取全局信息,另一个分支通过3x3卷积捕捉局部空间特征,两者互补增强特征提取能力。

        3. 特征归一化:提取完成后,特征通过sigmoid激活函数归一化,精确调整通道权重,防止数值不稳定。

        4. 跨维度交互整合:归一化后的特征通过跨维度交互模块整合,捕捉像素级关系,提升模型对细粒度特征的捕捉能力。

        5. 征调制与输出:最终输出特征通过sigmoid函数调节,增强关键区域的特征,抑制冗余信息,提升模型的检测性能。

 2. 接下来,我们将详细介绍如何将EMAttention集成到 YOLOv8 模型中。        

这是我的GitHub代码:tgf123/YOLOv8_improve (github.com)

这是改进讲解:YOLOv8模型改进 第九讲 添加EMAttention注意力机制_哔哩哔哩_bilibili

2.1  如何添加

       1. 首先,在我上传的代码中yolov8_improve中找到EMAttention.py代码部分,它包含两个部分一个是EMAttention.py的核心代码,一个是yolov8模型的配置文件。 

        2. 然后我们在modules文件夹下面创建EMA_attention.py文件,然后将C2f_EMA的核心代码放入其中。

 3. 在 task.py文件中导入C2f_EMA

from ultralytics.nn.modules.EMA_attention import C2f_EMA

     4. 然后将 C2f_EMA添加到下面当中

       5. 最后将配置文件复制到下面文件夹下

        6. 运行代码跑通 


from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld

if __name__=="__main__":

    # 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型
    model = YOLO(r"D:\bilibili\model\ultralytics-main\ultralytics\cfg\models\v8\yolov8_EMA.yaml")\
        .load(r'D:\bilibili\model\ultralytics-main\tests\yolov8n.pt')  # build from YAML and transfer weights

    results = model.train(data=r'D:\bilibili\model\ultralytics-main\ultralytics\cfg\datasets\VOC_my.yaml',
                          epochs=100, imgsz=640, batch=8)


原文地址:https://blog.csdn.net/qq_64693987/article/details/142962574

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!