【论文阅读笔记】Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation

1.介绍

Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation
Swin-Unet:用于医学图像分割的类Unet纯Transformer

2022年发表在 Computer Vision – ECCV 2022 Workshops
Paper Code

2.摘要

在过去的几年里,卷积神经网络(CNN)在医学图像分析方面取得了里程碑式的成就。特别是基于U型结构和跳跃连接的深度神经网络,已经广泛应用于各种医学图像任务中。然而,尽管CNN取得了优异的性能,但由于卷积运算的局部性,它不能很好地学习全局和远程语义信息交互。在本文中,我们提出了Swin-Unet,这是一个Unet-like纯Transformer医学图像分割。标记化的图像块被馈送到基于变换器的U形编码器-解码器架构中,具有用于局部全局语义特征学习的跳过连接。具体来说,我们使用分层Swin Transformer与移位窗口作为编码器来提取上下文特征。并设计了一个基于对称Swin变换的解码器,该解码器具有补丁扩展层,用于执行上采样操作,以恢复特征图的空间分辨率。在对输入和输出进行4倍直接下采样和上采样的情况下,对多器官和心脏分割任务的实验表明,纯基于transformer的U形Encoder-Decoder网络的性能优于采用全卷积或transformer和卷积相结合的方法。代码和训练模型将在https://github.com/HuCaoFighting/Swin-Unet上公开。

Keywords:U-Net、Swin Transformer、多器官分割

3.Introduction

现有的医学图像分割方法主要依赖于具有U形结构的全卷积神经网络(FCNN)。典型的U形网络U-Net 由具有跳跃连接的对称编码器-解码器组成。在编码器中,使用一系列卷积层和连续下采样层来提取具有大感受野的深度特征。然后,解码器将提取的深度特征上采样到输入分辨率,进行像素级语义预测,并将来自编码器的不同尺度的高分辨率特征通过跳跃连接进行融合,以减轻下采样造成的空间信息丢失。凭借如此优雅的结构设计,U-Net在各种医学成像应用中取得了巨大的成功。遵循这一技术路线,已经开发了许多算法,如3D U-Net,Res-UNet,U-Net++和UNet 3 +,用于各种医学成像模式的图像和体积分割。这些基于模糊神经网络的方法在心脏分割、器官分割和病变分割中的出色表现证明了CNN具有很强的学习判别特征的能力。由于卷积运算的内在局部性,基于CNN的方法很难学习显式的全局和长距离语义信息交互。一些研究试图通过使用atrous卷积层,自我注意机制和图像金字塔来解决这个问题。然而,这些方法在建模远程依赖关系时仍然存在局限性。最近,受Transformer在自然语言处理(NLP)领域的巨大成功的启发,研究人员试图将Transformer引入视觉领域,出现视觉Transformer(ViT)来执行图像识别任务。以具有位置嵌入的2D图像块作为输入并在大型数据集上进行预训练,ViT实现了与基于CNN的方法相当的性能。此外,还有人提出了数据高效图像Transformer(DeiT),这表明Transformer可以在中等大小的数据集上训练,并且可以通过将其与蒸馏方法相结合来获得更鲁棒的Transformer。后续开发了分层Swin Transformer。以Swin Transformer作为视觉骨干,在图像分类、对象检测和语义分割方面实现了最先进的性能。ViT、DeiT和Swin Transformer在图像识别任务中的成功证明了Transformer在视觉领域的应用潜力。受Swin Transformer成功的启发,本文提出Swin-Unet来利用Transformer的功能,在这项工作中进行2D医学图像分割。Swin-Unet是第一个纯基于Transformer的U形架构,由编码器,瓶颈,解码器和跳过连接组成。编码器、瓶颈和解码器都是基于Swin Transformer块构建的。将输入的医学图像分割成不重叠的图像补丁块,每个补丁都被视为一个令牌,并被馈送到基于transformer的编码器中,以学习深度特征表示。提取的上下文特征由解码器通过补丁扩展层进行上采样,并通过跳过连接与来自编码器的多尺度特征融合,以恢复特征图的空间分辨率并进一步执行分割预测。在多器官和心脏分割数据集上的实验表明,该方法具有良好的分割精度和鲁棒的泛化能力。

