# Translating Electrocardiograms to Cardiac Magnetic Resonance Imaging Useful for Cardiac Assessment and Disease Screening: A Multi-Center Study

省流版:

  1. 数据预处理:重采样到 250Hz,随机裁剪、带通滤波(0.67–40 Hz)去除基线漂移和高频噪声标准化后转为张量
  2. 预训练 CMR encoder:先用 CPGG 生成五倍 CMR 数据,然后把原始和生成的数据一起用于 CMR 的自监督预训练,骨架网络用的是 ViT,然后冻结权重
  3. 对比学习阶段:CMR 编码器使用上一步训练好并冻结的模型,ECG 编码器使用 ST-Mem 的权重来初始化,权重矩阵是对从冻结的 CMR 编码器里提取出来的特征进行 PCA 降维然后用公式 Wik = 1 − exp (−∥φi − φk ∥² / (2σ²)) 计算得到;sik 是 ze,i 和 zc,k 的余弦相似度 sik = cos (ze,i, zc,k) ;然后对于损失函数要加上权重进行计算(区别于标准的 infoNCE);最后训练得到 ECG encoder 的参数
  4. 下游任务:仅使用对比学习训练出来的 ECG encoder,在相同的模型架构下和多种基准方法进行比较,进行定量评估与统计分析,……

CMR 是检测心血管疾病最有效的手段,但是成本高、操作复杂,12 导联心电图虽然成本低,但是精细度不足。论文提出 CardioNet 框架,将 12 导联 ECG 数据转化为功能参数及与 CMR 成像高度匹配的合成图像,从而实现低成本高精度的心脏评估和疾病筛查。

# Methods

主要有三层:
(1) CMR 自监督表征学习
(2) ECG–CMR 对比学习对齐(让 ECG 学会 CMR 语义)
(3) ECG → CMR 生成模型

# Dataset

模型预训练用的是 UKB 数据集,包含 4 万多个受试者的 ECG-CMR 数据。
为了验证模型的泛化能力,论文在四个不同的多中心队列上进行了 zero-shot transfer 或 fine-tuning:UKB, mimic-IV-ECG31 以及来自两所医院的私有数据集:浙江大学医学院第一附属医院 (FAHZU) 和浙江大学医学院第二附属医院 (SAHZU)

# 数据预处理

参考 A population-based phenome-wide association study of cardiac and aortic structure and function 对 ECG 数据进行预处理
原始数据:

模态 原始格式
ECG 多导联时间序列信号
CMR 2D 或 3D 医学图像(DICOM 格式),灰度值代表组织信号强度
  1. 对于 ECG:
  • 对重采样到 250Hz
  • 使用带通滤波器(0.67-40Hz)去除基线漂移和高频噪声
  • 每导联标准化(Z-score)(消除个体和设备差异)

对于每个导联,计算均值和标准差,公式为(tσ)/μ(t-\sigma)/\mu,其中tt 为时间点信号值,μ\mu 为均值,σ\sigma 为标准差。

  • 训练时:随机裁剪一;测试时:多段固定裁剪
  • 转为 python tensor 输入模型
  1. 对于 CMR:
    原诗 CMR 是灰度图,对 CMR 数据进行归一化处理

xnorm=2×xxminxmaxxmin1x_{\text{norm}} = 2 \times \frac{x - x_{\min}}{x_{\max} - x_{\min}} - 1

# 对 CMR 进行自监督预训练

如果直接用原始 CMR 图像做对比学习,噪声大、语义弱;而通过自监督预训练 + 生成增强,得到的 CMR 编码器能自动提取出与心脏结构 / 功能高度相关的特征

ECG 不是直接对齐 “原始 CMR 图像”,而是对齐 “已经学会心脏语义的 CMR 表征”

  1. 用 CPGG 生成合成数据
    Phenotype-Guided Generative Model for High-Fidelity Cardiac MRI Synthesis: Advancing Pretraining and Clinical Applications
    CMR 数据对于 ViT 太少了,所以用 CPGG 生成了大量高质量合成 CMR 数据用于自监督预训练,扩充了 5 倍数据量

UKB: 32k CMR + 82 pyenotypes -> CPGG 生成 162k 合成 CMR -> 32k 真实 + 162k 生成 = 194k CMR 数据用于自监督预训练

  1. Masked SSL
    50 帧心跳视频 “伪装” 成一张 50 通道的图像,随机遮掉 75% 的时间帧,让 Vision Transformer 学会从残缺信息中重建完整心跳,从而自动学到心脏的结构与功能表征

