SegNeXt:重新思考语义分割中卷积注意力设计

news2024/11/25 2:57:41

论文链接:https://arxiv.org/abs/2209.08575

github: https://github.com/Visual-Attention-Network/SegNeXt

参考视频:【翻译成中文带你读】SegNext论文逐行精读,30分钟就能快速了解其奥秘!-人工智能/深度学习/计算机视觉_哔哩哔哩_bilibili

摘要

论文提出一种简单的卷积神经网络结构用于语义分割任务。最近基于transformer机制的模型由于其自注意力机制在编码空间信息上的效率主导了语义分割领域。本文中,我们发现卷积注意力比transform中的自注意力更能有效的编码上下文信息,通过重新审视成功者在分割模型中所拥有的特征,我们发现了几个导致分割模型性能改进的关键组件。这促使我们设计一种使用廉价卷积运算的新型卷积注意力网络。(without bells and whistles)没用任何深度神经网络的Trick,任何人都可以不通过精调,扩大训练集,学习率和参数就能达到比较好的效果。 我们的SegNeXt网络在几个常见的数据集上都取得了 SOTA的效果,比如ADE20K,Cityscapes, COCO-Stuff, Pascal VOC, Pascal Context, iSAID。SegNeXt网络比EfficientNet-L2 w/ NAS-FPN在PascalVOC数据集上miou提升到了90.6%,并且只使用了其10%的参数量,平均而言,SegNeXt与最先进的方法相比,在具有相同或更少计算量的 ADE20K 数据集上实现了约 2.0% 的 mIoU 改进。

回顾以前成功的语义分割工作,不同模型具有的几个关键属性

(1)强大的骨干网络作为编码器

(2)多尺度信息交互:与主要识别单个对象的图像分类任务不同,语义分割是一项密集的预测任务,因此需要在单个图像中处理不同大小的对象

(3)空间注意力:空间注意力允许模型通过在语义区域内的区域优先级来执行分割

(4)计算复杂度低

主要贡献

1.确定了一个好的语义分割模型应该拥有的特征,并提出了一种新颖的定制网络架构称为SegNext,它通过了多尺度卷积特征唤起了空间注意力

2. 具有简单且廉价卷积的编码器仍然可以比vit效果更好,尤其是在处理对象细节时,它需要的计算成本要低很多。

3.大幅提高了在一些数据集上的性能

相关著作

语义分割

一项基本的计算机视觉任务。

在本文中,我们总结了那些成功的语义分割模型的特点,并提出了一个基于CNN的模型SegNeXt。与我们论文最相关的工作是[62],它将一个kXk卷积分解成一对k 1和1 k卷积。尽管这项工作表明,大卷积核的语义分割问题,它忽略了多尺度感受野的重要性,并没有考虑如何利用这些多尺度特征提取的大核进行分割的形式的关注。

多尺度网络

设计多尺度网络是计算机视觉中的一个热门方向。对于分割模型,多尺度块出现在编码器和解码器两部分。与之前的方法不同,SegNext除了在编码器中捕获多尺度特征外,还引入了一个有效的注意力机制,并采用了更简单和更大的内核卷积这些使我们的模型能够达到比上述分割方法更高的性能。

注意力机制

注意力机制是一种自适应的选择过程,其目的是使网络集中于重要的部分。一般来说,它在语义分割中可以分为两类,包括通道注意力和空间注意力。

不同类型的注意起着不同的作用。例如,空间注意力主要关心重要的空间区域不同的是,使用通道注意力的目的是使网络选择性地注意那些重要的对象,这在以前的工作中已经被证明是很重要的。说到最近流行的视觉转换器,它们通常忽略了通道维度上的适应性。
视觉注意力网络(VAN)是与SegNeXt最相关的工作,它也提出利用大核注意力(LKA)机制来建立通道和空间注意力·虽然VAN在图像分类中取得了很好的表现,但它在网络设计过程中忽略了多尺度特征聚合的作用,而这对于类似分割的任务是至关重要的。

方法

采用了以前工作中的编码器-解码器结构

卷积编码器

