Empowering MLLM for Grounded ECG Understanding with Time Series and Images [NeurIPS 2025]
193
stars
54
commits
Python
primary language
Mar 24, 2026
updated
Xiang Lan1, Feng Wu1, Kai He1, Qinghao Zhao2, Shenda Hong3, Mengling Feng1
1National University of Singapore 2Peking University People's Hospital 3Peking University
While recent multimodal large language models (MLLMs) have advanced automated ECG interpretation, they still face two key limitations: (1) insufficient multimodal synergy between ECG time series signals and ECG images, and (2) limited explainability in linking diagnoses to granular waveform evidence. We introduce GEM, the first MLLM unifying ECG time series, 12-lead ECG images and text for grounded and clinician-aligned ECG interpretation. GEM enables feature-grounded analysis, evidence-driven reasoning, and a clinician-like diagnostic process through three core innovations: a dual-encoder framework extracting complementary time series and image features, cross-modal alignment for effective multimodal understanding, and knowledge-guided instruction data generation for generating high-granularity grounding data (ECG-Grounding) linking diagnoses to measurable parameters (e.g., QRS/PR Intervals). Additionally, we propose the Grounded ECG Understanding task, a clinically motivated benchmark designed to comprehensively assess the MLLM's capability in grounded ECG understanding. Experimental results on both existing and our proposed benchmarks show GEM significantly improves predictive performance (CSN +7.4%↑), explainability (+22.7%↑), and grounding (+25.3%↑), making it a promising approach for real-world clinical applications.
We will continue to release more ECG-Grounding data and associated beat-level features progressively.
Stay tuned for updates!
git clone https://github.com/lanxiang1017/GEM.git
bash GEM/setup.sh
Please download required data:
ECG:
Images:
After downloading all of them, organize the data as follows in ./data,
├── ecg_timeseries
└── champan-shaoxing
└── code15
└── cpsc2018
└── ptbxl
└── georgia
└── mimic-iv
├── ecg_images
└── cod15_v4
└── csn_aug_all_layout_papersize
└── csn_ori_layout_papersize
└── csn_part_noise_layout_papersize
└── gen_images
└── mimic_gen
└── ptb-xl-gen
└── mimic
└── mimic_v4
└── ptb-xl
├── ecg_bench
└── images
└── ecg-grounding-test-mimiciv.json
└── ecg-grounding-test-ptbxl.json
├── ecg_jsons
└── ECG_Grounding_30k.json
Pretrained ECG Encoder:
cpt_wfep_epoch_20.pt, place it in GEM/ecg_coca/open_clip/checkpointPretrained MLLMs:
For training from scratch:
GEM/scripts/train_gem.shbash GEM/scripts/train_gem.shFor ECG-Grounding:
GEM/evaluation/gem_bench/bench_ecggrounding.shGEM/gem_evaluation/process_gem_outputs.ipynbGEM/gem_evaluation/generate_gpt_eval.pyGEM/gem_evaluation/process_grounding_scores.ipynbFor ECG-Bench:
GEM/evaluation/gem_bench/bench_ecgbench.shGEM/evaluation/evaluate_ecgbench.pyGEM/evaluation/eval_report.pyNote
bash bench_ecgbench.sh -m PATH_TO_GEM -d ecg-grounding-test-mimiciv.If you find GEM helpful for your research and applications, please cite our paper:
@article{lan2025gem,
title={Gem: Empowering mllm for grounded ecg understanding with time series and images},
author={Lan, Xiang and Wu, Feng and He, Kai and Zhao, Qinghao and Hong, Shenda and Feng, Mengling},
journal={arXiv preprint arXiv:2503.06073},
year={2025}
}
We thank the authors of PULSE and ECG-Chat for their publicly released models, datasets, and training codes.
54 commits
Python
92.2%
Shell
4.2%
Jupyter Notebook
1.4%
JavaScript
1.1%
Empowering MLLM for Grounded ECG Understanding with Time Series and Images [NeurIPS 2025]
193
stars
54
commits
Python
primary language
Mar 24, 2026
updated
Xiang Lan1, Feng Wu1, Kai He1, Qinghao Zhao2, Shenda Hong3, Mengling Feng1
1National University of Singapore 2Peking University People's Hospital 3Peking University
While recent multimodal large language models (MLLMs) have advanced automated ECG interpretation, they still face two key limitations: (1) insufficient multimodal synergy between ECG time series signals and ECG images, and (2) limited explainability in linking diagnoses to granular waveform evidence. We introduce GEM, the first MLLM unifying ECG time series, 12-lead ECG images and text for grounded and clinician-aligned ECG interpretation. GEM enables feature-grounded analysis, evidence-driven reasoning, and a clinician-like diagnostic process through three core innovations: a dual-encoder framework extracting complementary time series and image features, cross-modal alignment for effective multimodal understanding, and knowledge-guided instruction data generation for generating high-granularity grounding data (ECG-Grounding) linking diagnoses to measurable parameters (e.g., QRS/PR Intervals). Additionally, we propose the Grounded ECG Understanding task, a clinically motivated benchmark designed to comprehensively assess the MLLM's capability in grounded ECG understanding. Experimental results on both existing and our proposed benchmarks show GEM significantly improves predictive performance (CSN +7.4%↑), explainability (+22.7%↑), and grounding (+25.3%↑), making it a promising approach for real-world clinical applications.
We will continue to release more ECG-Grounding data and associated beat-level features progressively.
Stay tuned for updates!
git clone https://github.com/lanxiang1017/GEM.git
bash GEM/setup.sh
Please download required data:
ECG:
Images:
After downloading all of them, organize the data as follows in ./data,
├── ecg_timeseries
└── champan-shaoxing
└── code15
└── cpsc2018
└── ptbxl
└── georgia
└── mimic-iv
├── ecg_images
└── cod15_v4
└── csn_aug_all_layout_papersize
└── csn_ori_layout_papersize
└── csn_part_noise_layout_papersize
└── gen_images
└── mimic_gen
└── ptb-xl-gen
└── mimic
└── mimic_v4
└── ptb-xl
├── ecg_bench
└── images
└── ecg-grounding-test-mimiciv.json
└── ecg-grounding-test-ptbxl.json
├── ecg_jsons
└── ECG_Grounding_30k.json
Pretrained ECG Encoder:
cpt_wfep_epoch_20.pt, place it in GEM/ecg_coca/open_clip/checkpointPretrained MLLMs:
For training from scratch:
GEM/scripts/train_gem.shbash GEM/scripts/train_gem.shFor ECG-Grounding:
GEM/evaluation/gem_bench/bench_ecggrounding.shGEM/gem_evaluation/process_gem_outputs.ipynbGEM/gem_evaluation/generate_gpt_eval.pyGEM/gem_evaluation/process_grounding_scores.ipynbFor ECG-Bench:
GEM/evaluation/gem_bench/bench_ecgbench.shGEM/evaluation/evaluate_ecgbench.pyGEM/evaluation/eval_report.pyNote
bash bench_ecgbench.sh -m PATH_TO_GEM -d ecg-grounding-test-mimiciv.If you find GEM helpful for your research and applications, please cite our paper:
@article{lan2025gem,
title={Gem: Empowering mllm for grounded ecg understanding with time series and images},
author={Lan, Xiang and Wu, Feng and He, Kai and Zhao, Qinghao and Hong, Shenda and Feng, Mengling},
journal={arXiv preprint arXiv:2503.06073},
year={2025}
}
We thank the authors of PULSE and ECG-Chat for their publicly released models, datasets, and training codes.
54 commits
Python
92.2%
Shell
4.2%
Jupyter Notebook
1.4%
JavaScript
1.1%