脑肿瘤图像分割:
关于脑部肿瘤图像分割目前找到的工具及预训练模型是Niftynet中的 ==anisotropic_nets_brats_challenge_model_zoo==.,通过级联的全卷积神经网络,将脑肿瘤的多模态磁共振(MR)图像分割为背景和三个分层区域:整个肿瘤,肿瘤核心和增强肿瘤核心。其Dice score 已能达到0.90499。
NiftyNet是一个基于TensorFlow的开源卷积神经网络平台,用于医学图像分析和图像引导疗法的研究。NiftyNet是专门为医学影像服务的,集成了大量的医疗常见模型,如U-Net,V-Net等等,同时它也为常见的医疗场景下提供了预训练模型,比如脑部肿瘤分割,腹部器官分割,脑部神经束的分割;它提供的预训练模型都是基于大牛关于医疗场景论文的实现。
数据需求
该分割模型基于多模态增强磁共振图像,需要至少四个模态:3D T1(增强前后)、T2、FLAIR。3D T1分辨率应在1mm等体素左右,T2及FLAIR可用临床常规平扫参数,建议层厚不超过3mm。
T1图:
T1C图:
T2图:
Flair图:
能够看出对于不同序列模态的图像,对于肿瘤的感知确实是不同的。
分割预测图:
实现步骤:
首先需要安装niftynet平台
niftynet依赖于TensorFlow运行,所以必须先安装TensorFlow:
pip install tensorflow
pip install niftynet
有时候通过pip方式安装niftynet会出现错误,可以直接下载github的开源包,然后运行。
需要用到NiftyNetModelZoo 下的anisotropic_nets_brats_challenge预训练模型。
python3 net_download.py anisotropic_nets_brats_challenge_model_zoo
默认的话会在/root/niftynet目录下下载到预训练权重及测试数据等,通过上述命令的控制台输出就能查看到输出文件位置。
data:测试影像数据的文件
extensions:模型的相关配置文件及模型代码
models:预训练权重文件
在extensions下找到对应预训练模型的相关配置(以ini文件后缀),配置不同模态图像的文件位置:
在nifty文件目录下运行net_run.py(pip 安装可直接运行net_run),这里仅以轴位图处理,对于冠状位等处理加载不同的ini文件即可:
python3 net_run.py inference -a anisotropic_nets_brats_challenge.brats_seg_app.BRATSApp -c /root/niftynet/extensions/anisotropic_nets_brats_challenge/whole_tumor_axial.ini
便会在指定输出目录下生成分割预测图。
Clara关于脑部肿瘤分割模型-clara_mri_seg_brain_tumors_br16_t1c2tc_no_amp.
clara_mri_seg_brain_tumors_br16_t1c2tc_no_amp 是关于3D脑肿瘤分割中肿瘤核心区的预训练模型权重。
该训练模型是在“Multimodal Brain Tumor Segmentation Challenge (BraTS) 2018.”大赛中通过
243个训练数据集训练得出。
运行环境:NVIDIA-Clara GPU:V100
输入:单通道的3D MRIs (T1c)
输出:单通道的肿瘤核心区的3D掩膜图
准确率:0.850.
附:医学常识:
脑肿瘤手术扫描头部肿瘤的核磁共振有四种不同策略,自旋晶格弛豫(T1),T1-对比(T1C),自旋自旋松弛(T2)和流体衰减反转恢复(FLAIR),对应着四种不同的形态,每一种扫描的策略对不同的肿瘤组织会有特定的反应,可以利用多种形态的核磁共振图像来自动的区分肿瘤组织,辅助医生诊断。
1. T1看解剖,T2看病变
T1就是断层解剖图,白质是白的,灰质是灰的,脑脊液是黑的;
T2是病变增强,会对病变部位进行突出量化显示,这样在T1图中不怎么显眼的病变部位在T2就会量化显示。
2. FLAIR:提供没有CSF信号的T2WI,其本质是对脑部病理改变具有高度的敏感性,减轻水信号干扰,凸显病灶,避免脑室干扰判读。 为什么需要FLAIR.
在T2WI影像中因为CSF的影像会造成病灶位置的对比度不是特别明显,所以需要在T2WI的基础上对病灶部分进一步凸显,去除CSF的影像,所以就出现了FLAIR.