ppg-to-ecg-translation-eval
Region-Disentangled Diffusion Model for High-Fidelity PPG-to-ECG Translation — Shome et al. (2023) (arXiv:2308.13568, 2023)
What this evaluates
Evaluates the fidelity of synthesizing ECG signals from PPG inputs and measures the downstream utility of the generated signals for cardiac and physiological task analysis.
Datasets
- WESAD — total ?; splits: test (-1)
- CAPNO — total ?; splits: test (-1)
- DALIA — total ?; splits: test (-1)
- BIDMC — total ?; splits: test (-1)
- MIMIC — total ?; splits: test (-1)
- PPG-BP — total ?; splits: test (-1)
- Cuffless-BP — total ?; splits: test (-1)
Metrics
RMSE (primary) — range: other
- Root Mean Square Error between generated and ground-truth ECG signals. Lower values indicate higher signal fidelity.
FD — range: other
- Fréchet Distance measuring distributional similarity between generated and real ECG signals. Lower is better.
MAE — range: other
- Mean Absolute Error for Heart Rate estimation in beats per minute (bpm). Lower is better.
Accuracy — range: [0, 1]
- Proportion of correctly classified instances for AFib detection, Stress/Affect classification, and Diabetes detection. Higher is better.
F1 — range: [0, 1]
- Harmonic mean of precision and recall for AFib detection, Stress/Affect classification, and Diabetes detection. Higher is better.
MAE-SBP — range: other
- Mean Absolute Error for Systolic Blood Pressure estimation. Lower is better.
MAE-DBP — range: other
- Mean Absolute Error for Diastolic Blood Pressure estimation. Lower is better.
Input / output format
Input: Raw photoplethysmography (PPG) time-series signals.
Output: Synthesized electrocardiogram (ECG) time-series signals.
Scoring recipe
def compute_metrics(ecg_gen, ecg_gt, labels, preds):
rmse = sqrt(mean((ecg_gen - ecg_gt)**2))
fd = frechet_distance(ecg_gen, ecg_gt)
hr_mae = mean(abs(hr_pred - hr_gt))
acc = accuracy_score(labels, preds)
f1 = f1_score(labels, preds, average='macro')
mae_sbp = mean(abs(sbp_pred - sbp_gt))
mae_dbp = mean(abs(dbp_pred - dbp_gt))
return {'RMSE': rmse, 'FD': fd, 'MAE': hr_mae, 'Acc': acc, 'F1': f1, 'MAE-SBP': mae_sbp, 'MAE-DBP': mae_dbp}
Common pitfalls
- Comparing baselines trained with different diffusion sampling steps (e.g., T=10 vs T=50) without normalizing for inference cost or computational budget.
- Using different downstream classifiers or estimators across baselines and the proposed method, which complicates direct comparison of utility metrics.
- Treating 'upper bound' references as strict ceilings, when the paper notes original ECG signals may contain noise allowing generated signals to outperform them on certain tasks.
Evidence (verbatim from paper)
The results presented in Table 2 clearly show that RDDM surpasses the current state-of-the-art PPG-to-ECG translation model by a significant margin on all the datasets. For instance, RDDM improves RMSE from 0.63 to 0.24 on BIDMC.
Citation
@misc{shome2023rddm,
title={Region-Disentangled Diffusion Model for High-Fidelity PPG-to-ECG Translation},
author={Shome et al. (2023)},
year={2023},
note={arXiv:2308.13568}
}
1---2name: ppg-to-ecg-translation-eval3description: Evaluates the fidelity of synthesizing ECG signals from PPG inputs and measures the downstream utility of the generated signals for cardiac and physiological task analysis. Use when the user wants to benchmark on WESAD, CAPNO, DALIA, BIDMC, MIMIC, PPG-BP, Cuffless-BP, or asks about evaluating this task. Reports RMSE.4---56# ppg-to-ecg-translation-eval78> Region-Disentangled Diffusion Model for High-Fidelity PPG-to-ECG Translation — Shome et al. (2023) (arXiv:2308.13568, 2023)910## What this evaluates1112Evaluates the fidelity of synthesizing ECG signals from PPG inputs and measures the downstream utility of the generated signals for cardiac and physiological task analysis.1314## Datasets1516- **WESAD** — total ?; splits: test (-1)17- **CAPNO** — total ?; splits: test (-1)18- **DALIA** — total ?; splits: test (-1)19- **BIDMC** — total ?; splits: test (-1)20- **MIMIC** — total ?; splits: test (-1)21- **PPG-BP** — total ?; splits: test (-1)22- **Cuffless-BP** — total ?; splits: test (-1)2324## Metrics2526- `RMSE` **(primary)** — range: other27 - Root Mean Square Error between generated and ground-truth ECG signals. Lower values indicate higher signal fidelity.28- `FD` — range: other29 - Fréchet Distance measuring distributional similarity between generated and real ECG signals. Lower is better.30- `MAE` — range: other31 - Mean Absolute Error for Heart Rate estimation in beats per minute (bpm). Lower is better.32- `Accuracy` — range: [0, 1]33 - Proportion of correctly classified instances for AFib detection, Stress/Affect classification, and Diabetes detection. Higher is better.34- `F1` — range: [0, 1]35 - Harmonic mean of precision and recall for AFib detection, Stress/Affect classification, and Diabetes detection. Higher is better.36- `MAE-SBP` — range: other37 - Mean Absolute Error for Systolic Blood Pressure estimation. Lower is better.38- `MAE-DBP` — range: other39 - Mean Absolute Error for Diastolic Blood Pressure estimation. Lower is better.4041## Input / output format4243**Input**: Raw photoplethysmography (PPG) time-series signals.4445**Output**: Synthesized electrocardiogram (ECG) time-series signals.4647## Scoring recipe4849```python50def compute_metrics(ecg_gen, ecg_gt, labels, preds):51 rmse = sqrt(mean((ecg_gen - ecg_gt)**2))52 fd = frechet_distance(ecg_gen, ecg_gt)53 hr_mae = mean(abs(hr_pred - hr_gt))54 acc = accuracy_score(labels, preds)55 f1 = f1_score(labels, preds, average='macro')56 mae_sbp = mean(abs(sbp_pred - sbp_gt))57 mae_dbp = mean(abs(dbp_pred - dbp_gt))58 return {'RMSE': rmse, 'FD': fd, 'MAE': hr_mae, 'Acc': acc, 'F1': f1, 'MAE-SBP': mae_sbp, 'MAE-DBP': mae_dbp}59```6061## Common pitfalls6263- Comparing baselines trained with different diffusion sampling steps (e.g., T=10 vs T=50) without normalizing for inference cost or computational budget.64- Using different downstream classifiers or estimators across baselines and the proposed method, which complicates direct comparison of utility metrics.65- Treating 'upper bound' references as strict ceilings, when the paper notes original ECG signals may contain noise allowing generated signals to outperform them on certain tasks.6667## Evidence (verbatim from paper)6869> The results presented in Table 2 clearly show that RDDM surpasses the current state-of-the-art PPG-to-ECG translation model by a significant margin on all the datasets. For instance, RDDM improves RMSE from 0.63 to 0.24 on BIDMC.7071## Citation7273```bibtex74@misc{shome2023rddm,75 title={Region-Disentangled Diffusion Model for High-Fidelity PPG-to-ECG Translation},76 author={Shome et al. (2023)},77 year={2023},78 note={arXiv:2308.13568}79}80```8182- arXiv: 2308.13568