【论文阅读笔记】Head-Free Lightweight Semantic Segmentation with Linear Transformer

莫名地这篇论文我特别难理解,配合代码也食用不了

1.论文介绍

Head-Free Lightweight Semantic Segmentation with Linear Transformer
基于线性Transformer的无头轻量级语义分割
2023年 AAAI
Paper Code

2.摘要

现有的语义分割工作主要集中在设计有效的解码器,但长期以来忽略了整体结构引入的计算负载,这阻碍了它们在资源受限的硬件上的应用。在本文中,我们提出了一个专门用于语义分割的无头轻量级架构,名为自适应频率Transformer(AFFormer)。AFFormer采用并行架构,利用原型表示作为特定的可学习局部描述,取代解码器并保留高分辨率特征上丰富的图像语义。虽然去除解码器压缩了大部分计算,但并行结构的精度仍然受到低计算资源的限制。因此,我们采用异构运算符(CNN和Vision Transformer)进行像素嵌入和原型表示,以进一步保存计算成本。此外,从空间域的角度线性化视觉Transformer的复杂性是非常困难的。由于语义分割对频率信息非常敏感,我们构造了一个轻量级的原型学习块,其复杂度为O(n)的自适应频率滤波器来代替标准的自我注意,复杂度为O(n2)。

Keywords:无头轻量结构(无解码器),语义分割,线性Transformer

创新:1)无解码器的轻量结构,使用原型表示代替解码器; 2)自适应频率滤波器

3.Introduction

语义分割的目的是将图像划分为子区域(像素集合),并定义为像素级分类任务。与图像分类相比,它有两个独特的特点:逐像素的密集预测和多类表示,这通常是建立在高分辨率的功能,并需要图像语义的全局归纳能力,分别。以前的语义分割方法专注于使用分类网络作为主干来提取多尺度特征,并设计复杂的解码器头来建立多尺度特征之间的关系。然而,这些改进是以较大的模型尺寸和较高的计算成本为代价的。

最近视觉Transformer在语义分割方面表现出了巨大的潜力,然而,当部署在超低计算功率设备上时,它们面临平衡性能和存储器使用的挑战。标准Transformer在空间域中的计算复杂度为O(n2),其中n是输入分辨率。现有的方法通过减少标记的数量或滑动窗口来缓解这种情况,但它们对计算复杂性的降低有限,甚至会损害分割任务的全局或局部语义。同时,语义分割作为一个基础研究领域,有着广泛的应用场景,需要处理各种分辨率的图像。

因此,本文提出了两个问题:语义分割能像图像分类一样简单吗?我们能否设计一个高效、轻量级的Transformer网络,用于超低计算场景下的语义分割?

本文提出了一个无头轻量级语义分割的具体架构,自适应频率Transformer(AFFormer)。受ViT维护单个高分辨率特征图以保留细节的属性的启发,金字塔结构降低了探索语义和降低计算成本的分辨率,AFFormer采用并行架构来利用原型表示作为特定的可学习局部描述,其取代解码器,保留了高分辨率特征上丰富的图像语义。并行结构通过去除解码器来压缩大部分计算,但对于超低计算资源来说仍然不够。此外,我们采用异构算子的像素嵌入功能和本地描述功能,以节省保存更多的计算成本。一个名为原型学习(PL)的基于转换器的模块用于学习原型表示,而一个名为像素描述符(PD)的基于卷积的模块将像素嵌入特征和学习的原型表示作为输入,将它们转换回完整的像素嵌入空间以保留高分辨率语义。

然而,从空间域的角度对视觉Transformer的复杂度进行线性化仍然是非常困难的。灵感来自于频率对分类任务的影响,我们发现语义分割对频率信息也非常敏感。因此,我们构造了一个复杂度为O(n)的轻量级自适应频率滤波器作为原型学习,以O(n2)代替标准的自注意。该模块的核心由频率相似性核、动态低通和高通滤波器组成,分别从强调重要频率成分和动态滤除频率的角度捕捉有利于语义切分的频率信息。最后,通过在高频和低频提取和增强模块中共享权重来进一步降低计算成本。我们还在前馈网络(FFN)层中嵌入了一个简化的去卷积卷积层,以增强融合效果,减少两个矩阵变换的大小。

4.网络结构详解

在这里插入图片描述

网络整体流程如上。首先输入图像经过Stem两层卷积,然后进行patch embedding后得到特征F进行聚类,得到原型特征G,从而构造一个并行网络结构,该结构包含两个异构算子。基于变换器的模块作为原型学习,以捕获G中的有利频率分量,从而产生原型表示G’。最后,通过基于CNN的像素描述符恢复G’,得到下一阶段的F’。

