【swinUnet官方代码测试自己的数据集(已训练完毕)】

这篇具有很好参考价值的文章主要介绍了【swinUnet官方代码测试自己的数据集(已训练完毕)】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

***************************************************

码字不易,收藏之余,别忘了给我点个赞吧!

***************************************************

---------Start

首先参考上一篇的训练过程,因为测试需要用到训练获得的权重。

1、检查相关文件

1.1 检查test_vol.txt的内容是否是测试用的npz文件名称

swinunet训练自己的数据集,深度学习,python,计算机视觉,深度学习,人工智能,神经网络
测试集的npz文件
swinunet训练自己的数据集,深度学习,python,计算机视觉,深度学习,人工智能,神经网络

1.2 检查模型权重文件

swinunet训练自己的数据集,深度学习,python,计算机视觉,深度学习,人工智能,神经网络

2、修改部分代码

2.1 修改dataset_synapse.py

swinunet训练自己的数据集,深度学习,python,计算机视觉,深度学习,人工智能,神经网络

            slice_name = self.sample_list[idx].strip('\n')
            data_path = os.path.join(self.data_dir, slice_name+'.npz')
            data = np.load(data_path)
            image, label = data['image'], data['label']
            #改,numpy转tensor
            image = torch.from_numpy(image.astype(np.float32))
            image = image.permute(2,0,1)
            label = torch.from_numpy(label.astype(np.float32))

2.2 修改test.py代码

修改相关参数和文件路径
is_savenii:是否保存预测结果图片
num_classes:预测的目标类别数+1
swinunet训练自己的数据集,深度学习,python,计算机视觉,深度学习,人工智能,神经网络
cfg:swinUnet网络结构配置文件
test_save_dir:保存预测结果文件夹
swinunet训练自己的数据集,深度学习,python,计算机视觉,深度学习,人工智能,神经网络
num_classes:预测的目标类别数+1
swinunet训练自己的数据集,深度学习,python,计算机视觉,深度学习,人工智能,神经网络
自定义权重路径
swinunet训练自己的数据集,深度学习,python,计算机视觉,深度学习,人工智能,神经网络

2.3 修改util.py代码(分两种情况)

第一种情况:保存预测原图,保存的结果是一张灰度图,每个像素的值代表该像素属于哪个类别。例如(0:背景,1:目标1,2:目标2…),这是一张全黑图。

def test_single_volume(image, label, net, classes, patch_size=[256, 256], test_save_path=None, case=None, z_spacing=1):
    image, label = image.squeeze(0).cpu().detach().numpy(), label.squeeze(0).cpu().detach().numpy()
    _, x, y = image.shape

    # 缩放图像符合网络输入大小224x224
    if x != patch_size[0] or y != patch_size[1]:
        image = zoom(image, (1, patch_size[0] / x, patch_size[1] / y), order=3)
    input = torch.from_numpy(image).unsqueeze(0).float().cuda()
    net.eval()
    with torch.no_grad():
        out = torch.argmax(torch.softmax(net(input), dim=1), dim=1).squeeze(0)
        out = out.cpu().detach().numpy()
        # 缩放预测结果图像同原始图像大小
        if x != patch_size[0] or y != patch_size[1]:
            prediction = zoom(out, (x / patch_size[0], y / patch_size[1]), order=0)
        else:
            prediction = out
    metric_list = []
    for i in range(1, classes):
        metric_list.append(calculate_metric_percase(prediction == i, label == i))

    if test_save_path is not None:
        #保存预测结果
        prediction = Image.fromarray(np.uint8(prediction)).convert('L')
        prediction.save(test_save_path + '/' + case + '.png')
    return metric_list
第二种情况:保存可见图像,将不同类别映射成不同的颜色。只需要将上面代码的if test_save_path is not None:里面的内容替换成下面的代码即可。
        #将不同类别区域呈彩色展示
        #2分类 背景为黑色,类别1为绿色
    if test_save_path is not None:
        a1 = copy.deepcopy(prediction)
        a2 = copy.deepcopy(prediction)
        a3 = copy.deepcopy(prediction)
        #r通道
        a1[a1 == 1] = 0
		#g通道
        a2[a2 == 1] = 255
		#b通道
        a3[a3 == 1] = 0
        a1 = Image.fromarray(np.uint8(a1)).convert('L')
        a2 = Image.fromarray(np.uint8(a2)).convert('L')
        a3 = Image.fromarray(np.uint8(a3)).convert('L')
        prediction = Image.merge('RGB', [a1, a2, a3])
        prediction.save(test_save_path+'/'+case+'.png')

至此,设置完毕,右键run运行,若控制台出现下面的结果,则表示运行正确,我这里的权重只训练了一个epoch,所以预测的都是0。
swinunet训练自己的数据集,深度学习,python,计算机视觉,深度学习,人工智能,神经网络

3、查看预测结果

查看日志文件
swinunet训练自己的数据集,深度学习,python,计算机视觉,深度学习,人工智能,神经网络
查看预测结果图
swinunet训练自己的数据集,深度学习,python,计算机视觉,深度学习,人工智能,神经网络文章来源地址https://www.toymoban.com/news/detail-783014.html

