zl程序教程

您现在的位置是:首页 >  Java

当前栏目

CMRxMotion2022—— 呼吸运动下心脏MRI分析挑战赛

2023-02-18 16:34:20 时间

今天将分享呼吸运动下心脏MRI分割和分类完整实现版本,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。

一、CMRxMotion2022介绍

CMR 成像质量易受呼吸运动伪影的影响。挑战赛目标是评估呼吸运动对 CMR 成像质量的影响,并检查自动分割模型在不同呼吸运动水平下的鲁棒性。心脏磁共振 (CMR) 成像是目前评估心脏结构和功能的金标准模式。基于机器学习的方法在以前的 CMR 挑战(例如 ACDC、M&Ms)中取得了显着的性能。然而,在临床实践中,模型性能受到不一致的成像环境(例如,供应商和协议)、人口变化(正常与病理病例)和意外的人类行为(例如,身体运动)的挑战。通过将训练有素的机器学习模型暴露于“压力测试”中的极端情况来调查潜在的故障模式很有用。迄今为止,模型通用性方面的现有挑战大都集中在供应商可变性和解剖结构变化上,而对人类行为的影响的探索较少。对于 CMR 采集,呼吸运动是主要问题之一。有急性症状的患者不能遵守屏气指令,导致图像质量下降和分析不准确。

在这个挑战数据是真实的心脏 MRI 数据集,包括具有不同呼吸运动水平的极端情况。目标是提供这样一个极端的 CMR 数据集,以便更全面地评估呼吸运动下的模型鲁棒性。对于 60 名健康志愿者,使用相同的 MRI 扫描仪(西门子 3T MRI 扫描仪 MAGNETOM Vida)进行临床 CMR 扫描。志愿者被训练分别以 4 种方式行动:a) 遵守屏气指令;b) 将屏气时间减半;c) 自由呼吸;d) 用力呼吸。

因此,对于单个志愿者,获得了 4 个呼吸运动级别下的一组 CMR 图像。放射科医生首先评估图像质量并识别具有非诊断质量的图像。对于具有诊断质量的图像,放射科医师进一步分割左心室、左心室心肌和右心室。

二、CMRxMotion2022任务

基于这个极端的心脏数据集,共有两个任务:1)图像质量控制任务和 2)分割任务。

任务 1:呼吸运动伪影的图像质量评估。

背景:CMR 图像质量受呼吸运动的影响。具有严重呼吸运动伪影的图像不符合诊断条件,应尽可能重新获取。开发一个自动质量控制模型来识别具有非诊断质量的图像是有用的。在这项任务中,我们希望挑战参与者为提供的极端 CMR 数据集开发质量控制模型。

使命:该算法的目标是评估面对呼吸运动影响的 CMR 图像质量。在临床常规中,大多数患者可以遵守屏气指令,但有些患者不能。在挑战队列中,我们招募志愿者对不同水平的呼吸运动采取行动,以模拟临床常规中的极端病例。

任务 2:具有呼吸运动伪影的CMR图像分割

背景:自动化 CMR 图像分割模型在面对看不见的极端图像时容易失败。在这项任务中,我们准备了一个极端数据集,模拟临床实践中由于呼吸运动引起的不同程度的图像退化。对于具有诊断质量的图像,我们希望挑战参与者开发一个对呼吸运动伪影具有鲁棒性的分割模型。

使命:目的是针对呼吸运动的影响开发稳健的心脏分割模型。

三、CMRxMotion2022数据集

任务 1:呼吸运动伪影的图像质量评估。

数据:扫描仪:西门子 3T MRI 扫描仪 (MAGNETOM Vida)。CMR 采集:我们遵循先前出版物 (doi: 10.1007/s43657-02100018x) 中报告的 CMR 扫描的建议。我们使用临床序列“TrueFISP”进行 CINE 成像。采集的成像平面包括短轴(SA)和两腔(2CH)、三腔(3CH)和四腔(4CH)长轴(LA)视图等。心动周期被分割为15 –25 个相位,时间分辨率为 50 ms。对于这个挑战,我们只提供舒张末期 (ED) 帧的 SA 图像。典型扫描参数:空间分辨率2.0×2.0 mm 2,切片厚度 8.0 mm,切片间隙 4.0 mm。SOP 要求志愿者遵守屏气指令。对于 60 名志愿者,每位参与者在一次访问中进行 4 阶段扫描:1) 遵守屏气指令;2) 将屏气时间减半;3)自由呼吸;4) 用力呼吸。这样的 CMR 扫描大约需要 40 分钟。志愿者接受培训以在采集过程中保持心率稳定。预处理:我们不对 CMR 图像进行预处理,除了从 DICOM 文件到 NIFTI 文件的匿名化和导出。我们建议参与团队自己进行重新采样和标准化。

注解:所有图像均在 3D Slicer (www.slicer.org) 中查看,图像质量由 3 位放射科医师按照以下 5 分制评分:诊断质量极佳 (5)、诊断质量好 (4)、诊断质量一般 ( 3)、诊断质量差 (2) 和非诊断性 (1)。在 5 个类别中,质量得分为 4-5的图像被标记为轻度运动伪影,质量得分为 3的图像被标记为中等运动伪影,质量得分为 1-2的图像被标记为严重的运动伪影。标签1:轻微运动;标签2:中间运动;标签 3:剧烈运动。3 位放射科医生分别对图像进行评分,并在他们不同意时投票选出最终标签。训练、验证和测试用例都包括 3D 短轴 CMR 图像及其二进制质量标签(即诊断资格)。160个训练用例(20个志愿者,25*4*2帧),40个验证用例(5个志愿者,5*4*2帧),160个测试用例(20个志愿者,20*4*2帧)。训练数据可用,而验证和测试用例对参与者不可用。允许公开可用的数据。但必须提供数据来源。

