SegFormer网络结构的学习和重构

因为太多的博客并没有深入理解,本文是自己学习后加入自己深入理解的总结记录,方便自己以后查看。

segformer中encoder、decoder的详解。


学习前言

一起来学习Segformer的原理,如果有用的话,请记得点赞+关注哦。


一、Segformer的网络结构图

网络结构:主要由Transformer的编码器和轻量级的多层感知机(MLP)的解码器组成

网络特点:
1、结合了Transformers与轻量级的多层感知机(MLP)解码器。
2、包含一个新颖的分层结构的Transformer编码器,该编码器输出多尺度特征。它不需要位置编码, 因此避免了位置编码的插值,这在测试分辨率与训练时不同的情况下可能会导致性能下降。
3、避免使用复杂的解码器。提议的MLP解码器从不同的层中聚合信息,从而同时结合了局部注意力和全局注意力来呈现强大的表示。
4、设计非常简单和轻量级,这是在Transformers上实现高效分割的关键。
5、SegFormer系列模型从SegFormer-B0到SegFormer-B5有多个版本,与之前的模型相比,它们的性能和效率都有显著的提高。

二、理解各模块的网络结果

encoder:作者设计了一系列的 Mix Transformer encoders (MiT),MiT-B0 到 MiT-B5,结构相同,大小不同,MiT-B0 是最轻量级的,可以用来快速推理,MiT-B5 是最重量级的,可以取得最好的效果。

encoder——OverlapPatchEmbed:通过2D卷积操作将图像分块(4分块)并将其嵌入到指定的维度的模块,通过Hierarchical Feature Representation这种方式,编码器可以同时提供高分辨率的粗糙特征和低分辨率的精细特征,从而更好地捕捉不同尺度的上下文信息。

#block1 对输入图像进行分区,并下采样512, 512, 3 => 128, 128, 32 => 16384, 32self.patch_embed1 = OverlapPatchEmbed(patch_size=7, stride=4, in_chans=in_chans, embed_dim=embed_dims[0])#block2对输入图像进行分区,并下采样,128, 128, 32 => 64, 64, 64 => 4096, 64self.patch_embed2 = OverlapPatchEmbed(patch_size=3, stride=2, in_chans=embed_dims[0], embed_dim=embed_dims[1])#block3对输入图像进行分区,并下采样  64, 64, 64 => 32, 32, 160 => 1024, 160self.patch_embed3 = OverlapPatchEmbed(patch_size=3, stride=2, in_chans=embed_dims[1], embed_dim=embed_dims[2])#block4对输入图像进行分区,并下采样32, 32, 160 => 16, 16, 256 => 256, 256self.patch_embed4 = OverlapPatchEmbed(patch_size=3, stride=2, in_chans=embed_dims[2], embed_dim=embed_dims[3])

encoder——Efficient self-attention:Attention机制(注意力机制),encoder 中计算量最大的就是 self-attention 层模块进行特征特区

        self.attn = Attention(dim, num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale,attn_drop=attn_drop, proj_drop=drop, sr_ratio=sr_ratio)

encoder——Mix FNN:在 FNN (前馈神经网络)中使用了 3x3 的卷积和 MLP,作者认为 position encoding(PE) 来引入局部位置信息在语义分割中是不需要的,所以引入了一个 Mix-FFN,考虑了零填充对位置泄露的影响,直接在 FFN 中使用 3x3 的卷积

    self.mlp = Mlp(in_features=dim, hidden_features=int(dim * mlp_ratio), act_layer=act_layer, drop=drop)

encoder——Overlapped Patch Merging:为了在保持局部连续性的同时获得分层特征图,SegFormer采用了重叠patch merging技术。这种方法通过重叠的patch来合并特征,与不重叠的patch merging相比,可以生成相同大小的特征图,同时更好地保留局部信息。

decoder:本文提出了一个轻量化的全由MLP组成的解码器,之所以可以使用如此简单轻量的decoder是因为本文的分层Transformer编码器比传统的卷积编码器具有更大的有效感受野。

Decoder 的过程:

step 1:将多层级特征输入 MLP 层,来规范通道维度
step 2:将特征图上采样为原图大小的 1/4 大小,concat 起来
step 3:使用一层 MLP 对特征通道聚合
step 4:输出预测 segmentation mask H 4 × W 4 × N 

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

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

相关文章

一道简单的css动态宽度问题?

