基于深度学习的心电信号自动描记

在 PTB-XL 心电图数据集上构建波形/信号处理特征/视觉三分支多模态融合模型,配合跨模态对比学习对齐,系统对比 3 个单模态基线与 5 组消融配置。注意力融合以 0.9324 AUC 全面超越纯波形基线(0.9314),且优势在全部 5 个诊断类别上都成立。配套代码、28 页技术文档、面试问答和完整配图。

  • 任务类型深度学习-多模态任务
  • 专业方向计算机 · 医疗健康

项目亮点

  • `基于深度学习的心电信号自动描记-项目说明.pdf` — 完整技术文档(对比实验、消融实验、面试问答)
  • `docs/latex/` — 技术文档 LaTeX 源文件
  • `multimodal_upgrade/` — 本轮多模态升级的代码、8 组实验的原始结果 json、图表
  • `src/` — 数据加载、视觉分支、融合模型、统一训练脚本

数据与任务

样本量PTB-XL 21837条记录·12导联·500Hz
核心方法波形/DSP/视觉三分支 + 注意力融合 + InfoNCE对比学习
技术栈PyTorch

如果你想要一个能在面试/复试里站得住脚的深度学习项目,这个多模态心电图(ECG)分类系统会很合适——它不只是"跑了个模型出个准确率",而是有一整套严谨的对比实验 + 消融实验方法论,外加一段真实的科研历程可以讲。带中文注释的代码、一份近 30 页的技术文档、连答案都写好的面试问答文档、一整套可以直接做 PPT 的配图,都给你备齐了。

flowchart LR A["12导联ECG<br/>原始信号"] --> B["波形分支<br/>1D-ResNet"] A --> C["DSP特征分支<br/>24维手工特征"] A --> D["视觉分支<br/>GAF图像+2D-ResNet"] B --> E["融合模块<br/>拼接 or 注意力加权"] C --> E D --> E E --> F["分类头<br/>5类诊断"] B -.InfoNCE对比学习.-> D

先说清楚,它到底在做什么

给一段心电图信号,系统要判断它属于哪些诊断类别(可能同时属于多类):正常(NORM)、心肌梗死(MI)、ST/T 段异常(STTC)、传导阻碍(CD)、心室肥大(HYP)。用的是心电领域最常用的公开基准 PTB-XL:21837 条记录、12 导联、500Hz 采样率,按官方划分做训练/验证/测试集。

这个项目的特别之处在于:它不是从零开始的单模态练手项目,而是在一个已经跑通、AUC 0.93 的强波形基线基础上,认真验证"加入更多模态信息能不能带来正向收益"——这本身就是研究里最常见、也最容易被面试问到的问题:新想法到底有没有用,得靠实验说话,不能想当然。

数据长什么样

心电信号是什么样子、五类诊断标签之间差异在哪,先看真实数据:

PTB-XL五类诊断标签的原始心电波形示例
PTB-XL 五类诊断标签的真实原始波形(II 导联,10 秒记录):NORM/MI/STTC/CD/HYP 各抽取一条真实记录展示。不看这张图,很难直观理解模型到底在"看"什么信号特征做判断。

一条记录并不是只有一路信号——12 导联同时记录同一次心跳在不同角度上的电信号,波形彼此相关又各有侧重:

单条ECG记录的完整12导联原始波形
同一条记录(NORM 类)的完整 12 导联展示。三分支模型里,波形分支和视觉分支都把这 12 导联当作输入的 12 个通道处理,这是保证"公平对比"的关键设计。

视觉分支不是直接拿原始波形当图像看,而是用 Gramian Angular Field(GAF)变换把 1D 时序信号转成 2D 图像——本质是把每个时间点的角度信息编码进像素矩阵,让 2D-ResNet 也能处理时序信号:

原始波形与对应GAF图像表示的可视化对比
同一条记录(NORM 类)II/V1/V5 三导联的原始波形 vs 对应 GAF 图像对比。GAF 图里的纹理其实编码了原始信号的角度关系——这也是视觉分支能够工作的原理基础。

标签分布也如实展示(多标签任务,类别间存在天然不均衡,这也是要用 AUC 而不是准确率评估的原因之一):

五类诊断标签的样本分布
五类诊断标签的样本分布(多标签,允许一条记录同时属于多类)

三分支融合架构

三分支多模态融合架构总览图
三分支融合架构总览:波形分支(1D-ResNet)、DSP特征分支(24维手工特征→MLP)、视觉分支(GAF→2D-ResNet),三路 256 维 embedding 经融合模块(拼接或注意力加权)后接分类头;波形与视觉分支之间另有 InfoNCE 对比学习做跨模态对齐。面试讲"整体架构"就指着这张图,一张图说完三个分支怎么来的、怎么融合的。

代码上,融合模块被设计成可通过开关切换的结构,方便做消融实验——这是工程上"一套代码支持多组对比"的常见做法,面试官问"你这几组实验是怎么跑出来的",答案就在这段代码里:

MultimodalECGModel三分支融合模型核心代码
fusion_model.py — 通过 use_dsp / use_visual / use_contrastive / fusion_type 四个开关控制分支数量和融合方式,同一套代码跑出全部 8 组实验配置。
Gramian Angular Field变换核心代码
visual_encoder.py — GAF 变换的核心实现:先归一化信号到 [-1,1],转成角度 φ=arccos(x),再用 cos(φᵢ+φⱼ) 构造格拉姆矩阵。这段数学变换是视觉分支能"看懂"时序信号的关键。