上面是原文中的描述,其实它是经过两层卷积后,进入主流阶段,图上画了四个,每个阶段如下:
首先经过patch embedding处理,然后入encoder中,得到的输出入下一阶段,把所有阶段的结果整合输出作为最后的结果。
对于每一个阶段:如果是第一个阶段则把输入的前两个patch直接Restore成最终结果(如上图中左下方箭头),如果不是第一个阶段,则Restore第一个输入patch作out[0],然后MHCAEncoder剩余的作剩余out,最后把out的前两个相加作最后结果。

至于说F聚类成G,不知道在哪实现的。
而并行异构体系是指,PL是基于Transformer的,而PD是基于CNN的,他俩并行,我感觉是串行但是没有输入输出的关联,所以并。

并行异构体系结构
语义解码器将编码器获得的图像语义传播到每个像素,并恢复下采样中丢失的细节。一个简单的替代方法是在高分辨率特征中提取图像语义,但它引入了大量的计算,特别是对于vision transformer。与此相反,本文提出了一种新的策略来描述像素的语义信息与原型语义。对于每个阶段,给定一个特征 F ∈ R H × W × C F ∈ R^{H×W×C} FRH×W×C,我们首先初始化一个网格 G ∈ R h × w × C G ∈ R^{h×w×C} GRh×w×C作为图像的原型,其中G中的每个点作为局部聚类中心,初始状态仅包含周围区域的信息。在这里,我们使用1 × C向量来表示每个点的局部语义信息。对于每个特定的像素,由于周围像素的语义不一致,每个聚类中心之间存在重叠语义。聚类中心在其对应的区域α2中进行加权初始化,每个聚类中心的初始化表示为:
在这里插入图片描述

其中n = α × α,wi表示Xi的权重,α设置为3。目的是更新网格G中的每个聚类中心s,而不是直接更新特征F。当h × w << H ×W时,大大简化了计算。在这里,使用一个基于transformer的模块作为原型学习来更新每个聚类中心,它总共包含L层,更新后的中心表示为G(s)。对于每个更新的聚类中心,恢复它的像素描述符。令 F i ′ F'_i Fi表示恢复的特征,其不仅包含来自F的丰富像素语义,而且还包含由聚类中心G(s)收集的原型语义。由于聚类中心聚集了周围像素的语义,导致局部细节的丢失,PD首先用像素语义对F中的局部细节进行建模。具体来说,F被投影到低维空间,建立像素之间的局部关系,使得每个局部补丁保持不同的边界。然后通过双线性插值将G(s)嵌入到F中,恢复到原始空间特征F。最后,它们通过线性投影层集成。

基于自适应频率滤波激励的原型学习
在这里插入图片描述

语义分割是一个非常复杂的像素级分类任务,很容易出现类别混淆。频率表示可以作为一种新的学习类别之间差异的范式,它可以挖掘人类视觉忽略的信息。由于特征F包含丰富的频率特征,因此网格G中的每个聚类中心也收集这些频率信息。受上述分析的启发,在网格G中提取更多的有益频率有助于区分每个聚类的属性。为了提取不同的频率特征,最直接的方法是通过傅立叶变换将空间域特征转换为谱特征,并在频域使用简单的掩模滤波器以增强或衰减频谱的每个频率分量的强度。然后,提取的频率特征被转换到空间域的逆傅立叶变换。然而,傅立叶变换和逆变换带来额外的计算开销,并且这些运算符在许多硬件上不支持。因此,我们从谱相关的角度设计了一个基于vanilla vision Transformer的自适应频率滤波器模块,直接在空间域中捕获重要的高频和低频特征。核心组件如上图所示,公式定义为:
在这里插入图片描述
其中 D h f c D^{fc}_h Dhfc D m l f ( X ) D^{lf}_m(X) Dmlf(X) D n h f ( X ) D^{hf}_n(X) Dnhf(X)分别表示具有H组的频率相似性核以实现频率分量相关增强、具有M组的动态低通滤波器和具有N组的动态高通滤波器。|| · ||表示串联。值得注意的是,这些算子采用并行结构,通过共享权重进一步降低计算成本。

频率相似核(FSK)
不同的频率成分分布在G中,我们的目的是选择和增强有助于语义分析的重要成分。为此,我们设计了一个频率相似性核模块。通常,该模块由视觉Transformer实现。给定一个特征 X ∈ R h w × C X ∈ R^{hw×C} XRhw×C,通过卷积层对G进行相对位置编码。该算法首先使用一个固定大小的相似性核 A ∈ R C / H × C / H A ∈ R^{C/H×C/H} ARC/H×C/H来表示不同频率分量之间的对应关系,并通过查询相似性核来选择重要的频率分量。我们将其视为函数传递,其通过线性函数传递计算频率分量的键K和值V,并通过Softmax运算在频率分量上对键进行归一化。每个分量集成相似性核Ai,j,其被计算为:
在这里插入图片描述
其中ki表示K中的第i个频率分量,vj表示V中的第j个频率分量。我们还通过线性层将输入X转换为查询Q,并通过在固定大小的相似性核上的交互获得分量增强的输出。