题目: 如何实现left的宽度随着父级宽度改变而改变? .content {display: flex;height: 300px;}.left {max-width: 200px;min-width: 100px;background: red;}.right {flex: 1;background: yellow;}.left { max-width: 200px; min-width: 100px; backgroun…

【Redis】分布式锁之 Redission

一、基于setnx实现的分布式锁问题 重入问题:获得锁的线程应能再次进入相同锁的代码块,可重入锁能防止死锁。例如在HashTable中,方法用synchronized修饰,若在一个方法内调用另一个方法,不可重入会导致死锁。而synchroni…

IntraWeb开发Web网站时对数据库“增、删、改、查”的操作

delphi源代码:示例两列布局带顶部汉堡菜单,对数据库“增、删、改、查”的操作(兼容电脑与手机) 功能:交互式网页,两列布局,顶部汉堡菜单,点击汉堡图标关闭左侧栏,这里演示…

大漠yolo-数据集标注

参考 【按键精灵】大漠插件yolo环境配置_哔哩哔哩_bilibili 1. 2. 3.启动

蓝桥杯【物联网】零基础到国奖之路:十一. LORA

蓝桥杯【物联网】零基础到国奖之路:十一. LORA 第一节 LORA理论第二节 Lora的无线收发数据1,硬件解读2,CubeMX配置3,MDK代码 第一节 LORA理论 Lora是一种长距离、低功耗的无线通信技术,专为iot和远程应用设计。Lora技术基于半双工…

Threejs创建胶囊体

上一章节实现了圆环结的绘制,这节来绘制胶囊体,胶囊体就是胶囊的形状,上下是一个半球,中间是一个圆柱体,如上文一样,先要创建出基础的组件,包括场景,相机,灯光&#xff0…

聆思CSK6大模型开发板上手参考

前面发了很多大模型语音交互相关的技术文章,这篇给大家介绍一下大模型语音交互示例的硬件和上手概况。 硬件概况 聆思CSK6大模型开发板长宽尺寸是99.1x72.1mm, 集成了摄像头、麦克风、扬声器、屏幕、无线模块、TF卡等,可以直接用于大模型语音…

洛谷P2571.传送带

洛谷P2571.传送带 三分模板题 用于单峰函数求极值 一定可以将答案路径分成三段即AE - EF - FD (E和A可能重复,F和D可能重合) E在线段AB上,F在线段CD上 因为有两个不定点EF,因此假设E为参数,三分求F的位置再外层三分求E的位置 …

【JVM】一篇文章彻底理解JVM的组成,各组件的底层实现逻辑

文章目录 JVM 的主要组成部分类加载器(Class Loader)1. 加载(Loading)2. 链接(Linking)3. 初始化(Initialization) Execution Engine(执行引擎)1. 解释器&…

基于SpringBoot+Vue+MySQL的美食点餐管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 在数字化快速发展的今天,餐饮行业也迎来了转型升级的重要机遇。传统餐饮管理方式面临效率低下、顾客体验不佳等问题。为此,开发一款基于SpringBootVueMySQL架构的美食点餐管理系统显得尤为重要。该系统旨…

详解机器学习经典模型(原理及应用)——岭回归

一、什么是岭回归 岭回归(Ridge Regression),也称为Tikhonov正则化(Tikhonov Regularization),是一种专门用于处理多重共线性(特征之间高度相关)问题的线性回归改进算法,…

Go Mail设置指南:如何提升发送邮件效率?

Go Mail使用技巧与配置教程?如何用Go Mail实现发信? 随着工作负载的增加,如何高效地发送和管理邮件成为了许多职场人士面临的挑战。AokSend将为您提供一份详细的Go Mail设置指南,帮助您提升发送邮件的效率,让您的邮件…

Java网络编程、正则表达式、单例设计模式与Lombok

目录 Java网络编程、正则表达式、单例设计模式与Lombok Java网络编程 软件结构 网络基础知识 相关概念 IP地址 TCP协议和UDP协议介绍 TCP协议的三次握手和四次挥手 UDP协议编程 创建客户端 创建服务端 运行 TCP协议编程 创建客户端 创建服务端 运行 文件上传案例 创建客户端 创…

风力发电机叶片表面缺陷识别检测数据集yolo数据集 共7000张

风力发电机叶片表面缺陷识别检测数据集yolo数据集 共7000张 风力发电机叶片表面缺陷识别数据集(Wind Turbine Blade Defects Recognition Dataset, WTBDRD) 摘要 WTBDRD 是一个专门为风力发电机叶片表面缺陷识别而设计的数据集,旨在为相关领…

OpenAPI鉴权(二)jwt鉴权

一、思路 前端调用后端可以使用jwt鉴权;调用三方接口也可以使用jwt鉴权。对接多个三方则与每个third parth都约定一套token规则,因为如果使用同一套token,token串用可能造成权限越界问题,且payload交叉业务不够清晰。下面的demo包…

探索图像生成大模型Imagen:从理论到代码实践

一、引言 在当今的人工智能领域,图像生成技术取得了令人瞩目的进展。其中,Imagen作为一款强大的图像生成大模型,吸引了众多研究者和开发者的目光。它能够生成高质量、逼真的图像,为艺术创作、游戏开发、虚拟现实等众多领域带来了无…

数据集-目标检测系列-老虎检测数据集 tiger>> DataBall

数据集-目标检测系列-老虎检测数据集 tiger>> DataBall 数据集-目标检测系列-老虎检测数据集 tiger 数据量:6k 想要进一步了解,请联系。 DataBall 助力快速掌握数据集的信息和使用方式,享有百种数据集,持续增加中。 数据…

【算法】模拟:(leetcode)6.Z 字形变换(medium)

目录 题目链接 题目介绍 解法 1、模拟: 2、找矩阵中的规律: 公差 第一行和最后一行 中间行 代码 题目链接 6. Z 字形变换 - 力扣(LeetCode) 题目介绍 解法 1、模拟: 采用模拟的思想,按照Z字形&…

太速科技-383-基于kintex UltraScale XCKU060的双路QSFP+光纤PCIe 卡

基于kintex UltraScale XCKU060的双路QSFP光纤PCIe 卡 一、板卡概述 本板卡系我司自主研发,基于Xilinx UltraScale Kintex系列FPGA XCKU060-FFVA1156-2-I架构,支持PCIE Gen3 x8模式的高速信号处理板卡,搭配两路40G QSFP接口&#xff…

dev containers plugins for vscode构建虚拟开发环境

0. 需求说明 自用笔记本构建一套开发环境,用docker 虚拟插件 dev containers,实现开发环境的构建,我想构建一套LLMs的环境,由于环境配置太多,不想污染本地环境,所以选择隔离技术 1. 环境准备 vscodedocker 2. 步骤…