方法文章

利用人类患者的非对比计算机断层扫描图像训练人工智能模型进行主动脉夹层检测

DOI:

10.3791/71056

2026年5月29日

本文内容

摘要

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

该方案描述了训练人工智能模型,利用非对比计算机断层扫描图像检测主动脉夹层,从而实现临床环境中快速且易于访问的筛查。

摘要

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

主动脉夹层(AD)是血管重塑稳态受损的极端后果,临床实践中需要快速且准确地识别。该协议描述了基于人工智能的学习模型,利用非对比计算机断层扫描(CT)进行阿尔茨海默症识别。在一所A级三级医院收集了阿尔茨海默病患者和非阿尔茨海默病患者的胸部CT和主动脉CT血管造影数据集。每张轴向图像上的血管结构均通过开源软件LabelMe手动分割和注释,建立了用于模型开发和评估的分割数据集。数据集被按8:1:1的比例划分为训练、测试和验证集,用于模型训练和验证。在开发出具有稳健检测性能的模型后,构建了一个在线处理平台,以有效可视化和展示结果。该方法为快速、初步筛查AD提供了强大且智能的工具,并解决了在不同临床环境中对早期检测的临床需求。

引言

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

主动脉夹层(AD)是一种危及生命的急性疾病,其特征是血液通过内膜撕裂进入主动脉壁内侧层,形成一个剥离性且扩张的假腔1。如果没有及时诊断和治疗,死亡率极高,24小时内(包括到达医院前死亡)的发生率为93%。增强型计算机断层扫描血管造影(CTA)是诊断阿尔茨海默病的黄金标准,因为它能清晰显示真伪管腔、撕裂位置及受累程度然而,CTA需要注射含碘对比剂,这类药物存在过敏反应和肾毒性风险4,5。此外,在许多初级医院或急诊环境中,实现24小时快速服务也非常困难。相比之下,非对比CT(NCCT)扫描不需要对比剂,提供便捷、快速的检查,且辐射剂量相对较低,应用范围更广。然而,NCCT影像中真实与假腔量以及内膜瓣与血液之间的对比度较低,给医生的视觉诊断带来了重大挑战,尤其在经验较少的临床医生中容易被漏诊或误诊。因此,开发能够直接从NCCT图像实现高精度、高灵敏度自动检测阿尔茨海默病的技术具有重要的临床价值和应用前景。

深度学习的最新进展使得从非对比剂医学图像中准确识别病理特征成为可能 6,7。高分辨率网络(HRNet)维护整个网络的高分辨率特征映射,而挤压与激发网络(SENet)通过建模通道间依赖性来增强特征表示8。HRNet和SENet的结合为NCCT图像的多尺度表现提供了有效的特征提取策略,这对于检测细微的AD符号(如内膜瓣和双腔征)至关重要。在这里,这一特征提取概念通过MMDetection和基于级联区域的卷积神经网络(R-CNN)在对象检测框架内实现,实现了主动脉夹层的稳健定位和分类。

本研究基于HRNet+SENet的人工智能(AI)模型采用逐步训练过程,从NCCT图像中识别AD(见图1)。它强调数据集标准化、多尺度特征提取和临床适应性。该方法的目标是为AD检测提供可靠的方法,尤其是在急诊和初级保健环境中,增强对比剂成像有限或无法获得。

