方法文章

利用人类患者非增强计算机断层扫描图像训练人工智能模型以检测主动脉夹层

DOI:

10.3791/71056

2026年5月29日

本文内容

摘要

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

本方案描述了利用非增强计算机断层扫描图像训练人工智能模型以检测主动脉夹层的方法,可在临床环境中实现快速且便捷的筛查。

摘要

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

主动脉夹层(AD)是血管重塑稳态失调的一种极端后果,在临床实践中需要快速且准确的识别。本方案描述了一种基于人工智能的学习模型,用于利用非增强计算机断层扫描(CT)进行AD识别。胸部CT和主动脉CT血管成像数据集来自某三级甲等医院的AD患者和非AD患者。使用开源软件LabelMe对每幅轴位图像上的血管结构进行手动分割和标注,以建立用于模型开发与评估的分割数据集。该数据集按8:1:1的比例划分为训练集、测试集和验证集,用于模型训练与验证。在成功开发出具有强大检测性能的模型后,构建了一个在线处理平台,以有效可视化并展示结果。该方法为主动脉夹层的快速初步筛查提供了一种强大而智能的工具,满足了在不同临床环境中实现便捷早期检测的未被满足的临床需求。

引言

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

主动脉夹层(AD)是一种危及生命的急性疾病,其特征是血液通过内膜撕裂口进入主动脉壁中层,形成一个扩展的假腔1。若未能及时诊断和治疗,其死亡率极高,发病24小时内(包括到达医院前死亡)的死亡率高达93%2。增强计算机断层扫描血管成像(CTA)是诊断AD的金标准,因其能够清晰显示真腔与假腔、撕裂口位置以及受累范围3。然而,CTA需要注射含碘对比剂,存在过敏反应和肾毒性风险4,5。此外,在许多基层医院或急诊环境中,实现24小时快速检查较为困难。相比之下,非增强CT(NCCT)无需使用对比剂,具有操作便捷、检查快速、辐射剂量相对较低、适用范围广等优势。但在NCCT图像中,真腔与假腔之间以及内膜瓣与血液之间的对比度较低,给医生的视觉判读带来显著挑战,容易导致漏诊或误诊,尤其在经验较少的临床医生中更为常见。因此,开发一种能够直接从NCCT图像中实现高精度、高敏感性自动检测AD的技术,具有重要的临床价值和应用前景。

深度学习的最新进展使得能够从非增强医学图像中准确识别病理特征6,7。高分辨率网络(HRNet)在整个网络中保持高分辨率特征图,而压缩-激励网络(SENet)通过建模通道间依赖关系来增强特征表示能力8。HRNet 与 SENet 的结合为非增强CT(NCCT)图像的多尺度表征提供了有效的特征提取策略,这对于检测主动脉夹层(AD)的细微征象(如内膜瓣和双腔征)至关重要。本文在此将该特征提取理念集成至基于MMDetection平台的级联区域建议卷积神经网络(Cascade R-CNN)框架中,从而实现对主动脉夹层的稳健定位与分类。

本研究中,基于 HRNet+SENet 的人工智能(AI)模型采用逐步训练流程,从非增强 CT(NCCT)图像中识别动脉瘤性蛛网膜下腔出血(AD)(图 1)。该方法强调数据集标准化、多尺度特征提取以及临床适用性。该技术的目标是为 AD 的检测提供一种可靠的手段,特别是在增强成像受限或无法获取的急诊和基层医疗环境中。

AD模型训练示意图;步骤:数据准备、模型构建、训练、评估、临床应用。
图1. 用于主动脉夹层(AD)检测的人工智能(AI)模型工作流程。基于非对比增强计算机断层扫描(NCCT)图像的AI模型训练流程示意图。该工作流程包括数据准备(图像采集与标注、格式标准化与预处理、数据集划分)、模型构建(采用HRNetV2p-W32主干网络并集成于Cascade R-CNN检测框架中,使用COCO预训练权重进行初始化)、模型训练(SGD优化器、余弦退火学习率策略和交叉熵损失函数)、模型评估(定量指标与定性可视化)以及临床应用。请点击此处查看该图的高清版本。

