【SegNeXt】语义分割中对卷积注意力设计的反思

news2025/4/8 19:26:21

目录

1.摘要

2.相关工作

2.1语义分割

2.2多尺度网络

2.3注意力机制

3.网络结构

3.1卷积编码器

 3.2解码器

4.实验

个人总结:


论文链接:论文

代码链接:代码

 论文发表于NeurIPS 2022,值得注意的是,在Transformer风很大的时候,有人提出卷积才是王道的idea,勇气可嘉!


1.摘要

论文提出一种简单的卷积神经网络结构用于语义分割任务。最近基于transformer机制的模型由于其自注意力机制在编码空间信息上的效率主导了语义分割领域。本文中,我们发现卷积注意力比transform中的自注意力更能有效的编码上下文信息,通过重新审视成功者在分割模型中所拥有的特征,我们发现了几个导致分割模型性能改进的关键组件。这促使我们设计一种使用廉价卷积运算的新型卷积注意力网络。 我们的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 改进。

2.相关工作

2.1语义分割

通常的语义分割模型都可以被分成两部分:编码器和解码器。其中

编码器通常使用常用的分类网络(ResNet  ResNeXt 、DenseNet),然而,语义分割与图像分类不同,是一种稀疏预测的任务,因此为分割量身定制的编码器出现,比如Res2Net , HRNet , SETR, SegFormer , HRFormer, MPViT ,DPT。

对于解码器,对于不同的任务会有不同种类,包括多尺度感知、多尺度分割、扩大感知域、增强边缘特征和获取上下文信息。

在本文中,我们总结了那些为语义设计的成功模型的特征分割并提出一个基于 CNN 的模型,命名为 SegNeXt它将k×k卷积分解为一对k×1和1×k卷积。 尽管这项工作表明大卷积核在语义分割中很重要,它忽略了多尺度感受野的重要性,并没有考虑如何利用这些多尺度大核提取的特征以注意力的形式进行分割。

2.2多尺度网络

设计多尺度网络是计算机视觉中的热门方向之一。 用于分割模型中,多尺度模块出现在编码器 和解码器 部分。GoogleNet 是与我们的方法最相关的多尺度架构之一,它使用多分支结构实现多尺度特征提取。 另一项与我们有关的工作方法是HRNet 。 在更深的阶段,HRNet 还保留了高分辨率的特征,即与低分辨率特征聚合,以实现多尺度特征提取。
与以往的方法不同,SegNeXt 除了在编码器中捕获多尺度特征外,还引入了一种高效的注意力机制,并采用了更便宜、更大的核卷积。 这些使我们的模型能够实现比上述分割方法更高的性能。

2.3注意力机制

基础的注意力机制是一种自适应选择过程,旨在使网络专注于重要的部分。 一般来说,在语义上可以分为两类分割,包括通道注意力和空间注意力。 不同类型的注意游戏不同的角色。 例如,空间注意力主要关注重要的空间区域。不同的是,使用通道注意力的目标是让网络有选择地参与那些重要的对象,这在以前的工作中已经被证明是重要的。说到最近流行的vision transformers,他们
通常忽略渠道维度的适应性。

3.网络结构

3.1卷积编码器

 对于编码器部分,我们使用了类似于ViT的,但与之不同的是,ViT使用的是自注意力机制,本文你设计了多尺度卷积自注意力机制(multi-scale convolutional attention (MSCA))。MSCA模块包含三个部分:总计局部信息的深度可分离卷积、获取多尺度上下文信息的多分支深度条带卷积、以及可联通不同通道之间信息的1*1卷积。1*1卷积的输出作为与MSCA的输入进行重新赋权重使用。公式表示如下:

i={0,1,2,3}代表不同分支,在每个分支中,我们使用两个深度条带卷积来近似标准具有大内核的深度卷积。 这里,每个分支的内核大小分别设置为 7、11 和 21。(为了模拟内核大小为 7 × 7 的标准 2D 卷积,我们只需要一对 7×1 和 1×7 卷积),这种条带卷积的优势主要有两个:一方面可以有效减少计算量,另一方面可以对窄长型的目标进行有效表征,比如行人和电线杆。

