结肠直肠癌在美国是死亡率第二的癌症。虽然这种疾病非常凶险,但是只要在癌变前诊断出结肠中的癌前病变息肉,并对其进行切除就可以大幅降低患癌风险。然而由于息肉大小、外形以及检查过程中没有完全覆盖所有的肠壁区域等原因,导致内窥镜医师在结肠镜检查时不能完全检测到全部息肉,包括有癌变风险的息肉。

为了解决这一问题,来自谷歌等机构的研究人员提出了一种检测结肠镜检查过程中没有被覆盖的区域的算法C2D2,从而进一步改善检查过程中的视野覆盖率。

python结肠镜图像分割 肠镜下结肠图像_python结肠镜图像分割

python结肠镜图像分割 肠镜下结肠图像_python结肠镜图像分割_02

结肠直肠癌 (Colorectal Cancer,CRC) 是全球性的健康问题,在美国是死亡率第二的癌症,每年造成几乎90万人死亡。最近的新闻报道中也有多名著名人士不幸患上了这一病症。虽然这种疾病非常凶险,但却可以通过积极的诊断预防,在癌变前诊断出结肠中的癌前病变息肉,并对其进行切除就可以大幅降低患癌风险。

据统计,腺瘤检出率 (ADR,定义为检查中医生至少发现一个息肉的比率) 每增加一个百分点,就能使得CRCs的发生率降低6% (60个月内结肠镜CRC诊断为阴性)。结肠镜检查被公认为是检测和去除息肉的黄金标准。然而文献中的研究数据表明内窥镜医师在结肠镜检查时平均会遗漏22%-28%的息肉,而20%-24%会有癌变风险的息肉会被遗漏。

造成遗漏的原因主要有两个:

1.由于尺寸较小或者扁平的外形使得出现在视野中的息肉被遗漏了;

2.由于息肉没有出现在内窥镜视野中,这主要是由于检查过程中没有完全覆盖所有的肠壁区域。

为了解决这一问题,来自谷歌等机构的研究人员提出了一种检测结肠镜检查过程中没有被覆盖的区域的算法C2D2 (Colonoscopy Coverage Deficiency via Depth algorithm),从而进一步改善检查过程中的视野覆盖率。C2D2算法在运行过程对结肠进行了局域三维重建,并在此基础上识别出视野内哪些区域是被覆盖的、哪些是视野不曾被覆盖的。算法可以实时检测出结肠中的特定区域是否缺乏足够的检查覆盖,并辅助内窥镜医师对检查不足的区域再次进行观察。这种算法可以实时地、不需要标定地、无监督地方式进行,并可以在较大的尺度上运行。

预警:以下部分图片可能会引起不适!

C2D2 算法

在考虑结肠检查覆盖率的时候,如何估计覆盖率尤为重要。覆盖率定义为相关区域中接受完整检查区域的比例。当回溯分析对于医生如何进行进一步检查有指导性意义时,对于检查覆盖率实时估计就更加有现实意义。

python结肠镜图像分割 肠镜下结肠图像_人工智能_03

这一功能的有效性非常明显,既可以提醒医生目前检查阶段的覆盖率,又可以在覆盖率不足的时候帮助医生进一步检查相关区域以提升息肉的检出率。

python结肠镜图像分割 肠镜下结肠图像_算法_04

这一算法通过两阶段的处理来完成,首先计算出每帧结肠视频中的深度图,随后基于深度图中计算出检查覆盖率。

python结肠镜图像分割 肠镜下结肠图像_深度学习_05

算法从单张RGB中计算出深度图、而后基于深度图计算检查覆盖比率,从而可以快速决定某个区域的检查覆盖率是否不足、是否需要再次进行检查。

深度图的计算过程包括了深度估计和位姿估计,包括了内窥镜在空间中的位姿和朝向。除了计算检测覆盖率以外,深度和位姿估计结果也可用于其他任务。深度图可以辅助检查扁平形状的息肉;而位姿则可以用于帮助医生重新定位需要检测的区域;同时深度图和位姿的组合可以实现肠内的导航和可视化。

python结肠镜图像分割 肠镜下结肠图像_python结肠镜图像分割_06

第一行是RBG图,下面是算法计算出的深度图,黄色代表距离更远,蓝色更近。

为了从深度图中计算出覆盖率,研究人员利用了合成数据与真实数据对C2D2模型进行了训练。其中合成数据是基于结肠的三维模型用图形学的方法合成的视频,并标记了从0到1的基准覆盖率;而针对真实视频则没有基准覆盖率。

python结肠镜图像分割 肠镜下结肠图像_python结肠镜图像分割_07

合成内窥镜视频上的性能

当使用合成数据集时,基准数据覆盖率可以直接用于评测算法的性能。研究人员利用了MAE来评价算法得到结果与基准的差别,C2D2的MAE为0.075,这意味着算法与基准输出的差别为7.5%,然而医生对同样的视频进行评测误差达到了17.7%,这证明了本文的算法在合成数据集上比医生精度高约2.4倍。

python结肠镜图像分割 肠镜下结肠图像_深度学习_08

真实数据上的表现

但算法的好坏还是需要在真实数据集上进行验证。但真实数据的难点在于没有基准数据标签,人类医生也无法获取到准确的覆盖率精度。但C2D2依然能够在真实数据集上进行推理。为了验证算法的表现,研究人员选择了间接的方式来对算法进行测评。算法首先对视频进行处理获取覆盖率评分,随后由专家来评定算法的评分是否正确。基于这种方法,专家对于C2D2得到的结果得到了93%的认可率,这意味着这算法基本上通过了专家人眼的检测。

python结肠镜图像分割 肠镜下结肠图像_机器学习_09

真实结肠镜数据上的覆盖结果。第一行是覆盖较好的结果,覆盖率为0.931;中间结果有一些部分不能看到,覆盖率为0.472;最后一行是覆盖很差的结果,覆盖率为0.227;
未来的研究计划

这一研究表明,这一算法可以帮助医生有效提升对于肠中息肉的发现能力,提高检出率意味着可以大幅度降低直结肠癌的发生率,拯救更多的生命。这一研究有力地证明了医生可以利用仪器来大幅度增强自身的诊断能力,特别是在在诊疗过程中来提升病患的医疗效果。在这一工作的基础上,研究人员将要在未来开发更为有效的自动化息肉检测方法,实现实时的息肉检测算法。