在大多数先前的工作之后,我们为编码器采用金字塔结构.对于我们编码器中的构建块,我们采用了与VIT 类似的结构,但不同的是,我们没有使用自注意机制,而是设计了一种新颖的多尺度卷积注意(MSCA)模块

如图所示,MSCA包含三个部分: 用于聚合局部信息的深度卷积,用于捕获多尺度上下文的多分支深度条带卷积(multi-branch depth-wise strip convolutions),以及用于建模不同通道之间关系的1X1卷积(参考SeNet)。1X1卷积的输出被直接用作注意力权重来重新加权MSCA的输入。

数学上,我们的MSCA可以写成:

深度条带卷积(multi-branch depth-wise strip convolutions)

一方面,带状卷积是轻级的。为了模仿内核大小为7X7的标准2D卷积,我们只需要一对7X1和1X7的卷积·另一方面,分割场景中有一些条状物体,如人、电线杆等物体·因此,带状卷积可以是网格卷积的补充,有助于提取带状特征.

MSCAN

堆叠一系列的构件产生了所提出的卷积编码器,命名为MSCAN。对于MSCAN,我们采用了-种常见的层次结构,它包含四个空间分辨率递减的阶段,依次为。这里,H 和W 分别是输入图像的高度和宽度·每个阶段包含一个下采样模块和一个构建堆栈。下采样块具有步长为2和内核大小3X3的卷积,后面是一个批量归一化层.注意,在MSCAN的每个构建模块中,我们使用批量归一化(batch normalization)而不是层归一化(layer normalization),因为我们发现批量归一化对分割性能有更大的增益。

*注:批量归一化对条带状卷积友好

  1. 批量归一化(Batch Normalization): 批量归一化在计算机视觉中的应用非常广泛。它通常在卷积神经网络(CNN)中使用,尤其是在较深的网络层中。批量归一化可以通过对每个小批量样本的特征进行归一化,提高网络的稳定性和泛化能力,加快收敛速度。在计算机视觉任务中,例如图像分类、目标检测和图像分割等,批量归一化可以帮助网络更好地处理不同尺度和分布的图像数据,提高模型的性能和鲁棒性。

  2. 层归一化(Layer Normalization): 层归一化在计算机视觉中相对较少使用,但在特定情况下仍然具有应用价值。层归一化通常用于循环神经网络(RNN)和自注意力机制(Self-Attention)模型等序列数据上。在计算机视觉任务中,例如视频分析、光流估计和人体姿态估计等,层归一化可以帮助网络处理序列数据的时间依赖性,减少梯度消失和梯度爆炸问题,提高模型在时间序列上的建模能力。

模型尺寸

我们设计了四种不同尺寸的编码器型号,分别命名为MSCAN-T、MSCAN-S、MSCAN-B和MSCAN-L。相应的整体分割模型分别为SegNeXt-T,SegNeXt-S, SegNeXt-B, SegNeXt-L。详细的网络设置如表2所示。

 

解码器

 在分割模型中,编码器大多是在imageNet数据集上预训练的。为了捕捉高级语义,通常需要一个解码器,它应用于编码器。在这项工作中,我们研究了三种简单的解码器结构,如图3所示。

第一个,采用SegFormer,是一个纯粹基于MLP的结构。

第二种主要是采用基于CNN的模型。在这种结构中,编码器的输出直接用作重型解码器头的输入,如ASPP,PSP,和DANet 。

最后一个是我们SegNext采用的结构。我们集合了前三个阶段的特征,并使用了一个轻量级的Hamburger 以进一步建模全局上下文。结合强大的卷积编码器,我们发现使用轻量级解码器可以提高性能计算效率。

与SegFormer的解码器聚合从阶段1到阶段4的特征不同,我们的Hamburger解码器只接收最后三个阶段的特征。这是因为我们的SegNext是基于卷积的。阶段1中的特性包含太多的低级信息并损害性能。此外,阶段1上的操作带来了沉重的计算开销。我们的卷积SegNeXt比最近的基于transformer的SegFormer 和HRFormer性能好得多

实验

我们在七个流行的数据集上评估了我们的方法,包括ImageNet-1K,ADE20K , Cityscapes, Pascal VOC , Pascal Context , COCO-Stuff 和 iSAID.

