医学图像分割的基准:TransUnet(用于医学图像分割的Transformer编码器)器官分割
听风吹等浪起 2024-09-20 16:01:01 阅读 81
1、 TransUnet 介绍
TransUnet是一种用于医学图像分割的深度学习模型。它是基于Transformer模型的图像分割方法,由AI研究公司Hugging Face在2021年提出。
医学图像分割是一项重要的任务,旨在将医学图像中的不同结构和区域分离出来,以便医生可以更好地诊断和治疗疾病。传统的医学图像分割方法通常使用基于卷积神经网络(CNN)的方法,但这些方法在处理大量图像数据时可能存在一些限制,如需要大量标注数据、对图像中小目标的分割效果不佳等。
TransUnet通过引入Transformer模型来提高医学图像分割的性能。Transformer模型在自然语言处理中已经取得了显著的成功,它的一个重要特点是能够处理长距离的依赖关系。TransUnet将这种特点应用于图像分割中,通过将图像划分为一系列的图像块,并使用Transformer模型对这些块进行编码和解码,实现对图像中不同结构和区域的准确分割。
TransUnet的核心组件是自注意力机制,它能够学习图像中不同部分之间的关系,并在编码和解码过程中进行信息传递。通过多层自注意力机制的堆叠,TransUnet能够捕捉到图像中的全局上下文信息,并准确地分割出图像中的不同结构和区域。
与传统的基于卷积神经网络的方法相比,TransUnet在医学图像分割任务上取得了显著的性能提升。它能够更好地处理图像中的小目标和复杂结构,减少了对大量标注数据的依赖,并且在不同的医学图像数据集上都取得了优异的效果。
总的来说,TransUnet是一种基于Transformer模型的医学图像分割方法,通过引入自注意力机制和全局上下文信息的传递,提高了医学图像分割的准确性和效率。它为医生提供了一种精确分割医学图像的工具,有助于更好地诊断和治疗疾病
2、 实验1(腹部13器官分割)
TransUnet 多分割项目实验
2.1 数据集介绍
实验使用的数据集是腹部的13器官分类、加上背景0就是14类别的多分割任务
标签如下:
<code>{
"0": "background",
"1": "spleen",
"2": "right kidney",
"3": "left kidney",
"4": "gallbladder",
"5": "esophagus",
"6": "liver",
"7": "stomach",
"8": "aorta",
"9": "IVC",
"10": "veins",
"11": "pancreas",
"12": "rad",
"13": "lad"
}
中文标签:1. 脾脏 2. 右肾 3. 左肾 4. 胆囊 5. 食道 6. 肝脏 7. 胃 8. 主动脉 9. 下腔静脉 10. 门静脉和脾静脉 11. 胰腺 12 右肾上腺 13 左肾上腺
值得注意的是,因为原始的数据是CT数据,对比度较小,这里对数据进行了对比度拉伸,并且全部缩放到512*512的大小。数据的标签是0、1、2、3 ... 12、13的阈值图像
数据集:
标签:
2.2 训练
这里将数据集按照 8:2 比例分成了训练集和验证集
优化器为 optimizer = torch.optim.AdamW(model.parameters(), lr=0.01, weight_decay=0.01)
学习率的衰减策略是余弦退火的cos衰减,batch_size = 8,epoch 设定为100
从左到右依次为epoch、train loss、train iou、val loss、val iou
2.3 评估模型
评估模型应该用测试集,因为一开始没有划分测试集,这里用验证集是一样的
这里采用 best.pt
各项指标分别为,这里的列表分别是每个前景的iou、recall等等
global correct: 0.9881
precision: ['0.9930', '0.9653', '0.9447', '0.9456', '0.8626', '0.8249', '0.9715', '0.9547', '0.9285', '0.8862', '0.7844', '0.8250', '0.6903', '0.6778']
recall: ['0.9946', '0.9629', '0.9289', '0.9399', '0.8278', '0.6833', '0.9729', '0.9265', '0.9263', '0.8522', '0.7127', '0.7678', '0.5549', '0.4758']
IoU: ['0.9877', '0.9306', '0.8810', '0.8917', '0.7314', '0.5968', '0.9459', '0.8875', '0.8646', '0.7681', '0.5960', '0.6603', '0.4443', '0.3880']
mean IoU: 0.7553
推理如下,输入数据为:
推理gt:
掩膜效果:
2.4 项目下载
代码、数据集、训练好的权重下载参考:
基于Transformer-Unet实现的对腹部多脏器13类别的分割实战【包含代码+数据集+训练结果】资源-CSDN文库
3、实验2(Synapse多器官分割数据集)
TransUnet 多分割项目实验
3.1 数据集介绍
实验使用的数据集是Synapse multi-organ segmentation dataset(Synapse多器官分割集)
腹部CT扫描 8个腹部器官(主动脉、胆囊、脾、左肾、右肾、肝、胰腺、脾、胃)
标签灰度值从1-7
值得注意的是,因为原始的数据是npz数据,这里输入应该是图像,所以对数据进行的提取,并且全部缩放到512*512的大小。数据的标签是0、1、2、3 ... 7、8的阈值图像
3.2 训练
这里同样将数据集按照 8:2 比例分成了训练集和验证集
优化器为 optimizer = torch.optim.AdamW(model.parameters(), lr=0.01, weight_decay=0.01)
学习率的衰减策略是余弦退火的cos衰减,batch_size = 8,epoch 设定为100
loss和iou曲线为:
从左到右依次为epoch、train loss、train iou、val loss、val iou
3.3 评估模型
指标如下:
global correct: 0.9924
precision: ['0.9958', '0.9089', '0.8571', '0.9012', '0.9353', '0.9670', '0.8367', '0.9643', '0.9299']
recall: ['0.9967', '0.9085', '0.8419', '0.9289', '0.8797', '0.9642', '0.6350', '0.9687', '0.9267']
IoU: ['0.9925', '0.8327', '0.7383', '0.8431', '0.8292', '0.9335', '0.5650', '0.9351', '0.8662']
mean IoU: 0.8373
推理如下:
推理gt:
掩膜效果:
3.4 项目下载
代码、数据集、训练好的权重下载参考:
基于Transformer-Unet实现的对Synapse多器官(8类)分割实战【包含代码+数据集+训练结果】资源-CSDN文库
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。