通过将多个MSCA模块进行序列拼接的方式即可得到MSCAN。MSCAN包含了4个阶段,尺寸分别为 H/4 × W/4 , H/8 × W/8 , H/16 × W/16 和 H/32 × W/32。每个阶段都通过3*3卷积核,stride为2的卷积运算和一个BN层进行下采样。

 3.2解码器

分割网络中,编码器通常都是在ImageNet数据集上预训练得到的,因此获取高维的语义信息的解码头非常重要。本文中,我们调查了3种解码器。

1. 单纯的MLP结构:SegFormer

2. 基于CNN结构:ASPP , PSP ,DANet

3. SegNeXt结构:我们聚合了最后三个阶段的特征并使用轻量级Hamburger进一步模拟全局上下文信息。 结合我们强大的卷积编码器,我们发现使用轻量级解码器可以提高性能计算效率

 与 SegFormer 不同,SegFormer 的解码器将 Stage 1 的特征聚合到第 4 阶段,我们的解码器仅接收最后三个阶段的特征。 这是因为我们的 SegNeXt基于卷积。 第1 阶段的特征包含太多低级信息,并且拉低性能。 此外,Stage 1 的操作带来了较大的计算量。 在我们的实验部分,我们将证明我们的卷积 SegNeXt 比最近最先进的基于编码器的 SegFormer 和 HRFormer更好。

4.实验

在ImageNet验证集和遥感数据集iSAID上表现SOTA

编码器在ImageNet上表现:

PascalVOC数据集上表现:

个人总结:

精妙的编码器结构(MSCAN),采用不同于自注意机制的多尺度注意力机制方法进行编码,一方面可以得到多尺度特征和融合上下文信息的目的,另一方面减少了计算量。

整理不易,欢迎一键三连!!! 

 

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

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

相关文章

UVM入门和进阶实验0

一. 概述 UVM学习流程仍然按照SV时候的核心流程,即: 如何搭建验证框架验证组件之间的连接和通信如何编写测试用例,继而完成复用和覆盖率的收敛 我们UVM入门和进阶实验0还是同之前SV验证实验0思想一样,让大家通过简单的实验要求…

学习HTTP协议,这一篇就够啦 ~~

HTTP协议一、什么是HTTP1.1 应用层协议1.2 HTTP1.3 HTTP协议的工作过程二、HTTP协议格式2.1 Fiddler抓包工具2.2 协议格式三、HTTP请求 (Request)3.1 认识 "方法" (method)3.1.1 GET 方法3.1.2 POST 方法3.1.3 GET和POST比较3.1.4 其他方法3.2 认识URL3.2.1 URL基本格…

基于迅为3568开发板的多屏同/异显动态方案

iTOP-RK3568开发板采用四核Cortex-A55处理器,芯片内置VOP控制器,支持HDMI、LVDS、MIPI、EDP四种显示接口的多屏同显、异显和异触,可有效提高行业定制的拓展性。 iTOP-RK3568开发板支持以下屏幕: 迅为 LVDS 7 寸屏幕 迅为 LVDS …

【数学】三角函数小题

∣三角函数小题NightguardSeries.∣\begin{vmatrix}\huge{\textsf{ 三角函数小题 }}\\\texttt{Nightguard Series.}\end{vmatrix}​ 三角函数小题 Nightguard Series.​​ 以下是一些废话 不愿意看的可以跳过 最近守夜人更新得很慢,守夜人拖更主要有三个原因&#…

Hudi(1):Hudi概述

