方法文章

自动化12导联心电图(ECG)数字化与波形数据库(WFDB)标准化:来自越南临床数据的见解

DOI:

10.3791/70359

2026年3月13日

本文内容

摘要

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

本文介绍了一种可重复的实验方案,用于将真实临床报告中的12导联心电图图像转换为经过校准且符合WFDB标准的数字信号,以实现标准化的后续分析。该方案整合了网格校准、基于YOLOv12的导联定位、波形提取(维特比算法或改进的中心线法)以及可视化验证检查点。

摘要

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

许多诊所仍将12导联心电图(ECG)以纸质打印记录或嵌入PDF报告中的光栅图像形式存档,这限制了数据的互操作性以及后续的计算分析。本文介绍一种可重复的数字化方案,可将心电图报告图像转换为符合WaveForm DataBase(WFDB)标准的数字信号,用于标准化的后续分析。该方案包括以下步骤:(i)网格检测与像素到物理坐标的校准,(ii)利用目标检测模型自动定位并标注12个导联区域,(iii)信号预处理与归一化,以及(iv)采用连续性约束路径法(维特比算法)或改进的中心线提取方法进行波形提取。该工作流程旨在应对临床报告中多样的版面布局、网格可见性的差异以及常见的成像伪影,并在每个阶段设置可视化检查点以实现质量控制。该方案输出时间对齐的12导联WFDB记录,适用于信号处理和机器学习流程中的可重复性分析。

引言

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

12导联心电图(ECG)是心血管评估的基石,广泛用于筛查、监测和临床决策1。尽管数字化进程持续推进,许多医疗机构仍以纸质打印件或嵌入PDF报告中的光栅图像形式存储心电图,这降低了可检索性,并使长期随访变得复杂2。更重要的是,基于图像的存储方式阻碍了标准化心电图工具包和机器学习流程的直接应用,因为后者需要经过校准的时间序列信号而非图像数据3。本实验方案的总体目标是提供一种可重复且标准化的方法,将心电图图像转换为适用于后续计算分析的校准数字信号。

自动心电图数字化旨在从扫描的心电图图像中重建电压-时间信号4。然而,实际临床心电图扫描常存在异质性的报告布局、可变的网格可见性、压缩伪影、不均匀照明,以及诸如印章或注释等额外标记5。这些因素可能降低导联定位和波形追踪的准确性,限制不同医疗机构和设备厂商之间的可重复性6。因此,一个实用的数字化工作流程应提供稳健的网格校准、可靠的导联分离与标注,并以广泛采用的信号格式(如WFDB)进行标准化导出7。标准化的数字格式有助于提升机构间的互操作性,并便于利用成熟的心电图信号处理库进行可重复的分析。

已有多种心电图(ECG)数字化工具被提出(表1),但由于其性能可能对扫描质量和版式变化较为敏感,临床应用仍具挑战性8,9,10。最近的研究还探索了利用深度学习从纸质心电图记录中自动提取导联信号,进一步凸显了在多样版式和伪影条件下实现稳健解析的必要性11。此外,已有相关数字化软件被开发,以提升在异质临床条件下的鲁棒性12。与此同时,为促进方法开发与基准测试,一些面向心电图图像研究的开源工具包和资源也相继推出13。与现有工具可能对版式变化敏感或仅适用于特定扫描格式不同,本方案通过集成网格校准、自动导联定位以及标准化的 WFDB 导出流程,提升了在不同类型临床报告中的稳健性。本研究聚焦于一个端到端的处理流程,旨在处理真实世界中的心电图 PDF 文件与扫描记录,强调可重复性,并输出符合 WFDB 标准的多导联信号,以支持后续分析。

我们提出了一种完全自动化且可重复的协议,用于将12导联心电图(ECG)报告图像转换为符合WFDB标准的数字信号。该协议整合了以下三个部分:(i)基于标准心电图设置(25 mm·s-1,10 mm·mV-1)的基于网格的像素到物理坐标的校准;(ii)基于YOLOv12的导联区域和导联图标的定位,以支持在异构报告布局中实现鲁棒的导联识别;(iii)两种可选的波形提取流程,包括一种改进的中心线方法,旨在在线条粗细变化及存在微小间断的情况下提高波形连续性。这些组件与先前关于信号提取、鲁棒数字化软件以及在异质临床条件下实用数字化策略的研究相一致14。所生成的WFDB记录可支持使用标准心电图工具链进行后续分析。该协议特别适用于对以扫描纸质记录或光栅化PDF形式存档的心电图报告进行回顾性数字化,在缺乏或严重扭曲网格线的情况下可能需要调整。

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

