【语义分割】13、SegNeXt

2023-11-13

在这里插入图片描述

论文:SegNeXt: Rethinking Convolutional Attention Design for Semantic Segmentation

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

出处:NIPS 2022

贡献点:

  • 证明了使用简单的卷积 encoder (深度可分离条状卷积)仍可以达到比使用 vision transformer 更好的效果,且对细节处理更好,计算量也更少
  • 在 ADE20K, Cityscapes,COCO-stuff,Pascal VOC,Pascal Context,iSAID 的语义分割任务上都取得了很好的效果

一、背景

在这里插入图片描述

虽然 Transformer 相关方法占据了语义分割榜首,但本文作者就是要证明卷积网络依然能打,依然高效且效果好,能够比 Transformer 使用自注意力实现的编码网络更能提取上下文信息。

回顾一下之前表现较好的语义分割方法,如表 1 所示,作者认为一个好的方法要具有如下几个特征:

  • 一个强的 backbone 作为 encoder:和 CNN 相比,Transformer 方法的 backbone 更强一些
  • 多尺度信息交互:语义分割作为一个密集预测任务,需要处理不同尺度的目标
  • spatial attention:空间 attention 能够让模型通过语义区域内的区域优先级进行分割(也就是寻找空间中不同像素的关系来指导分割)
  • 低计算复杂度:尤其是处理高分辨率图像(如遥感、城市场景),低分辨率图很重要

基于上述讨论,本文作者重新思考了卷积中的 attention,并且提出了一个更高效的 encoder-decoder 结构 MSCA(multi-scale convolutional attention)。

在这里插入图片描述

语义分割模型一般可以分为两部分:encoder 和 decoder

  • Encoder:前期一般使用如 ResNet、ResNeXt、DenseNet 等分类网络,但由于分割是密集预测任务,所以后面就有了 Res2Net、HRNet、SETR、SegFormer、HRFormer、MPViT、DPT 等专门为语义分割设计的网络
  • Decoder:使用 decoder 可以从 encoder 编码特征中恢复更好的特征,会从多尺度感受野、多尺度语义特征、扩大感受野、加强边界信息、捕捉全局上下文等角度出发来实现

二、方法

2.1 Convolutional Encoder

Encoder 的结构类似 ViT,但还有些不同,没有使用 self-attention,使用了多尺度卷积 attention(multi-scale convolutional attention, MSCA, module)。

MSCA 的结构如图 2a 所示,包含三个部分:

  • 深度可分离卷积来聚合局部特征
  • 多分支深度可分离条状卷积,来捕捉多尺度上下文特征
  • 1x1 卷积来建立不同分支之间的关系,1x1 卷积的输出作为 attention weights 来对 MSCA 的输入进行加权

MSCA 的公式如下:

在这里插入图片描述

  • F 是输入特征
  • att 和 out 表示 attention map 和 output
  • i 表示第 i 个分支,如图 2b,Scale0 表示恒等连接
  • 在每个分支,使用两个 depth-wise strip convolution 来近似标准的大核 depth-wise convolution ,每个分支的卷积核大小分别为 7、11、21

为什么选择 depth-wise strip convolution 呢:

  • strip conv 很轻量,标准的 7x7 卷积,可以使用一对儿 1x7 和 7x1 的卷积来实现
  • 目标中有很多条状目标,如行人、电线杆等,strip conv 能够帮助提取条状目标特征

在这里插入图片描述

将一系列 MSCA 堆叠起来后,就得到了 MSCAN,使用的层级结构,包括 4 个 stage,每个 stage 的空间分辨率分别为 H 4 × W 4 \frac{H}{4} \times \frac{W}{4} 4H×4W H 8 × W 8 \frac{H}{8} \times \frac{W}{8} 8H×8W H 16 × W 16 \frac{H}{16} \times \frac{W}{16} 16H×16W H 32 × W 32 \frac{H}{32} \times \frac{W}{32} 32H×32W,下采样是通过 3x3 s=2 的卷积 + BN 来实现的。

注意:MSCAN 里边都使用的 BN 而非 LN,也是经过实验证明 BN 效果更好

不同尺寸的模型结构如下:

在这里插入图片描述

2.2 Decoder