访问受限。请登录或开始试用以查看此内容。

方案

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

本研究中所有与人类相关数据的收集均遵循《赫尔辛基宣言》的伦理标准,并经吉林大学中日联谊医院伦理委员会批准(批准号:2019103004)。在收集相关信息前,已从所有个体参与者或其法定监护人处获得书面知情同意。所有受试者的个人信息均被严格保密以保护其隐私,在数据收集过程中未对受试者进行任何实验性操作。

1. 数据集构建

  1. 数据收集与数据集划分
    1. 收集2022年3月1日至2025年3月1日期间在中国吉林大学中日联谊医院收治的300例患者的临床非增强胸部CT图像,其中包括经CTA证实的150例主动脉夹层(AD)患者和150例无AD患者。包含A型和B型AD。所有原始影像数据因患者隐私和伦理限制而仅限机构内部使用,不对外公开。
    2. 在患者层面将数据集按8:1:1的比例划分为训练集、验证集和测试集。确保同一患者的全部切片均保留在同一子集中,以避免数据泄露。
    3. 基于AD/非AD诊断进行分层抽样,以在所有子集中保持类别平衡。
    4. 数据集已在患者层面预先划分,如上所述,以避免患者层面的信息泄露。训练算法采用固定的随机种子42,用于控制训练过程中的随机操作,包括数据打乱、在线增强和模型初始化;该种子独立设置,不用于数据集划分。
      警告:在处理前务必确保所有患者影像数据已完全匿名化,以保护患者隐私并符合机构和监管指南。
  2. 数据排除
    1. 排除存在严重运动伪影的图像。
    2. 排除扫描范围不足、未能覆盖整个主动脉的图像。
    3. 排除图像噪声过大的图像,定义为降主动脉区域CT衰减值的标准差超过30 HU。
  3. 图像转换
    1. 加载DICOM图像数据,并使用ITK-SNAP图像处理软件导出轴位图像切片。
    2. 启动ITK-SNAP,点击文件 → 打开主图像。
    3. 选择源DICOM序列并点击打开。
    4. 使用切片滑块浏览轴位切片。
    5. 通过点击文件 → 导出 → 图像切片来导出每张切片。
    6. 选择PNG格式并指定输出目录。
    7. 将每张切片保存为独立文件。
    8. 所有导出的图像切片均按照固定格式统一命名:IMG-[PatientID]-[SliceIndex].png,采用唯一患者标识符和连续切片编号,以确保可追溯性。
  4. 图像标注设置
    1. 使用LabelMe标注软件打开每张轴位图像。
    2. 启动LabelMe,点击打开目录。
    3. 导航至包含轴位图像的文件夹并加载所有图像。
  5. 手动分割
    1. 在LabelMe中选择“创建多边形”工具以标注血管结构(图2)。标注时包括主动脉管腔、内膜瓣及可见的夹层边界。在标注过程中,包含内膜瓣在内的整个主动脉结构被勾勒为一个单一的整合区域。标注范围统一覆盖包含夹层病变和内膜撕裂边界的全部可见主动脉节段,不单独分割或区分真腔、假腔或独立的血管亚区。
    2. 通过沿结构放置顶点来定义血管边界。
    3. 通过将最后一个顶点连接至第一个顶点来闭合多边形。
    4. 根据需要使用“修改多边形”工具调整标注。
  6. 标签分配
    1. 每个完成的多边形标注均使用两个标准化且大小写一致的类别进行标注:“Aortic Dissection”表示主动脉夹层,“Healthy”表示正常主动脉图像。
    2. 确保标签名称在所有标注中保持一致,并在整个数据集中拼写和格式完全相同。
    3. 从下拉列表中选择标签或手动输入。
    4. 点击确定或按Enter键确认标签分配。
    5. 保存标注以生成JSON文件。
      注意:不同操作者之间的手动标注可能存在差异。应确保标注标准一致,并尽可能引入专家验证。
  7. 标注导出
    1. 启用自动保存功能,以JSON格式导出标注。
    2. 确保每个JSON文件与其原始CT切片相对应。
    3. 验证每个标注文件与其关联图像文件保持一一对应关系。
    4. 将JSON标注转换为与训练框架兼容的格式。LabelMe的JSON标注通过自定义Python脚本转换为COCO格式后用于训练。转换后的文件(output_coco_annotations_{split}.json,其中split = train、valid或test)在MMDetection 2.x中使用CocoDataset和LoadAnnotations(with_bbox=True)加载。
  8. 数据质量控制
    1. 根据预定义的质量标准剔除无效条目,包括缺失图像文件、不完整标注或图像-标注配对不匹配的情况。
    2. 生成并命名用于训练、验证和测试的清洗后COCO标注文件。清洗后的标注按照固定命名规则保存为按划分的COCO JSON文件:output_coco_annotations_{split}.json。具体而言,三个输出文件分别为train/output_coco_annotations_train.json、valid/output_coco_annotations_valid.json和test/output_coco_annotations_test.json,对应的图像分别存储于train/images/、valid/images/和test/images/目录中。这些文件可直接由MMDetection训练流程使用。
  9. 数据集组织
    1. 将数据集组织为训练、验证和测试三个划分目录。数据集根目录为aortic_dissection_dataset/,并划分为三个特定划分的子目录:train/、valid/和test/。每个子目录包含一个images/文件夹,存放属于该划分的图像文件。
    2. 将特定划分的COCO标注文件存储在各自对应的划分目录中,而非数据集根目录。训练、验证和测试标注分别保存为train/output_coco_annotations_train.json、valid/output_coco_annotations_valid.json和test/output_coco_annotations_test.json。在模型配置期间通过设置特定划分的ann_file和img_prefix路径来加载这些文件。
    3. 在训练、验证和测试数据集中保持一致的目录结构,以确保与训练框架的兼容性。
  10. 训练数据流程
    1. 加载图像和边界框标注。
    2. 将图像调整为512×512尺寸,同时保持宽高比。
    3. 以0.5的概率应用随机翻转。
    4. 使用明确参数设置进行数据增强。训练期间,输入图像被调整为512 × 512像素(keep_ratio=True),随后进行增强:随机翻转(flip_ratio=0.5)、伽马调整(gamma_limit=90–110,p=0.4)、亮度/对比度调整(brightness_limit=0.15,contrast_limit=0.15,p=0.4)、几何变换(shift_limit=0.03,scale_limit=0.08,rotate_limit=10°,p=0.4)和高斯噪声(var_limit=5.0–25.0,p=0.2)。验证和测试图像仅进行缩放、归一化和填充,不进行增强。
    5. 在所有训练运行中使用一致的参数设置执行所有增强操作,以确保可重复性。
    6. 使用均值[123.675, 116.28, 103.53]和标准差[58.395, 57.12, 57.375]对图像进行归一化。
    7. 将图像填充至32的倍数。
  11. 验证与测试流程
    1. 加载图像。
    2. 调整图像尺寸。
    3. 归一化图像。
    4. 将图像填充至32的倍数。
  12. 模型框架构建
    1. 在MMDetection 2.x中基于修改后的HRNetV2p-W32 + Cascade R-CNN配置构建一个二分类目标检测器。该检测器基于官方配置文件cascade_rcnn_hrnetv2p_w32_20e_coco.py在MMDetection 2.x中实现,并使用对应的COCO预训练权重cascade_rcnn_hrnetv2p_w32_20e_coco_20200208-
      928455a4.pth进行初始化。
    2. 使用HRNetV2p-W32作为主干网络,Cascade R-CNN作为检测器,如步骤1.12.1中所述配置所定义。
    3. 调整基础MMDetection配置以适应二分类任务。通过设置num_classes = 2,并指定类别名称为“Aortic Dissection”和“Healthy”,同时更新训练、验证和测试集的数据集路径,对模型进行修改。最终可重复的配置保存为AorticDissection_full_pipeline_config.py。
    4. 定义类别为Aortic Dissection和Healthy。
  13. 训练配置
    1. 使用NVIDIA RTX 3080 Ti GPU进行训练。
    2. 优化器设置为随机梯度下降。
    3. 学习率设置为0.0001。
    4. 动量设置为0.9。
    5. 权重衰减设置为0.0001。
    6. 训练轮数设置为30。
    7. 每GPU批量大小设置为1。
    8. 应用基于训练轮的余弦退火学习率调度器,并设置明确的预热参数。学习率采用基于训练轮的余弦退火调度器(by_epoch=True),前500次迭代使用线性预热(warmup_ratio=1e-4)。训练共进行30轮,最小学习率由min_lr_ratio=1e-2控制。
    9. 使用FocalLoss和SmoothL1Loss。
      注意:在完成数据集构建和划分后,本方案可暂停。在继续之前,请安全存储所有已处理的数据。

