前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >YOLO11优化:图像去噪 | AAAI2025 Transformer |一种基于Transformer的盲点网络(TBSN)架构 ,结合空间和通道自注意力层

YOLO11优化:图像去噪 | AAAI2025 Transformer |一种基于Transformer的盲点网络(TBSN)架构 ,结合空间和通道自注意力层

原创
作者头像
AI小怪兽
发布于 2025-01-15 00:55:57
发布于 2025-01-15 00:55:57
49902
代码可运行
举报
文章被收录于专栏:毕业设计毕业设计YOLO大作战
运行总次数:2
代码可运行

💡💡💡 提出了一种基于Transformer的盲点网络(TBSN)架构,通过分析和重新设计Transformer运算符以满足盲点要求。TBSN遵循扩张BSN的架构原则,并结合空间和通道自注意力层来增强网络能力。

💡💡💡如何使用:1)结合C3k2二次创新使用;

💡💡💡亮点包括: 1. 提出了一种新的基于Transformer的盲点网络(TBSN)架构;2. 引入了知识蒸馏策略来提高计算效率;3. 在多个真实世界的图像去噪数据集上进行了广泛的实验,并且与当前最先进的SSID方法相比具有更好的性能;

改进1)

💡💡💡为本专栏订阅者提供创新点改进代码,改进网络结构图,方便paper写作!!!

💡💡💡适用场景:红外、小目标检测、工业缺陷检测、医学影像、遥感目标检测、低对比度场景

💡💡💡适用任务:所有改进点适用【检测】、【分割】、【pose】、【分类】等

💡💡💡全网独家首发创新,【自研多个自研模块】,【多创新点组合适合paper 】!!!

1.YOLO11介绍

Ultralytics YOLO11是一款尖端的、最先进的模型,它在之前YOLO版本成功的基础上进行了构建,并引入了新功能和改进,以进一步提升性能和灵活性。YOLO11设计快速、准确且易于使用,使其成为各种物体检测和跟踪、实例分割、图像分类以及姿态估计任务的绝佳选择。

结构图如下:

1.1 C3k2

C3k2,结构图如下

C3k2,继承自类C2f,其中通过c3k设置False或者Ture来决定选择使用C3k还是Bottleneck

实现代码ultralytics/nn/modules/block.py

1.2 C2PSA介绍

借鉴V10 PSA结构,实现了C2PSA和C2fPSA,最终选择了基于C2的C2PSA(可能涨点更好?)

实现代码ultralytics/nn/modules/block.py

1.3 11 Detect介绍

分类检测头引入了DWConv(更加轻量级,为后续二次创新提供了改进点),结构图如下(和V8的区别):

实现代码ultralytics/nn/modules/head.py

2.原理介绍

论文:https://arxiv.org/pdf/2404.07846

摘要:本文针对自监督图像去噪(SSID)中盲点网络(BSN)的网络架构,指出现有的基于卷积层的BSN存在局限性,而变形器(transformer)则具有潜在的克服卷积局限性的能力,并且在各种图像恢复任务中取得了成功。然而,变形器的注意力机制可能会违反盲点要求,因此限制了它们在SSID中的适用性。因此,本文提出了一种基于变形器的盲点网络(TBSN),通过分析和重新设计变形器操作符以满足盲点要求。具体来说,TBSN遵循扩张BSN的架构原则,并结合空间和通道自注意层来增强网络能力。对于空间自注意力,我们应用精细的掩码来限制其感受野,从而模拟扩张卷积。对于通道自注意力,我们观察到在多尺度架构的深层中,当通道数大于空间大小时,它可能会泄漏盲点信息。为了消除这种影响,我们将通道分成几组,并分别执行通道注意力。此外,我们引入知识蒸馏策略,将TBSN蒸馏成更小的去噪器,以提高计算效率同时保持性能。在真实世界的图像去噪数据集上进行了广泛的实验,结果表明TBSN大大扩展了感受野,并展示了对抗最先进SSID方法的有利性能。代码和预训练模型将在https://github.com/nagejacob/TBSN上公开发布。

3.如何加入到YOLO11

3.1新建ultralytics/nn/block/tsdn.py