图 3 展示了 3 种不同的 decoder 结构:

  • a:SegFormer 结构,是 MLP-based 结构
  • b:CNN-based 结构,这种结构的输出一般直接作为其他解码头的输入,如 ASPP、PSP 等
  • c:SegNeXt 结构:将 3 个 stage 的输入进行组合,然后提提取全局上下文特征。这里只使用了后三个 stage 的结果,这是因为 SegNeXt 是基于卷积的,第一个 stage 包含更多的低层特征,会影响效果,而且增加计算量。

在这里插入图片描述

三、效果

在这里插入图片描述

在这里插入图片描述

表 6 验证了 MSCA 的设计结构的不同效果:

在这里插入图片描述

表 7 验证了是否使用 stage 1 的效果:

在这里插入图片描述

表 8 验证了 MSCA 的效果:

在这里插入图片描述

和 SOTA 的对比:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【语义分割】13、SegNeXt 的相关文章

  • 50个知名的开源网站

    1 http snippets dzone com tag c 数以千计的有用的C语言源代码片段 2 http www hotscripts com category c cpp scripts programs Hotscripts 提供
  • Python 文件的读写操作

    文章目录 1 文件对象 1 1 文件打开方式 1 1 1 打开文件 1 1 2 关闭文件 1 1 3 访问模式 1 2文件读取 1 2 1 read 1 2 2 readline 1 2 3 readlines 1 3 文件迭代 1 4 文
  • 最短路径:迪杰斯特拉算法

    算法步骤 1 初始化 1 将源点v0加到S中 即S v0 true 2 将v0到各个终点的最短路径长度初始化为权值 即D i G arcs v0 vi vi属于V S 3 如果v0和顶点vi之间有弧 则将vi的前驱置为v0 即Path i
  • 硬件系统工程师宝典(28)-----关于LDO,应该知道的事

    各位同学大家好 欢迎继续做客电子工程学习圈 今天我们继续来讲这本书 硬件系统工程师宝典 上篇我们说到BJT配合MOSFET控制电源开关的四种电路以及MOSFET的均流电路 今天我们来讲讲LDO的应用分析 LDO的结构 LDO Low Dro
  • XML格式数据集转TXT(YOLO)

    我从网上下载了一个数据集 underwater 它们提供了xml格式的数据 但是我想用yolov5进行训练 所以需要将xml格式转化为txt格式 正常的xml格式的数据集可以参考 目标检测中将已有的 xml数据集转换成 txt数据集 附代码

