DL_class
学堂在线《深度学习》实验课代码+报告(其中实验1和实验6有配套PPT),授课老师为胡晓林老师。课程链接:https://www.xuetangx.com/training/DP080910033751/619488?channel=i.area.manual_search。
持续更新中。
所有代码为作者所写,并非最后的“标准答案”,只有实验6被扣了1分,其余皆是满分。仓库链接:https://github.com/W-caner/DL_classs。 此外,欢迎关注我的CSDN:https://blog.csdn.net/Can__er?type=blog。
部分数据集由于过大无法上传,我会在博客中给出下载链接。如果对代码有疑问,有更好的思路等,也非常欢迎在评论区与我交流~
实验4:脑部 MRI 图像分割
1 任务简介
本次案例将使用深度学习技术来完成脑部MRI(磁共振)图像分割任务,即对于处理好的一张MRI图像,通过神经网络分割出其中病变的区域。本次案例使用的数据集来自Kaggle[1],共包含110位病人的MRI数据,每位病人对应多张通道数为3的.tif格式图像,其对应的分割结果为单通道黑白图像(白色为病变区域),示例如下。
第一行: MRI图像;第二行: 对应的分割标签。
更详细的背景介绍请参考文献[2]。
2 参考程序
本次案例提供了完整、可供运行的参考程序,来源于Kaggle[3]和GitHub[4],建议在参考程序的基础上进行修改来完成本案例。各个程序简介如下:
- train.ipynb用来完成模型训练
- inference.ipynb用来对训练后的模型进行推理
- unet.py定义了U-Net网络结构,参考资料[5]
- loss.py定义了损失函数(Dice Loss),参考资料[6]
- dataset.py用来定义和读取数据集
- transform.py用来预处理数据
- utils.py定义了若干辅助函数
- logger.py用来记录训练过程(使用TensorBoard[7]功能),包括损失函数曲线等
参考程序对运行环境的要求如下,请自行调整环境至适配,否则无法运行:
- numpy==1.16.2
- tensorflow==2.0.0 (注意版本)
- scikit-learn==0.20.3
- scikit-image==0.14.2
- imageio==2.5.0
- medpy==0.4.0 (需自行安装)
- Pillow==6.0.0
- scipy==1.2.1 (1.3+版本无法运行,需要先降级)
- pandas==0.24.2
其它细节以及示例运行结果可直接参考Kaggle[3]和GitHub[4]。
3 要求和建议
在参考程序的基础上,使用深度学习技术,尝试提升该模型在脑部MRI图像上的分割效果,以程序最终输出的validation mean DSC值作为评价标准(参考程序约为90%)。可从网络结构(替换U-Net)、损失函数(替换Dice Loss)、训练过程(如优化器)等角度尝试改进,还可参考通用图像分割的一些技巧[8]。
4 注意事项
-
提交所有代码和一份案例报告;
-
案例报告应详细介绍所有改进尝试及对应的结果(包括DSC值和若干分割结果示例),无论是否成功提升模型效果,并对结果作出分析;
-
禁止任何形式的抄袭,借鉴开源程序务必加以说明。
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] 示例程序: https://github.com/mateuszbuda/brain-segmentation-pytorch
[5] Ronneberger et al. U-Net: Convolutiona- Networks for Biomedica- 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.