动态低通滤波器(DLF):低频分量占据了绝对图像中的大部分能量,代表了大部分的语义信息。低通滤波器允许低于截止频率的信号通过,而阻止高于截止频率的信号。因此,我们采用典型的平均池作为低通滤波器。然而,不同图像的截止频率不同。为此,我们在多组中控制不同的内核和步幅来生成动态低通滤波器。对于第m组,我们有:
在这里插入图片描述
其中B(·)表示双线性插值,Γs×s表示输出大小为s × s的自适应平均池化。

动态高通滤波器(DHF):高频信息对于保持分割中的细节至关重要。卷积作为一种典型的高通算子,可以滤除不相关的低频冗余分量,保留有利的高频分量。高频分量决定图像质量,并且每个图像的高通截止频率不同。因此,我们将值V分成N组,得到vn。对于每组,我们使用具有不同内核的卷积层来模拟不同高通滤波器中的截止频率。对于第n组,我们有:
在这里插入图片描述
其中Λk×k表示具有k×k的核大小的深度卷积层。此外,我们使用的Hadamard产品的查询和高频功能,以抑制高频内的对象,这是分割的噪声。FFN有助于融合捕获的频率信息,但计算量大,在轻量级设计中经常被忽略。在这里,我们通过引入卷积层来减少隐藏层的维度,以弥补由于维度压缩而丢失的功能。

最后疏通了大部分,还是没理解初始化G的过程,可能是代码能力不行,有看明白的请帮我解答一下。
在这里插入图片描述

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

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

相关文章

java数据结构与算法刷题-----LeetCode461. 汉明距离

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 异或统计1的个数2. 位移操作处理3. Brian Kernighan算法 位运…

机器学习和深度学习--李宏毅(笔记与个人理解)Day11-12

Day11 when gradient is small…… 怎么知道是局部小 还是鞍点&#xff1f; using Math 这里巧妙的说明了hessan矩阵可以决定一个二次函数的凹凸性 也就是 θ \theta θ 是min 还是max&#xff0c;最后那个有些有些 哈 是一个saddle&#xff1b; 然后这里只要看hessan矩阵是不…

图形学基础:二维三维刚体的移动、缩放和旋转矩阵

一、二维 1.1 缩放矩阵 x&#xff0c;y分别表示在x轴&#xff0c;y轴缩放的倍数 示例&#xff1a; 1.2 平移矩阵 x&#xff0c;y分表表示在x轴&#xff0c;y轴上移动的距离 示例&#xff1a; 1.3 旋转矩阵 θ 表示点绕原点逆时针旋转θ 示例&#xff1a; 点 (2,1) 绕原点旋转…

MapReduce过程解析

一、Map过程解析 Read阶段&#xff1a;MapTask通过用户编写的RecordReader&#xff0c;从输入的InputSplit中解析出一个个key/value。Map阶段&#xff1a;将解析出的key/value交给用户编写的Map()函数处理&#xff0c;并产生一系列的key/value。Collect阶段&#xff1a;在用户编…

从 SQLite 3.5.9 迁移到 3.6.0(二十一)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;从 SQLite 3.4.2 迁移到 3.5.0&#xff08;二十&#xff09; 下一篇&#xff1a;SQLite—系列文章目录 ​SQLite 版本 3.6.0 &#xff08;2008-07-16&#xff09; 包含许多更改。按照惯例 SQLite项目&#xff…

怎么在外地控制自家的电视

怎么在外地控制自家的电视 随着科技的进步和智能家居的普及&#xff0c;远程控制家中的电器设备已经成为现实。电视作为家庭娱乐的中心&#xff0c;远程控制功能更是备受关注。那么&#xff0c;如何在外地控制自家的电视呢&#xff1f;本文将为你提供详细的步骤和有价值的信息…

为什么要“挺”鸿蒙?

鸿蒙到底是什么&#xff1f; 随着5G、物联网等技术的快速发展&#xff0c;智能终端设备的应用场景也越来越广泛。为了满足不同设备间的互联互通需求&#xff0c;华为在2019年推出了自主研发的操作系统——鸿蒙OS。值得关注的是&#xff0c;这也是首款国产操作系统。 要了解鸿…

UE5学习日记——制作多语言版本游戏,同时初步学习UI制作、多语言化、控制器配置、独立进程测试、打包配置和快速批量翻译等

所有的文本类&#xff0c;无论变量还是控件等都能实现本地化&#xff0c;以此实现不同语言版本。 在这里先将重点注意标注一下&#xff1a; 所有文本类的变量、控件等都可以多语言&#xff1b;本地化控制板中收集、编译时&#xff0c;别忘了编译这一步&#xff1b;支持批量复制…

