基于MMSeg实现医学图像分割
计划基于mmsegmentation框架以及Unet模型实现医学图像分割
MMSegmentation安装
参考:https://blog.youkuaiyun.com/Eason___/article/details/130432021
Unet + CHASE_DB1
参考:https://blog.youkuaiyun.com/Eason___/article/details/130432021
CHASE_DB1数据集介绍
是一个用于眼底图像分析的公开数据集,它由英国Reading大学的计算机科学系发布。这个数据集包含了从28名受试者(14名健康人和14名患有糖尿病性视网膜病变的病人)的左眼和右眼中获取的28幅眼底图像,因此共有56幅图像。每幅图像的分辨率为999x960像素。
数据集准备
参考:https://blog.youkuaiyun.com/Eason___/article/details/130432021
训练过程
我们将所有训练代码从mmsegmentation中抽离出来,所保留文件整体架构如图所示:
具体步骤:
1.下载数据集
https://staffnet.kingston.ac.uk/~ku15565/CHASE_DB1/assets/CHASEDB1.zip
2.处理数据集
python tools/dataset_converters/chase_db1.py CHASEDB1.zip
3.使用Unet训练
python tools/train.py configs/unet/unet-s5-d16_fcn_4xb4-40k_chase-db1-128x128.py
4.训练设置
迭代4000次,没400次进行验证
使用SGD,lr初始化:0.01
5.测试
需要在tools -> test.py 中的钩子函数trigger_visualization_hook中添加(测试数据太少了)
visualization_hook['interval'] = 1
整体函数如
def trigger_visualization_hook(cfg, args):
default_hooks = cfg.default_hooks
if 'visualization' in default_hooks:
visualization_hook = default_hooks['visualization']
# Turn on visualization
visualization_hook['draw'] = True
visualization_hook['interval'] = 1
if args.show:
visualization_hook['show'] = True
visualization_hook['wait_time'] = args.wait_time
if args.show_dir:
visualizer = cfg.visualizer
visualizer['save_dir'] = args.show_dir
else:
raise RuntimeError(
'VisualizationHook must be included in default_hooks.'
'refer to usage '
'"visualization=dict(type=\'VisualizationHook\')"')
return cfg
测试命令
python tools/test.py configs/unet/unet-s5-d16_fcn_4xb4-40k_chase-db1-128x128.py work_dirs/unet-s5-d16_fcn_4xb4-40k_chase-db1-128x128/iter_4000.pth --show-dir work_dirs/unet-s5-d16_fcn_4xb4-40k_chase-db1-128x128/result
6.查看可视化结果