5.23.9 TransUNet:Transformers 为医学图像分割提供强大的编码器

TransUNet,它兼具 Transformers 和 U-Net 的优点,作为医学图像分割的强大替代方案。一方面,Transformer 对来自卷积神经网络 (CNN) 特征图的标记化图像块进行编码,作为用于提取全局上下文的输入序列。另一方面,解码器对编码特征进行上采样,然后将其与高分辨率 CNN 特征图相结合以实现精确定位。

1. 介绍

U-Net 由对称的编码器-解码器网络组成,具有跳跃连接以增强细节保留,已成为事实上的选择。基于这种方法,在广泛的医学应用中取得了巨大的成功,例如磁共振(MR)的心脏分割、计算机断层扫描(CT)的器官分割和息肉从结肠镜检查视频中分割。

与之前基于 CNN 的方法不同,Transformers 不仅在建模全局上下文方面功能强大,而且在大规模预训练下也表现出了对下游任务的卓越可迁移性。

Transformer 将输入视为一维序列,并专门专注于对所有阶段的全局上下文进行建模,因此导致低分辨率特征缺乏详细的本地化信息。并且该信息无法通过直接上采样到全分辨率来有效恢复,因此会导致粗分割结果。另一方面,CNN 架构(例如 U-Net )提供了一种提取低级视觉线索的途径,可以很好地弥补这种精细的空间细节。

1.1 TransUNet

该框架从序列到序列预测的角度建立了自注意力机制。为了弥补Transformers带来的特征分辨率损失,TransUNet采用了混合CNN-Transformer架构,既利用了来自CNN特征的详细高分辨率空间信息,也利用了Transformers编码的全局上下文。

Transformers编码的自注意力特征随后被上采样,与编码路径中跳过的不同高分辨率CNN特征相结合,以实现精确定位。与以前基于CNN的自注意力方法相比,我们基于Transformer的架构提供了一种更好的利用自注意力的方法。此外,我们观察到,更深入地结合低级特征通常会带来更好的分割精度。

2. 相关工作

2.1 将 CNN 与自注意力机制相结合

尝试通过基于特征图对所有像素的全局交互进行建模,将自注意力机制集成到 CNN 中。基于编码器-解码器 u 形架构,提出了集成到跳跃连接中的附加注意门模块。与这些方法不同的是,我们使用 Transformer 将全局自注意力嵌入到方法中。

2.2 Transformers

Vision Transformer (ViT) 通过直接将具有全局自注意力的 Transformer 应用于全尺寸图像,实现了 ImageNet 分类的最先进技术。

3. 方法

给定图像 \mathbf{x}\in\mathbb{R}^{H\times W\times C},空间分辨率为 H × W,通道数为 C。目标是预测相应的大小为 H × W 的像素级标签图。最常见的方法是直接训练 CNN(例如 UNet),首先将图像编码为高级特征表示,然后将其解码回全空间分辨率。

与现有方法不同,提出的方法通过使用 Transformer 将自注意力机制引入编码器设计中。

3.1 Transformer 作为编码器

图像序列化

我们首先通过将输入 x 重塑为一系列扁平化的 2D 补丁 \mathbf{x}_{p}^{i}\in\mathbb{R}^{P^2\cdot C}|i=1,...,N 来执行标记化; 其中每个补丁的大小为 P\times PN=\frac{HW}{P^2} 是图像补丁的数量(即输入序列长度)。

补丁嵌入

使用可训练的线性投影将矢量化补丁 x_p 映射到潜在的 D 维嵌入空间。为了对补丁空间信息进行编码,我们学习特定位置嵌入,将其添加到补丁嵌入中以保留位置信息。

 \mathbf{z}_{0}=[\mathbf{x}_{p}^{1}\mathbf{E}; \mathbf{x}_{p}^{2}\mathbf{E};\cdots; \mathbf{x}_{p}^{N}\mathbf{E}]+\mathbf{E}_{pos}

