当前位置:   article > 正文

nnUNetV2使用教程,超详细!!(使用MSD十项全能数据集)_msd数据集

msd数据集

一.什么是nnUNet

关于nnUNet的具体概念这里不在赘述,总的来说它是一个自适应数据集的分割网络,仅仅使用unet网络,V2版本在数据集上的包容性更强,除了nii,gz格式,还支持png格式等等,如果有需要转文件格式,请参考我以前的博文

二.所需环境

2.1 nnUNetV2的要求如下

ubuntu 18,20,22(旧版本的要求为16,18,20,我觉得22也可以,但是没试过);python3.9以上;pytorch2.0以上

2.2我的环境配置

ubuntu22;python10;pytorch2.0

三.预备工作

3.1下载nnUNet源码

默认大家都是要下载下来进行改动的哈,所有在ubuntu终端输入如下命令

git clone https://github.com/MIC-DKFZ/nnUNet.git``
  • 1

**但是!!**用终端克隆代码真的很慢,虽然有一些解决办法,可是有时候也会报错,所以,高端的食材往往采用最朴素的烹饪方式!直接去github上下载,下载地址就是nnUNetV2,推荐把他下载在ubuntu的home里,不信你听不懂,如果你需要nnUNet的旧版本,点击nnUNetV2的readme,如下,直接传送过去

在这里插入图片描述
在下载下来以后如果文件名字不是nnUNet,可以给文件夹重命名一下,方便后面你直接复制代码

3.2正题来了

继续在终端输入

cd nnUNet
  • 1

就是进入nnUNet文件夹

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -e .

  • 1
  • 2

各位小白直接用可能又会出错啦,所以直接上清华源,务必全部复制,包括后面那个点,不要漏了

3.3 下载hiddenlayer

同样

git clone https://github.com/FabianIsensee/hiddenlayer.git
cd hiddenlayer
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -e . 
  • 1
  • 2
  • 3

四.数据集转化

nnUNetV2相对于旧版本来说在格式上宽容很多,不过在正题开始之前,我们先把一些需要的文件夹弄好!
4.1 到我们的home里,找到我们刚刚下载的nnUNet文件夹,点开,新建一个nnUNetFrame文件,
在这里插入图片描述
4.2 点开,在里面新建DATASET文件夹
在这里插入图片描述
4.3 点开,新建3个文件夹,分别是nnUNet_raw;nnUNet_preprocessed;nnUNet_results
在这里插入图片描述

到这里,我们的文件夹就建好了
设置环境变量

  1. 在home目录下按ctrl + h
  2. 找到.bashrc文件,如何在文件底部加上
export nnUNet_raw="nnUNet_raw文件夹的完整路径"
export nnUNet_preprocessed="preprocessing文件夹的完整路径"
export nnUNet_results="nnUnet_results文件夹的完整路径"

  • 1
  • 2
  • 3
  • 4

4.3那里新建的三个文件夹的路径,可以通过查看文件夹的属性来查看,复制

  1. 保存更改,然后更新文件
source /home/你的用户名/.bashrc
  • 1

其实用

source .bashrc
  • 1

也可以,但是有时候没用,我就遇到这个问题,多改了几次然后更新不了,后面数据集转化一直报错,搞了老半天才发现问题,所以如果伙伴们在数据集转化时出现问题,很大可能就是这里没弄好

五.数据集格式转化

我们先把MSD数据集下下来数据集链接,随便放到什么地方,还是跟我一样直接放在home那吧,好找,我下的是第二个Heart数据集,因为它小
然后就可以进行数据集转化啦

nnUNetv2_convert_MSD_dataset  -i  原数据集的路径  -overwrite_id 02
  • 1

最后的02是下载下来数据集的ID,如果是其他数据集做相应更改
这时候在nnUNet_raw里面就有转化好的数据集文件啦
在这里插入图片描述
注意!!!V2版本的是Datasetxxx,旧版本的是Taskxxx(忽略我那个Task,那是个失败品),打开转化出来的数据集是这个样子
在这里插入图片描述
第一个文件里面存放的是训练文件,相对于没有转化的原数据集,它多了0000这种标识,如果你转出来的是这种,那就对了,而标签文件是没有这些0000的
在这里插入图片描述

六.数据预处理

nnUNetv2_plan_and_preprocess -d 002 --verify_dataset_integrity
  • 1

把002换成自己的数据集ID

七.训练

nnUNetv2_train 002 2d 0
  • 1

这里002是数据集ID
2d:是选择网络,其他还有3d_fullres, 3d_lowres, 3d_cascade_lowres
0:5折交叉验证中所选的折数,在[0,1,2,3,4]范围内选择,有的博主说5代表5折,我看了代码以后不那么认为,选5也可以运行,但是不是5折交叉验证,nnUNet会以4:1的比例随机选择训练集和验证集,如果不想使用5折交叉,自己进行训练集和验证集的划分,我后续会出教程

八.推理

soon

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号