NiftyNet自带网络及模型

NiftyNet自带网络及模型NiftyNet 包含网络 Implementati of recent networks HighRes3DNet 3D U net V net DeepMedic 1 DeepMedic DeepMedic Efficient multi scale 3D CNN with fully connected CRF for accurate

大家好,我是讯享网,很高兴认识大家。

NiftyNet 包含网络

Implementation of recent networks (HighRes3DNet, 3D U-net, V-net, DeepMedic)

1. DeepMedic

DeepMedic:《Efficient multi-scale 3D CNN with fully connected CRF for accurate brain lesion segmentation》,Kamnitsas, K., Ledig, C., Newcombe, V. F., Simpson, J. P., Kane, A. D., Menon, D. K., Rueckert, D., Glocker, B. (2017)

  • Downsampling factor(下采样因子) d_factor 需要设置为奇数
  • Label size = [(image_size / d_ factor) - 16 ] * d_factor
  • Image size 要能被 d_factor 整除

正确配置举例:
training:image size = 57,label size = 9,d_factor = 3
inference:image size = 105,label size = 57,d_factor = 3

本文提出一种双通道,11 层深的三维卷积神经网络,用于脑损伤分割。

设计了一种 dense training scheme,将相邻图像块一次性输入网络进行处理,同时自适应数据中固有的 class imbalance。

为了融合局部信息和更大的上下文信息,作者采用了一种双重路径结构,同时在多个尺度上处理输入图像。

对于网络软分割的后处理,使用了一个三维全连通条件随机场,有效地去除了假阳性。

2. HighRes3dNet

HighRes3dNet:《On the Compactness, Efficiency, and Representation of 3D Convolutional Networks: Brain Parcellation as a Pretext Task》,Li W., Wang G., Fidon L., Ourselin S., Cardoso M.J., Vercauteren T. (IPMI 2017)

  • Image size 需要能被 8 整除

本文研究了现代卷积网络中的 dilated convolution 和 esidual connection 等特殊方法。在这些方法的基础上提出了一种高分辨率(high-resolution)、紧凑卷积网络(compact convolutional network)的 volumetric image 分割方法。

本文通过 155 个脑部 MR 图像中神经解剖结构的分割任务,验证了该网络的有效性。

3. ScaleNet

ScaleNet:《Scalable multimodal convolutional networks for brain tumour segmentation》Fidon, L., Li, W., Garcia-Peraza-Herrera, L.C., Ekanayake, J., Kitchen, N., Ourselin, S., Vercauteren, T. (MICCAI 2017)

  • 需要使用多个 modality

提出可扩展的多模式深度学习体系结构。

4. 3D U-Net

3D U-Net:《3D U-Net: Learning Dense Volumetric
Segmentation from Sparse Annotation》Çiçek, Ö., Abdulkadir, A., Lienkamp, S. S., Brox, T., and Ronneberger, O. (MICCAI 2016)

  • Image size - 4 需要能被 8 整除
  • Label size 需要大于 88
  • Border 为 44

本文介绍了一种利用稀疏标注的体图像进行空间分割的网络,将之前提出的 U-Net 网络中所有 2D 操作替换为对应的 3D 操作。

采用了两类数据集:
(1)在半自动设置中,用户在要分割的 volume 中标注一些切片。网络从这些稀疏的标注中学习,提供密集的 3D 分割
(2)在一个完全自动化的设置中,假设存在一个代表性的、稀疏标注的训练集

5. VNet

VNet:《V-Net: Fully Convolutional Neural Networks for
Volumetric Medical Image Segmentation》,Milletari, F., Navab, N., & Ahmadi, S. A. (2DV 2016)

  • Image size 需要能被 8 整除

本文提出了一种基于体积、全卷积神经网络的三维图像分割方法。

CNN 在前列腺 MRI 图像上进行端到端的训练,并一次性为整个 volume 预测分割结果。

提出一个新的目标函数,解决前景和背景 voxel 不平衡的问题。

为了解决训练数据量小的问题,采用了随机非线性变换(random non-linear transformation)和直方图匹配(histogram matching)来增加数据。

NiftyNet model zoo

1. dense_vnet_abdomina_ct_model_zoo

采用 Dense V-net,是一个腹部 CT 的多器官分割模型。

论文:《Automatic multi-organ segmentation on abdominal CT with dense v-networks》,TMI 2018

