写在前面
目前只分析了文章的大体内容和我个人认为的比较重要的细节,代码实现还没仔细看,后续有时间会补充代码细节部分。
文章地址:Generative Adversarial Network-based Noncontrast CT Angiography for Aorta and Carotid Arteries
代码地址:GitHub - yml-bit/CTA-GAN: synthesis CTA using CT base GAN model
PS:代码仓库并未提供详细的环境依赖项说明,但文章在补充材料中说明了环境的主要配置:python3.8 + pytorch1.7.1 + cu110,想要复现的小伙伴可以参考一下。
一、动机
碘对比剂广泛用于CTA成像,但可能会对人体造成不良影响,同时碘对比剂的使用耗时且昂贵。
如果深度神经网络可以根据非增强CT(noncontrast CT,NCCT)生成对应的CTA图像,且生成图像的质量足以用于临床诊断,这将是具有重要意义的。
二、数据和方法
1. 数据:以病人为单位
- 训练集:1137;
- 验证集:400;
- 测试集:212;
共1749 例。外部测试集42例。
2. 数据筛选原则
数据筛选对于我们进行相关的研究具有重要的参考价值。本研究存在以下情况的数据不能纳入:
- CT影像中存在伪影,包括运动伪影或者金属伪影;
- NCCT和CTA的slice thickness、slice number或者slice location不一致;
- 由于CTA出现问题导致扫描失败的,包括无对比剂充盈或者对比剂充盈不足,影响临床诊断;
- 已经进行过手术的动脉,例如动脉瘤手术;
3. 数据类型
生成的CTA影像能用于临床诊断才有意义。文中数据可进一步细分为如下类型:
- 动脉瘤
- 动脉粥样硬化
- 动脉夹层
- 正常动脉
文中对内部测试集 和外部测试集各类别的数量进行了说明,并对将生成结果用于临床诊断,绘制了如下所示的混淆矩阵。但并未说明训练集中各类别数据的情况。
4. 模型
文中对模型部分的介绍比较笼统,后续有机会结合代码仔细看一下。文中放置了相对完整的模型结构图,主要分为三部分:
- 生成器:根据NCCT生成对应的CTA图像
- 校正器:固定NCCT,将CTA往NCCT配准
- 判别器:判别真实CTA和生成的CTA(SynCTA)
具体结构如下图所示:
三、结果
1. 定量评估
文中对比了pix2pix 和Reg-GAN 这两种方法,参考的评价指标为NMSE (normalized mean absolute error)、SSIM 和PSNR,具体结果如下图所示:
2. 视觉质量评估
两名高级放射医师独立评估CTA和SynCTA的图像质量,分为三个分数段:差(1分)、满意(2分)、高(3分)。质量评估的主要方面包括:血管壁清晰度、管腔边缘锐利度以及管腔对比度。
然后对内部测试集和外部测试集的CTA和SynCTA的打分情况进行统计学分析,结果显示两者无明显统计学差异,结果图就不放了。
3. 诊断评估
为了验证SynCTA用于临床诊断的可行性,两名高级放射医师以CTA为金标准,对SynCTA进行临床诊断,并根据诊断结果绘制混淆矩阵,具体诊断结果在2-3数据类型中体现,总体而言诊断准确率还是相当高的。
四、不足
- 单中心数据,且模型有时会在增强区域出现错误和遗漏;
- GAN训练过程中仍然可能会出现坍缩或不稳定的情况。