【YOLOv10改进-注意力机制】MSCAAttention多尺度卷积注意力

简介: YOLOv10专栏介绍了一种新的卷积网络架构SegNeXt,它在语义分割任务中展现出优于Transformer模型的效率和效果。SegNeXt通过名为Multi-Scale Convolutional Attention (MSCA)的组件,结合局部信息聚合、多尺度上下文捕获和通道关系模拟,提升了性能。在多个数据集上,SegNeXt以较少参数实现了超过现有SOTA的性能,特别是在Pascal VOC 2012上,以1/10的参数量达到90.6%的mIoU。YOLOv10引入了MSCA模块,用于增强目标检测的上下文关注。相关代码和配置详情可在链接中找到。

YOLOv10目标检测创新改进与实战案例专栏

专栏链接: YOLOv10 创新改进有效涨点

摘要

我们提出了SegNeXt,一种用于语义分割的简单卷积网络架构。最近基于变换器的模型由于自注意力在编码空间信息方面的效率而在语义分割领域占据主导地位。在本文中,我们展示了卷积注意力是一种比变换器中的自注意力机制更高效和有效的编码上下文信息的方式。通过重新审视成功的分割模型所拥有的特征,我们发现了几个关键组件,这些组件导致了分割模型性能的提升。这激励我们设计了一种新颖的卷积注意力网络,该网络使用廉价的卷积操作。没有任何花哨的技巧,我们的SegNeXt在包括ADE20K、Cityscapes、COCO-Stuff、Pascal VOC、Pascal Context和iSAID在内的流行基准测试上,显著提高了先前最先进方法的性能。值得注意的是,SegNeXt超越了EfficientNet-L2 w/ NAS-FPN,在Pascal VOC 2012测试排行榜上仅使用1/10的参数就达到了90.6%的mIoU。平均而言,与最先进的方法相比,SegNeXt在ADE20K数据集上的mIoU提高了约2.0%,同时计算量相同或更少。

创新点

基本原理

MSCA 主要由三个部分组成:(1)一个深度卷积用于聚 合局部信息;(2)多分支深度卷积用于捕获多尺度上下文信息;(3)一个 1 × 1 逐点卷积用于模拟特征中不同通道之间的关系。1 × 1 逐点卷积的输出被直接用 作卷积注意力的权重,以重新权衡 MSCA 的输入。

image-20240206143511961

MSCA 可以写成 如下形式:其中 F 代表输入特征,Att 和 Out 分别为注意力权重和输出,⊗ 表示逐元素的矩 阵乘法运算,DW­Conv 表示深度卷积,Scalei (i ∈ {0, 1, 2, 3}) 表示上图右边侧图中的第 i 个分支,Scale0 为残差连接。遵循[130],在 MSCA 的每个分支中,SegNeXt 使用两个深度条带卷积来近似模拟大卷积核的深度卷积。每个分支的卷积核大 小分别被设定为 7、11 和 21。 选择深度条带卷积主要考虑到以下两方面原 因:一方面,相较于普通卷积,条带卷积更加轻量化。为了模拟核大小为 7 × 7 的标准二维卷积,只需使用一对 7 × 1 和 1 × 7 的条带卷积。另一方面,在实际 的分割场景中存在一些条状物体,例如人和电线杆。因此,条状卷积可以作为 标准网格状的卷积的补充,有助于提取条状特征。

yolov10 引入


class MSCAAttention(BaseModule):
    """Attention Module in Multi-Scale Convolutional Attention Module (MSCA).

    Args:
        channels (int): The dimension of channels.
        kernel_sizes (list): The size of attention
            kernel. Defaults: [5, [1, 7], [1, 11], [1, 21]].
        paddings (list): The number of
            corresponding padding value in attention module.
            Defaults: [2, [0, 3], [0, 5], [0, 10]].
    """

    def __init__(self,
                 channels,
                 kernel_sizes=[5, [1, 7], [1, 11], [1, 21]],
                 paddings=[2, [0, 3], [0, 5], [0, 10]]):
        super().__init__()
        self.conv0 = nn.Conv2d(
            channels,
            channels,
            kernel_size=kernel_sizes[0],
            padding=paddings[0],
            groups=channels)
        for i, (kernel_size,
                padding) in enumerate(zip(kernel_sizes[1:], paddings[1:])):
            kernel_size_ = [kernel_size, kernel_size[::-1]]
            padding_ = [padding, padding[::-1]]
            conv_name = [f'conv{i}_1', f'conv{i}_2']
            for i_kernel, i_pad, i_conv in zip(kernel_size_, padding_,
                                               conv_name):
                self.add_module(
                    i_conv,
                    nn.Conv2d(
                        channels,
                        channels,
                        tuple(i_kernel),
                        padding=i_pad,
                        groups=channels))
        self.conv3 = nn.Conv2d(channels, channels, 1)