方案

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

在回顾性数据收集之前,须获得Tam Duc医院伦理委员会(机构审查委员会)的批准(方案编号:24751791)。在分析前,通过删除直接标识信息(例如患者姓名、病历号、出生日期和就诊日期),并替换为非标识性的研究编号,对所有心电图报告进行去标识化处理。模型的开发与评估仅使用去标识化的心电图数据。

1. 准备材料、软件和输入文件

  1. 克隆项目代码仓库,并验证目录结构,包括 baselines/、core_binary/、data/、evaluation/、outputs/、public/、results/、weight/ 和 wrapper/,以及 README.md 和 requirements.txt(参见数据可用性)。
    1. 在 data/ 和 outputs/ 下创建(或验证)运行时子文件夹,包括 data/raw_pdf/、data/raw_scans/、outputs/images/、outputs/preprocessed/、outputs/calibrated/、outputs/yolo_boxes/、outputs/lead_crops/、outputs/masks/、outputs/traces/、outputs/signals_csv/ 和 outputs/wfdb/。
  2. 安装所需的软件依赖项(Python、OpenCV、NumPy/SciPy、PyTorch、Ultralytics(YOLOv12 训练/推理框架)/YOLO 和 WFDB),并在材料清单中记录版本信息(参见材料表)。
  3. 将心电图输入文件放入 data/raw_pdf/(PDF 报告)或 data/raw_scans/(纸质扫描件)。
  4. 以 300 dpi 的分辨率将纸质心电图扫描为灰度图像,并保持页面平整,以避免透视畸变(参见 材料表)。
    注意:在心电图打印件上标注了纸速和增益时,请使用其报告值(例如,25 mm·s⁻1,10 mm·mV⁻1),以与整体工作流程中的校准阶段保持一致(参见 图 1)。

2. 将心电图PDF文件转换为图像

  1. 将每个 ECG PDF 页面转换为 300 dpi 的灰度图像。
  2. 将每页保存为 .png(推荐)或 .tiff 格式,使用最小压缩以保留网格线和波形细节。
  3. 将导出的图像存储在 outputs/images/ 目录中,并在所有流程阶段保持文件名一致(代表性输入布局参见 图 2)。

3. 预处理心电图图像(对比度和噪声)

  1. 应用CLAHE以增强微弱的网格线和波形对比度。
  2. 应用轻微的高斯模糊,以减少高频噪声,同时保留波形边缘。
  3. 裁剪大面积的黑色边距,同时保留完整的ECG内容区域。
  4. 如果扫描或导出的图像发生旋转,则将其旋转至正立方向。
  5. 将预处理后的输出保存至outputs/preprocessed/目录下。
  6. 目视检查部分输出结果,确认网格线和波形轨迹仍清晰可辨(见图2)。
    注意:避免过度平滑导致细小波形片段断裂。

4. 检测网格间距并校准尺度(像素 → 毫米)

  1. 使用霍夫直线检测方法检测垂直/水平网格线的网格间距。
  2. 估算相邻网格线之间的平均距离(像素),并存储网格间距值。
  3. 若霍夫直线检测失败,则通过行/列投影的傅里叶分析估算间距。
  4. 若傅里叶分析对点状网格无效,则使用霍夫圆检测(或点阵周期性)估算间距。
  5. 若所有网格检测方法均失败,则设置一个备用间距值(例如 59 像素),并将该记录标记为需人工复核。
  6. 结合检测到的间距与心电图纸标准(例如 25 mm·s⁻1 和 10 mm·mV⁻1;见图 1),计算像素到毫米的换算关系。
  7. 使用双三次插值对图像进行重缩放,以统一不同记录之间的尺度。
  8. 将校准后的图像保存至 outputs/calibrated/ 目录,并按记录保存校准日志。
    注:有关网格间距检测及像素到物理尺度校准的实现导向伪代码,请参见补充文件 1(算法 1)