CT扫描横断面,标注的纵隔结构;诊断影像,胸部解剖分析。
图2 在非增强CT图像上对主动脉夹层进行人工标注。 典型的轴位非增强CT图像,显示对主动脉夹层(AD)的人工标注。主动脉区域及包括内膜瓣在内的病理特征,均使用多边形(绿色)勾画。该标注图像用于模型训练。 请点击此处查看此图的放大版本。

2. 模型架构

  1. 模型设置
    1. 使用可执行的配置代码在 MMDetection 2.x 中构建二分类检测器。该检测器基于官方配置文件 cascade_rcnn_hrnetv2p_w32_20e_coco.py,通过 Config.fromfile(...) 在 MMDetection 2.x 中构建,并针对二分类任务进行修改(num_classes=2,类别名称:“主动脉夹层”、“健康”),同时自定义数据集路径。模型通过 build_detector(...) 和 init_detector(...) 实例化,最终完整配置导出为 AorticDissection_full_pipeline_config.py。
    2. 将轴向非增强CT(NCCT)图像输入模型。
    3. 输出边界框、类别标签及置信度分数(图3)。
    4. 使用数据集准备阶段生成的基于多边形的分割标注来定义感兴趣区域,并将这些标注转换为边界框,用于模型训练、可视化及最终检测输出。
      注:检测框架利用这些边界框生成最终的分类结果和置信度分数。
  2. 主干网络配置
    1. 采用 HRNetV2p-W32 作为主干网络。
    2. 移除所有插件模块以确保训练稳定性。
  3. 检测架构
    1. 采用 Cascade R-CNN 进行检测。
  4. 损失函数与锚框配置
    1. 配置分类与回归损失函数,并明确参数设置。在 ROI 头部中,分类损失设为 FocalLoss,use_sigmoid=True,loss_weight = 1.0;ROI 边界框回归损失设为 SmoothL1Loss,beta = 1.0,loss_weight = 0.5。在 RPN 中,分类损失同样设为 FocalLoss,use_sigmoid=True,loss_weight = 1.0;回归损失设为 L1Loss,loss_weight = 1.0。
    2. 定义自定义锚框宽高比。RPN 锚框宽高比明确设置为 0.5、1.0、2.0 和 3.0。
    3. 保留官方 MMDetection 基础配置中的默认锚框尺度值。本研究采用官方 MMDetection 配置文件 cascade_rcnn_hrnetv2p_w32_20e_coco.py 中的默认锚框尺度值,未进行额外手动修改。
  5. 输出定义
    1. 输出两个类别的预测结果:主动脉夹层和健康。