搞懂它,你能在面试里讲清楚什么

为什么朴素拼接融合反而不如纯波形基线? 这是这个项目最值得讲的发现。波形分支单独训练就能拿到 0.9314 AUC,是一个很强的基线;但直接把三个分支的 embedding 拼接后接 MLP(0.9260),结果反而低于波形基线。原因不难理解:拼接融合把三个模态"平等"地交给下游网络,但"平等"不代表"同等有用"——DSP 特征(单独 0.6545)和视觉分支(单独 0.8203)都明显弱于波形分支,直接拼接会稀释强模态的判别信息,甚至引入噪声。面试问"多模态一定比单模态好吗",这个真实的反例就是最有说服力的答案。

那注意力融合为什么能真正带来提升? 注意力融合不是把三路特征简单相加,而是用一个可学习的 query 向量对三个分支的 embedding 做 softmax 加权——权重根据当前样本内容动态计算,模型可以自己学会"这条样本更该相信波形分支还是视觉分支"。结果是 0.9324 AUC,不仅超过朴素拼接,也超过纯波形基线,而且在 5 个诊断类别上全部一致占优(不是靠某一类"偏科"撑起来的平均值提升)。

单模态基线与多模态融合对比实验结果
对比实验:波形/DSP/视觉三个单模态基线 vs 拼接融合 vs 注意力融合。注意力融合(0.9324) 是唯一全面超越波形基线(0.9314)的方案。
按诊断类别拆分的Test AUC热力图
按诊断类别拆分的细粒度分析:注意力融合在 NORM/MI/STTC/CD/HYP 全部 5 个类别上都优于基线,说明提升不是偶然的类别不均衡效应。

消融实验又是怎么排查"提升到底来自哪个组件"的? 单单看对比实验还不够,还要做消融——依次去掉视觉分支、去掉 DSP 分支、去掉对比学习损失,观察 AUC 怎么变化,才能定位"每个组件到底贡献了多少":

消融实验:不同融合方式与组件配置的Test AUC对比
消融实验(5 组配置排序):去视觉分支、去 DSP 分支、去对比学习损失分别观察 AUC 变化,配合对比实验一起,才能讲清楚"每个设计决策到底有没有用"——这正是面试官最想看到的严谨性。
8组实验的训练损失与验证AUC曲线
8 组实验的训练曲线(损失↘ 验证 AUC↗),可以直接看出各配置的收敛速度和稳定性差异。

面试官会问的,都帮你备好了

随便感受几个这个项目真实会被追问的问题:

  • 多模态一定比单模态好吗?你这个项目里为什么朴素拼接反而更差?
  • 注意力融合和拼接融合的本质区别是什么,为什么前者能避免弱模态拖累?
  • GAF 变换是怎么把一维信号变成图像的?这样做的物理/数学意义是什么?

看到这几个问题会不会心里有底?面试问答文档把这个项目从整体思路到每个实验细节、各种可能追问的点,连参考答案都写好了——包括跨模态对比学习的原理、为什么用 AUC 而不是准确率评估多标签任务、以及这个项目更早期一段"论文方向没做成、及时调整"的科研历程怎么讲会显得成熟而不是减分。

配套资料:搞懂一个项目需要的,这里全都有

技术文档从项目缘起、相关工作、数据集,一路讲到方法架构、实验设置、结果分析:

技术文档·目录与概述
技术文档目录:从项目背景、数据集、方法架构到对比/消融实验、按类别分析、面试问答、代码附录,共 28 页
技术文档·数据集章节原始波形展示页
数据集章节:先展示真实原始波形长什么样,再讲预处理和三种模态表示
技术文档·对比实验结果页
对比实验结果页:单模态基线 vs 多模态融合的完整数据表
技术文档·面试问答章节
面试问答章节:由浅入深 5 档共 20+ 道真实会被问到的问题,连参考答案都写好了
技术文档·代码附录
代码附录:三分支融合模型、GAF 变换等核心实现的完整代码摘录

技术文档、面试问答、源码注释、整套配图——搞懂一个项目、并在面试里讲清楚它,需要的全都备齐了。

适合谁

不管是准备医疗 AI / 计算机视觉 / 深度学习方向的考研复试、保研面试,还是想给简历添一个"有真实实验方法论支撑"的项目,这个题目都接得住。专业上,计算机科学、生物医学工程、电子信息、人工智能方向都很合适。它把信号处理、深度学习多模态融合、对比学习和严谨的对比/消融实验方法论串成了一条完整的研究闭环——把它真正搞懂、能讲出来,就是一个经得起追问的项目。

想把这样的项目做成你简历上的亮点?

这是一套配齐了代码、文档、面试问答和配图的 AI+X 项目,可写进简历、在面试里讲清楚。 想做同类项目、或获取「基于深度学习的心电信号自动描记」的完整资料(代码 / 数据处理流程 / 论文文档 / 配图), 请联系为你介绍本页面的老师咨询,按你的情况定一个合适的项目。

加载中…