686. PhysioNet - Digitization of ECG Images | physionet-ecg-image-digitization
我们最初尝试了分割(预测二值轨迹掩码),但失败了——粗轨迹、重叠导联以及对亚像素精度的需求使其变得不切实际。相反,我们将此框架化为逐像素 y 坐标回归:对于每个 x 位置,预测 ECG 轨迹的连续 y 坐标。
问题:Kaggle 的 Ground Truth (GT) 单位是毫伏,而不是像素。转换回来会引入对齐误差。
解决方案:主要使用具有像素级完美 Ground Truth 的合成 ECG进行训练,然后混入 Kaggle 数据进行领域适应。
我们将单独的行提取为独立的样本(数据量增加 4 倍),以基线为中心裁剪每一行(±250px),并仅使用信号区域(宽 3926px,无边距)。
输入:[B, 3, 500, 3926] (单行裁剪)
│
▼
ConvNeXt-Base 编码器 (ImageNet-22k 预训练)
│
▼
带有跳跃连接的 U-Net 解码器
│
▼
高度注意力机制 (y 轴上的 softmax)
│
▼
1D 卷积回归头 → Sigmoid
│
▼
输出:[B, 3926] 归一化 y 坐标
获取 V16 的预测结果,并通过同时查看所有 4 行对其进行优化:
关键洞察:跨行注意力隐式地学习了爱因托芬定律 (II = I + III) 并捕捉行与行之间的不一致性。
输入:[B, 3, 500, 3926]
│
▼
ConvNeXt-Base 编码器
│
▼
带有可变形卷积的 U-Net 解码器 (最后 2 个阶段)
│
▼
高度注意力机制
│
▼
双向 LSTM (2 层,hidden=128)
│
▼
线性头 → Sigmoid
│
▼
输出:[B, 3926]
可变形卷积:学习自适应感受野以处理弯曲/扭曲的轨迹。
BiLSTM:捕捉整个 10 秒 ECG 的长程时间依赖性。
| V16+V18 | V19 | |
|---|---|---|
| 优势 | 跨行一致性 | 长程时间依赖性 |
| 劣势 | 局部感受野 | 无跨行感知 |
| 失败于 | 基线漂移,节律一致性 | 跨行伪影,导联关系 |
这些架构具有不相关的误差(相关性约 0.3-0.4)。当取平均时,错误会相互抵消。
ensemble = 0.4 * V19 + 0.6 * V16V18 # 经验上的最佳比例
损失函数:
Loss = 1.0 × MaskedL1 + 0.2 × SNRLoss + 0.1 × GradientLoss
-10*log10(signal²/noise²))设置:
V18 训练:冻结 V16,训练优化器以预测小的残差修正。
| 模型 | 验证集 SNR | 公共排行榜 |
|---|---|---|
| 仅 V16 | ~19.5 dB | ~19.1 |
| V16 + V18 | ~19.7 dB | ~19.5 |
| 仅 V19 | ~20 dB | ~19.5 |
| 集成 | — | ~19.75 |
感谢阅读!