具体而言,本文的工作可以概括为:(1)基于Swin Transformer模块,构建了一个具有跳跃连接的对称编解码器结构。在编码器中,实现了从局部到全局的自注意力;在解码器中,将全局特征上采样到输入分辨率,以进行相应的像素级分割预测。(2)在不使用卷积或插值操作的情况下,开发了一个补丁扩展层来实现上采样和特征维数的增加。(3)实验中发现跳跃连接对Transformer也有效,因此最终构造了一种基于transformer的U型跳跃连接编解码器结构Swin-Unet。

4.网络结构详解

在这里插入图片描述

拟议的Swin-Unet的总体架构如图所示。Swin-Unet由编码器、瓶颈、解码器和跳跃连接组成。Swin-Unet的基本单元是Swin Transformer块。

对于编码器,首先为了将输入转换为序列嵌入,图像经过Patch partition被分割成具有4 × 4的块大小的非重叠块,这样每个块的特征维数变为4 × 4 × 3 = 48。此外,线性嵌入层Linear embedding被应用于将特征维度投影到任意维度(表示为C)。然后变换后的patch tokens(即图像补丁块)通过几个Swin Transformer块和补丁合并层patch merging来生成分层特征表示。其中,补丁合并层负责下采样和增加维度,Swin Transformer块负责特征表示学习。

受U-Net 的启发,本文是一个基于对称transformer的解码器。解码器由Swin Transformer模块和补丁扩展层patch expending组成。提取的上下文特征通过跳跃连接与来自编码器的多尺度特征融合,以补充由下采样引起的空间信息的损失。与补丁合并层相比,补丁扩展层被专门设计用于执行上采样。补丁扩展层将相邻维度的特征图重塑为具有2倍分辨率上采样的大特征图。最后,利用最后一个补丁扩展层进行4倍上采样,将特征图的分辨率恢复到输入分辨率(W×H),然后对这些上采样后的特征应用线性投影层,输出像素级分割预测。

Swin Transformer块

在这里插入图片描述

与传统的多头自注意(MSA)模块不同,Swin Transformer块是基于移位窗口构建的。在上图中给出了两个连续的swin Transformer块。每个Swin Transformer模块由LayerNorm(LN)层、多头自注意模块、残差连接和具有GELU非线性的2层MLP组成。基于窗口的多头自注意(W-MSA)模块和基于移位窗口的多头自注意(SW-MSA)模块分别应用于两个连续的Transformer块。基于这样的窗口划分机制,连续的swin Transformer块可以被公式化为:
在这里插入图片描述
其中,zl分别表示第l个块的(S)W-MSA模块和MLP模块的输出。
自注意力的计算如下:
在这里插入图片描述

其中 Q , K , V ∈ R M 2 × d Q,K,V ∈ R^{M^2 ×d} QKVRM2×d 表示查询、键和值。 M 2 M^2 M2和d分别表示窗口中补丁的数量以及查询或键的维度。并且,B中的值取自偏置矩阵 B ′ ∈ R ( 2 M − 1 ) × ( 2 M + 1 ) B' ∈ R^{(2 M −1)×(2 M +1)} BR(2M1)×(2M+1)

编码器

在编码器中,将分辨率为H/4 ×W/4的C维标记化输入送入两个连续的Swin Transformer块进行表征学习,特征维数和分辨率保持不变。同时,补丁合并层将减少token的数量(2倍下采样),并将特征维度增加到原始维度的2倍。此过程将在编码器中重复三次。

Patch merging:输入patch被分为4部分,并通过Patch merging连接在一起。通过这种处理,特征分辨率将被下采样2倍。而且,由于连接操作导致特征维度增加4倍,因此在连接的特征上应用线性层以将特征维度统一到2倍原始维度。

Bottleneck 瓶颈

由于Transformer太深而无法收敛,因此仅使用两个连续的Swin Transformer块来构建瓶颈以学习深度特征表示。在瓶颈区域,特征尺寸和分辨率保持不变。(即在底端不改变尺寸与分辨率)

解码器

