开源医学图像处理平台NiftyNet简介
NiftyNet是一款开源的卷积神经网络平台,专门针对医学图像处理分析以及医学影像指导治疗,由WEISS (Wellcome EPSRC Centre for Interventional and Surgical Sciences), CMIC ( Centre for Medical Image Computing),HIG(High-dimensional Imaging Group)三家研究机构共同推出。
NiftyNet基于Tensorflow的开源卷积神经网络平台,这一模块化设计的开源平台包含了可共享的网络和预训练模型,在这些模块的帮助下我们可以方便快速地搭建针对医学图像处理的神经网络模型:
·利用内置工具使用预训练模型;
·将现有网络应用于自有的数据上进行调整;
·快速为特殊的图像分析问题生成解决方案原型;
目前的NiftyNet支持医学图像分割和生成对抗网络,这是一个研究型平台、并不保证临床使用的稳定性和准确率,它具有以下一些功能方便医学图像处理的研究:
·用户接口方便的修改个性化网络元件参数;
·可共享网络和预训练模型;
·支持2-D,2.5-D,3-D,4-D的数据输入;
·支持多GPU的高效训练;
·内置了当前前沿的神经网络包括HighRes3DNet, 3D U-net, V-net, DeepMedic等,可以方便的使用;
·对医学图像分割的综合评价度量;
对于这一平台的主要描述在下面这篇论文中有着详细的说明:
NiftyNet: a deep-learning platform for medical imaging
下图是平台具体的实现框图:
一、安装:
由于整个项目是基于Tensorflow,所以需要实现基于对应的版本:
pip install tensorflow-gpu==1.3 //安装GPU版本
pip install tensorflow==1.3
//安装CPU版本
pip install niftynet
//安装NiftyNet库,所以依赖可以自动完成安装
这时候我们可以尝试一下Demo运行,利用已有的模型和数据运行分割的工作;
首先下载模型和权重:
net_download dense_vnet_abdominal_ct_model_zoo
net_segment inference -c ~/niftynet/extensions/dense_vnet_abdominal_ct/config.ini
如果利用源码运行,可以直接用python运行源码进行推理:
# go to the source code directory
cd NiftyNet/
python net_download.py dense_vnet_abdominal_ct_model_zoo
python net_segment.py inference -c ~/niftynet/extensions/dense_vnet_abdominal_ct/config.ini
![这里写图片描述]() ![这里写图片描述]() 论文中给出的结果展示
二、文档
文档主要包括三个主要部分,分别是指引、资源和接口参考三个部分:
- Guide部分包含了:
主要包括平台简介、安装指南和配置文件的设置;
同时还有一个模型库可供用户选择合适的模型适配具体的问题;如果无法满足需求的情况下,它还提供了如何建立网络的教程,可以一步一步创建自己的新网络;
- Resource部分包含了:
这里包含了一系列资源,除了项目的网络还包括源码和源码镜像、以及模型库。同时还提供了Stack Overflow提问区域供用户交流; - API参考部分包含了:
网络几大模块的说明,主要有application、contrib、engine、evaluation、io、layer、network和utilities等功能包供用户使用,每一个都有详尽的参数描述和使用指南;
项目主页:
http://www.niftynet.io/
文档doc:
http://niftynet.readthedocs.io/en/dev/
论文papers:
https://arxiv.org/abs/1709.03485
https://link.springer.com/chapter/10.1007%2F978-3-319-59050-9_28
代码code:
https://github.com/NifTK/NiftyNet
https://pypi.org/project/NiftyNet/
https://github.com/gift-surg/HighRes3DNet