总结: swinUnet主要由swin_transform模块构成,数据量太少的时候训练效果很差,跟TransUnet不能比。由于仅文字表述某些操作存在局限性,故只能简略描述,有任何疑问可下方留言评论或私信,回复不及还望见谅,感激不尽!

到了这里,关于【swinUnet官方代码测试自己的数据集(已训练完毕)】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用yolox训练自己的数据集并测试

    ​​​​​​https://github.com/bubbliiiing/yolox-pytorch 百度网盘链接给出自己完整的模型(包括数据集以及权重文件): 链接:https://pan.baidu.com/s/1JNjB42u9eGNhRjr1SfD_Tw  提取码:otq0 1.选择配置好的深度学习环境 2.修改train.py里面的classes_path,将自己想要分类的类别填充进去  3.修改权

    2024年02月09日
    浏览(33)
  • yolov8代码梳理 训练自己的数据 最终版

    最开始为了检测不规则的麻包袋,所以采用了目标检测。yolov3,fasterrcnn,ssd。这种矩形框还是可以用。后面检测的物体变成了规则的纸箱,我们还用目标检测发现,没有旋转角度,因为箱子的摆放不是正的。只能通过opencv的minarea去找到最小矩形框去寻找角度。但是opencv的方

    2024年02月12日
    浏览(50)
  • InternImage segmentation部分代码复现及训练自己的数据集(一)

    所谓“复现”,不过是跑通了官方的代码,以下仅为个人的一些经验和理解,欢迎指正。 (其实仅作为个人学习使用,也欢迎交流) 首先贴出官方文献和代码: 官方文献:InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions,链接:InternImage: Exploring Large-Sca

    2024年02月14日
    浏览(41)
  • 【DDRNet】DDRNet项目使用单GPU、自己的数据集训练、得到测试图像

    最近需要对一些细胞图像进行分割,需要比较几个模型之间的优劣,于是找到了DDRNet。 DDRNet项目来源:https://github.com/chenjun2hao/DDRNet.pytorch 电脑环境配置:win11+NVIDIA GeForce RTX 3060 Laptop+CUDA11.7 如果想用他的数据集cityscapes和他的预训练模型,可以根据上面的项目来源中的指示来做

    2024年02月11日
    浏览(39)
  • 深度学习:使用nanodet训练自己制作的数据集并测试模型,通俗易懂,适合小白

    关于目标检测的模型有很多, nanodet 模型小且轻量化,适合移植部署到硬件设备上,非常推荐学习这个模型。经过我自己踩了无数坑后总结了此教程,助学刚接触nanodet,想要快速上手的学者,教程很详细,学者耐心看。 我提供了一个已经调试好的源码包,后面的教程也都是

    2024年02月15日
    浏览(48)
  • 手写数学公式识别领域最新论文CAN代码梳理,以及用自己的数据集训练

    Counting-Aware Network(CAN)-手写数学公式识别网络是好未来与白翔团队一起发布的一篇2022年的被ECCV收录的论文,该论文旨在缓解目前大部分基于注意力机制的手写数学公式识别算法在处理较长或者空间结构较复杂的数学公式时,容易出现的注意力不准确的情况。该论文通过将符号

    2024年02月07日
    浏览(44)
  • U2Net、U2NetP分割模型训练---自定义dataset、训练代码训练自己的数据集

    前言 博客很久没有更新了,今天就来更新一篇博客吧,哈哈; 最近在做图像分割相关的任务,因此,写这么一篇博客来简单实现一下分割是怎么做的,内容简单,枯燥,需要耐心看,哈哈; 博客的内容相对简单,比较适合刚接触分割的同学参考学习(这篇博客在算法训练上

    2024年02月05日
    浏览(40)
  • 深度学习:使用UNet做图像语义分割,训练自己制作的数据集并推理测试(详细图文教程)

    语义分割(Semantic Segmentation)是图像处理和机器视觉一个重要分支。与分类任务不同,语义分割需要判断图像每个像素点的类别,进行精确分割。语义分割目前在自动驾驶、自动抠图、医疗影像等领域有着比较广泛的应用。我总结了使用UNet网络做图像语义分割的方法,教程很详

    2024年01月18日
    浏览(50)
  • 【mmdetection】用自己的coco数据集训练mask r-cnn并进行验证、测试,推理可视化,更改backbone,只针对某一标签进行训练

    本人呕心沥血从无到有的摸索,自己边尝试边整理的,其实耐心多看官方文档确实能找到很多东西(下面有官方文档的链接这里就不重复粘贴了),也为了方便我自己copy语句嘻嘻~ 为什么不是用Windows,作为一个小白我一开始真的想用windows,因为我懒得配双系统,但是没办法

    2024年02月04日
    浏览(45)
  • 【深度学习】在虚拟机Ubuntu中安装Anaconda+pycharm+跑通YOLOv8项目源代码+训练自己的数据集

    因为一些特殊的原因,需要从之前CPU的win跑代码转移到GPU的虚拟机Ubuntu里面去跑,故在此记录一下安装软件和搭建环境的一些步骤,码一下以便以后查看。 因为虚拟机提前安装了英伟达驱动,在此就不赘述驱动程序的安装了。 ps: 如果在终端输入 显示以下即为驱动程序已安

    2024年02月21日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包