figure-introduction-1
图1。主动脉夹层(AD)检测人工智能(AI)模型的工作流程。利用非对比度计算机断层扫描(NCCT)图像进行AD检测的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影像,其中包括150例经CTA确认的阿尔茨海默病患者和150例无阿尔茨海默病患者。包括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. 每个完成的多边形注释都用两个标准化且案例一致的类别标注:“主动脉夹层”用于主动脉夹层,“健康”用于正常主动脉图像。
    2. 确保标签名称在所有注释中保持一致,且在数据集中拼写和格式保持一致。
    3. 从下拉列表选择标签或手动输入。
    4. 点击确定或回车确认标签分配。
    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/。每个子目录包含一个包含该分割的图片文件的图片/文件夹。
    2. 将特定 COCO 的注释文件存储在每个对应的分区目录中,而非数据集根目录中。训练、验证和测试注释分别保存为训练/output_coco_annotations_train.json、有效/output_coco_annotations_valid.json和测试/output_coco_annotations_test.json。这些文件通过在模型设置时配置特定分拆ann_file和img_prefix路径来加载。
    3. 在训练、验证和测试数据集之间保持一致的目录结构,以确保与训练框架的兼容性。
  10. 训练数据流水线
    1. 加载图片和边界框注释。
    2. 在保持宽高比的同时,将图像调整到512×512。
    3. 以0.5的概率应用随机翻转。
    4. 使用显式参数设置应用数据增强。训练期间,输入图像被调整为512×512像素(keep_ratio=真实),随后进行增强:随机翻转(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实现于MMDection 2.x中,并初始化为对应的COCO预训练权重cascade_rcnn_hrnetv2p_w32_20e_coco_20200208-
      928455a4.pth。
    2. 使用HRNetV2p-W32作为骨干,级联R-CNN作为检测器,按照步骤1.12.1中描述的配置定义。
    3. 将基础MMDection配置调整为两类任务。模型针对双类任务进行了修改,将num_classes = 2,类命名为“主动脉夹层”和“健康”,并更新了训练、验证和测试集的数据集路径。最终可复现的配置被保存为AorticDissection_full_pipeline_config.py。
    4. 将类别定义为主动脉夹层和健康类别。
  13. 训练配置
    1. 使用NVIDIA RTX 3080 Ti显卡进行训练。
    2. 将优化器设置为随机梯度下降。
    3. 将学习率设为0.0001。
    4. 把动量设为0.9。
    5. 将权重衰减设为0.0001。
    6. 将纪元数设为30。
    7. 每个显卡的批次大小设为1。
    8. 应用基于历元的余弦退火学习率调度器,并明确预热设置。学习率使用基于历元的余弦退火调度器(by_epoch=真),前500次迭代采用线性预热(warmup_ratio=1e-4)。训练持续了30个纪元,最低学习率由min_lr_ratio=1e-2控制。
    9. 使用FocalLoss和SmoothL1Loss。
      注意:数据集构建和拆分后,协议可暂停。在继续前,先安全存储所有处理过的数据。

figure-protocol-1
图2NCCT图像上AD的手动注释。 代表性轴向NCCT图像,演示人工标注AD。主动脉区和病理特征,包括内膜瓣,用绿色多边形勾勒出。这张带注释的图像用于模型训练。请点击此处查看该图的放大版本。

2. 模型架构

  1. 模型设置
    1. 在MMDetection 2.x中,使用可执行的配置代码构建双类检测器。该探测器是在MMDetection 2.x中,通过官方cascade_rcnn_hrnetv2p_w32_20e_coco.py配置通过Config.fromfile(...)构建的,然后根据两类任务(num_classes=2,类名:“主动脉夹层”、“健康”)进行了修改,并采用了定制的数据集路径。模型通过build_detector(...)和init_detector(...)实例化,最终完整配置导出为AorticDissection_full_pipeline_config.py。
    2. 向模型输入轴向NCCT图像。
    3. 输出边界框、类别标签和置信度评分(见图3)。
    4. 利用数据集准备过程中生成的基于多边形的分割注释来定义感兴趣区域,并将这些注释转换为边界框,用于模型训练、可视化和最终检测输出。
      注意:检测框架利用这些边界框生成最终分类输出和置信度分数。
  2. 骨干结构
    1. 使用HRNetV2p-W32作为骨干网络。
    2. 移除所有插件模块以确保训练稳定。
  3. 检测架构
    1. 使用Cascade R-CNN进行检测。
  4. 损失与锚配置
    1. 通过明确参数设置配置分类和回归损失。在投资回报率(ROI)标题中,分类损耗被设置为焦点损失,use_sigmoid=真实,loss_weight=1.0。投资回报率边界盒回归损失设为SmoothL1Loss,β=1.0,loss_weight=0.5。在RPN中,分类损失也设为焦点损失,use_sigmoid=真,loss_weight=1.0;而回归损失设为L1损失,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. 两个类别的预测输出:主动脉夹层和健康类别。

figure-protocol-2
图3利用AI模型检测AD。左:输入NCCT图像。右图:模型输出显示阿尔茨海默病的检测,预测区域以边界框和相关置信度评分高亮显示。图示展示了在NCCT图像中识别AD的过程及检测结果的可视化。置信度评分代表模型对AD检测的预测置信度,请点击此处查看该图的更大版本。

3. 模型训练

  1. 训练环境
    1. 在NVIDIA RTX 3080 Ti显卡上进行训练。
    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. 将优化器设置为随机梯度下降。
    2. 将学习率设为0.0001。
    3. 把动量设为0.9。
    4. 将权重衰减设为0.0001。
    5. 将纪元数设为30。
    6. 批量设置为1。
    7. 设置调度器进行余弦退火并进行预热。
  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)选择表现最佳的模型。
      注意:根据研究目标,选择标准可能包括准确性、敏感性、特异性或骰子系数。
  6. 最终评估
    1. 利用COCOeval在独立测试集中评估模型。评估通过脚本full_pipeline_mmdet2_aortic_dissection.py执行,条件为run_train=False,run_eval=True。脚本加载选定的检查点,在独立测试集中生成预测,转换为COCO格式的结果文件,并利用COCOeval计算bbox指标。
      注意:评估在相同的MMDetection 2.28.2环境下进行,以确保与训练设置的一致性。
    2. 报告指标包括mAP、AP50、AP75和各类别AP。
    3. 使用相同的数据集划分和度量定义进行评估,以确保实验间的一致性。

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

