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.rhkb.cn/news/432225.html

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

相关文章

JavaWeb 12.Tomcat10

希望明天能出太阳 或者如果没有太阳的话 希望我能变得更加阳光一点 —— 24.9.25 一、常见的JavaWeb服务器 Web服务器通常由硬件和软件共同构成 硬件:电脑,提供服务供其他客户电脑访问 软件:电脑上安装的服务器软件,安装后能提…

TIOBE 编程指数 9 月排行榜公布 VB.Net第七

原文地址:百度安全验证 IT之家 9 月 8 日消息,TIOBE 编程社区指数是一个衡量编程语言受欢迎程度的指标,评判的依据来自世界范围内的工程师、课程、供应商及搜索引擎,今天 TIOBE 官网公布了 2024 年 9 月的编程语言排行榜&#xf…

介绍 Agent Q:迎接下一代 AI 自动化助手

引言 在科技领域,随着人工智能的不断进步,自动化工具日益成为提升效率的重要手段。今天,我将向大家介绍一款名为 Agent Q 的 AI 自动化助手。这款工具不仅能够完成复杂的任务,还支持交互式命令行操作,使得用户体验更为…

飞驰云联亮相电子半导体数智化年会 获”数据交换领域最佳厂商”

2024年9月20日,“2024第二届电子半导体/智能制造数智化年会暨品牌出海论坛”于上海隆重开幕,Ftrans飞驰云联作为国内领先的数据安全交换厂商,应邀携半导体全场景产品和解决方案亮相此次峰会。会上进行了“智象奖”评选,Ftrans飞驰…

java并发之并发关键字

并发关键字 关键字一:volatile 可以这样说,volatile 关键字是 Java 虚拟机提供的轻量级的同步机制。 功能 volatile 有 2 个主要功能: 可见性。一个线程对共享变量的修改,其他线程能够立即得知这个修改。普通变量不能做到这一点&a…

从零开始学习PX4源码5(遥控器数据)

#目录 文章目录 摘要1.PX4 遥控器控制整体流程2.PX4 遥控器输入程序3.PX4 遥控器数据外部调用接口4.PX4 遥控器手动(姿态控制)变量5.遥控器数据整体流程摘要 本节主要记录PX4代码中如何获取遥控器数据,遥控器数据如何被外界调用的过程,欢迎批评指正。 1.PX4 遥控器控制整…

JAVA-StringBuilder和StringBuffer

一、认识String类 1.认识 String在Java中是字符串类型,但与其他类型不同。它是一个类,可以创建对象的类。与int、char等自待类型有些许不同。但它仍然是java提供的一种类型。 类中有4个属性,这里主要认识一下value属性。它是实际存放字符串…

2024 IDEA软件 部署tomcat 十二步 运行web页面(html类似的)(中英文对照版本)新手小白易上手

目录 一、准备工作(三必备): 1、自己的web项目 2、idea软件(我是2023.1.2版本) 3、tomcat X.X版本 二 、正式开始步骤,不废话!! 1、 点击菜单栏中 “File”(文件&…

NASA数据集:ATLAS/ICESat-2 L3A 海洋地表高度 V006

ATLAS/ICESat-2 L3A Ocean Surface Height V006 目录 简介 摘要 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 简介 该数据集(ATL12)包含全球开阔洋(包括无冰季节冰区和近海岸地区)的沿轨海面高度。 还提供了高度…

C++ 9.25

手动实现栈、和队列 stack #include <iostream> using namespace std; class Stack { private: int* arr; // 存储栈元素的数组 int top; // 栈顶索引 int capacity; // 栈的容量 public: Stack(int size) { arr new int[size]; c…

FLStudio21Mac版flstudio v21.2.1.3430简体中文版下载(含Win/Mac)

给大家介绍了许多FL21版本&#xff0c;今天给大家介绍一款FL Studio21Mac版本&#xff0c;如果是Mac电脑的朋友请千万不要错过&#xff0c;当然我也不会忽略掉Win系统的FL&#xff0c;链接我会放在文章&#xff0c;供大家下载与分享&#xff0c;如果有其他问题&#xff0c;欢迎…

基于Python大数据的音乐推荐及数据分析可视化系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

【吊打面试官系列-MySQL面试题】MySQL 数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?

大家好&#xff0c;我是锋哥。今天分享关于【MySQL 数据库作发布系统的存储&#xff0c;一天五万条以上的增量&#xff0c;预计运维三年,怎么优化&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; MySQL 数据库作发布系统的存储&#xff0c;一天五万条以上的增量…

二模--解题--101-110

文章目录 10.沟通管理101、 [单选] 在项目执行阶段&#xff0c;项目经理意识到项目干系人一直延迟答复敏感性电子邮件。项目经理应该怎么做&#xff1f; 4.整合管理102、 [单选] 在编制项目章程用于批准时&#xff0c;项目经理发现有两名干系人对关键可交付成果的期望有冲突。若…

【读写分离?聊聊Mysql多数据源实现读写分离的几种方案】

文章目录 一.什么是MySQL 读写分离二.读写分离的几种实现方式(手动控制)1.基于Spring下的AbstractRoutingDataSource1.yml2.Controller3.Service实现4.Mapper层5.定义多数据源6.继承Spring的抽象路由数据源抽象类&#xff0c;重写相关逻辑7. 自定义注解WR&#xff0c;用于指定当…

Linux-TCP重传

问题描述&#xff1a; 应用系统进行切换&#xff0c;包含业务流量切换&#xff08;即TongWeb主备切换&#xff09;和MYSQL数据库主备切换。首先进行流量切换&#xff0c;然后进行数据库主备切换。切换后发现备机TongWeb上有两批次慢请求&#xff0c;第一批慢请求响应时间在133…

【探索智谱AI的CogVideoX:视频生成的新前沿】

2024年8月6日&#xff0c;智谱AI宣布其开源视频生成模型CogVideoX&#xff0c;激发了开发者的创造力和对新技术的期待。 一、CogVideoX模型概述 CogVideoX 是一款先进的视频生成工具&#xff0c;可基于最长 226 个 token 的提示生成视频&#xff0c;时长可达 6 秒&#xff0c;…

0基础学习PyTorch——时尚分类(Fashion MNIST)训练和推理

大纲 环境准备安装依赖下载训练集训练定义模型训练加载训练集定义损失函数和优化器训练模型保存模型完整文件 推理加载模型加载并预处理本地文件推理完整文件 代码地址参考资料 时尚分类是PyTorch官方文档中推荐的案例。本文将拆解这个案例&#xff0c;进行部署以及测试。 环境…

电路板上电子元件检测系统源码分享

电路板上电子元件检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comp…

SpringCloud源码:客户端分析(二)- 客户端源码分析

背景 我们继续分析EurekaClient的两个自动化配置类&#xff1a; 自动化配置类功能职责EurekaClientAutoConfiguration配置EurekaClient确保了Eureka客户端能够正确地&#xff1a;- 注册到Eureka服务端- 周期性地发送心跳信息来更新服务租约- 下线时通知Eureka服务端- 获取服务实…