ViT 原本输入是单张 RGB 图像 (3, 16, 16),但是因为 CMR 只有灰度没有颜色,有 50 帧,所以把 50 帧当作通道数,输入变成 (50, H, W)
随机选择 75% 的通道进行遮挡,模型需要从剩下的 25% 通道中重建完整的 50 通道图像(有点像 MAE)

# 主要工作:Contrastive ECG-CMR Pre-training

冻结经过 SSL 预训练的 CMR ViT 编码器的权重,开始对比学习步骤,目标是特征对齐

标准的 infoNCE 损失函数会把所有未配对的样本均视为负样本 (导致模型过拟合到个体差异),因此采用加 infoNCE 降低 CMR 语义空间中临床相似样本对应的负样本权重

根据 CMR 特征的语义相似性,给负样本分配不同的权重

  1. 用 “冻结的 CMR Encoder” 提取语义表征
    ViT 首先进行 patch 切分(假设 patch size 为 n*n),然后进行 patch embedding 把每个 patch 展平,加上 CLS token 和位置编码,把 n*n+1 个 token 输入 Transformer,经过 L 层 Transformer 编码器后,取出 CLS token 作为整张图像的高阶语义嵌入表示

[h[CLS],h1,...,hn][h_{[CLS]}, h_1, ..., h_n]