该网络分割腹部 CT 图中的 8 种器官,包括食道、胃、十二指肠、胰腺、肝脏、胆囊、脾脏、左肾。

1. 下载模型

下载网络权重和数据:

net_download dense_vnet_abdominal_ct_model_zoo 

讯享网

如果是从 github 上下载的 NiftyNet,把 net_dowload 改成 python net_download.py,执行命令:

讯享网python net_download.py dense_vnet_abdominal_ct_model_zoo 

2. 生成分割结果

这里是用模型自带的数据进行测试:

net_segment inference -c ~/niftynet/extensions/dense_vnet_abdominal_ct/config.ini 

和上面一样,根据自己情况把 net_segment 改成 python net_segment.py

生成的结果在~/niftynet/models/dense_vnet_abdominal_ct/segmentation_output/文件夹里,可以看到一个名叫 100__niftynet_out.nii.gz 的输出文件

读取一下 data 和 output:
在这里插入图片描述
讯享网
数据集一共有 144 张图片,每张图片大小都是 144*144 的。

3. 分割自己的数据

3.1 准备数据

网络将裁剪的 ROI 区域作为输入

图像应为 Hounsfield 单位,CT 视野外的体素设置为 -1000。

3.2 修改配置文件

~/niftynet/extensions/dense_vnet_abdominal_ct/config.ini 复制到自己的文件路径下,修改配置文件中的 path_to_searchfilename_contains,指向你自己的数据路径,修改 save_seg_dir 用以指定你想要保存的分割结果的路径 [可选] 。

3.3 生成分割结果

执行 net_segment 命令生成分割结果:

讯享网net_segment inference -c edited_config.ini 

其中 edited_config.ini 是你的配置文件的路径,分割结果保存在 save_seg_dir 指定的路径中,分割结果名称与输入的文件名对应,并带有 _niftynet_out.nii.gz 后缀名。

3.4 说明

为了达到高效分割,GPU 至少需要 10GB

选择 GPU 进行训练:

  • 设置环境变量 CUDA_VISIBLE_DEVICES

比如说用 0- 号 GPU 跑实验,就将它设置为 0
export CUDA_VISIBLE_DEVICES=0

2. ultrasound_simulator_gan_model_zoo

基于空间条件生成对抗网络的手部超声图像模拟

论文:《Freehand Ultrasound Image Simulation with Spatially-Conditioned Generative Adversarial Networks》,MICCAI RAMBO 2017

本文提出了一种基于条件生成对抗网络 (GANs) 的机器学习方法,在给定的三维空间位置(相对于病人解剖)模拟超声图像。

1. 下载模型

下载网络权重和数据:

net_download ultrasound_simulator_gan_model_zoo 

如果是从 github 上下载的 NiftyNet,把 net_download 改成 python net_download.py

2. 生成分割结果

这里是用模型自带的数据进行测试:

讯享网net_gan inference -c ~/niftynet/extensions/ultrasound_simulator_gan/config.ini 

注意:如果在 net_download 命令里制定了下载目录,那么 ~/niftynet/ 也需要做相应的修改。

3. 分割自己的数据

3.1 修改配置文件

将配置文件 ~/niftynet/extensions/ultrasound_simulator_gan/config.ini 复制到自己的目录下。

修改配置文件中的 path_to_searchfilename_contains,指向你自己的数据路径,修改 save_seg_dir 用以指定你想要保存的分割结果的路径 [可选] 。

3.2 生成分割结果

执行 net_gan 命令生成分割结果:

net_gan.py inference -c edited_config.ini 

其中 edited_config.ini 是你的配置文件的路径,分割结果保存在 save_seg_dir 指定的路径中,分割结果名称与输入的文件名对应,文件名为 k_id_niftynet_generated.nii.gz ,k 时插值索引 0-9,id 是输入条件数据文件名的帧编码。

3. highres3dnet_brain_parcellation_model_zoo

采用 HighRes3dNet,进行了脑部损伤分割任务。

论文:《On the Compactness, Efficiency, and Representation of 3D Convolutional Networks: Brain Parcellation as a Pretext Task》,IPMI 2017

1. 下载模型

下载网络权重和数据:

讯享网net_download highres3dnet_brain_parcellation_model_zoo 

如果是从 github 上下载的 NiftyNet,把 net_download 改成 python net_download.py