其中 \mathbf{E}\in\mathbb{R}^{(P^{2}\cdot C)\times D} 是块嵌入投影,\mathbf{E}_{pos}\in\mathbb{R}^{N\times D} 表示位置嵌入。

Transformer 编码器由 L 层多头自注意力 (MSA) 和多层感知器 (MLP) 块组成。因此第 \ell 层的输出可以写成如下:

\mathbf{z}_{\ell}^{\prime}=\mathrm{MSA}(\mathrm{LN}(\mathbf{z}_{\ell-1}))+\mathbf{z}_{\ell-1}

\mathbf{z}_{\ell}=\mathrm{MLP}(\mathrm{LN}(\mathbf{z}_{\ell}^{\prime}))+\mathbf{z}_{\ell}^{\prime} 

 其中 LN(·) 表示层归一化算子,\mathbf{z}_L 是编码图像表示。

3.2 TransUNet

出于分割目的,直观的解决方案是简单地将编码特征表示 \mathbf{z}_{L}\in\mathbb{R}^{\frac{HW}{P^{2}}\times D} 上采样到全分辨率,以预测密集输出。为了恢复空间顺序,编码特征的大小首先应从 \frac{HW}{P^{2}} 到 \frac{H}{P}\times\frac{W}{P} 。使用 1 × 1 卷积将重构特征的通道大小减少到类数,然后将特征图直接双线性上采样到全分辨率 H × W 以预测最终的分割结果。

因为 \frac{H}{P}\times\frac{W}{P} 通常远小于原始图像分辨率 H \times W,因此不可避免地会导致低级细节的丢失(例如器官的形状和边界)。为了补偿这种信息损失,TransUNet 采用混合 CNN-Transformer 架构作为编码器以及级联上采样器来实现精确定位。

CNN-Transformer 混合作为编码器

TransUNet 采用 CNN-Transformer 混合模型,其中 CNN 首先用作特征提取器,为输入生成特征图。补丁嵌入应用于从 CNN 提取的特征图而不是原始图像中提取的 1 × 1 补丁。

1) 它允许我们在解码路径中利用中间高分辨率 CNN 特征图;

2)我们发现混合 CNN-Transformer 编码器比简单使用纯 Transformer 作为编码器表现更好。

级联上采样器

级联上采样器(CUP),它由多个上采样步骤组成,用于解码隐藏特征以输出最终的分割掩模。将隐藏特征 \mathbf{z}_{L}\in\mathbb{R}^{\frac{HW}{P^{2}}\times D} 的序列重塑为 \frac{H}{P}\times\frac{W}{P}\times D 的形状后,通过级联多个上采样块来实例化 CUP,以达到从 \frac{H}{P}\times\frac{W}{P}H \times W 的全分辨率,其中每个块依次由2×上采样算子、3×3卷积层、ReLU层组成。CUP 与混合编码器一起形成了一个 u 形架构,可以通过跳跃连接实现不同分辨率级别的特征聚合。

4. 实验与讨论

4.2 实验细节

输入分辨率和块大小P设置为224×224和16。因此,我们需要在 CUP 中连续级联 4 个 2× 上采样块才能达到全分辨率。模型使用 SGD 优化器进行训练,学习率为 0.01,动量为 0.9,权重衰减为 1e-4。 

以逐片方式推断所有 3D 体积,并将预测的 2D 切片堆叠在一起以重建 3D 预测以进行评估。

4.5 可视化

  1. 纯基于 CNN 的方法 U-Net 和 AttnUNet 更容易对器官进行过度分割或分割不足(例如,在第二行中,脾脏被 AttnUNet 过度分割,而被 UNet 分割不足)
  2. 与其他方法相比,我们的 TransUNet 预测的假阳性更少,这表明 TransUNet 在抑制那些噪声预测方面比其他方法更有利。
  3. 与基于 Transformer 的模型进行比较,我们可以观察到,R50-ViT-CUP 在边界和形状方面的预测往往比 TransUNet 的预测更粗糙。
  4. TransUNet 能够进行更精细的分割并保留详细的形状信息。原因是 TransUNet 享有高级全局上下文信息和低级细节的优势。

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

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