与编码器相对应,基于Swin Transformer模块构建了对称解码器。为此,与编码器中使用的补丁合并层相比,在解码器中使用补丁扩展层来对提取的深度特征进行上采样。补丁扩展层将相邻维度的特征图重塑为更高分辨率的特征图(2倍上采样),并相应地将特征维度减少到原始维度的一半。贴片展开层:以第一个面片扩展层为例,在上采样之前,在输入特征(W/32 × H/32 × 8C)上应用线性层,以将特征维度增加到原始维度(W/32 × H/32 × 16C)的2倍。然后,利用重排操作将输入特征的分辨率扩展到2×输入分辨率,将特征维数降低到输入维数的四分之一(W/32 × H/32 × 16C→ W/16 × H/16 × 4C)。

跳跃连接

与U-Net类似,跳跃连接用于将来自编码器的多尺度特征与上采样特征融合。将浅层特征和深层特征连接在一起,以减少由下采样引起的空间信息损失。接着是线性层,级联特征的维度保持与上采样特征的维度相同。

5.实验与结果

Swin-Unet基于Python 3.6和Pytorch 1.7.0实现。对于所有训练案例,使用翻转和旋转等数据增强来增加数据多样性。输入图像大小和补丁大小分别设置为224×224和4。在具有32 GB内存的Nvidia V100 GPU上训练模型。在ImageNet上预训练的权重用于初始化模型参数。在训练期间,批量大小为24,并且使用动量为0.9且权重衰减为1 e-4的流行SGD优化器来优化我们的反向传播模型。
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

OTA 升级软件推荐,附带MD5,CRC16,CRC32,AES算法工具

说明:推荐 OTA 工具软件,可以通过串口按 OTA 协议发送 bin 文件给 MCU,完成 bootloader 升级app 功能 , 这个软件 附带提供 MD5,CRC16,CRC32,AES 算法工具。 文档持续完善中... 1. OTA界面 2.AES.MD5.CRC界面 3.下载链接: 链接: https://p…

AI创作之旅:探索提示工程的奇妙世界

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 在当今信息爆炸的时代,人工智能的发…

k8s的helm

1、在没有helm之前,部署deployment、service、ingress等等 2、helm的作用:通过打包的方式,deployment、service、ingress这些打包在一块,一键部署服务、类似于yum功能 3、helm:官方提供的一种类似于仓库的功能&#…

为什么电脑降价了?

周末,非常意外地用不到3000元买到了一款2023年度发布的华为笔记本I5,16G,500G,基本是主流配置,我非常意外,看了又看,不是什么Hwawii,或者Huuawe。然后也不是二手。为什么呢?因为在ALU和FPU之外&…

Android.mk和Android.bp的区别和转换详解

Android.mk和Android.bp的区别和转换详解 文章目录 Android.mk和Android.bp的区别和转换详解一、前言二、Android.mk和Android.bp的联系三、Android.mk和Android.bp的区别1、语法:2、灵活性:3、版本兼容性:4、向后兼容性:5、编译区…

【C++修行之道】STL(初识pair、vector)

目录 一、pair 1.1pair的定义和结构 1.2pair的嵌套 1.3pair自带排序规则 1.4代码示例 二、vector 2.1vector的定义和特性 2.2vector的初始化 一维初始化: 2.3vector的常用函数 2.4vector排序去重 排序: 去重: 示例: 一、pair …

CmakeList教程

一、CmakeList介绍: cmake 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。它会通过写的语句自动生成一个MakeFile,从而实现高效编译 二、CmakeList的常用指令 1.指定…

iphone5s基带部分电源部分主主电源供电及

时序: 1.,基带电源的供电,基带电源也叫pmu。 首先时序图说电池提供供电,电池是J6接口,视频习惯把接口称之为座子。查U2_RF芯片,发现供电信号为PP_BATT_VCC_CONN,但是没查到跟电池座子有关系,电池座子写的是…

回溯算法篇-01:全排列

力扣46:全排列 题目分析 这道题属于上一篇——“回溯算法解题框架与思路”中的 “元素不重复不可复用” 那一类中的 排列类问题。 我们来回顾一下当时是怎么说的: 排列和组合的区别在于,排列对“顺序”有要求。比如 [1,2] 和 [2,1] 是两个不…