通过CT扫描检测主动脉夹层,HRNet-c模型分析,结果展示。
图3. 使用人工智能模型检测主动脉夹层(AD)。 左侧:输入的非增强CT(NCCT)图像。右侧:模型输出结果,显示检测到的主动脉夹层,预测区域由边界框标出,并附有相应的置信度评分。该图展示了在NCCT图像中识别主动脉夹层的能力以及检测结果的可视化。置信度评分表示模型对主动脉夹层检测结果的预测置信水平 请点击此处查看此图的放大版本。

3. 模型训练

  1. 训练环境
    1. 在 NVIDIA RTX 3080 Ti GPU 上进行训练。
    2. 使用 Ubuntu 22.04.1 LTS 操作系统。
    3. 使用 PyTorch 2.0.1、MMCV 1.7.2 和 MMDetection 2.28.2。
  2. 模型初始化
    1. 使用指定的 COCO 预训练模型 HRNetV2p-W32 + Cascade R-CNN 检查点初始化模型。检测器从实验配置中明确指定的 COCO 预训练检查点 cascade_rcnn_hrnetv2p_w32_20e_coco_20200208-928455a4.pth 进行初始化。该检查点被用作本研究中迁移学习的初始化权重文件。
    2. 对两个类别重新初始化分类层。
  3. 超参数设置
    1. 优化器设置为随机梯度下降(SGD)。
    2. 学习率设置为 0.0001。
    3. 动量设置为 0.9。
    4. 权重衰减设置为 0.0001。
    5. 训练轮数设置为 30。
    6. 批量大小设置为 1。
    7. 学习率调度器设置为带预热的余弦退火(cosine annealing with warmup)。
  4. 训练执行
    1. 加载图像和标注数据。
    2. 将图像调整为 512×512 大小。
    3. 应用数据增强。
    4. 对图像进行归一化和填充处理。
    5. 使用自定义的 MMDetection 2.x 完整流程脚本进行模型训练:python full_pipeline_mmdet2_aortic_dissection.py,该脚本加载并调整官方基础配置,并通过 build_detector(...) 和 train_detector(...) 函数启动训练。
      注意:该脚本在已安装所有依赖项的 MMDetection 2.28.2 环境中运行,具体依赖项见材料表。
    6. 每轮训练后在验证集上评估性能。
    7. 为保证可重复性,保持一致的训练条件,包括数据顺序、参数设置和硬件配置。
  5. 模型选择
    1. 根据验证集上获得的最高边界框平均精度(bbox_mAP)选择性能最佳的模型。
      注意:选择标准可能包括准确率、灵敏度、特异性或 Dice 系数,具体取决于研究目标。
  6. 最终评估
    1. 在独立测试集上使用 COCOeval 对模型进行评估。评估通过脚本 full_pipeline_mmdet2_aortic_dissection.py 执行,其中 run_train=False 且 run_eval=True。该脚本加载选定的检查点,在独立测试集上生成预测结果,将其转换为 COCO 格式的结果文件,并使用 COCOeval 计算边界框指标。
      注意:评估在相同的 MMDetection 2.28.2 环境中进行,以确保与训练设置的一致性。
    2. 报告包括 mAP、AP50、AP75 和各类别 AP 在内的评估指标。
    3. 使用相同的数据集划分和指标定义进行评估,以确保各实验间的一致性。

