YOLO11改进-模块-引入稀疏自注意力机制Sparse Self - Attention

        在图像篡改定位领域,传统深度学习模型的注意力机制采用全局交互模式,图像中的每个 patch 都参与与其他所有 patch 的 token - to - token 注意力计算。然而,在图像篡改定位任务中,这种全局交互会引入大量无关的键值对。传统模型过于关注语义信息,在全局交互时会综合考虑图像所有 patch 的特征,这使得模型容易忽略图像篡改后非语义信息的局部不一致性,进而限制了模型在该任务上的表现。因此,需要一种新的注意力机制来解决这些问题,Sparse Self - Attention 应运而生。

上面是原模型,下面是改进模型

改进后的模型

1. 稀疏自注意力机制Sparse Self - Attention 介绍          

        Sparse Self - Attention 引入了 “稀疏率” 概念。对于输入的图像特征图,不再对整个特征图进行注意力计算,而是把它划分成一个个小的张量块。在计算注意力时,只在这些张量块内部进行,不同颜色标记的张量块之间不会进行注意力计算。通过这种方式,模型能够抑制对语义信息的关注,将更多的注意力放在提取非语义特征上。同时,由于只在张量块内计算,减少了大量不必要的计算,降低了模型的计算量,提高了运行效率。

        Sparse Self - Attention 是 SparseViT 模型编码器的重要部分。SparseViT 的编码器有多个阶段,在第三阶段和第四阶段的各个模块中,应用了不同稀疏率的 Sparse Self - Attention。在第三阶段,不同模块的稀疏率设置会按照一定规律变化,越往后的模块,稀疏率可能越高或越低(具体由设计决定)。第四阶段同样如此,不同模块也有特定变化规律的稀疏率。这样在不同阶段使用不同的稀疏率,能够让模型在不同层次上,以不同程度的稀疏方式去提取特征。在早期阶段,可能采用较低的稀疏率,使模型能保留一些语义信息,帮助理解图像整体;在后期阶段,使用较高的稀疏率,让模型更专注于提取与图像篡改相关的非语义特征。通过这种分层且稀疏率变化的设计,模型能更好地平衡对语义和非语义特征的提取,提高在图像篡改定位任务中的表现 。

2. YOLOv11与Sparse Self - Attention 的结合

       可以在YOLOv11原有的局部特征基础上,增加对全局特征的关注,使特征表达更加丰富和准确。

3. 小波卷积WaveletConv代码部分

YOLOv8_improve/YOLOv11.md at master · tgf123/YOLOv8_improve · GitHub

视频讲解:YOLOv11模型改进讲解,教您如何修改YOLOv11_哔哩哔哩_bilibili

YOLOv11模型改进讲解,教您如何根据自己的数据集选择最优的模块提升精度_哔哩哔哩_bilibili

YOLOv11全部代码,现有几十种改进机制。

 4. 将Sparse Self - Attention引入到YOLOv11中

第一: 将下面的核心代码复制到D:\model\yolov11\ultralytics\change_model路径下,如下图所示。

第二:在task.py中导入

第三:在task.py中的模型配置部分下面代码

    ​​​​​​

第四:将模型配置文件复制到YOLOV11.YAMY文件中

    

     第五:运行成功

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

if __name__=="__main__":

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

    results = model.train(data=r'D:\model\yolov11\ultralytics\cfg\datasets\VOC_my.yaml',
                          epochs=300,
                          imgsz=640,
                          batch=64,
                          # cache = False,
                          # single_cls = False,  # 是否是单类别检测
                          # workers = 0,
                          # resume=r'D:/model/yolov8/runs/detect/train/weights/last.pt',
                          amp = True
                          )

稀疏概率自注意力机制是一种用于处理序列数据的注意力机制。在自注意力机制中,每个输入元素都与其他元素进行交互,以便在编码过程中学习元素之间的关系。而稀疏概率自注意力机制则是为了减少计算量和模型复杂度而设计的一种变体。 在传统的自注意力机制中,每个输入元素都与所有其他元素进行交互,这样会导致计算量和存储空间的增加。而稀疏概率自注意力机制则通过引入概率机制来选择与每个元素相关的元素,从而减少了计算量。 具体来说,稀疏概率自注意力机制将每个输入元素与其他元素之间的关系建模为概率分布。这个概率分布可以通过一些方法计算得出,例如使用相似性度量函数(如点积或缩放点积)来计算元素之间的相似性得分,然后将相似性得分通过 softmax 函数转换为概率分布。 然后,根据这个概率分布,可以选择与每个元素具有高概率相关的一部分元素进行交互,从而减少计算量。这种选择可以通过抽样方法来实现,例如使用 top-k 或 top-p 抽样,即选择与每个元素具有最高得分的 k 个元素或概率累积大于阈值 p 的元素。 稀疏概率自注意力机制在处理序列数据时可以有效地减少计算量和存储空间,并且在一些任务上取得了良好的效果。它是自注意力机制的一种改进和变体,更适合应用于大规模数据和复杂模型的场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值