其中每个hR768h \in \mathbb{R}^{768},是原始 CMR embeddings
2. 用 PCA 构造 “连续伪表型空间”
对于矩阵 $ H \in \mathbbR}{N \times 768 $
进行 PCA 降维

ϕi=PCA128(hi)R128 \phi_i = \text{PCA}_{128}(h_i) \in \mathbb{R}^{128}

这里的hih_i 用来度量 “临床相似性”

# 重点:对比学习阶段

  1. CMR embeddings zcz_chch_c 作 normalize 得到
  2. ECG embeddings zez_e 由 ECG encoder 得到,ECG encoder 是 ST-Mem 自监督模型
  3. 计算相似度矩阵
    使用余弦相似度:

sik=cos(zei,zck)=zeizckzeizcks_{ik} = \cos(z_{e_i}, z_{c_k}) = \frac{z_{e_i} \cdot z_{c_k}}{\|z_{e_i}\| \|z_{c_k}\|}

S=ZeZcTS = Z_e Z_c^T

ZeRB×768Z_e \in \mathbb{R}^{B \times 768}

ZcTR768×BZ_c^T \in \mathbb{R}^{768 \times B}

SRB×BS \in \mathbb{R}^{B \times B}

其中吗,S 的具体结构

S = \begin{bmatrix} z_{e,1} \cdot z_{c,1} & z_{e,1} \cdot z_{c,2} & \dots \ z_{e,2} \cdot z_{c,1} & z_{e,2} \cdot z_{c,2} & \dots \ \vdots & \vdots & \ddots \end{bmatrix}

对角线:SiiS_{ii} 是正样本。

  1. 构造权重矩阵 W
  • PCA 输入

使用:

HcRB×768H_c \in \mathbb{R}^{B \times 768}

PCA 投影矩阵:

PR768×128P \in \mathbb{R}^{768 \times 128}

  • PCA 输出

Φ=HcP\Phi = H_c P

维度:

ΦRB×128,ϕiR128\Phi \in \mathbb{R}^{B \times 128}, \phi_i \in \mathbb{R}^{128}

计算距离矩阵 D

Dik=ϕiϕk2D_{ik} = ||\phi_i - \phi_k||^2

向量化计算方法,利用公式:

ab2=a2+b22aTb||a-b||^2 = ||a||^2 + ||b||^2 - 2a^Tb

首先计算:

G=ΦΦT,GRB×BG = \Phi \Phi^T, G \in \mathbb{R}^{B \times B}

然后计算每行平方范数:

vi=ϕi2,vRBv_i = ||\phi_i||^2, v \in \mathbb{R}^{B}

接着构造距离矩阵:

Dik=vi+vk2Gik,DRB×BD_{ik} = v_i + v_k - 2G_{ik}, D \in \mathbb{R}^{B \times B}

构造权重矩阵

Wik=1exp(Dik/σ2),WRB×BW_{ik} = 1 - \exp(-D_{ik}/\sigma^2), W \in \mathbb{R}^{B \times B}

设置

Wii=0W_{ii} = 0

  1. Weighted InfoNCE
  • ECG->CMR 对齐方向
    对于相似度矩阵SS,infoNCE 要进行温度缩放

S~=S/τ\tilde{S} = S / \tau

对每一行 i:
取第 i 行相似度

s~iRB,s~ii=sii/τ\tilde{s}_i \in \mathbb{R}^{B}, \tilde{s}_{ii} = s_{ii} / \tau

计算分母

deni=exp(s~ii)+kiWikexp(s~ik)\text{den}_i = \exp(\tilde{s}_{ii}) + \sum_{k \neq i} W_{ik} \exp(\tilde{s}_{ik})'

单样本 loss

Li=logexp(s~ii)deniL_i = -\log \frac{\exp(\tilde{s}_{ii})} {\text{den}_i}

总 loss

Lec=1BiLiL_{e \rightarrow c} = \frac{1}{B} \sum_i L_i

  • CMR->ECG 对齐方向

Lce=1Bj=1Blogexp(SjjT/τ)exp(SjjT/τ)+ijWijexp(SjiT/τ)L_{c\rightarrow e} = -\frac{1}{B}\sum_{j=1}^{B}\log\frac{\exp(S^T_{jj}/\tau)}{\exp(S^T_{jj}/\tau)+\sum_{i\ne j}W_{ij}\exp(S^T_{ji}/\tau)'}

  • 最终对比损失

L=12(Lec+Lce)L = \frac{1}{2}(L_{e \rightarrow c} + L_{c \rightarrow e})

# ECG2CMR 生成模型

# CMR 压缩

3D-VAE 将长轴 cine CMR 编码为 latent 表征 xRx×T/ft×H/fs×W/fsx \in \mathbb{R}^{|x| \times T/f_t \times H/f_s \times W/f_s}
ftf_t / fsf_s 为 temporal /spatial downsampling factor

# Masked Autoregressive Model (MAR)

Transformer backbone,双向 attention
将 CMR latent 表征划分为 tokens
训练时动态 masking,并用 diffusion-based denoising loss 重建

# ECG 条件信息

输入 ECG 编码为特征向量
作为特殊 conditional token 拼接到 CMR token 序列
双向 attention 融合 ECG 信息,指导 CMR 生成

# 迭代解码

从全 masked latent 表征开始
K 步迭代,每步预测部分 token,随机保留
masking ratio 按余弦调度逐步减小

# 超参数

  • 3D-VAE: latent dim =16, (f_t=2, f_s=8)
  • MAR: 12-layer encoder-decoder, latent embedding 768, patch size 5×2×2
  • Diffusion: 1000 steps 训练,100 steps 推理,MLP 3-block, width=1024
  • 迭代解码 16 steps

# 数学原理:

  • Transformer autoregressive 预测:

p(XmaskedXobserved,ECG)=imaskedp(xiXobserved,ECG) p(X_{masked} | X_{observed}, ECG) = \prod_{i \in masked} p(x_i | X_{observed}, ECG)

  • Diffusion denoising loss:

Ldiff=xtx^t2 \mathcal{L}_{diff} = ||x_t - \hat{x}_{t}||^2

迭代解码逐步减少 uncertainty,提高生成质量

# Downstream Tasks

  1. 心脏结构表型预测
  • 使用 ECG encoder embedding
  • 监督训练回归 82 个表型
  • 评价指标:R², Pearson correlation, MAE, RMSE
  1. 心血管疾病筛查
  • 三类心肌病 (DCM/HCM/RCM)、CAD、HF、PH
  • 评价指标:AUC, accuracy, sensitivity, specificity, PPV, NPV
  1. 解释性研究
  • 使用 ECG-CMR 对齐 embedding,分析模型关注特征
  1. 影响判读研究
  • 医生基于 AI 生成 CMR 图像 vs 真实 CMR 进行诊断
  • 验证模型生成图像的临床可用性

# 软件与训练环境

数据处理: numpy, pandas, sklearn, scipy, SimpleITK
模型开发: PyTorch 1.11.0
硬件: NVIDIA A800 80GB GPU

Edited on

Give me a cup of [coffee]~( ̄▽ ̄)~*

NoResponse WeChat Pay

WeChat Pay

NoResponse Alipay

Alipay

NoResponse PayPal

PayPal