指标:在sckit中实现的平均精度 (AP) 。

任务 2:具有呼吸运动伪影的CMR图像分割

数据:扫描仪:西门子 3T MRI 扫描仪 (MAGNETOM Vida)。CMR 采集:我们遵循先前出版物 (doi: 10.1007/s43657-02100018x) 中报告的 CMR 扫描的建议。我们使用临床序列“TrueFISP”进行 CINE 成像。采集的成像平面包括短轴(SA)和两腔(2CH)、三腔(3CH)和四腔(4CH)长轴(LA)视图等。心动周期被分割为15 –25 个相位,时间分辨率为 50 ms。对于这个挑战,我们只提供舒张末期 (ED) 帧的 SA 图像。典型扫描参数:空间分辨率2.0×2.0 mm 2,切片厚度 8.0 mm,切片间隙 4.0 mm。SOP 要求志愿者遵守屏气指令。对于 60 名志愿者,每位参与者在一次访问中进行 4 阶段扫描:1) 遵守屏气指令;2) 将屏气时间减半;3)自由呼吸;4) 用力呼吸。这样的 CMR 扫描大约需要 40 分钟。志愿者接受培训以在采集过程中保持心率稳定。预处理:我们不对 CMR 图像进行预处理,除了从 DICOM 文件到 NIFTI 文件的匿名化和导出。我们建议参与团队自己进行重新采样和标准化。

注解:在训练、验证和测试集中具有诊断质量的所有图像均由经验丰富的放射科医师 (ZS) 在 3D Slicer (www.slicer.org) 中分割,包括左 (LV) 和右心室 (RV) 血池的轮廓,如以及左心室心肌 (MYO)。标签是:1 (LV)、2 (MYO) 和 3 (RV)。此挑战遵循先前挑战(M&M 挑战,MICCAI 20)中的手动分割实践。放射科医生研究了 M&M 挑战中的真实注释并遵循注释协议。训练、验证和测试用例都包括 3D 短轴 CMR 图像及其对左心室、左心室心肌和右心室的手动分割。160个训练用例(20个志愿者,20*4*2帧),40个验证用例(5个志愿者,5*4*2帧),160个测试用例(20个志愿者,20*4*2帧)。具有严重运动伪影的图像从该任务中被丢弃并且不被分割。训练数据可用,而验证和测试用例对参与者不可用。允许公开可用的数据。但必须提供数据来源。

指标:骰子分数和 95% Hausdorff 距离。

四、技术路线

分析图像大小,平均大小是454x501x11,所以针对图像质量分割任务将图像缩放到256x256x16大小,针对图像分割任务将图像缩放到320x320x16。

任务1:图像质量分类

1.1、标签0有70,标签1有69,标签2有21。对图像进行缩放固定到256x256x16大小,并采用均值为0,方差为1进行归一化,将数据按照80%和20%比例分成训练集和验证集,其中训练集对标签0、1和2分别进行5倍、5倍和15倍数据增强。

1.2、搭建ResNet3d网络,使用AdamW优化器,学习率是0.001,batchsize是12,epoch是500,损失函数采用交叉熵。

1.3、训练结果和验证结果

1.4、验证集分类结果

三类标签分别ROC曲线及AUC值,平均AUC值为0.8954

三类标签分别PR曲线及AUC值,平均值AUC为0.84084

混淆矩阵

分类评估指标

precision recall f1-score support

0.0 0.88 0.88 0.88 16

1.0 0.83 0.88 0.86 17

2.0 1.00 0.86 0.92 7

avg / total 0.88 0.88 0.88 40

任务2:CMR图像分割

2.1、分割数据一共有139例,对图像进行缩放固定到320x320x16大小,并采用均值为0,方差为1进行归一化,将数据划分成训练集(129例)和验证集(10例),其中训练集进行5倍数据增强。

2.2、搭建VNet3d网络,使用Adam优化器,学习率是0.001,batchsize是1,epoch是200,损失函数采用多类dice loss。

2.3、训练结果和验证结果

2.4、验证集分类结果

左边是金标准结果,右边是预测结果

测试集数据部分预测结果

测试图像先进行图像质量分类,如果类别是0或1,进行图像分割,得到分割结果。下面是部分图像质量分割结果和分割预测结果。

P022-1-ED.nii.gz,0

P022-1-ES.nii.gz,1

P022-2-ED.nii.gz,0

P022-2-ES.nii.gz,0

P022-3-ED.nii.gz,0

P022-3-ES.nii.gz,0

P022-4-ED.nii.gz,0

P024-2-ED.nii.gz,1

P024-2-ES.nii.gz,1

P024-3-ED.nii.gz,1

为了方便大家更高效地学习,我将代码进行了整理并更新到github上,点击原文链接即可访问。由于之前都是使用tensorflow1.14的进行代码实验开发的,为了方便pytorch的朋友们也可以复现实验结果,我将tensorflow版本的代码翻译转换成pytorch版本的。

如果大家觉得这个项目还不错,希望大家给个Star并Fork,可以让更多的人学习。如果有任何问题,随时给我留言我会及时回复的。