2. 生成分割结果

net_segment inference -c ~/niftynet/extensions/highres3dnet_brain_parcellation/highres3dnet_config_eval.ini 

在这里插入图片描述

4. anisotropic_nets_brats_challenge_model_zoo

anisotropic_nets_brats_challenge_model_zoo 是一个用各项异性网络分割脑部肿瘤的模型。

论文:《Automatic Brain Tumor Segmentation using Cascaded Anisotropic Convolutional Neural Networks》,2017

在 BRATS challenge 2017 中,此方法排名第一(Dice score 0.90499)

* 关于论文方法的完整实现,参考:https://github.com/taigw/brats17

级联根据子区域层次结构将多类分割问题分解为三个二值分割问题的序列:
第一步对整个肿瘤进行分割;
第二步用结果的边界盒进行肿瘤核心分割;
然后根据肿瘤核心分割结果的边界框对肿瘤核心进行分割。

1. 下载模型

下载网络权重和数据:

讯享网net_download anisotropic_nets_brats_challenge_model_zoo 

如果是从 github 上下载的 NiftyNet,把 net_download 改成 python net_download.py

下载完成后,文件夹中应包含:

  • brats_seg_app.py:是用 NiftyNet 构建的应用程序,定义了网络的训练和测试过程;
  • wt_net.py:网络结构定义;
  • .ini:定义了系统相关参数的配置文件,有三个文件对应了图像的三个方向(冠状面,矢状面,横断面)配置的网络;
  • label_mapping_whole_tumor.txt:NiftyNet 使用的映射文件,用于将多类分割数据转换为二进制数据

2. 生成分割结果

横断面 视图运行网络:

net_run inference -a anisotropic_nets_brats_challenge.brats_seg_app.BRATSApp \ -c ~/niftynet/extensions/anisotropic_nets_brats_challenge/whole_tumor_axial.ini 

冠状面 视图运行网络:

讯享网net_run inference -a anisotropic_nets_brats_challenge.brats_seg_app.BRATSApp \ -c ~/niftynet/extensions/anisotropic_nets_brats_challenge/whole_tumor_coronal.ini 

矢状面 视图运行网络:

net_run inference -a anisotropic_nets_brats_challenge.brats_seg_app.BRATSApp \ -c ~/niftynet/extensions/anisotropic_nets_brats_challenge/whole_tumor_sagittal.ini 

测试有问题:
在这里插入图片描述

5. mr_ct_regression_model_zoo

论文:《An Adaptive Sampling Scheme to Efficiently Train Fully Convolutional Networks for Semantic Segmentation》

1. 下载模型

下载网络权重和数据:

讯享网net_download mr_ct_regression_model_zoo 

如果是从 github 上下载的 NiftyNet,把 net_download 改成 python net_download.py

2. 训练

参数 starting_itermax_iter 指定了开始的迭代次数和最大迭代次数。

python net_run.py train \ -a niftynet.contrib.regression_weighted_sampler.isample_regression.ISampleRegression \ -c ~/niftynet/extensions/mr_ct_regression/net_isampler.ini \ --starting_iter 0 --max_iter 1000 

3. 生成 error maps

讯享网python net_run.py inference \ -a niftynet.contrib.regression_weighted_sampler.isample_regression.ISampleRegression \ -c ~/niftynet/extensions/mr_ct_regression/net_isampler.ini \ --inference_iter 1000 --spatial_window_size 240,240,1 --batch_size 4 --error_map True 

在这里插入图片描述

6. autocontext_mr_ct_model_zoo

1. 下载模型

下载网络权重和数据:

net_download autocontext_mr_ct_model_zoo 

如果是从 github 上下载的 NiftyNet,把 net_download 改成 python net_download.py

2. 训练

参数 starting_itermax_iter 指定了开始的迭代次数和最大迭代次数。

讯享网python net_regress.py train \ -c ~/niftynet/extensions/autocontext_mr_ct/net_autocontext.ini \ --starting_iter 0 --max_iter 500 

3. 生成

python net_regress.py inference \ -c ~/niftynet/extensions/autocontext_mr_ct/net_autocontext.ini \ --inference_iter 500 --spatial_window_size 240,240,1 --batch_size 4 --dataset_split_file nofile 
小讯
上一篇 2025-04-02 10:14
下一篇 2025-03-13 14:03

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/42326.html