结果

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

本节呈现了两类对象检测模型的可重复且实现验证后,严格符合经过验证的训练流水线和COCO评估框架(见图1)。所有指标均基于COCOeval的预留测试集,没有伪造数据或未经验证的指标。

定量检测性能

该模型在保留测试集(包含140张图像(154条注释)上进行了评估,采用标准COCO边界框检测指标。从第30纪元验证集中选出最优检查点,且bbox_mAP = 0.6339。相应的正式测试集评估结果如下:整体bbox mAP = 0.337,bbox AP50 = 0.534,bbox AP75 = 0.399。每类平均精度为主动脉夹层0.2537,健康0.2017,反映了模型在NCCT成像条件下的检测表现。

定性可视化结果

该模型以...

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

讨论

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

临床医生,尤其是急诊医生,在患者出现非典型症状或急诊患者量高导致时间紧张时,可能会出现诊断表现下降。相比之下,训练用于识别NCCT上的AD的AI模型,即使在无症状患者中也能提供稳定且稳定的性能,不受读取时间限制,从而有望提高诊断AD和内血肿9的准确性和效率。

数据集构建阶段对模型性能至关重要,8:1:1的划分比例平衡了足够的训练和可靠的评估。HRNet+SENet架构是提取多尺度特征的关键。HRNet为细微的AD符号保持高分辨率信息,而SENet则增强了模型对判别通道的关注,克服了NCCT图像10中对比度低的挑战。

对于计算资源有限的机构,批处理规模可减少为8或4至11,并可使用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-SNAP开发团队3.8.0用于图像格式转换和切片导出
JSON 注释文件LabelMe 输出标准JSON格式包含注释坐标和标签
LabelMe麻省理工学院CSAIL4.8.3用于手动图像注释
MMDetectionOpenMMLab2.28.2用于实现的对象检测框架
MMCVOpenMMLab1.7.2支持MMDetection的核心库
数字派NumPy 开发者1.26.4数值计算库
NVIDIA RTX 3080 Ti GPUNVIDIARTX 3080 Ti训练用硬件
OpenCVOpenCV4.9.0图像处理与可视化
pycocotoolsPyPI / COCO API 2.0.6COCO格式评估库
蟒蛇Python 软件基础3.10.20编程环境
PyTorchPyTorch2.0.1+CU118深度学习框架
火炬视界PyTorch0.15.2+cu118视觉工具
Ubuntu 操作系统正典22.04.1 LTS培训环境操作系统

重印与许可

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

申请许可

标签

CT CT CT

相关文章