目录 0. 相关文章链接 1. Hudi简介 2. 发展历史 3. Hudi特性 4. 使用场景 4.1. 近实时写入 4.2. 近实时分析 4.3. 增量 pipeline 4.4. 增量导出 0. 相关文章链接 Hudi文章汇总 1. Hudi简介 Apache Hudi(Hadoop Upserts Delete and Incremental&#xff0…

servlet(三)文件的下载

主要有几个步骤: 1、获取要下载的文件名 2、读取要下载的文件内容 (通过 ServletContext 对象可以读取,这个也是 ServletContext的应用) 3、获取要下载的文件类型 4、在回传前,通过响应头告诉客户端返回的数据类型 5、还要告诉客户端收到的数据是用于下载使用&#…

Web APIs 简介、DOM

文章目录一、Web APIs 简介1、Web APIs 和 JS 基础关联性2、API 和 Web API二、DOM1、DOM简介2、获取元素(1)根据ID获取(2)根据标签名获取(3)通过HTML5新增的方法获取(4)获取特殊元素…

【数据库数据恢复】oracle数据库执行truncate table的数据恢复案例

数据库恢复环境: 操作系统:windows server; 数据库:win_oracle_x64。 数据库故障&分析: oracle数据库误truncate table,备份无法使用。 oracle数据库误操作导致数据丢失是比较常见的一种故障&#xf…

《Linux运维总结:Centos7.6二进制安装Mysql8.0.30》

一、安装Mysql服务 1.1、下载二进制安装包 官方:二进制安装包下载 [rootlocalhost ~]# cd /data/pkgs [rootlocalhost pkgs]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz [rootlocalhost pkgs]# tar a…

启动报异常:org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping

目录 异常信息 异常原因 解决结果 异常信息 17:20:38.414 [main] ERROR o.s.b.SpringApplication - [reportFailure,870] - Application run failedorg.yaml.snakeyaml.parser.ParserException: while parsing a block mapping in reader, line 4, column 3: name: R…

JMeter分布式部署

目录 一、JMeter分布式执行原理 二、jmeter分布式部署 三、jmeter分布式执行 X、常见问题 1、Cannot start. localhost.localdomain is a loopback address 一、JMeter分布式执行原理 1、jmeter分布式压测时,选择其中一台作为调度机(master),其他机…

密码技术学习二:认证

1、单向散列函数 概念:单向散列函数有一个输入和一个输出,其中输入称为消息,输出称为散列值。单向散列函数可以根据消息的内容计算出散列值,而散列值就可以被用来检查消息的完整性; 单向散列函数输出的散列值也称为消…

ArcGis制作深度学习标签

项目场景: 在导入的tif文件上制作深度学习标签文件 问题描述 cv2读取导出标签tif文件是出现错误: imread_(/kaggle/input/a-small-jpg/headwrong.tif): cant read header: OpenCV(4.5.4) /tmp/pip-req-build-jpmv6t9_/opencv/modules/imgcodecs/src/grf…

independent watchdog 独立看门狗 window watchdog 窗口看门狗

看门狗(watchdog) 防止硬件因外界电磁场干扰或其他导致不能正常工作的,导致不可预料后果,对芯片进行实时检测的模块或芯片称为看门狗。 看门狗工作过程 启动看门狗后,有一个计数器从最大值递减,计数器减…

双层pdf-不用手动添加目录超链接教程

双层pdf最大的特点是文件既可以是文本型的(比如由word生成的文件),也可以是图像型的,既可以100%保留原始版面效果,又便于建立索引数据库,进行科学的管理。在标书中应用广泛。 使用软件:wordAdo…

Linux文件操作(基础IO)

在C、C、Python等语言中存在对文件操作的接口,通过这些接口我们可以创建文件,并实现文件内容的写入和读取,本文将介绍Linux下我们是如何进行文件操作的,并且深入底层的解析文件操作的原理。 文章目录一、C语言中的文件接口1.1 fop…

【pandas】教程:1-处理什么样的数据

pandas 处理什么样的数据? pandas 数据表格的表示 想存储一些 Titanic 乘客数据,知道姓名,年龄,性别等; df pd.DataFrame({"Name": ["Braund, Mr. Owen Harris","Allen, Mr. William Henry…

仪表板工具Stimulsoft Dashboards仪表板中的数据筛选元素介绍

Stimulsoft Ultimate是用于创建报告和仪表盘的通用工具集,包含九种产品,可以为任何受支持的平台创建报告和仪表板,适用于WinForms,ASP.NET,.NET Core,JavaScript,WPF,PHP&#xff0c…

Java EE 期末复习提纲【太原理工大学】

目录 一、题型 二、考点 1. MyBatis 2. Spring 3. Spring MVC 一、题型 1. 选择题 20 个,每个 1 分,共 20 分。 2. 填空题 20 个,每个 1 分,共 20 分。 3. 判断题 10 个,每个 1 分,共 10 分。 4. 程…

SSM1---MyBatis

MyBatis MyBatis环境搭建 我这个是使用IDEA&#xff0c;基于Maven搭建的 首先建立一个空的Maven项目或者模块在pom.xml中引入所需依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"…