访问受限。请登录或开始试用以查看此内容。

结果

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

本部分展示了基于非增强CT(NCCT)图像进行阿尔茨海默病(AD)检测的二分类目标检测模型的可重复且经实施验证的结果,严格遵循已验证的训练流程和COCO评估框架(图1)。所有指标均通过COCOeval在保留的测试集上计算得出,未使用任何伪造数据或未经验证的指标。

定量检测性能

该模型在包含140张图像(154个标注)的独立测试集上,采用标准的COCO边界框检测指标进行评估。最优检查点选自第30个训练周期的验证集,其bbox_mAP = 0.6339。对应的正式测试集评估结果如下:整体bbox mAP = 0.337,bbox AP50 = 0.534,bbox AP75 = 0.399。各类别的平均精度(AP)分别为:主动脉夹层(Aortic Dissection)0.2537,健康(Healthy)0.2017,反映了模型在非增强CT(NCCT)成像条件下的检测性能。

访问受限。请登录或开始试用以查看此内容。

讨论

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

临床医生,尤其是急诊科医生,在患者表现出非典型症状或急诊科患者数量较多导致时间受限时,可能会出现诊断效能下降的情况。相比之下,经过训练用于在非增强CT(NCCT)上识别主动脉夹层(AD)的人工智能模型,即使在无症状患者中也能提供持续且稳定的诊断性能,且不受阅片时间限制,从而有望提高主动脉夹层及壁内血肿诊断的准确性和效率9