电脑磁盘格式化了怎么恢复里面文件?多个方法任你选

在日常生活中,我们可能会遇到由于误操作、病毒攻击等原因导致电脑磁盘被格式化的情况。一旦发生这种情况,我们可能会失去重要的文件,给工作和生活带来很大的困扰。但是,不必过于担心,本文将为您详细介绍如何在电脑磁盘…

Python 什么是点积注意力机制;点击注意力机制代码实现;Dot-Product Attention代码实战;超详细代码实现点积注意力

1.点积注意力机制简介 点积注意力机制(Dot-Product Attention)是一种常用的注意力机制之一,通常与Seq2Seq模型中的自注意力(Self-Attention)机制一起使用。它用于计算查询(Query)和键&#xff0…

Buildroot显示uboot logo

根据之前的开机现象,uboot部分没有开机logo 1、Makefile配置 查看一下u-boot/tools/Makefile是否都有如下配置 # Enable all the config-independent tools ifneq ($(HOST_TOOLS_ALL),) CONFIG_LCD_LOGO y CONFIG_CMD_LOADS y CONFIG_CMD_NET y CONFIG_XWAY_SW…

一.初识Linux 1-3操作系统概述Linux初识虚拟机介绍

目录 一.初识Linux 1.操作系统概述 计算机组成 硬件: 软件: 操作系统: 操作系统工作流程 操作系统作用 常见的操作系统 PC端: 移动端:(掌上操作系统) 一.初识Linux 2.Linux初识 linu…

分布式websocket即时通信(IM)系统保证消息可靠性【第八期】

b站上面本期视频版本,观看视频食用更佳!点击即可跳转,找不到视频可以直接搜索我 目前叫 呆呆呆呆梦 目前已经写的文章有。并且有对应视频版本。 git项目地址 【IM即时通信系统(企聊聊)】点击可跳转 sprinboot单体项目升级成sprin…

Ubuntu用gparted重新分配空间

ubuntu系统使用过程中安装系统时预先留的空间不够使用怎么办? 这么办! 首先 使用df -h 查看当前空间使用情况 已经分配的空间重新规划 ? 先将已分配的空间中的多余空间分离出来; 假设我想将挂载点/home下的一部分空间分给挂载…

《WebKit 技术内幕》学习之八(1):硬件加速机制

《WebKit 技术内幕》之八(1):硬件加速机制 1 硬件加速基础 1.1 概念 这里说的硬件加速技术是指使用GPU的硬件能力来帮助渲染网页,因为GPU的作用主要是用来绘制3D图形并且性能特别好,这是它的专长所在,它…

matlab模型变量一般说明,标定和显示量,以及产生a2l文件,自动填充a2l地址,并使用标定工具ati进行标定(推荐重要)

注意我是用的是matlab2019b 1,输入标定量,使用constant,用cal函数包裹 2,输出显示量,在划线上标注,然后用display函数包裹, 第一步和第二步完成以后,生产标定量a2l 3,输入…

常规二分查找中遇到的问题

以前我们写二分查找的时候&#xff0c;是这么写的&#xff1a; public static int binarySearch2(int []a,int target){int i0,ja.length-1;while(i<j){int mid(ij)/2;if(a[mid]target){return mid;}else if(a[mid]<target){imid1;}else {jmid-1;}}return -1;} 这么写&…

conda环境下OSError: We couldn‘t connect to ‘https://huggingface.co‘问题解决

1 问题描述 (dreamtalk) [rootlocalhost dreamtalk]# python inference_for_demo_video.py --wav_path data/audio/acknowledgement_english.m4a --style_clip_path data/style_clip/3DMM/M030_front_neutral_level1_001.mat --pose_path data/pose/RichardShelby_front_neutr…

【分布式技术专题】「分布式技术架构」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)

探索Tomcat技术架构设计模式的奥秘 Tomcat系统架构分析Tomcat 整体结构Tomcat总体结构图以 Service 作为“婚姻”1) Service 接口方法列表 2) StandardService 的类结构图方法列表 3) StandardService. SetContainer4) StandardService. addConnector 以 Server 为“居”1) Ser…