使用 YOLOv12 定位 12 导联区域

  1. 加载用于导联区域检测的训练好的 YOLOv12 模型(训练参数见表2)。
    1. 使用未经架构修改的 YOLOv12 训练/推理框架实现,以检测并分割每幅心电图图像中的12个导联区域,用于后续数字化处理(见图1)。
  2. 使用配置的推理尺寸(例如,imgsz = 1024)对每幅校准后的图像进行推理。
  3. 应用非极大值抑制,并为每个导联类别保留置信度最高的边界框。
  4. 以可复现的格式(TXT/CSV/JSON)将边界框导出至 outputs/yolo_boxes/ 目录。
  5. 保存显示预测导联区域框及标签的叠加图像,用于验证(见图3图4)。
  6. 标记存在缺失导联、重复导联或布局不一致的记录,并在需要时将其排除在自动导出之外。
    注:有关基于 YOLOv12 的导联区域提取及边界框后处理的伪代码,请参见补充文件1(算法2)

6. 使用 YOLOv12 定位铅图标

  1. 加载用于铅图标检测的已训练 YOLOv12 模型(训练参数见表 2)。
    1. 使用相同的 YOLOv12 训练/推理框架实现,不进行架构修改,以在异构布局中实现鲁棒的铅图标检测(见图 1)。
  2. 使用正文中报告的配置推理尺寸和阈值,对每张校准图像进行推理。
  3. 应用非极大值抑制,并为每个铅图标类别保留置信度最高的边界框。
  4. 将以可复现的格式(TXT/CSV/JSON)导出铅图标的边界框至 outputs/yolo_boxes/ 目录。
  5. 保存叠加图像,显示预测的铅图标边界框及类别标签以供验证(见图 5图 6)。
  6. 评估铅图标检测性能,并报告定量结果及指标定义(见表 5表 6)。
  7. 在相同的评估协议和运行时报告规范下,比较铅区域检测与铅图标检测结果。

7. 裁剪每个条带区域并标准化裁剪图像

  1. 使用预测的边界框坐标从校准后的图像中裁剪每个导联区域。
  2. 当不同布局中的导联区域大小不一时,将裁剪后的图像填充至统一尺寸。
  3. 将裁剪后的图像按照命名规则 recordID_leadName.png 保存至 outputs/lead_crops/ 目录下。
  4. 在进行波形提取前,确认每条记录均包含全部12个导联(参见 表3表4)。

8. 为每个导联的感兴趣区域生成二值信号掩膜

  1. 将每个导联的作物强度归一化至8位强度范围。
  2. 应用自适应阈值法(或Otsu阈值法)以分离波形轨迹与背景/网格线。
  3. 应用形态学清理(例如开运算/闭运算)以抑制残留的网格伪影。
  4. 通过插值或基于连通性的填充方法桥接轨迹中的小间隙。
  5. 将最终的二值掩膜保存至outputs/masks/目录,并在代表性样本上验证掩膜质量(见图7)。
    注意:若使用边界框引导的掩膜方法,请参考补充文件1(算法3)以获取导联区域掩膜生成的详细信息。

9. 提取波形轨迹(选择基于维特比的路径提取或改进的中心线提取方法)。

  1. 使用基于维特比的路径提取方法提取波形轨迹
    1. 在二值掩膜上计算代价图,对不连续性进行惩罚,并优先选择类似轨迹的像素。
    2. 运行维特比解码,以在导联裁剪区域上获得受连续性约束的路径。
    3. 对提取的路径进行平滑处理,并在必要时插值缺失的片段。
    4. 将路径坐标保存至 outputs/traces/ 目录,并保存叠加图用于验证(见图8)。
      ​注意:有关基于维特比的波形提取与可视化伪代码,请参见补充文件2(算法4)
  2. 使用改进的中心线提取方法提取波形轨迹
    1. 对二值掩膜进行骨架化处理,以获得中心线候选。
    2. 去除由网格噪声引起的虚假分支和孤立成分。
    3. 对中心线进行平滑处理,并强制实现从左到右的连续性。
    4. 对较短的缺失片段进行插值,以保持波形的连续性。
    5. 调整数据集特定的参数(例如二值化阈值、形态学核大小、剪枝长度、平滑强度和间隙插值限制),以在研究数据集的成像条件下优化中心线的连续性。
    6. 将中心线坐标保存至 outputs/traces/ 目录,并保存叠加图用于验证(见图9)。
      ​注意:采用基于标准骨架化的中心线提取原理,并通过数据集特定的参数调优和后处理提高鲁棒性;有关中心线提取、平滑/插值、参数设置及存储的伪代码,请参见补充文件2(算法5)。