核心源码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class DilatedOCA(nn.Module):
    def __init__(self, dim, window_size, overlap_ratio, num_heads, dim_head, bias):
        super(DilatedOCA, self).__init__()
        self.num_spatial_heads = num_heads
        self.dim = dim
        self.window_size = window_size
        self.overlap_win_size = int(window_size * overlap_ratio) + window_size
        self.dim_head = dim_head
        self.inner_dim = self.dim_head * self.num_spatial_heads
        self.scale = self.dim_head**-0.5

        self.unfold = nn.Unfold(kernel_size=(self.overlap_win_size, self.overlap_win_size), stride=window_size, padding=(self.overlap_win_size-window_size)//2)
        self.qkv = nn.Conv2d(self.dim, self.inner_dim*3, kernel_size=1, bias=bias)
        self.project_out = nn.Conv2d(self.inner_dim, dim, kernel_size=1, bias=bias)
        self.rel_pos_emb = RelPosEmb(
            block_size = window_size,
            rel_size = window_size + (self.overlap_win_size - window_size),
            dim_head = self.dim_head
        )
        self.fixed_pos_emb = FixedPosEmb(window_size, self.overlap_win_size)
    def forward(self, x):
        b, c, h, w = x.shape
        qkv = self.qkv(x)
        qs, ks, vs = qkv.chunk(3, dim=1)

        # spatial attention
        qs = rearrange(qs, 'b c (h p1) (w p2) -> (b h w) (p1 p2) c', p1 = self.window_size, p2 = self.window_size)
        ks, vs = map(lambda t: self.unfold(t), (ks, vs))
        ks, vs = map(lambda t: rearrange(t, 'b (c j) i -> (b i) j c', c = self.inner_dim), (ks, vs))

        # print(f'qs.shape:{qs.shape}, ks.shape:{ks.shape}, vs.shape:{vs.shape}')
        #split heads
        qs, ks, vs = map(lambda t: rearrange(t, 'b n (head c) -> (b head) n c', head = self.num_spatial_heads), (qs, ks, vs))

        # attention
        qs = qs * self.scale
        spatial_attn = (qs @ ks.transpose(-2, -1))
        spatial_attn += self.rel_pos_emb(qs)
        spatial_attn += self.fixed_pos_emb()
        spatial_attn = spatial_attn.softmax(dim=-1)

        out = (spatial_attn @ vs)

        out = rearrange(out, '(b h w head) (p1 p2) c -> b (head c) (h p1) (w p2)', head = self.num_spatial_heads, h = h // self.window_size, w = w // self.window_size, p1 = self.window_size, p2 = self.window_size)

        # merge spatial and channel
        out = self.project_out(out)

        return out


class FeedForward(nn.Module):
    def __init__(self, dim, ffn_expansion_factor, bias):
        super(FeedForward, self).__init__()

        hidden_features = int(dim * ffn_expansion_factor)

        self.project_in = nn.Conv2d(dim, hidden_features, kernel_size=3, stride=1, dilation=2, padding=2, bias=bias)
        self.project_out = nn.Conv2d(hidden_features, dim, kernel_size=3, stride=1, dilation=2, padding=2, bias=bias)

    def forward(self, x):
        x = self.project_in(x)
        x = F.gelu(x)
        x = self.project_out(x)
        return x


class DTAB(nn.Module):
    def __init__(self, dim, window_size=4, overlap_ratio=0.5, num_channel_heads=4, num_spatial_heads=2, spatial_dim_head=16, ffn_expansion_factor=1, bias=False, LayerNorm_type='BiasFree'):
        super(DTAB, self).__init__()

        self.spatial_attn = DilatedOCA(dim, window_size, overlap_ratio, num_spatial_heads, spatial_dim_head, bias)
        self.channel_attn = DilatedMDTA(dim, num_channel_heads, bias)

        self.norm1 = LayerNorm(dim, LayerNorm_type)
        self.norm2 = LayerNorm(dim, LayerNorm_type)
        self.norm3 = LayerNorm(dim, LayerNorm_type)
        self.norm4 = LayerNorm(dim, LayerNorm_type)

        self.channel_ffn = FeedForward(dim, ffn_expansion_factor, bias)
        self.spatial_ffn = FeedForward(dim, ffn_expansion_factor, bias)


    def forward(self, x):
        x = x + self.channel_attn(self.norm1(x))
        x = x + self.channel_ffn(self.norm2(x))
        x = x + self.spatial_attn(self.norm3(x))
        x = x + self.spatial_ffn(self.norm4(x))
        return x

3.3 yolo11-C3k2_DTAB.yaml

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
​中科院提出 SSViT | 稀疏扫描视觉 Transformer,模拟人类视觉图像识别,显著提高性能,准确率 top-1 !!
自从Vision Transformer(ViT)[12]问世以来,它由于其在建模长距离依赖方面的卓越能力而吸引了研究界的广泛关注。然而,作为ViT核心的自注意力机制[61]带来了巨大的计算开销,从而限制了其更广泛的应用。已经提出了几种策略来减轻自注意力的这一局限性。
集智书童公众号
2024/05/29
6880
​中科院提出 SSViT | 稀疏扫描视觉 Transformer,模拟人类视觉图像识别,显著提高性能,准确率 top-1 !!
YOLO11涨点优化:注意力魔改 | 通道注意力和空间注意力CBAM | 全新注意力GAM:超越CBAM,不计成本提高精度
💡💡💡提供两种经典注意力改进方法,涨点小能手:1)通道注意力和空间注意力CBAM;2)全新注意力GAM:超越CBAM,不计成本提高精度;
AI小怪兽
2024/11/04
4.2K1
RT-DETR改进:Backbone改进 | EMO,结合 CNN 和 Transformer 的现代倒残差移动模块设计 | ICCV2023
本文独家改进:EMO助力RT-DETR ,替换backbone,面向移动端的轻量化网络模型——EMO:反向残差移动块(iRMB),通过堆叠不同层级的 iRMB。
AI小怪兽
2023/11/15
9920
【YOLOv8】YOLOv8改进系列(8)----替换主干网络之Swin Transformer
论文介绍了一种新的视觉Transformer模型——Swin Transformer,它旨在成为计算机视觉领域的通用骨干网络。Swin Transformer通过其独特的层次化结构和移位窗口(Shifted Windows)机制,解决了传统Transformer在视觉任务中的计算复杂度问题,并在图像分类、目标检测和语义分割等多个任务中取得了优异的性能。
HABuo
2025/03/19
2890
【YOLOv8】YOLOv8改进系列(8)----替换主干网络之Swin Transformer
FlashAttention:快速且内存高效的准确注意力机制
在深度学习领域,注意力机制是提高模型性能的关键组件。然而,传统的注意力机制在长序列处理时会消耗大量内存和计算资源。为了解决这个问题,Tri Dao等人提出了FlashAttention,这是一种快速且内存高效的注意力机制。本文将介绍FlashAttention及其改进版FlashAttention-2的核心概念、安装方法和使用示例。
857技术社区
2024/07/04
1.7K0
FlashAttention:快速且内存高效的准确注意力机制
YoloV8改进策略:注意力改进|Neck层改进|SCSA,探索空间与通道注意力之间的协同效应|即插即用
https://arxiv.org/pdf/2407.05128 通道注意力和空间注意力分别为各种下游视觉任务在提取特征依赖性和空间结构关系方面带来了显著改进。通道注意力和空间注意力的结合使用被广泛认为有利于进一步提升性能;然而,通道注意力和空间注意力之间的协同作用,尤其是在空间引导和缓解语义差异方面,尚未得到深入研究。这促使我们提出了一种新的空间与通道协同注意模块(SCSA),该模块涉及我们在多个语义层面上对空间注意力和通道注意力之间协同关系的研究。我们的SCSA由两部分组成:可共享多语义空间注意力(SMSA)和渐进通道自注意力(PCSA)。SMSA整合了多语义信息,并利用渐进压缩策略将判别性空间先验注入到PCSA的通道自注意力中,有效引导通道再校准。此外,PCSA中基于通道单头自注意力机制的稳健特征交互进一步缓解了SMSA中不同子特征之间多语义信息的差异。我们在七个基准数据集上进行了大量实验,包括在ImageNet-1K上的分类、在MSCOCO上的目标检测、在ADE20K上的分割以及四个其他复杂场景检测数据集。实验结果表明,我们提出的SCSA不仅超越了当前的即插即用型最先进注意力方法,而且在各种任务场景中展现出增强的泛化能力。代码和模型可在以下网址获取:https://github.com/HZAIZJNU/SCSA。
AI浩
2025/01/02
6340
YoloV8改进策略:注意力改进|Neck层改进|SCSA,探索空间与通道注意力之间的协同效应|即插即用
YOLOv8优化策略:全新的聚焦线性注意力模块(Focused Linear Attention)| ICCV2023 FLatten Transforme
本文独家改进:全新的聚焦线性注意力模块(Focused Linear Attention),既高效又具有很强的模型表达能力,解决视觉Transformer计算量过大的问题,最终引入到YOLOv8,做到二次创新;
AI小怪兽
2023/11/10
8760
【图像分类】Vision Transformer理论解读+实践测试
Vision Transformer是2021年谷歌在ICLR上提出的算法,算法原理并不复杂,但是其价值是开创性的。它首次将NLP领域火热的Transformer模型架构移植到了CV领域,打破了这两个领域壁垒,并取得不错的成效。
zstar
2022/09/20
3K0
【图像分类】Vision Transformer理论解读+实践测试
深度学习应用篇-计算机视觉-图像分类3:ResNeXt、Res2Net、Swin Transformer、Vision Transformer等模型结构、实现、
相较于VGG的19层和GoogLeNet的22层,ResNet可以提供18、34、50、101、152甚至更多层的网络,同时获得更好的精度。但是为什么要使用更深层次的网络呢?同时,如果只是网络层数的堆叠,那么为什么前人没有获得ResNet一样的成功呢?
汀丶人工智能
2023/06/08
2K0
深度学习应用篇-计算机视觉-图像分类3:ResNeXt、Res2Net、Swin Transformer、Vision Transformer等模型结构、实现、
图像恢复SwinIR: Image Restoration Using Swin Transformer
在图像超分辨率、图像去噪、压缩等图像修复(Image restoration)任务中,卷积神经网络目前仍然是主流。但是卷积神经网络有以下两个缺点:
JOYCE_Leo16
2024/03/19
1.3K0
图像恢复SwinIR: Image Restoration Using Swin Transformer
YOLOv10涨点改进:注意力魔改 | 轻量级自注意力机制CoordAttention | CVPR2021
💡💡💡本文改进:替换YOLOv10中的PSA进行二次创新,1)CoordAttention注意力替换 PSA中的多头自注意力模块MHSA注意力;2) CoordAttention直接替换 PSA;
AI小怪兽
2024/06/12
3.8K0
YOLO11 全新发布!(原理介绍+代码详见+结构框图)
Ultralytics YOLO11是一款尖端的、最先进的模型,它在之前YOLO版本成功的基础上进行了构建,并引入了新功能和改进,以进一步提升性能和灵活性。YOLO11设计快速、准确且易于使用,使其成为各种物体检测和跟踪、实例分割、图像分类以及姿态估计任务的绝佳选择。
AI小怪兽
2024/10/08
11.1K1
一种基于YOLOv10的遥感小目标车辆检测算法(原创自研)
💡💡💡本文内容:提出了一种基于YOLOv10的遥感小目标车辆检测算法,包括1)SPPF_attention,重新设计加入注意力机制,提升小目标注意;2)SEAM提升小目标遮挡物性能提升;
AI小怪兽
2024/09/10
6680
搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了(二)
本文为详细解读Vision Transformer的第二篇,主要包括三个方向的分类:可变形的Transformer ,用于分类任务的Transformer ,用于底层视觉任务的Transformer,分别对应了三篇相关论文。附有超详细的代码解读。 >>加入极市CV技术交流群,走在计算机视觉的最前沿
godweiyang
2021/04/08
3.5K0
搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了(二)
FAST-VQA(论文复现)
现实世界视频分辨率的提高对于深度视频质量评估(VQA)在效率与准确性之间提出了一个难题。一方面,保持原始分辨率将导致不可接受的计算成本。另一方面,现有的实践方法,如图像缩放和裁剪,会因为细节和内容的丢失而改变原始视频的质量,因此对质量评估是有害的。通过对人类视觉系统中的时空冗余以及视觉编码理论的研究,我们观察到,一个邻域周围的质量信息通常是相似的,这促使我们研究一种有效的、对质量敏感的邻域表征方案用于VQA。在这项工作中,我们提出了一种统一的方案,即时空网格小立方体采样(St-GMS),以获得一种新型样本,我们称之为片段。首先将全分辨率视频按照预设的时空网格划分为小型立方体,然后对齐时间上的质量代表进行采样,以组成用于VQA的片段。此外,我们设计了一个专门为片段量身定制的网络架构,即片段注意力网络(FANet)。利用片段和FANet,所提出的效率端到端的FAST-VQA和FasterVQA在所有VQA基准测试上的性能显著优于现有方法,同时仅需要1/1612的FLOPs,相较于当前最先进技术大幅降低。
Srlua
2024/11/30
1730
FAST-VQA(论文复现)
音视频开发之旅(90)-Vision Transformer论文解读与源码分析
上一篇我们学习了Transformer的原理,主要介绍了在NLP领域上的应用,那么在CV(图像视频)领域该如何使用?
音视频开发之旅
2024/09/07
2240
音视频开发之旅(90)-Vision Transformer论文解读与源码分析
Swin-T图像论文复现
在计算机视觉领域,卷积神经网络(CNN)一直是构建模型的主流选择。自从AlexNet在ImageNet竞赛中取得了突破性的成绩后,CNN的结构不断演进,变得更庞大、更深入、更多样化。与此同时,自然语言处理领域的网络架构发展则呈现不同的轨迹,目前最流行的是Transformer模型。这种模型专为处理序列数据和转换任务而设计,以其能够捕捉数据中的长距离依赖关系而著称。Transformer在语言处理方面的显著成就激发了研究者探索其在计算机视觉领域的应用潜力,近期的研究表明,它在图像分类、目标检测、图像分割等任务上已经取得了令人鼓舞的成果。 实验得到该模型在图像分类、图像检测、目标检测有很好的效果。
Srlua
2024/11/30
1700
Swin-T图像论文复现
CvT: 如何将卷积的优势融入Transformer
与之前BoTNet不同,CvT虽然题目中有卷积的字样,但是实际总体来说依然是以Transformer Block为主的,在Token的处理方面引入了卷积,从而为模型带来的局部性。最终CvT最高拿下了87.7%的Top1准确率。
BBuf
2022/01/27
9460
CvT: 如何将卷积的优势融入Transformer
MoA-Transformer | Swin-Transformer应该如何更好地引入全局信息?
基于Transformer的体系结构在自然语言处理(NLP)领域取得了巨大的成功。受Transformer在语言领域的巨大成功的启发,Vision Transformer被提出,并在ImageNet数据集上取得了优秀的性能。Vision Transformer就像NLP中的word token一样,将图像分割成patches并输入Transformer之中,并通过Transformer的几个multi-head self-attention层来建立远程依赖关系。
集智书童公众号
2022/02/11
9730
MoA-Transformer | Swin-Transformer应该如何更好地引入全局信息?
Swin Transformer 架构解析及在UCI-HAR行为识别中的实现
Swin Transformer(Shifted Window Transformer)是计算机视觉领域中一种创新的Transformer变体,它结合了卷积神经网络(CNN)的局部特征提取能力和Transformer的全局建模能力,在图像分类、目标检测等任务中表现出色。
是Dream呀
2025/03/26
2530
Swin Transformer 架构解析及在UCI-HAR行为识别中的实现
推荐阅读
​中科院提出 SSViT | 稀疏扫描视觉 Transformer,模拟人类视觉图像识别,显著提高性能,准确率 top-1 !!
6880
YOLO11涨点优化:注意力魔改 | 通道注意力和空间注意力CBAM | 全新注意力GAM:超越CBAM,不计成本提高精度
4.2K1
RT-DETR改进:Backbone改进 | EMO,结合 CNN 和 Transformer 的现代倒残差移动模块设计 | ICCV2023
9920
【YOLOv8】YOLOv8改进系列(8)----替换主干网络之Swin Transformer
2890
FlashAttention:快速且内存高效的准确注意力机制
1.7K0
YoloV8改进策略:注意力改进|Neck层改进|SCSA,探索空间与通道注意力之间的协同效应|即插即用
6340
YOLOv8优化策略:全新的聚焦线性注意力模块(Focused Linear Attention)| ICCV2023 FLatten Transforme
8760
【图像分类】Vision Transformer理论解读+实践测试
3K0
深度学习应用篇-计算机视觉-图像分类3:ResNeXt、Res2Net、Swin Transformer、Vision Transformer等模型结构、实现、
2K0
图像恢复SwinIR: Image Restoration Using Swin Transformer
1.3K0
YOLOv10涨点改进:注意力魔改 | 轻量级自注意力机制CoordAttention | CVPR2021
3.8K0
YOLO11 全新发布!(原理介绍+代码详见+结构框图)
11.1K1
一种基于YOLOv10的遥感小目标车辆检测算法(原创自研)
6680
搞懂 Vision Transformer 原理和代码,看这篇技术综述就够了(二)
3.5K0
FAST-VQA(论文复现)
1730
音视频开发之旅(90)-Vision Transformer论文解读与源码分析
2240
Swin-T图像论文复现
1700
CvT: 如何将卷积的优势融入Transformer
9460
MoA-Transformer | Swin-Transformer应该如何更好地引入全局信息?
9730
Swin Transformer 架构解析及在UCI-HAR行为识别中的实现
2530
相关推荐
​中科院提出 SSViT | 稀疏扫描视觉 Transformer,模拟人类视觉图像识别,显著提高性能,准确率 top-1 !!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验