NiftyNet项目介绍
NiftyNet项目介绍
简述
简述
NiftyNet是一款开源的卷积神经网络平台,旨在通过实现医学图像分析的深度学习方法和模块,支持快速原型和再现性,由WEISS (Wellcome EPSRC Centre for Interventional and Surgical Sciences), CMIC ( Centre for Medical Image Computing),HIG(High-dimensional Imaging Group)三家研究机构共同推出。
NiftyNet项目的实现基于tensorflow,实现了一整套的DeepLearning流程。将数据加载、模型加载,网络结构定义等进行了很好的分离,抽象封装成了各自独立的模块。
NiftyNet基础架构是使研究人员能够快速开发和分发用于分割、回归、图像生成和表示学习应用程序,或将平台扩展到新的应用程序的深度学习解决方案。
即NiftyNet支持:
图像分割
图像分类(回归)
auto-encoder(图像模型表示)
GANs(图像生成)
NiftyNet项目的实现基于tensorflow,实现了一整套的DeepLearning流程。将数据加载、模型加载,网络结构定义等进行了很好的分离,抽象封装成了各自独立的模块。
NiftyNet基础架构是使研究人员能够快速开发和分发用于分割、回归、图像生成和表示学习应用程序,或将平台扩展到新的应用程序的深度学习解决方案。
即NiftyNet支持:
图像分割
图像分类(回归)
auto-encoder(图像模型表示)
GANs(图像生成)
NiftyNet平台获得:http://niftynet.io/
项目结构
架构设计
NiftyNet应用程序类通过连接四个组件封装了针对不同医学图像分析应用程序的标准分析管道:
Reader: 从文件中加载数据
Sampler: 为之后的处理生成合适的样本
Network: 处理输入
output handler: 包括在培训期间的损失和优化器,以及在推理和评估期间的聚合器
NiftyNet应用程序类通过连接四个组件封装了针对不同医学图像分析应用程序的标准分析管道:
Reader: 从文件中加载数据
Sampler: 为之后的处理生成合适的样本
Network: 处理输入
output handler: 包括在培训期间的损失和优化器,以及在推理和评估期间的聚合器
ApplicationDriver: 定义了跨所有应用程序的公共结构,并负责实例化数据分析管道并将计算分布到可用的计算资源。
[项目详细说明](https://arxiv.org/abs/1709.03485)
平台安装
尝试运行Demo:
注:对于普通机型8G内存,显卡NVIDIA 930M,运行了将近3个小时,不过是在使用PyCharm和其它一些软件的情况下,如果你的机子不够好,建议关闭所有其它应用,并且使用命令行操作。
pip install tensorflow-gpu==1.3 pip install tensorflow==1.3 pip install niftynet
以上为命令行安装过程,如果使用PyCharm,可以直接在 File-Settings...-Project:...-Project Interpreter中选择对应的解释器版本,并点+来进行安装tensorflow和niftynet。
尝试运行Demo:
注:对于普通机型8G内存,显卡NVIDIA 930M,运行了将近3个小时,不过是在使用PyCharm和其它一些软件的情况下,如果你的机子不够好,建议关闭所有其它应用,并且使用命令行操作。
更新:以上运行很长时间是因为GPU使用程序没能配好,所以程序是直接凭借运行,这是其过慢的原因。当使用GPU来运行的时候,速度明显提升,只需几分钟就运行完毕。
1. 下载模型
1. 下载模型
python net_download.py highres3dnet_brain_parcellation_model_zoo
2. 分割
python net_segment.py inference -c ~/niftynet/extensions/highres3dnet_brain_parcellation/highres3dnet_config_eval.ini
或者在PyCharm中运行的话,在对应脚本的解释器的配置中添加参数如:在net_download.py的配置中添加highres3dnet_brain_parcellation_model_zoo
执行结果展示: