Bootstrap

【驭风计划 深度学习】实验4:脑部MRI图像分割

案例4:脑部MRI图像分割

 

相关知识点:语义分割、医学图像处理(skimage, medpy)、可视化(matplotlib)

1 任务简介

      本次案例将使用深度学习技术来完成脑部MRI(磁共振)图像分割任务,即对于处理好的一张MRI图像,通过神经网络分割出其中病变的区域。本次案例使用的数据集来自Kaggle[1],共包含110位病人的MRI数据,每位病人对应多张通道数为3的.tif格式图像,其对应的分割结果为单通道黑白图像(白色为病变区域),示例如下。

image.png

第一行: MRI图像;第二行: 对应的分割标签

      更详细的背景介绍请参考文献[2].

参考程序

      本次案例提供了完整、可供运行的参考程序,来源于Kaggle[3]和GitHub[4],建议在参考程序的基础上进行修改来完成本案例。各个程序简介如下:

ltrain.ipynb用来完成模型训练

linference.ipynb用来对训练后的模型进行推理

lunet.py定义了U-Net网络结构,参考资料[5]

lloss.py定义了损失函数(Dice Loss),参考资料[6]

ldataset.py用来定义和读取数据集

ltransform.py用来预处理数据

lutils.py定义了若干辅助函数

llogger.py用来记录训练过程(使用TensorBoard[7]功能),包括损失函数曲线等

      参考程序对运行环境的要求如下,请自行调整环境至适配,否则可能无法运行:

ltorch==2.0.*

ltorchvision==0.15.*

lipykernel==6.26.*

lmatplotlib==3.8.*

lmedpy==0.4.*

lscipy==1.11.*

lnumpy==1.23.* (1.24+版本无法运行,需要先降级)

lscikit-image==0.22.*

limageio==2.31.*

ltensorboard==2.15.*

ltqdm==4.*

      其它细节以及示例运行结果可直接参考Kaggle[3]和GitHub[4]。

要求和建议

      在参考程序的基础上,使用深度学习技术,尝试提升该模型在脑部MRI图像上的分割效果,以程序最终输出的validation mean DSC值作为评价标准(参考程序约为90%)。可从网络结构(替换U-Net)、损失函数(替换Dice Loss)、训练过程(如优化器)等角度尝试改进,还可参考通用图像分割的一些技巧[8]。

注意事项

l提交所有代码和一份案例报告;

l案例报告应详细介绍所有改进尝试及对应的结果(包括DSC值和若干分割结果示例),无论是否成功提升模型效果,并对结果作出分析;

l禁止任何形式的抄袭,借鉴开源程序务必加以说明。

5 参考资料

[1] Brain MRI数据集: https://www.kaggle.com/mateuszbuda/lgg-mri-segmentation

[2] Buda et al. Association of genomic subtypes of lower-grade gliomas with shape features automatically extracted by a deep learning algorithm. Computers in Biology and Medicine 2019.

[3] 示例程序: https://www.kaggle.com/mateuszbuda/brain-segmentation-pytorch

[4] 示例程序: GitHub - mateuszbuda/brain-segmentation-pytorch: U-Net implementation in PyTorch for FLAIR abnormality segmentation in brain MRI

[5] Ronneberger et al. U-Net: Convolutional Networks for Biomedical Image Segmentation. MICCAI 2015.

[6] Dice Loss: https://zhuanlan.zhihu.com/p/86704421

[7] TensorBoard参考资料:https://www.tensorflow.org/tensorboard 

[8] Minaee et al. Image Segmentation Using Deep Learning: A Survey. arXiv 2020.

完整代码私信

;