10. 将像素轨迹转换为校准信号(mV 与时间的关系)

  1. 使用校准的网格比例(10 mm·mV⁻1)和像素到毫米的映射关系,将像素 y 坐标转换为电压值。
  2. 使用校准的网格比例(25 mm·s⁻1)和像素到毫米的映射关系,将像素 x 坐标转换为时间。
  3. 将每条导联重采样至固定的采样率(例如 100 Hz),并对齐全部 12 条导联的时间。
  4. 将 12 导联信号保存为 CSV 文件,输出至 outputs/signals_csv/ 目录下,列名称和单位需保持一致。

11. 导出 WFDB 记录并验证输出结果

  1. 使用 WFDB 库将每个 12 导联 CSV 文件转换为 WFDB 记录。
  2. 编写包含记录名称、采样率、信号增益、基线和导联名称的 .hea 头文件。
  3. 使用一致的数值类型(例如 16 位)和单位约定(例如 µV)编写 .dat 信号文件。
  4. 重新加载每个 WFDB 记录,并绘制全部 12 个导联,以确认导联顺序、命名和时间对齐(见图 10)。
  5. 将最终的 WFDB 输出保存至 outputs/wfdb/ 目录,并保存验证图。
    注:CSV 到 WFDB 转换的详细信息,以及在元数据可用时可选的注释写入,请参见补充文件 3(算法 7)

12. 检查点与故障排除

  1. 拒绝或标记任何存在不可靠的网格校准、导联缺失或严重遮挡的记录。
  2. 对被标记的记录,使用调整后的参数重新运行预处理和校准。
  3. 当遗漏导联时,使用更新后的置信度/交并比(IoU)阈值重新运行检测。
  4. 在结果表格中总结失败模式和排除标准。

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

结果

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

输入准备
心电图报告已成功从 PDF 文件或扫描件转换为标准化的、坐标轴对齐的图像,适用于后续处理。对于纸质心电图,以 300 dpi 的分辨率进行灰度扫描,并保存为 PNG/TIFF 格式,以减少压缩伪影。最常见的输入问题包括:(i) PDF 导出导致的过度压缩,(ii) 部分裁剪造成导联区域或标签缺失,以及 (iii) 智能手机拍摄照片时产生的透视畸变。在视觉检查点中,受裁剪或严重畸变影响的记录会被标记,并在未纠正前排除在全自动处理之外。

网格检测与校准
在心电图报告中,对于网格清晰可见的情况,网格估计算法在不同报告间均产生了稳定的像素到物理尺寸的校准因子。校准依据标准心电图设置:时间轴为 25 mm·s⁻1,振幅轴为 10 mm·mV⁻1,从而实现从像素坐标转换为经过校准的时间–振幅信号。代表性叠加结果显示,所估计的网格周期性与每份报告多个区域内的印刷网格交点位置一致。失败案例主要出现在网格线模糊或缺失、光照梯度强烈或严重压缩伪影的图像中,这些情况降...

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

讨论

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

本研究介绍了一种自动化的端到端流程,该流程通过网格校准、基于YOLOv12的导联定位以及采用维特比路径搜索或改进的中心线方法进行波形提取,将来自PDF或扫描纸质记录的12导联心电图图像转换为符合WFDB标准的数字信号1。该方案包含多个验证检查点(边界框叠加图、波形轨迹叠加图以及WFDB重新加载图),以支持数字化过程中的质量保证。

将心电图图像转换为标准化的时间序列信号,可提高与现有心电图工具链的互操作性,并为信号处理和机器学习工作流程中的下游分析提供可重复性2。通过整合自动导联定位和WFDB导出功能,该流程减少了手动裁剪操作,加快了在真实临床布局下对心电图档案进行回顾性数字化的速度3

当网格线较淡或缺失、波形轨迹与较强的印章/注释重叠,或压缩伪影扭曲了细微的轨迹结构时,性能可能会下降。导联定位对检测器训练数据中未包含的报告布局可能较为敏感,这会降低在不同医疗机构或设备厂商之间的通用性...

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

披露

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

作者不存在可能影响本文报道工作的竞争性财务利益或个人关系。

致谢

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

作者感谢塔姆德医院提供去标识的心电图报告,并感谢该院在数据收集期间提供的机构支持。

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

材料

本文使用的材料清单
姓名公司目录编号评论
GPU(运行时测试)NVIDIAGeForce RTX 3060 12 GB用于运行时测试的 NVIDIA GeForce RTX 3060 12 GB
NumPyNumPy1.26.4数值处理
OpenCVOpenCV4.10.0.84图像预处理(去倾斜、滤波)
操作系统(运行时测试)MicrosoftWindows 11用于运行时测试的 Windows 11
PDF 转图像转换器本方案V1以 300 DPI 进行 PDF 光栅化;在数据可用性中提供仓库 URL
PythonPython 软件基金会3.12.5运行时环境
PyTorchPyTorch0.5.0YOLOv12 的后端支持
扫描仪CanonDR-C240300 DPI,灰度模式,推荐使用 PNG/TIFF 格式
scikit-imagescikit-image0.25.0骨架化与形态学处理(中心线提取)
UltralyticsUltralytics8.3.155YOLOv12 训练与推理框架
wfdb(Python 包)PhysioNet4.1.2WFDB 导出(.hea/.dat 格式)

参考文献

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Muhammet, A., Fani, D., Christos, A., Idris, Z., Gruschen, R. V. Digitization and Linkage of PDF Formatted 12-Lead Electrocardiograms in Adult Congenital Heart Disease. CJC Pediatric and Congenit Heart Dis. 4 (5), 263-273 (2025).
  2. Baydoun, M., et al. High precision digitization of paper-based ECG records: A step toward smart machine learning. IEEE J Transl Eng Health Med. 7, 1-8 (2019).
  3. Demolder, A., et al. High precision ECG digitization using artificial intelligence. Biomed Signal Process Control. 72, 103331(2024).
  4. Prim, J., et al. A data pipeline for extraction and processing of electrocardiogram recordings. Comput Cardiol. 48, 1-4 (2021).
  5. Rautela, D., Bajeli, D., Kumar, M., Vaidya, A. Identifying cardiovascular disorders through ECG image analysis. Knowl-Based Syst. 186, 104925(2020).
  6. Reyna, M. A., et al. ECG-Image-Database: A dataset of ECG images with real-world imaging and patient annotations. arXiv. , (2024).
  7. Ribeiro, H., et al. Automatic 12-lead ECG classification using a convolutional network ensemble. Comput Cardiol. 47, 1-4 (2020).
  8. Jessy, K. S. J., Manikandan, D. G., Hemalatha, M. S., Veroncia, M. V. Detection of cardiovascular disease using ECG images in machine learning and deep learning. Int J Sci Res Sci Technol. 11, 131-139 (2024).
  9. Digitization of ECG records using signal extraction techniques. Karnaschandani, H., et al. 2024 Second International Conference on Data Science and Information System (ICDSIS), Hassan, India, , 1-8 (2024).
  10. Nguyen, C. V., Nguyen, H. N., Nguyen, D. A., Do, C. D. VinDigitizer: An image processing approach to digitize paper ECG records. Comput Cardiol. 51, 1-4 (2024).
  11. Patil, R., Narkhede, R. D., Vama, B., Suraliya, S., Raut, S. R. Auto lead extraction in ECG images: Identification of ECG paper records using deep learning. Biomed Signal Process Control. 72, 103339(2024).
  12. Santamaría, F., et al. ECGMiner: A flexible software for accurately digitizing ECG. Comput Methods Programs Biomed. 246, 108053(2024).
  13. Shivashankara, K. K., et al. An open ECG-image toolkit: ECG-ImageNet – an open image generation toolbox to facilitate deep learning-based electrocardiogram digitization. Biomed Signal Process. Control. 72, 103342(2024).
  14. Wang, L. H., et al. Paper-recorded ECG digitization method with automatic reference voltage selection for telemonitoring and diagnosis. Diagnostics. 14 (17), 1910(1910).
  15. Wang, T., Zhang, Y., Liu, X., Huang, Z., Qin, F. Automatic Detection of Arrhythmias Using a YOLO-Based Network with Long-Duration ECG Signals. Eng Proc. 2 (1), 84(2020).
  16. Wu, H., et al. A fully automated paper ECG digitisation algorithm using deep learning. Sci Rep. 12, 25284(2022).
  17. Júnior, O., et al. An automated machine learning method to efficiently classify the 12-lead ECG signal acquisition quality. Computing in Cardiology. 50, 1-6 (2023).
  18. Lence, A., et al. ECGtizer: A fully automated digitizing and signal recovery pipeline for electrocardiograms. arXiv. , (2024).
  19. Büyüksolak, O., Öksüz, İ Pic2Diagnosis: A Method for Diagnosis of Cardiovascular Diseases from the Printed ECG Pictures. Proc. IEEE EMBC. , (2025).

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

重印与许可

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

申请许可

标签

12
视频即将推出

相关文章