随机推荐

  • 深入浅出VA函数的使用技巧

    深入浅出VA函数的使用技巧 作者 钟小兵 发文时间 2005 04 11 本文主要介绍可变参数的函数使用 然后分析它的原理 程序员自己如何对它们实现和封装 最后是可能会出现的问题和避免措施 VA函数 variable argument fu
  • MySQL——模糊查询(LIKE关键字与通配符:百分号%和下划线_的使用和理解)——(运用场景+通俗易懂)

    使用mysql模糊查询主要点 LIKE关键字和这两个通配符配合使用 任意一个字符 任意0或多个字符 那么我们立即上手吧 一 使用LIKE和通配符 场景1 我要搜索一个名字 可我都忘记叫什么了 只知道是3个字符的 那怎么搜索呢 三个下划线 代
  • elasticsearch7.9 修改指定JDK

    错误 future versions of Elasticsearch will require Java 11 your Java version from usr local nlp java jdk1 8 0 162 jre does
  • 大致解决 Ubuntu 18.04 系统启动极慢的问题

    早在一两个月之前就想升级到 18 04 或是 18 10 了 然而那会儿用 LiveCD 测试得速度实在是慢 启动要很久 干脆没过多纠缠 旧暂时不管了 现因实际需要 不得不升级系统 以便获取到更新的软件包 从 17 10 向上升级很方便 直
  • hdoj 题目分类

    1001 整数求和 水题 1002 C语言实验题 两个数比较 水题 1003 1 2 3 4 5 简单题 1004 渊子赛马 排序 贪心的方法归并 1005 Hero In Maze 广度搜索 1006 Redraiment猜想 数论 容斥
  • 论文笔记——CVPR 2017 Annotating Object Instances with a Polygon-RNN

    文章主页 http www cs toronto edu polyrnn 1 简介 文章作者基于深度学习提出一种半自动目标事例标注 semi automatic annotation of object instances 的算法 大多数前
  • @property基本概念

    1 什么是 property property是编译器的指令 什么是编译器的指令 编译器指令就是用来告诉编译器要做什么 property会让编译器做什么呢 property 用在声明文件中告诉编译器声明成员变量的的访问器 getter se
  • maven自定义archetype

    在开发过程中我们经常会创建一系列结构类似的新项目 这些项目结构和基础配置基本或完全一致 maven就提供了archetype类型来规定新建项目的结构及基础配置 利用archetype就可以快速简单的搭建新项目 一 创建Maven项目的一般步
  • 网络安全笔记7——防火墙技术

    网络安全笔记7 防火墙技术 参考课程 中国大学MOOC 网络安全 北京航空航天大学 文章目录 网络安全笔记7 防火墙技术 防火墙概述 防火墙的类型及结构 防火墙的发展史 防火墙的分类 OSI模型与防火墙的关系 静态包过滤防火墙 操作 工作原
  • es的配置文件(elasticsearch.yml)

    config目录下有2个配置文件 es的配置文件 elasticsearch yml 和日志配置文件 logging yml cluster name elasticsearch 配置es的集群名称 默认是elasticsearch es会
  • arduino IDE搭建ESP8266开发环境和简单使用

    arduino IDE搭建ESP8266开发环境和简单使用 文章目录 arduino IDE搭建ESP8266开发环境和简单使用 安装 下载IDE 在Arduino IDE上安装esp8266库 下载安装esp8266库 使用 选择开发板
  • Java进阶3 - 易错知识点整理(待更新)

    Java进阶3 易错知识点整理 待更新 该章节是Java进阶2 易错知识点整理的续篇 在前一章节中介绍了 ORM框架 中间件相关的面试题 而在该章节中主要记录关于项目部署中间件 监控与性能优化等常见面试题 文章目录 Java进阶3 易错知识
  • 使用mybatis-plus的insert方法遇到的坑(添加时id值不存在异常)

    在使用mybatis plus的insert方法的时候 报错 java sql SQLException Field id doesn t have a default value 后来了解到使用mybatis plus的insert方法
  • 05-2_Qt 5.9 C++开发指南_Model/View结构实例(QFileSystemModel、QStringListModel、QStandardItemModel;编程实例)

    接上篇 本篇主要介绍Model View框架下的模型类 QFileSystemModel QStringListModel QStandardItemModel的使用方法和编程实例 文章目录 1 QFileSystemModel 1 1 Q
  • 「拓数派(OpenPie)2022 发布会实录 」PieCloudDB Database 优化器

    10 月 24 日程序员节 拓数派 Openpie 发布了云原生数据库 PieCloudDB PieCloudDB 以云计算架构为设计基础 实现云上存算分离 打造了 元数据 计算 存储 分离三层架构 在计算层 PieCloudDB 设计了高
  • Microsoft Store 微软商店无法加载在页面解决

    导致此原因主要是因为你的电脑开启过vpn 开启了系统代理 导致微软商店无法加载 解决方法 1 第一步 开始 设置 2 第二步 网络和internet 3 第三步 点击代理 关闭手动代理服务器这一项 然后再打开微软商店 就可以了
  • Dvwa页面标红问题的逐步攻破(二)

    提示 第二个问题花了很长时间 试了很多种办法 都没成功 但是经过后续的操作我发现第二个问题并没有太大的影响 那就说一下在此过程中遇到的问题及解决吧 解决PHP module gd MIssing Only an issue if you w
  • HTML超链接标签

    一 超链接标签 a 的语法 a href 链接路径 target self 链接文本或图像 a 1 a 标签中href属性值是链接的路径 当href 时表示一个空连接 2 a 标签中target属性值表示的是链接在哪个窗口打开 它的常用值是
  • rlwrap

    rlwrap for Command Line History and Editing in SQL Plus and RMAN on Linux linux下安装后 用着确实方便 AIX下能用吗 more http www oracle
  • 【语义分割】13、SegNeXt

    文章目录 一 背景 二 方法 2 1 Convolutional Encoder 2 2 Decoder 三 效果 论文 SegNeXt Rethinking Convolutional Attention Design for Seman