unet脑肿瘤分割_[论文代码]UNET++pytorch实现+环境安装+代码解释+brats2018脑肿瘤二维分割,UNetpytorch,Brats2018,2D...

原始的代码:

链接

我修改后的代码: 链接

1、env 环境的安装

windows10 64 bits、nvidia驱动、CUDA8.0、cudnn、anaconda

打开命令窗口, 分别输入以下指令:

conda create -n NestedUnetTorch python=3.6

conda activate NestedUnetTorch

pip install simpleitk

pip install opencv-python==3.4.2.16

pip install scipy

pip install scikit-learn==0.20

pip install scikit-image==0.14

conda  install numpy  mkl cffi

安装pytorch,选择与cuda版本对应的进行安装,参考链接如下:

链接

conda install  torchvision  -c pytorch

conda install Pillow=6.1

conda install tqdm

报错: ImportError: cannot import name '

_validate_lengths

', 由于numpy版本过高,升级下

pip install -U scikit-image

即可

conda install pandas

2、datasets 准备数据

脑肿瘤数据集

BraTs2018

链接:https://pan.baidu.com/s/1Ry41OVl9VLOMzhQQR9qXuA

提取码:qvmo

将其

切片

,并按以下格式要求放进工程目录的

input

里面:

├── images

| ├── 0a7e06.jpg

│ ├── 0aab0a.jpg

│ ├── 0b1761.jpg

│ ├── ...

|

└── masks

├── 0a7e06.png

├── 0aab0a.png

├── 0b1761.png

├── ...

3、train.py 训练

3.1 完善代码:

1、代码缺了如下内容,在开头加入:

from sklearn.externals import joblib

import pandas as pd

2、此外,我这里切片后的image和mask的位数都为8位.所以导致skimage.io.imread读入的图片的shape都是两个通道,而代码中的transpose((2, 0, 1))是需要三个通道才能执行,否则

axes don't match array in pytorch

报错.修改的办法就是在image = image.transpose((2, 0, 1))之前加入如下代码使得它变为三个通道.

image = image[:,:,np.newaxis]

3.2 运行代码:

即input/下的那个名字.

NestedUNet 即UNet++.

--image-ext即输入原始图片的格式;--mask-ext即输入标签图片的格式.

python train.py --dataset --arch NestedUNet --image-ext jpg --mask-ext png

4、test.py 训练

python test.py --name _NestedUNet_wDS

你可能感兴趣的:(unet脑肿瘤分割)