医学图像分割之TransUNet
目录
一、背景
二、提出问题
三、解决问题
四、网络结构详解
CNN部分(ResNet50的前三层)
transformer部分
U-Net的decoder部分
五、模型性能
开头处先说明下TransUNet的地位:它是第一个将transformer用于U型结构的网络。
一、背景
医学图像分割是发展卫生保健系统的先决条件,尤其对疾病诊断和质量方案。在各种医学图像分割模型中,U型结构,也就是U-Net非常流行。
二、提出问题
- 由于卷积运算的内在局限性,或者说是卷积运算中,感受野小的原因,导致U-Net在建模过程中,远程依赖方面受限。
- transformer是全局自注意机制的可替代结构。但由于transformer的低级细节不足,导致其定位能力受限。
三、解决问题
在解决U型结构感受野小、远程依赖受限的问题上,很多作者给出的解决办法是使用自注意力机制。由于Transformer中自带自注意力机制,作者是第一个将transformer和U-Net相结合的人。
- 由于U-Net结构在医学图像分割中非常流行,可以说是默认的医学图像分割的backbone了,所以作者选择在U-Net结构上进行改编。
- 由于transformer的输入为1D的序列,所以在其训练的所有阶段只关注了建模的上下文信息,导致缺少含有细节定位信息的高分辨率特征。所以作者选择将transformer与U-Net结构相结合,将transformer作为U型结构的encoder部分。
- transformer作为encoder部分,对transformer后的编码特征是,为了恢复空间信息,将恢复至,然后使用U-Net的decoder部分,上采样恢复分辨率至 H*W。虽然也能产生合理的结果,但结果比较粗糙,缺少高分辨率的细节信息。也就是说此时的结构不是transformer的最佳应用,因为通常比H*W小很多,分辨率在恢复至H*W过程中,不可避免导致定位信息的损失。为了弥补这种定位细节信息的损失,作者继续提出了CNN-Transformer的混合结构。
- CNN-Transformer作为U型结构的encoder部分。因为CNN能提取到低级定位细节信息,正好弥补Transformer缺少低级定位信息的不足。在此部分,作者选择使用resnet50的前3阶段作为CNN部分。将resnet50第三阶段得到的特征图作为transformer的patch来源。从而使得transUNet的U型结构得到闭环。
图1 TransUNet结构简图
四、网络结构详解
从图中也可以看出,TransUNet的网络结构可以分为三部分学习,分别是CNN部分(resnet50的前三层)、transformer部分、U-Net的decoder部分。
CNN部分(ResNet50的前三层)
CNN部分作者选用了ResNet50的前三层,至于为什么CNN选用的ResNet50,作者并没有给出原因。我的理解是:U-Net的decoder部分除去encoder5外,还有4层,从上往下计数,decoder4和transformer的结果进行skip-connection,上面还剩3层decoder,所以此处采用的ResNet50的前三层,方便后续的跳跃连接 。
TranUNet中的该部分代码中,要将这三层的每层结果进行保存,每层的结果还要用于skip-connection,除此之外,第三层的特征图还要产生一系列的patches,作为transformer的输入内容。ResNet50的前三层结构如下图所示:
图3 ResNet50网络结构
transformer部分
此处的transformer部分采用了12层,也就是将transformer运算重复了12次。首先将CNN部分的第三层获得的特征图进行P=16处理,获得16*16=256个patches。将一系列patches输入到transformer模块中,获得 (n_patch, D)= 维度的结果,为了恢复特征图的空间结构,reshape至,然后进行上采样操作。
关于transformer的具体实现,我想仔细学一些Vis Transformer,然后出一篇博客,详细讲解。
U-Net的decoder部分
此部分和U-Net的decoder部分完全一样,后面专门出一篇U-Net文章。
五、模型性能
在我的数据集CT图像上进行训练,发现TransUNet的性能并没有很好,是不如UNet的。TransUNet的dice是0.8171,而UNet的dice是0.9488。TransUNet的泛化能力不是很好。
以上是本人对TransUNet的理解,欢迎大家一起交流学习。
参考:经典网络ResNet介绍_fengbingchun的博客-CSDN博客
医学图像分割之TransUNet相关推荐
- TransUNet:Transformers医学图像分割强编码器
0.研究内容 医学图像分割是医疗系统开发的必要前提,特别是疾病诊断和治疗规划.在各种医学图像分割任务中,U-Net结构已经成为事实上的标准,并取得了巨大的成功.然而,由于卷积操作固有的局部性,U-Ne ...
- nnUNet原创团队全新力作!MedNeXt:医学图像分割新SOTA
Title:MedNeXt: Transformer-driven Scaling of ConvNets for Medical Image Segmentation MedNeXt:用于医学图像分 ...
- (新SOTA)UNETR++:轻量级的、高效、准确的共享权重的3D医学图像分割
(新SOTA)UNETR++:轻量级的.高效.准确的共享权重的3D医学图像分割 0 Abstract 由于Transformer模型的成功,最近的工作研究了它们在3D医学分割任务中的适用性.在Tran ...
- Class-Aware Generative Adversarial Transformers for Medical Image Segmentation-用于医学图像分割的生成对抗网络
目录 摘要 方法 编码器模块 分层特征表示 Class-Aware Transformer-类感知的Transformer模块 Transformer编码器模块 解码器模块 判别网络 损失函数 总结 ...
- 医学图像分割综述:U-Net系列
文章目录 Medical Image Segmentation Review:The Success of U-Net 摘要 引言 分类法 2D Unet 3D U-Net U-Ne的临床意义和疗效 ...
- 用NVIDIA Tensor Cores和TensorFlow 2加速医学图像分割
用NVIDIA Tensor Cores和TensorFlow 2加速医学图像分割 Accelerating Medical Image Segmentation with NVIDIA Tensor ...
- 基于U-Net系列算法的医学图像分割(课程设计)
基于U-Net系列算法的医学图像分割(课程设计) 参考论文:包括U_Net/R2U_Net/AttU_Net/R2AttU_Net,如下图所示: 基于Pytorch的代码和数据集下载地址:下载地址 运 ...
- Unet神经网络为什么会在医学图像分割表现好?
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 问题:Unet神经网络为什么会在医学图像分割表现好? https: ...
- FCN、Unet、Unet++:医学图像分割网络一览
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨Error@知乎 来源丨https://zhuanlan.z ...
最新文章
- 从贫困的“问题少年”到计算机博士,最后成为商界泰斗,“创业之神”吉姆•克拉克是如何走向封神之路的?...
- MCU实战经验:多种的按键处理
- TP5 自带分页类的传参
- java保存登录信息_java – 保存登录详细信息(首选项)android
- 一个简洁的个人导航页面源码
- 基于jQuery鼠标点击弹出登陆框效果
- 中国 AI 开发者真实现状:人才依赖海外引进,本科 AI 教育盛行
- Activity intent经常使用的 FLAG 集合
- 何为领导力 —— 《Working Backwards》书评
- iphone13pro手机如何投屏?iphone13投屏教程
- Ecshop V4.1.6 安装
- 判定两个点是否在一条直线的同一侧_高中物理的常用方法、题型特点及应用注意点,不看很吃亏...
- windows启动管理器_把windows 10装进文件里,竟然也能启动
- Excel表格撤销工作表保护
- dede后台登陆提示 验证码不正确 解决办法
- 国际物流、快递、空运、海运、FBA头程、专线分别都有什么不同
- Flutter项目调用APP原声页面,使用iOS的Framework,安卓的aar,so文件
- php的登录页面怎么弄,php登录界面_php简单登录页面
- HLG 1916 小Z的卡片 (set 难题)恏似系亚洲区噶题
- 银行指静脉桌面认证项目框架需求