task与yaml配置

详见:https://blog.csdn.net/shangyanaf/article/details/139998872

相关文章
|
6月前
|
机器学习/深度学习 计算机视觉 网络架构
改进YOLOv8:添加CBAM注意力机制(涨点明显)
改进YOLOv8:添加CBAM注意力机制(涨点明显)
3731 1
|
6月前
|
机器学习/深度学习 Ruby
YOLOv5改进 | 2023注意力篇 | iRMB倒置残差块注意力机制(轻量化注意力机制)
YOLOv5改进 | 2023注意力篇 | iRMB倒置残差块注意力机制(轻量化注意力机制)
339 0
|
6月前
|
机器学习/深度学习 数据可视化 计算机视觉
YOLOv8改进 | 2023注意力篇 | MSDA多尺度空洞注意力(附多位置添加教程)
YOLOv8改进 | 2023注意力篇 | MSDA多尺度空洞注意力(附多位置添加教程)
498 0
|
6月前
|
机器学习/深度学习 Ruby
YOLOv8改进 | 2023注意力篇 | iRMB倒置残差块注意力机制(轻量化注意力机制)
YOLOv8改进 | 2023注意力篇 | iRMB倒置残差块注意力机制(轻量化注意力机制)
689 0
|
机器学习/深度学习 PyTorch 算法框架/工具
神经网络加上注意力机制,精度不升反降?
神经网络加上注意力机制,精度不升反降?
神经网络加上注意力机制,精度不升反降?
|
1月前
|
机器学习/深度学习 自然语言处理 数据建模
三种Transformer模型中的注意力机制介绍及Pytorch实现:从自注意力到因果自注意力
本文深入探讨了Transformer模型中的三种关键注意力机制:自注意力、交叉注意力和因果自注意力,这些机制是GPT-4、Llama等大型语言模型的核心。文章不仅讲解了理论概念,还通过Python和PyTorch从零开始实现这些机制,帮助读者深入理解其内部工作原理。自注意力机制通过整合上下文信息增强了输入嵌入,多头注意力则通过多个并行的注意力头捕捉不同类型的依赖关系。交叉注意力则允许模型在两个不同输入序列间传递信息,适用于机器翻译和图像描述等任务。因果自注意力确保模型在生成文本时仅考虑先前的上下文,适用于解码器风格的模型。通过本文的详细解析和代码实现,读者可以全面掌握这些机制的应用潜力。
57 3
三种Transformer模型中的注意力机制介绍及Pytorch实现:从自注意力到因果自注意力
|
4月前
|
机器学习/深度学习 计算机视觉
【YOLOv8改进 - 注意力机制】c2f结合CBAM:针对卷积神经网络(CNN)设计的新型注意力机制
【YOLOv8改进 - 注意力机制】c2f结合CBAM:针对卷积神经网络(CNN)设计的新型注意力机制
|
4月前
|
机器学习/深度学习 算法 测试技术
【YOLOv8改进 - 注意力机制】Focused Linear Attention :全新的聚焦线性注意力模块
YOLOv8专栏探讨了该目标检测算法的创新改进,包括使用聚焦线性注意力模块,解决了Transformer在视觉任务中的效率和表达力问题。该模块增强自注意力,提高焦点能力和特征多样性,保持线性复杂度。文章提供了实证证据证明其在多个基准上的性能提升,并在GitHub上发布了代码。论文和更多实战案例链接见文中。
|
4月前
|
机器学习/深度学习 自然语言处理 并行计算
【YOLOv8改进 -注意力机制】Mamba之MLLAttention :基于Mamba和线性注意力Transformer的模型
YOLOv8专栏探讨了该目标检测模型的创新改进,包括使用Mamba模型的线性注意力Transformer变体,称为MLLA。Mamba的成功关键在于遗忘门和块设计,MLLA结合了这些优点,提升了视觉任务的性能。文章提供全面分析,并提出MLLA模型,其在效率和准确性上超过多种视觉模型。论文和代码可在提供的链接中找到。MLLA Block的代码示例展示了如何整合关键组件以实现高效运算。更多配置详情见相关链接。
|
6月前
|
机器学习/深度学习 计算机视觉
YOLOv8改进 | 2023注意力篇 | EMAttention注意力机制(附多个可添加位置)
YOLOv8改进 | 2023注意力篇 | EMAttention注意力机制(附多个可添加位置)
893 0

相关实验场景

更多