数据集构建阶段对模型性能至关重要,8:1:1的划分比例在保证充足训练的同时实现了可靠的评估。HRNet+SENet架构是提取多尺度特征的关键。HRNet保留高分辨率信息以捕捉细微的阿尔茨海默病(AD)征象,而SENet则增强模型对判别性通道的关注,从而克服非增强CT(NCCT)图像对比度低的挑战10

对于计算资源有限的机构,可将批量大小减少至 8 或 411,并使用 HRNet-W32 架构替代 HRNet-W48,以降低模型的参数数量。若训练损失未能下降,请检查...

访问受限。请登录或开始试用以查看此内容。

披露

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

作者声明无利益冲突。

致谢

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

作者谨此感谢吉林大学中日联谊医院放射科提供临床影像数据及专家标注支持。本研究由吉林省科学技术厅(项目编号:20220402076GH)资助。

访问受限。请登录或开始试用以查看此内容。

材料

本文使用的材料清单
姓名公司目录编号评论
级联 R-CNN 架构OpenMMLab (MMDetection)configs/cascade_rcnn/cascade_
rcnn_hrnetv2p_w32_20e_coco.py
框架中使用的检测架构
胸部计算机断层扫描图像(非增强)自建临床数据集NCCT 轴向图像集用于模型开发的临床影像数据
COCO 格式标注文件在协议执行过程中生成JSON(COCO 格式)用于模型训练的转换后标注文件
COCO 预训练权重OpenMMLab MMDetection 模型库cascade_rcnn_hrnetv2p_w32_20e_
coco_20200208-928455a4.pth
用于模型初始化
HRNetV2p-W32 架构OpenMMLab (MMDetection)HRNetV2p-W32 主干网络(在 MMDetection 2.28.2 中实现)所使用的主干模型
ITK-SNAPITK-SNAP 开发团队3.8.0用于图像格式转换和切片导出
JSON 标注文件LabelMe 输出结果标准 JSON 格式包含标注坐标和标签信息
LabelMeMIT CSAIL4.8.3用于手动图像标注
MMDetectionOpenMMLab2.28.2用于实现的目标检测框架
MMCVOpenMMLab1.7.2支持 MMDetection 的核心库
NumPyNumPy 开发者1.26.4数值计算库
NVIDIA RTX 3080 Ti GPUNVIDIARTX 3080 Ti用于训练的硬件设备
OpenCVOpenCV4.9.0图像处理与可视化
pycocotoolsPyPI / COCO API 2.0.6COCO 格式评估库
PythonPython 软件基金会3.10.20编程环境
PyTorchPyTorch2.0.1+cu118深度学习框架
TorchVisionPyTorch0.15.2+cu118视觉工具库
Ubuntu 操作系统Canonical22.04.1 LTS训练环境操作系统

重印与许可

申请许可以重复使用本 JoVE 文章的文本或图表

申请许可

标签

CT CT CT

相关文章