NiftyNet 是一个基于 TensorFlow 的开源卷积神经网络平台,来研究医疗影像分析和影像导向的治疗。NiftyNet 有着模块化的架构设计,能够共享网络架构和预训练模型。使用该模块架构,你可以:
使用内建工具,从建立好的预训练网络开始;
根据自己的图像数据改造已有的网络;
根据自己的图像分析问题快速构建新的解决方案。
NiftyNet 官网地址:http://www.niftynet.io/
GitLab 代码地址:https://cmiclab.cs.ucl.ac.uk/CMIC/NiftyNet
特征
NiftyNet 现在支持医疗影像分割和生成式对抗网络。该开源平台并非面向临床使用,其他的特征包括:
易于定制的网络组件接口;
共享网络和预训练模块;
支持 2D、2.5D、3D、4D 输入;
支持多 GPU 的高效训练;
多种先进网络的实现(HighRes3DNet、3D U-net、V-net、DeepMedic);
对医疗影像分割的综合评估指标。
网络
在 NiftyNet 框架中,实现了众多模型,列表如下。所有的网络都可被应用在 2D、2.5D、3D 配置中,并且使用自己的默认参数来实现。
损失函数
NiftyNet 框架当前版本包含多种损失函数,包括 Dice Loss 等非常适合医疗影像任务的损失函数:
论文:NiftyNet: a deep-learning platform for medical imaging
论文链接:https://arxiv.org/abs/1709.03485
基于深度学习的医疗影像分析和计算机辅助诊断正逐渐成为主要的解决方案。虽然目前的深度学习框架是非常灵活与便捷的,但并不为医疗影像分析提供具体的功能,因此开发者需要大量的实现与试验才能构建医疗影像方面的应用。因此,许多研究团队存在大量重复的努力和不完整的基础设施开发。本研究提供了一个开源的深度学习医疗影像平台 NiftyNet。NiftyNet 的目标是加速和简化这些解决方案的开发,并为研究社区提供一个开放的机制来使用、适应和构建各自的研究成果。
NiftyNet 为各种医疗影像应用提供模块化的深度学习流程,包括语义分割、回归、图像生成和表征学习等常见的医学影像任务。NiftyNet 的处理流程包括数据加载、数据增强、网络架构、损失函数和评估指标等组件,它们都是针对并利用医学影像分析和计算机辅助诊断的特性而构建的。NiftyNet 构建在 TensorFlow 上,默认使用 TensorBoard 支持二维、三维图像和计算图的可视化。
我们使用 NiftyNet 构建了三个说明性的医疗影像分析应用:(1)对多个腹部器官计算机断层扫描(computed tomography)图像进行语义分割。(2)图像回归(image regression)以根据脑磁共振图像预测 CT 衰减图。(3)为指定的解剖姿势生成模拟的超声波图像。
NiftyNet 能使研究者快速开发和部署深度学习解决方案,并在构建语义分割、图像回归、图像生成和表征学习等应用外拓展新型解决方案。