目录

一、背景

二、提出问题

三、解决问题

四、网络结构详解

CNN部分(ResNet50的前三层)

transformer部分

U-Net的decoder部分

五、模型性能


开头处先说明下TransUNet的地位:它是第一个将transformer用于U型结构的网络。

一、背景

医学图像分割是发展卫生保健系统的先决条件,尤其对疾病诊断和质量方案。在各种医学图像分割模型中,U型结构,也就是U-Net非常流行。

二、提出问题

  1. 由于卷积运算的内在局限性,或者说是卷积运算中,感受野小的原因,导致U-Net在建模过程中,远程依赖方面受限。
  2. transformer是全局自注意机制的可替代结构。但由于transformer的低级细节不足,导致其定位能力受限。

三、解决问题

在解决U型结构感受野小、远程依赖受限的问题上,很多作者给出的解决办法是使用自注意力机制。由于Transformer中自带自注意力机制,作者是第一个将transformer和U-Net相结合的人。

  1. 由于U-Net结构在医学图像分割中非常流行,可以说是默认的医学图像分割的backbone了,所以作者选择在U-Net结构上进行改编。
  2. 由于transformer的输入为1D的序列,所以在其训练的所有阶段只关注了建模的上下文信息,导致缺少含有细节定位信息的高分辨率特征。所以作者选择将transformer与U-Net结构相结合,将transformer作为U型结构的encoder部分。
  3. transformer作为encoder部分,对transformer后的编码特征是,为了恢复空间信息,将恢复至,然后使用U-Net的decoder部分,上采样恢复分辨率至 H*W。虽然也能产生合理的结果,但结果比较粗糙,缺少高分辨率的细节信息。也就是说此时的结构不是transformer的最佳应用,因为通常比H*W小很多,分辨率在恢复至H*W过程中,不可避免导致定位信息的损失。为了弥补这种定位细节信息的损失,作者继续提出了CNN-Transformer的混合结构。
  4. 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相关推荐

  1. TransUNet:Transformers医学图像分割强编码器

    0.研究内容 医学图像分割是医疗系统开发的必要前提,特别是疾病诊断和治疗规划.在各种医学图像分割任务中,U-Net结构已经成为事实上的标准,并取得了巨大的成功.然而,由于卷积操作固有的局部性,U-Ne ...

  2. nnUNet原创团队全新力作!MedNeXt:医学图像分割新SOTA

    Title:MedNeXt: Transformer-driven Scaling of ConvNets for Medical Image Segmentation MedNeXt:用于医学图像分 ...

  3. (新SOTA)UNETR++:轻量级的、高效、准确的共享权重的3D医学图像分割

    (新SOTA)UNETR++:轻量级的.高效.准确的共享权重的3D医学图像分割 0 Abstract 由于Transformer模型的成功,最近的工作研究了它们在3D医学分割任务中的适用性.在Tran ...

  4. Class-Aware Generative Adversarial Transformers for Medical Image Segmentation-用于医学图像分割的生成对抗网络

    目录 摘要 方法 编码器模块 分层特征表示 Class-Aware Transformer-类感知的Transformer模块 Transformer编码器模块 解码器模块 判别网络 损失函数 总结 ...

  5. 医学图像分割综述:U-Net系列

    文章目录 Medical Image Segmentation Review:The Success of U-Net 摘要 引言 分类法 2D Unet 3D U-Net U-Ne的临床意义和疗效 ...

  6. 用NVIDIA Tensor Cores和TensorFlow 2加速医学图像分割

    用NVIDIA Tensor Cores和TensorFlow 2加速医学图像分割 Accelerating Medical Image Segmentation with NVIDIA Tensor ...

  7. 基于U-Net系列算法的医学图像分割(课程设计)

    基于U-Net系列算法的医学图像分割(课程设计) 参考论文:包括U_Net/R2U_Net/AttU_Net/R2AttU_Net,如下图所示: 基于Pytorch的代码和数据集下载地址:下载地址 运 ...

  8. Unet神经网络为什么会在医学图像分割表现好?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 问题:Unet神经网络为什么会在医学图像分割表现好? https: ...

  9. FCN、Unet、Unet++:医学图像分割网络一览

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨Error@知乎 来源丨https://zhuanlan.z ...

最新文章

  1. 从贫困的“问题少年”到计算机博士,最后成为商界泰斗,“创业之神”吉姆•克拉克是如何走向封神之路的?...
  2. MCU实战经验:多种的按键处理
  3. TP5 自带分页类的传参
  4. java保存登录信息_java – 保存登录详细信息(首选项)android
  5. 一个简洁的个人导航页面源码
  6. 基于jQuery鼠标点击弹出登陆框效果
  7. 中国 AI 开发者真实现状:人才依赖海外引进,本科 AI 教育盛行
  8. Activity intent经常使用的 FLAG 集合
  9. 何为领导力 —— 《Working Backwards》书评
  10. iphone13pro手机如何投屏?iphone13投屏教程
  11. Ecshop V4.1.6 安装
  12. 判定两个点是否在一条直线的同一侧_高中物理的常用方法、题型特点及应用注意点,不看很吃亏...
  13. windows启动管理器_把windows 10装进文件里,竟然也能启动
  14. Excel表格撤销工作表保护
  15. dede后台登陆提示 验证码不正确 解决办法
  16. 国际物流、快递、空运、海运、FBA头程、专线分别都有什么不同
  17. Flutter项目调用APP原声页面,使用iOS的Framework,安卓的aar,so文件
  18. php的登录页面怎么弄,php登录界面_php简单登录页面
  19. HLG 1916 小Z的卡片 (set 难题)恏似系亚洲区噶题
  20. 银行指静脉桌面认证项目框架需求

热门文章

  1. jstack定位CPU占用率高的线程代码
  2. 海思Hi3516CV200_Camera芯片产品规格书
  3. Ansible 部署的时候提示错误 SSH password instead
  4. 【总结】手机图片预览插件photoswipe使用总结
  5. 有关《家》的经典歌曲_大家,给我推荐几首歌吧?
  6. etc/xinetd.d目录介绍
  7. 汽车行业消费者洞察|车载屏幕是否越大越多就越好?
  8. Python基本编程题
  9. php yii2框架仿站教程,从零开始学YII2框架(六)高级应用程序模板,yii2框架
  10. Yii学习--使用Yii来建立博客