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

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

一、TransUNet是什么?🤔

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

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

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

  1. 首先,我们需要确定原始图像的存放路径path,这里的地址是输入图片的地址,标签的地址是将图片地址替换后获得的
  2. 接着,我们需要创建一个存放转换后NPZ文件的路径path2
  3. 然后,我们使用glob模块遍历原始图像路径下的所有jpg文件,对于每一个图像文件:
  4. 使用cv2.imread()函数读取图像数据,并转换成RGB格式;
  5. 根据图像路径,找到对应的标签文件路径,读取标签数据;
  6. 使用np.savez()函数,将图像数据和标签数据保存成NPZ格式,文件名按序号递增。
  7. 最后,我们可以使用np.load()函数加载NPZ文件,验证一下数据是否正确保存。
    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()
    

    转后后的结果如下

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

    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模型的改进和深度学习技术感兴趣,欢迎关注我的微信公众号 "AI代码 Insights"。在这里,我会定期分享最新的人工智能技术、深度学习算法和实践经验,与大家共同探讨AI领域的前沿动态。同时需要实现代码的可以通过公众号来找我要。

  • 25
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值