首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >YOLOv8改进:可变形大核注意力(D-LKA Attention),超越自注意力,实现暴力涨点 | 2023.8月最新发表

YOLOv8改进:可变形大核注意力(D-LKA Attention),超越自注意力,实现暴力涨点 | 2023.8月最新发表

原创
作者头像
AI小怪兽
修改2023-10-06 16:25:23
修改2023-10-06 16:25:23
2.6K0
举报
文章被收录于专栏:YOLO大作战YOLO大作战

💡💡💡本文独家改进:可变形大核注意力(D-LKA Attention),采用大卷积核来充分理解体积上下文的简化注意力机制,来灵活地扭曲采样网格,使模型能够适当地适应不同的数据模式

D-LKA Attention | 亲测在多个数据集能够实现大幅涨点

1.可变形大核注意力(D-LKA Net)

论文:arxiv.org/pdf/2309.00121.pdf

摘要:医学图像分割通过 Transformer 模型得到了显着改进,该模型在掌握深远的上下文和全局上下文信息方面表现出色。 然而,这些模型不断增长的计算需求(与平方令牌数量成正比)限制了它们的深度和分辨率能力。 目前的大多数方法都是逐片处理 D 体图像数据(称为伪 3D),缺少关键的片间信息,从而降低了模型的整体性能。 为了应对这些挑战,我们引入了可变形大核注意力(D-LKA Attention)的概念,这是一种采用大卷积核来充分理解体积上下文的简化注意力机制。 这种机制在类似于自注意力的感受野中运行,同时避免了计算开销。 此外,我们提出的注意力机制受益于可变形卷积来灵活地扭曲采样网格,使模型能够适当地适应不同的数据模式。我们设计了 D-LKA 注意力的 2D 和 3D 适应,后者在跨深度方面表现出色 数据理解。 这些组件共同塑造了我们新颖的分层 Vision Transformer 架构,即 D-LKA Net。根据流行的医学分割数据集(Synapse、NIH 胰腺和皮肤病变)上的领先方法对我们的模型进行的评估证明了其卓越的性能。

为了解决这些挑战,我们引入了Deformable Large Kernel Attention (D-LKA Attention)}的概念,这是一种采用大卷积核来充分理解体积上下文的简化注意力机制。

这种机制在类似于自注意力的感受野中运行,同时避免了计算开销。 此外,我们提出的注意力机制受益于可变形卷积来灵活地扭曲采样网格,使模型能够适当地适应不同的数据模式。 我们设计了 D-LKA Attention 的 2D 和 3D 适应,后者在跨深度数据理解方面表现出色。

2.deformable_LKA引入到yolov8

2.1 新建Dynamic Snake Convolution加入ultralytics/nn/attention/deformable_LKA.py 核心代码:

代码语言:javascript
复制
class deformable_LKA_Attention(nn.Module):
    def __init__(self, d_model):
        super().__init__()

        self.proj_1 = nn.Conv2d(d_model, d_model, 1)
        self.activation = nn.GELU()
        self.spatial_gating_unit = deformable_LKA(d_model)
        self.proj_2 = nn.Conv2d(d_model, d_model, 1)

    def forward(self, x):
        shorcut = x.clone()
        x = self.proj_1(x)
        x = self.activation(x)
        x = self.spatial_gating_unit(x)
        x = self.proj_2(x)
        x = x + shorcut
        return x

class deformable_LKA_Attention_experimental(nn.Module):
    def __init__(self, d_model):
        super().__init__()

        self.proj_1 = nn.Conv2d(d_model, d_model, 1)
        self.activation = nn.GELU()
        self.spatial_gating_unit = deformable_LKA_experimental(d_model)
        self.proj_2 = nn.Conv2d(d_model, d_model, 1)

    def forward(self, x):
        shorcut = x.clone()
        x = self.proj_1(x)
        x = self.activation(x)
        x = self.spatial_gating_unit(x)
        x = self.proj_2(x)
        x = x + shorcut
        return x
    

        

2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.可变形大核注意力(D-LKA Net)
  • 2.deformable_LKA引入到yolov8
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档