相关文章

css去除复选框默认样式

HTML: <input type"checkbox" id"myCheckbox" class"custom-checkbox" /> <label for"myCheckbox" class"checkbox-label">自定义复选框</label> CSS: /* 隐藏默认复选框 */.custom-checkbox { -webk…

Go知识点复习

Go知识点复习 1.关于包的使用和GOPATH的配置 src:用于以代码包的形式组织并保存Go源码文件, 需要手动创建pkg目录&#xff1a;用于存放经由go install命令构建安装后的代码包&#xff08;包含Go库源码文件&#xff09;的“.a”归档文件bin目录&#xff1a;与pkg目录类似&…

C++学习-hello word

#include "iostream" #预处理指令 using namespace std; #预处理指令 int main() #程序执行从这里开始 {cout << "Hello, World!" << endl; #逻辑代码&#xff08;具体的功能代码&#xff09;return 0; …

国家开放大学,javaScript程序设计-形考任务-实训五:设计登录和注册页|实训六:设计简单的购物车

实训五&#xff1a;设计登录和注册页 1. 题目 设计登录和注册页。 2. 目的 &#xff08;1&#xff09;掌握表单域的引用方法。 &#xff08;2&#xff09;掌握常用控件的基本方法。 &#xff08;3&#xff09;掌握事件的处理方法。 &#xff08;4&#xff09;理解Cookie…

tomcat三级指导

版本 ./catalina.sh linux version.bat win 1.确认是否使用了tomcat管理后台 我们先找到配置文件&#xff1a;tomcat主目录下/conf/server.xml 可以查看到连接端口&#xff0c;默认为8080 然后查看manager-gui管理页面配置文件&#xff0c;是否设置了用户登录 配置文件…

如何创建 Gala Games 账户:解决 Cloudflare 验证指南 2024

Gala Games 站在数字娱乐新时代的前沿&#xff0c;将区块链技术与游戏相结合&#xff0c;重新定义了所有权和奖励。本文将引导您创建 Gala Games 账户并使用 CapSolver 解决 Cloudflare 验证难题&#xff0c;确保您顺利进入这一创新的生态系统。 什么是 Gala Games&#xff1f…

CRMEB开源商城标准版系统前端技术架构与实践探索

摘要&#xff1a; 随着电子商务的蓬勃发展&#xff0c;开源商城系统因其灵活性、可扩展性和成本效益受到了广泛关注。本文以CRMEB开源商城系统为例&#xff0c;探讨了其前端技术架构、开发实践及未来展望。通过对CRMEB系统前端技术的深入分析&#xff0c;旨在为开发者提供有价值…

JS的for循环中的var 和 let

在js的嵌套for循环异步执行&#xff0c;声明 i 和 使用 i 获取到的变量 都要用 let 声明&#xff0c;不要用var。 除非封装一个函数&#xff0c;把参数传进去调用&#xff0c;才能避免var使用最后一个变量&#xff0c;没必要。 同步 vs 异步: Java.perform 本身是同步执行的。…

筛斗数据:文档识别技术在教育行业的影响

随着科技的不断发展&#xff0c;人工智能&#xff08;AI&#xff09;技术已经在各个领域产生了深远的影响。其中&#xff0c;文档识别技术作为人工智能的一个重要分支&#xff0c;在教育行业中也发挥着越来越重要的作用。本文将探讨文档识别技术在教育行业中的应用及其带来的影…

Android的init.rc文件重启会回到原始状态

Android系统中的init.rc文件是一个初始化语言脚本&#xff0c;它在系统启动时由init进程读取并执行&#xff0c;用于启动服务和管理设备。如果您在Android设备上直接编辑了init.rc文件&#xff0c;然后重启设备&#xff0c;发现修改未保存&#xff0c;这是由于Android系统的启动…

vmware - 主机向虚拟机拷贝文件的临时方法

文章目录 vmware - 主机向虚拟机拷贝文件的临时方法概述笔记确认主机/虚拟机之间网络是通的在虚拟机中新建一个文件夹(e.g. c:\test), 将这个文件夹设为共享文件夹。查看虚拟机中的当前用户(远程登录要用)远程登录备注 - win8.1只能用mstscEND vmware - 主机向虚拟机拷贝文件的…

04_闭包 (JS高级)

目录 一、闭包是什么 二、常见的闭包 三、闭包的作用 四、闭包的生命周期 五、闭包的应用 5.1、定义JS模块方式一 5.2、定义JS模块方式二 六、闭包的缺点及解决 七、经典习题 一、闭包是什么 闭包&#xff08;closure&#xff09;是一个嵌套的内部函数以及它所引用环境的…

网络模型-单臂路由配置相关命令

一、单臂路由配置相关命令 执行命令system-view&#xff0c;进入系统视图. 执行命令interface interface-type interface-number&#xff0c;进入接口视图, 执行命令port link-type {hybrid |trunk}&#xff0c;配置端口类型。 执行命令quit&#xff0c;退出接口视图。 执…

游戏行业 2024 Q1报告 | 国内同比上升7.6%,海外收入同比环比双增长,码住!

作为中国音像与数字出版协会主管的中国游戏产业研究院的战略合作伙伴&#xff0c;伽马数据发布了《2024年1—3月中国游戏产业季度报告》。 数据显示&#xff0c; 2024年1—3月&#xff0c;中国游戏市场实际销售收入726.38亿元&#xff0c;同比增长7.60%&#xff0c;主要受移动游…

Python面试宝典:Python中与异步编程和协程相关的面试笔试题(1000加面试笔试题助你轻松捕获大厂Offer)

Python面试宝典:1000加python面试题助你轻松捕获大厂Offer【第二部分:Python高级特性:第十三章:并发编程:第三节:异步编程和协程】 第十三章:并发编程第三节:异步编程和协程异步编程和协程相关的知识异步编程基础异步函数(async function)等待协程(awaiting a corou…

信息系统项目管理师--八大绩效域-项目工作绩效域

信息系统项目管理师的八大绩效域包括&#xff1a;干系人、团队、开发方法和生命周期、规划、项目工作、交付、不确定性、度量。 项目工作绩效域涉及项目工作相关的活动和职能。 预期目标 1、高效且有效的项目绩效 2、适合项目和环境的项目过程 3、干系人适当的沟通和参与 …

【Linux】详解线程控制之线程创建线程终止线程等待线程分离

一、线程创建 thread&#xff1a;这是一个指向pthread_t类型的指针&#xff0c;用于获取新创建线程的线程ID。在调用pthread_create后&#xff0c;这个指针会被设置为新线程的ID。 attr&#xff1a;这是一个指向pthread_attr_t类型的指针&#xff0c;用于设置线程的属性&#x…

【OpenGL纹理】纹理贴图基础知识(01/4)

文章目录 一、说明二、贴图的初始化处理2.1 贴图中的几种纹理2.2 原始数据处理 - 贴图的规格化 三、纹理对象生成和绑定&#xff08;选中&#xff09;3.1 生成纹理矩阵3.2 glGenTextures 函数明细3.2 glBindTexture函数明细 四、glTexParameteri函数4.1 贴放放法参数确定4.2 放…

科研——ICONIP论文修改和提交

文章目录 Springer Nature Code of Conduct and Book Publishing Policies行为准则和出版的道德规范文章的准备Structing Your paperLengths of Paper文章长度FontsPage Numbering and Running HeadsFigures and TablesFormulaeFootnotesCitation by Number Additional Informa…

使用Flask Swagger自动生成API文档

文章目录 安装Flask Swagger使用Flask Swagger生成API文档总结1. 自动化文档生成2. 交互式文档展示3. 规范化API设计4. 提升协作效率5. 支持多种格式 Flask Swagger是一种用于管理Flask API文档的工具。它基于OpenAPI规范&#xff0c;可以自动生成API的交互式文档。使用Flask S…