ImageNet是最著名的影像分类数据集,其中包含1,000个类别。与大多数分割方法类似,我们用它来预训练我们的MSCAN编码器

 

总结

 在本文中,我们分析了以前成功的分割模型,并找到它们所拥有的良好特性。基于这些发现,我们提出了一个定制的卷积注意模块MSCA和一个CNN式网络SegNeXt。实验结果表明,SegNeXt在相当大的程度上超过了目前最先进的基于transformer的方法。本文显示,当使用适当的设计时,基于CNN的方法仍然可以比基于transformer的方法表现得更好。我们希望本文能够鼓励研究人员进一步研究CNN的潜力。

我们所提出模型也有其局限性,例如,将该方法扩展到具有100M以上参数的大规模模型,以及在其他视觉或NLP任务上的性能。我们将在未来的工作中解决这些问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/661865.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Triton教程---存储代理

Triton教程—存储代理 存储库代理使用在加载或卸载模型时运行的新功能扩展了 Triton。 您可以在加载模型时引入自己的代码来执行身份验证、解密、转换或类似操作。 测试版:存储库代理 API 是测试版质量,并且会针对一个或多个版本进行非向后兼容的更改。…

牛客网 2023 最新 “Java 面试八股文+各大厂的面试真题“出炉,面面俱到,太全了

一转眼 2023 年已经过了大半了,不知道你金三银四上岸了,还是等着秋招呢?大家从 Boss 直聘上或者其他招聘网站上都可以看到 Java 岗位众多,Java 岗位的招聘薪酬天差地别,人才要求也是五花八门。而很多 Java 工程师求职过…

css3 grid 布局

特别声明:这篇博客转载于阮一峰老师,转载是为了方便日后复习,实在写的太棒了。 目录 一、概述 二、基本概念 2.1 容器和项目 2.2 行和列 2.3 单元格 2.4 网格线 三、容器属性 3.1 display 属性 3.2grid-template-columns 属性&#x…

[Studio3T]无限试用

新建文本文件 echo off ECHO 重置Studio 3T的使用日期...... REG DELETE "HKEY_CURRENT_USER\Software\JavaSoft\Prefs\3t\mongochef\enterprise" /f RMDIR /s /q %USERPROFILE%\.3T\studio-3t\soduz3vqhnnja46uvu3szq-- RMDIR /s /q %USERPROFILE%\.3T\studio-3t\L…

数字电路基础---触发器

数字电路基础---触发器 触发器(Flip-Flop)也是数字电路中的一种具有记忆功能的逻辑元件。触发器对脉冲边沿敏感的存储单元电路,它只在触发脉冲的上升沿(或下降沿)瞬间改变其状态。在数字电路中可以记录二进制数字信号“…

crfclust.bdb过大

有套11204集群环境,现场反馈/u01使用率100%,数据库无法使用了,本以为是aud文件太多导致的,查看后发现是crfclust.bdb多大了,有100多G了 [roothydb1 hydb1]#du -sh crfclust.bdb 101G crfclust.bdb [roothydb1 hydb…

31个最佳 JavaScript 片段

这里有 20 个有用的 JavaScript 片段,可以在您处理项目时为您提供帮助: 1.获取当前日期和时间: const now new Date(); 2. 检查变量是否为数组: Array.isArray(variable); 3.合并两个数组: const newArray array1.co…

学习svg 基本使用

一.实例展示 1.鼠标移动 <svg width"34px" height"34px" viewBox"0 0 34 34" version"1.1" xmlns"http://www.w3.org/2000/svg" dcindex"189"><g id"画板" stroke"none" stroke-wi…

机器学习-学习总结

1.课程整体目录&#xff1a; 2.课程地址 飞桨AI Studio - 人工智能学习与实训社区 2.1 回归 2.1.1线性回归和逻辑回归的联系和区别 【ML】线性回归和逻辑回归的联系和区别_逻辑回归和线性回归的区别_机器不学习我学习的博客-CSDN博客 2.1.2 线性回归和逻辑回归重要公式推导…

自然语言处理: 第三章NPLM(Neural Probabilistic Language Mode)

