YOLOv8模型改进 第十七讲 通道压缩的自注意力机制CRA

在当今的计算机视觉领域,语义分割是一项关键任务,它能够为图像中的每个像素赋予类别标签,在自动驾驶、医学图像分析等众多领域都有着广泛的应用。然而,在实现高效且准确的语义分割过程中,我们面临着诸多挑战。其中,MetaFormer 架构在应用时存在自注意力计算效率低的问题,这在一定程度上限制了语义分割模型的性能提升。为了解决这个问题,研究人员提出了 CRA(Channel Reduction Attention)模块。CRA 模块带来了一种创新性的思路,它通过将查询和键的通道维度缩减为一维,实现了在考虑全局上下文提取的同时,显著降低自注意力计算成本的效果。这种维度缩减的方式,使得模型在处理大规模图像数据时,能够更快速地计算注意力权重,从而提高了网络的整体计算效率。

1. Channel Reduction Attention (CRA)介绍

CRA 模块以多頭自注意力为基础架构进行构建。多頭自注意力机制允许模型从不同的表示子空间中学习到更丰富的特征信息,这为有效地捕捉全局上下文提供了基础。

  1. 首先,对输入特征进行线性变换从而得到查询和键,同时对键和值进行平均池化操作。其中,查询是通过输入特征与特定的权重矩阵相乘得到,键是通过对输入特征先进行平均池化操作,然后再与权重矩阵相乘得到。

  2. 然后,依据查询和键来计算注意力权重,具体计算方式是先计算查询和键的转置乘积,再经过 Softmax 函数处理,得到注意力权重后将其应用于值,以此得到经过注意力操作后的特征表示。

  3. 最后,把多个头的注意力结果进行拼接操作,并通过一个线性投影权重矩阵得到最终的输出特征,也就是完成 CRA 模块对输入特征的处理操作。

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

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

这是改进讲解:YOLOv8模型改进 第十七讲 通道压缩的自注意力机制CRA_哔哩哔哩_bilibili

2.1 如何添加

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

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

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

复制代码
from ultralytics.nn.modules.CRA import C2f_CRA,ChannelReductionAttention

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

第一个改进

第二个改进

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

6. 运行代码跑通

python 复制代码
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_CRA.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=2, amp=False)
相关推荐
szxinmai主板定制专家4 小时前
基于 ZYNQ ARM+FPGA+AI YOLOV4 的电网悬垂绝缘子缺陷检测系统的研究
arm开发·人工智能·嵌入式硬件·yolo·fpga开发
飞翔的佩奇8 小时前
【完整源码+数据集+部署教程】 水果叶片分割系统: yolov8-seg-dyhead
人工智能·yolo·计算机视觉·数据集·yolov8·yolo11·水果叶片分割系统
Hcoco_me17 小时前
YOLO入门教程(番外):目标检测的一阶段学习方法
yolo·目标检测·学习方法
七芒星202320 小时前
多目标识别YOLO :YOLOV3 原理
图像处理·人工智能·yolo·计算机视觉·目标跟踪·分类·聚类
深瞳智检1 天前
YOLO算法原理详解系列 第007期-YOLOv7 算法原理详解
人工智能·算法·yolo·目标检测·计算机视觉·目标跟踪
羊羊小栈1 天前
基于「YOLO目标检测 + 多模态AI分析」的光伏板缺陷检测分析系统(vue+flask+模型训练+AI算法)
vue.js·人工智能·yolo·目标检测·flask·毕业设计·大作业
B站计算机毕业设计之家2 天前
智慧交通项目:Python+PySide6 车辆检测系统 YOLOv8+OpenCV 自定义视频 自定义检测区域 (源码+文档)✅
大数据·python·opencv·yolo·智慧交通·交通·车流量
FriendshipT2 天前
图像分割:PyTorch从零开始实现SegFormer语义分割
人工智能·pytorch·python·深度学习·目标检测·语义分割·实例分割
夏天是冰红茶2 天前
目标检测算法RT-DETR详解
目标检测·rt-detr
fl1768312 天前
基于pyqt5实现的视频抽帧工具源码+项目说明用于目标检测图片采集
qt·目标检测·音视频