【爆火】TransUNet:融合Transformer与U-Net的医学图像分割神器!

一个小人物113 2024-09-01 09:01:02 阅读 85

        在医学图像分割领域,传统的U-Net模型已经取得了显著成果。然而,随着Transformer在计算机视觉领域的崛起,将其与U-Net结合的TransUNet模型成为了新的热门。今天就给大家详细介绍一下TransUNet的实现与运行教程!💥

一、TransUNet是什么?🤔

        TransUNet是一种融合了Transformer和U-Net结构的深度学习模型,旨在提高医学图像分割的精度。它结合了Transformer的全局上下文理解能力和U-Net的局部特征提取能力,非常适合处理复杂的医学图像。

二、代码实现与运行教程📝

        我们需要将原始的图像数据转换成NPZ格式,以便后续的模型训练和验证。npz格式是一种numpy压缩格式,可以很方便地保存和加载numpy数组数据。下面就来具体介绍一下这个转换的过程:

首先,我们需要确定原始图像的存放路径path,这里的地址是输入图片的地址,标签的地址是将图片地址替换后获得的

接着,我们需要创建一个存放转换后NPZ文件的路径path2然后,我们使用glob模块遍历原始图像路径下的所有jpg文件,对于每一个图像文件:使用cv2.imread()函数读取图像数据,并转换成RGB格式;根据图像路径,找到对应的标签文件路径,读取标签数据;使用np.savez()函数,将图像数据和标签数据保存成NPZ格式,文件名按序号递增。最后,我们可以使用np.load()函数加载NPZ文件,验证一下数据是否正确保存。

<code>import glob

import cv2

import numpy as np

def npz():

#图像路径

path = r'F:\earn\TransUNet-main\pic\DeepCrack\images\*.jpg'

#项目中存放训练所用的npz文件路径

path2 = r'F:\earn\TransUNet-main\data\Synapse\test_vol_h7/'

for i,img_path in enumerate(glob.glob(path)):

#读入图像

image = cv2.imread(img_path)

image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)

#读入标签

label_path = img_path.replace('images','labels')

label = cv2.imread(label_path,flags=0)

#保存npz

np.savez(path2+str(i),image=image,label=label)

print('------------',i)

# # 加载npz文件

# data = np.load(r'F:\earn\TransUNet-main\data\Synapse\train_npz\0.npz', allow_pickle=True)

# image, label = data['image'], data['label']

# print(image, label)

print('ok')

a=npz()

转后后的结果如下

然后需要生成一个包含训练数据集信息的txt文件,具体的生成代码如下,利用同样的方法生成验证集的txt文件

<code>import os

# 定义文件夹路径

folder_path = r'F:\earn\TransUNet-main\data\Synapse\test_vol_h5'

# 获取文件夹中所有文件的名称

file_names = os.listdir(folder_path)

# 将文件名称写入train.txt文件(保留后缀并添加.h5)

with open('train.txt', 'w') as file:

for name in file_names:

file.write(name + '.h5\n')

数据集制作完成后,需要下载训练权重,权重地址如下vit_models – 存储桶详情 – Cloud Storage – Google Cloud Console

手动创建model文件夹,然后将权重放置到其中

在下载好权重后,开始设置训练参数的修改,需要修改数据集的路径,同时修改类别数对应你任务的类别。

同样下面的数据路径和类别数都需要修改

最后根据你电脑的性能在trainer中修改你读取数据的线程就好,训练过程中还有其他的问题,由于代码修改篇幅较长,后续在提供问题的修改的过程。

如果您对Transuent模型的改进和深度学习技术感兴趣,欢迎关注我的



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。