理论基础 NPLM的全称是"Neural Probabilistic Language Model"&#xff0c;即神经概率语言模型。这是一种基于神经网络的语言模型&#xff0c;用于生成自然语言文本。最早是由Bengio 在2003年的A Neural Probabilistic Language Model一文中提出来的&#xff0c; NP…

卖家必读,深入了解亚马逊,速卖通,temu测评补单方式的各种利弊

大部分人对补单的认识还停留在刷好评、信誉上&#xff0c;事实上&#xff0c;信誉等级和好评仅是补单的目标之一&#xff0c;不是目标的全部。 对于一个真正的老手来说&#xff0c;补单真正的目的是提升自己宝贝的权重和搜索排名。因为信誉等级和好评相对来说比较简单。 我们试…

从零开始 Spring Boot 43:DI 注解

从零开始 Spring Boot 43&#xff1a;DI 注解 图源&#xff1a;简书 (jianshu.com) Spring 通过注解实现 DI&#xff08;依赖注入&#xff09;&#xff0c;本文详细讨论这些注解。 Autowired Autowired是 Spring 定义的注解&#xff0c;属于包org.springframework.beans.fac…

【无标题】AI+电力、大模型主题人工智能师资培训班重磅招募中

大语言模型热度空前&#xff0c;诸如文心一言、ChatGPT 等已经能够与人对话互动、回答问题、协助创作&#xff0c;逐渐应用于人们的工作和生活&#xff0c;也引发了社会热议。人工智能赋能新型电力系统下新能源发电、变电、调度、配网、安监、营销、基建以及企业经营管理等领域…

强化学习从基础到进阶-案例与实践[1]:强化学习概述、序列决策、动作空间定义、策略价值函数、探索与利用、Gym强化学习实验

【强化学习原理项目专栏】必看系列&#xff1a;单智能体、多智能体算法原理项目实战、相关技巧&#xff08;调参、画图等、趣味项目实现、学术应用项目实现 专栏详细介绍&#xff1a;【强化学习原理项目专栏】必看系列&#xff1a;单智能体、多智能体算法原理项目实战、相关技巧…

MySQL数据库的高级操作

数据表高级操作 一、克隆表&#xff0c;将数据表的数据记录生成到新的表中方法一方法二 二、清空表&#xff0c;删除表内的所有数据方法一方法二 三、创建临时表四、创建外键约束&#xff0c;保证数据的完整性和一致性。1、外键的定义2、主键表和外键表的理解3、MySQL中6种常见…

盘点一个Python自动化办公案例分享

背景&#xff1a;某公司需要对某一款产品的销售情况进行跟踪和分析&#xff0c;分析需求包括必要的统计图表生成&#xff0c;数据分析&#xff0c;生成报告等操作。 解决方案&#xff1a;利用 Python 编写自动化程序&#xff0c;实现对该产品的销售数据自动抓取&#xff0c;数据…

【python+Coppeliasim】仓储机器人

一、仓储机器人介绍 仓储机器人&#xff08;也称为自动导航AGV&#xff0c;Automated Guided Vehicle&#xff09;是一种智能机器人系统&#xff0c;专门设计用于在仓库、物流中心和制造业等环境中执行货物搬运和物流任务。它们被广泛应用于自动化仓储和物流管理系统中&#xf…

详解HTTP协议和HTTPS协议

目录 一.HTTP协议 1.什么是HTTP 2.HTTP发展历史 3.HTTP请求和响应 4. 抓包的方式和工具Fiddler 1.开发者工具 2.Fiddler 二.请求和响应 1.请求和响应报文 2.URL结构 3.常见的方法 1.GET方法 2.POST方法 3.其他方法 三.请求报头(header) 1.Host 2.Content-Length 3.Co…

Objective-C 混用UITabBar与UINavigation

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 混用UITabBar与UINavigation做app&#xff0c;tab和nav&#xff0c;有时候显示有时候…

有关浪涌保护器参数科普

浪涌保护器&#xff08;SPD&#xff09;或简称电涌保护器是一种用于确保防止瞬态浪涌的设备。它用于保护家庭和商业应用免受电压瞬变的影响。它与必须保护的负载并联连接。 什么是瞬态浪涌&#xff1f; 瞬态浪涌是持续几微秒的功率&#xff08;电压和电流&#xff09;的突然增…