医学图像深度学习工具箱
DeepRad的Python项目详细描述
深度rad
这个项目是为了开发与使用深度学习的医学成像相关的软件。deeprad有两种不同的模式(快速使用和开发模式),分别针对不同的目标和不同编程水平的研究人员。
Deeprad的特点是使用CNN进行大规模训练,例如,扫描量超过10万次。将这些数据集直接加载到内存中可能会导致内存不足(OOM)错误。分层数据格式(HDF)是一种文件格式(HDF4、HDF5)的集合,用于存储和组织大量数据。deeprad提供数据管理工具来帮助用户将数据转换为hdf5文件。在deeprad的训练过程中,只有一批数据将从存储数据集的硬盘驱动器加载到内存中。由于所有过程都可以在gui中完成,deeprad对不熟悉编码的人也很友好。
这是Deeprad的第一个版本。目前我们支持三维分割的训练过程。我们将添加更多功能,使DeepRad更加强大。
< H2>第0步。依赖项的安装建议使用python 3.6。
从(a)或(b)中选择一种方法来安装从属软件包。
a.逐个安装依赖项
(for GPU user)
conda install -c anaconda tensorflow-gpu
conda install -c anaconda keras-gpu
(for CPU user)
conda install -c anaconda tensorflow
conda install -c anaconda keras
(common package)
conda install -c conda-forge pillow
conda install -c conda-forge opencv
conda install -c conda-forge nibabel
conda install -c conda-forge qimage2ndarray
conda install -c simpleitk simpleitk
conda install -c conda-forge nilearn
conda install -c conda-forge pytables
conda install -c anaconda nomkl
pip install git+https://www.github.com/farizrahman4u/keras-contrib.git
b.使用安装程序.sh
运行installation.sh。可能需要一段时间(~15分钟)。
bash installation.sh
< H2>第1步。数据集准备文件夹结构
有几种可能的方法可以构建文件夹。
文件夹树1
.
├── <data folder>
│ ├── train # Data must be in a folder called "train"
│ │ ├── <Volume N> # This is customized
│ │ │ ├── <Modality M> # This is customized
│ │ │ ├── ...
│ │ │ ├── truth.nii.gz OR truth.nii or truth.csv # Labels must be named as "truth"
│ │ └── ...
└── ...
示例:
data_example
├── type1
│ ├── train
│ │ ├── Brats17_2013_0_1
│ │ │ ├── t1.nii.gz
│ │ │ ├── t1ce.nii.gz
│ │ │ ├── t2.nii.gz
│ │ │ ├── flair.nii.gz
│ │ │ ├── truth.nii.gz
│ │ ├── Brats17_2013_15_1
│ │ │ ├── t1.nii.gz
│ │ │ ├── t1ce.nii.gz
│ │ │ ├── t2.nii.gz
│ │ │ ├── flair.nii.gz
│ │ │ ├── truth.nii.gz
└── ...
文件夹树2
.
├── <data folder>
│ ├── data # Data must be in a folder called "data"
│ │ ├── <Volume N> # This is customized
│ │ │ ├── <Modality M> # This is customized
│ │ │ ├── ...
│ ├── label # Data must be in a folder called "label"
│ │ ├── <Volume N> # The name shoule be the same as that in "data" folder
│ │ │ ├── truth.nii.gz OR truth.nii or truth.csv # Labels must be named as "truth"
│ │ └── ...
└── ...
示例:
data_example
├── type2
│ ├── data
│ │ ├── Brats17_2013_0_1
│ │ │ ├── t1.nii.gz
│ │ │ ├── t1ce.nii.gz
│ │ │ ├── t2.nii.gz
│ │ │ ├── flair.nii.gz
│ │ ├── Brats17_2013_15_1
│ │ │ ├── t1.nii.gz
│ │ │ ├── t1ce.nii.gz
│ │ │ ├── t2.nii.gz
│ │ │ ├── flair.nii.gz
│ ├── label
│ │ ├── Brats17_2013_0_1
│ │ │ └── truth.nii.gz
│ │ ├── Brats17_2013_15_1
│ │ │ └── truth.nii.gz
└── ...
文件夹树3(用于合成)
.
├── <data folder>
│ ├── data # Data must be in a folder called "data"
│ │ ├── <Volume N> # This is customized
│ ├── label # Data must be in a folder called "label"
│ │ ├── <Volume N> # The name shoule be the same as that in "data" folder
└── ...
示例:
data_example
├── type3
│ ├── data
│ │ ├── Brats17_2013_0_1.nii.gz
│ │ ├── Brats17_2013_15_1.nii.gz
│ ├── label
│ │ ├── Brats17_2013_0_1.nii.gz
│ │ ├── Brats17_2013_15_1.nii.gz
└── ...
文件夹树4(用于分类)
.
├── <data folder>
│ ├── data # Data must be in a folder called "data"
│ │ ├── <Volume N> # This is customized
│ ├── label # Data must be in a folder called "label"
│ │ ├── <Volume N> # The name shoule be the same as that in "data" folder
└── ...
示例:
(for GPU user)
conda install -c anaconda tensorflow-gpu
conda install -c anaconda keras-gpu
(for CPU user)
conda install -c anaconda tensorflow
conda install -c anaconda keras
(common package)
conda install -c conda-forge pillow
conda install -c conda-forge opencv
conda install -c conda-forge nibabel
conda install -c conda-forge qimage2ndarray
conda install -c simpleitk simpleitk
conda install -c conda-forge nilearn
conda install -c conda-forge pytables
conda install -c anaconda nomkl
pip install git+https://www.github.com/farizrahman4u/keras-contrib.git
0
文件夹树5(用于分类)
(for GPU user)
conda install -c anaconda tensorflow-gpu
conda install -c anaconda keras-gpu
(for CPU user)
conda install -c anaconda tensorflow
conda install -c anaconda keras
(common package)
conda install -c conda-forge pillow
conda install -c conda-forge opencv
conda install -c conda-forge nibabel
conda install -c conda-forge qimage2ndarray
conda install -c simpleitk simpleitk
conda install -c conda-forge nilearn
conda install -c conda-forge pytables
conda install -c anaconda nomkl
pip install git+https://www.github.com/farizrahman4u/keras-contrib.git
1
示例:
(for GPU user)
conda install -c anaconda tensorflow-gpu
conda install -c anaconda keras-gpu
(for CPU user)
conda install -c anaconda tensorflow
conda install -c anaconda keras
(common package)
conda install -c conda-forge pillow
conda install -c conda-forge opencv
conda install -c conda-forge nibabel
conda install -c conda-forge qimage2ndarray
conda install -c simpleitk simpleitk
conda install -c conda-forge nilearn
conda install -c conda-forge pytables
conda install -c anaconda nomkl
pip install git+https://www.github.com/farizrahman4u/keras-contrib.git
2
帮助重命名"truth"的工具
因为deeprad会询问所有名为"truth"的标签,所以提供了一个工具来简化此过程。假设所有文件夹都被构造为上面的"type1"。
(for GPU user)
conda install -c anaconda tensorflow-gpu
conda install -c anaconda keras-gpu
(for CPU user)
conda install -c anaconda tensorflow
conda install -c anaconda keras
(common package)
conda install -c conda-forge pillow
conda install -c conda-forge opencv
conda install -c conda-forge nibabel
conda install -c conda-forge qimage2ndarray
conda install -c simpleitk simpleitk
conda install -c conda-forge nilearn
conda install -c conda-forge pytables
conda install -c anaconda nomkl
pip install git+https://www.github.com/farizrahman4u/keras-contrib.git
3
然而,大约有100卷需要训练,但所有分割结果都被命名为"seg"。现在,在根目录中运行以下代码。
(for GPU user)
conda install -c anaconda tensorflow-gpu
conda install -c anaconda keras-gpu
(for CPU user)
conda install -c anaconda tensorflow
conda install -c anaconda keras
(common package)
conda install -c conda-forge pillow
conda install -c conda-forge opencv
conda install -c conda-forge nibabel
conda install -c conda-forge qimage2ndarray
conda install -c simpleitk simpleitk
conda install -c conda-forge nilearn
conda install -c conda-forge pytables
conda install -c anaconda nomkl
pip install git+https://www.github.com/farizrahman4u/keras-contrib.git
4
参数"--seg_name"是所有要更改为"truth"的文件中name的公共部分。运行此代码后,文件夹将如下所示:
(for GPU user)
conda install -c anaconda tensorflow-gpu
conda install -c anaconda keras-gpu
(for CPU user)
conda install -c anaconda tensorflow
conda install -c anaconda keras
(common package)
conda install -c conda-forge pillow
conda install -c conda-forge opencv
conda install -c conda-forge nibabel
conda install -c conda-forge qimage2ndarray
conda install -c simpleitk simpleitk
conda install -c conda-forge nilearn
conda install -c conda-forge pytables
conda install -c anaconda nomkl
pip install git+https://www.github.com/farizrahman4u/keras-contrib.git
5
将数据转换为HDF5格式。
deeprad提供了一个工具来加载数据集并将其转换为.hdf5文件,以便更好地兼容大型数据集。 要打开deeprad,请按照步骤0安装相关软件包,并在deeprad文件夹中运行以下代码:
(for GPU user)
conda install -c anaconda tensorflow-gpu
conda install -c anaconda keras-gpu
(for CPU user)
conda install -c anaconda tensorflow
conda install -c anaconda keras
(common package)
conda install -c conda-forge pillow
conda install -c conda-forge opencv
conda install -c conda-forge nibabel
conda install -c conda-forge qimage2ndarray
conda install -c simpleitk simpleitk
conda install -c conda-forge nilearn
conda install -c conda-forge pytables
conda install -c anaconda nomkl
pip install git+https://www.github.com/farizrahman4u/keras-contrib.git
6
然后我们可以看到一个主窗口。现在点击顶部的"快速使用"和"菜单"。单击"数据管理工具"假设我们有以下文件夹结构。
(for GPU user)
conda install -c anaconda tensorflow-gpu
conda install -c anaconda keras-gpu
(for CPU user)
conda install -c anaconda tensorflow
conda install -c anaconda keras
(common package)
conda install -c conda-forge pillow
conda install -c conda-forge opencv
conda install -c conda-forge nibabel
conda install -c conda-forge qimage2ndarray
conda install -c simpleitk simpleitk
conda install -c conda-forge nilearn
conda install -c conda-forge pytables
conda install -c anaconda nomkl
pip install git+https://www.github.com/farizrahman4u/keras-contrib.git
5
在数据管理工具中,数据目录如下:
(for GPU user)
conda install -c anaconda tensorflow-gpu
conda install -c anaconda keras-gpu
(for CPU user)
conda install -c anaconda tensorflow
conda install -c anaconda keras
(common package)
conda install -c conda-forge pillow
conda install -c conda-forge opencv
conda install -c conda-forge nibabel
conda install -c conda-forge qimage2ndarray
conda install -c simpleitk simpleitk
conda install -c conda-forge nilearn
conda install -c conda-forge pytables
conda install -c anaconda nomkl
pip install git+https://www.github.com/farizrahman4u/keras-contrib.git
8
我们可以指定输出目录如下:
(for GPU user)
conda install -c anaconda tensorflow-gpu
conda install -c anaconda keras-gpu
(for CPU user)
conda install -c anaconda tensorflow
conda install -c anaconda keras
(common package)
conda install -c conda-forge pillow
conda install -c conda-forge opencv
conda install -c conda-forge nibabel
conda install -c conda-forge qimage2ndarray
conda install -c simpleitk simpleitk
conda install -c conda-forge nilearn
conda install -c conda-forge pytables
conda install -c anaconda nomkl
pip install git+https://www.github.com/farizrahman4u/keras-contrib.git
9
在指定目录之后,我们可以移动到标准化为。提供两种标准化模式:标准模式和间隔模式。
- 标准(Z分数)
- 数据=(数据/平均值)/标准
- 平均值和标准差是根据所有值计算的,而不仅仅是非零值
- 区间
- 数据-=数据最小值
- data/=(数据最大值-数据最小值)/(最大值-最小值)
- 数据+=最小值
规范化类型确定如何计算平均值/标准差或数据最大值/数据最小值。假设我们有100卷,在每卷中,我们有"T1","T2","T1CE","flair"模式。每个成像设备都有形状(240、240、155)。
- 全局:参数将在100*4*(240、240、155)个数据集中计算
- 每卷:仅在每个(240、240、155)数据集上计算帕累米
- 每层:计算帕累米仅在每个(240,240)切片上。
图像形状是输出数据集形状。由于我们使用的是三维模型,因此建议:
- 行:64
- 列:64
- 频道:64
右边是一个预览工具来查看我们的数据集。如果我们指定卷路径,例如:
bash installation.sh
0
设置参数后,单击"转换"。注意:可能需要几分钟,不要点击其他东西,否则会有几个未知的错误。我们可以在路径中看到"data.hdf5",例如:
bash installation.sh
1
< H2>第2步。主要功能(以分段为例)测试环境:16G内存和GTX 1080 GPU,测试5卷BRATS 2018数据集。
brats数据集:https://www.med.upenn.edu/sbia/brats2018/data.html
在主窗口中单击"分段"。在这里我们可以看到5步。现在我们共享推荐设置,如果没有提到,请使用默认设置。
<H3>1。准备数据bash installation.sh
2
<H3>2。选择型号bash installation.sh
3
<H3>3。数据增强bash installation.sh
4
<H3>4。训练配置bash installation.sh
5
<H3>5。输出配置bash installation.sh
6
之后,点击"开始"来训练模型。我们可以监控培训进度。