ClickHouse--16--普通函数

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、日期函数1、时间或日期截取函数&#xff08;返回非日期&#xff09;2、时间或日期截取函数&#xff08;返回日期&#xff09;3、日期或时间日期生成函数 二、类…

PTA 应急救援站选址(floyd+打印路径)

大学城虎溪社区有很多居民小区&#xff0c;居民小区道路图是连通的。现要在该社区新建一个应急救援站&#xff0c;且该应急救援站要和某个小区建在一起。为了使应急救援最快速&#xff0c;经各部门商量决定&#xff1a;应急救援站建好后&#xff0c;离应急救援站最远的小区到应…

使用 Axios 处理 AxiosError 的三种常见方法

在使用 Axios 时处理 AxiosError 有几种常见的方法: 使用 try-catch 语句捕获异常: try {const response await axios.get(/api/data);// 处理响应数据 } catch (error) {if (error.response) {// 请求成功但状态码不在 2xx 范围console.log(error.response.data);console.l…

单例模式以及常见的两种实现模式

单例模式是校招中最常考的设计模式之一. 设计模式其实就是类似于“规章制度”&#xff0c;按照这个套路来进行操作。 单例模式能保证某个类在程序中只存在唯一 一份实例。而不会创建出多个实例&#xff0c;如果创建出了多个实例&#xff0c;就会编译报错。而不会创建出多个实…

element-ui backtop 组件源码分享

今日简单分享 backtop 组件的源码实现&#xff0c;从以下三个方面&#xff1a; 1、backtop 组件页面结构 2、backtop 组件属性 3、backtop 组件事件 一、backtop 组件页面结构 二、backtop 组件属性 2.1 target 属性&#xff0c;触发滚动的对象&#xff0c;类型 string&am…

JavaGUI编程

目录 GUI概念 Swing概念 组件 容器组件 窗口&#xff08;JFrame&#xff09; 代码 运行 面板&#xff08;JPanel&#xff09; 代码 运行 布局管理器 FlowLayout 代码 运行 BorderLayout 代码 运行 GridLayout 代码 运行 常用组件 标签(JLabel) 代码 运…

HarmonyOS实战开发-WebSocket的使用。

介绍 本示例展示了WebSocket的使用&#xff0c;包括客户端与服务端的连接和断开以及客户端数据的接收和发送。 WebSocket连接&#xff1a;使用WebSocket建立服务器与客户端的双向连接&#xff0c;需要先通过createWebSocket方法创建WebSocket对象&#xff0c;然后通过connect…

HarmonyOS实战开发-证书管理、如何实现对签名数据进行校验功能。

介绍 本示例使用了ohos.security.certManager相关接口实现了对签名数据进行校验的功能。 实现场景如下&#xff1a; 1&#xff09;使用正确的原始数据和签名数据进行签名校验场景&#xff1a;模拟服务端对签名数据进行校验&#xff0c;验证客户端身份和原始数据完整性。 2&…

绝地求生:PUBG×杜卡迪联名上线!参与投稿评论赢取精美好礼

PUBG杜卡迪联名活动游戏内现已正式上线&#xff01;我们诚邀与您一起在开拓未知战场和书写新历史的过程中&#xff0c;与杜卡迪一同实现您的极速梦想&#xff01; 在本次的杜卡迪工坊中&#xff0c;更是包含了具备标志性红色在内的6种颜色供您自由选择&#xff0c;一起自由驰骋…

Redis入门到通过之Redis安装

文章目录 Redis安装说明1.单机安装Redis1.1.安装Redis依赖1.2.上传安装包并解压1.3.启动1.3.1.默认启动1.3.2.指定配置启动1.3.3.开机自启 2.Redis客户端2.1.Redis命令行客户端2.2.图形化桌面客户端2.2.1.安装2.2.2.建立连接 Redis安装说明 大多数企业都是基于Linux服务器来部…

GPT中的Transformer架构以及Transformer 中的注意力机制

目录 1 GPT中的Transformer架构 2 transformer中的注意力机制 参考文献&#xff1a; 看了两个比较好的视频&#xff0c;简单做了下笔记。 1 GPT中的Transformer架构 GPT是Generative Pre-trained Transformer单词的缩写&#xff0c;其中transformer是一种特定的神经网络&a…

如何排查k8s集群中Pod内mysqld进程占用内存消耗过高?

文章目录 1. **查看容器资源使用情况**&#xff1a;2. **进入容器内部**&#xff1a;3. **检查进程内存使用**&#xff1a;4. **MySQL服务器状态检查**&#xff1a;5. **MySQL日志分析**&#xff1a;6. **使用专门的MySQL监控工具**&#xff1a;7. **配置文件检查**&#xff1a…