- Paper to Pulse — v4 reproducibility release
- Result hierarchy
- Quick reviewer demo
- Frozen model and rectifier assets
- Frozen medal pipeline
- External LUDB result
- Post-processing ablation
- Same-renderer robustness
- Automated interval consistency
- Historical internal aggregate: 23.08 dB
- Verify the released numbers
- Repository contents
- License and provenance notes
- Result hierarchy
Paper to Pulse — v4 reproducibility release
Evidence-aligned source, frozen inference assets, reviewer demo, and verified result artifacts for the V23 ECG image-digitization pipeline accompanying the manuscript Paper to Pulse: Height-Aware Spatiotemporal Architecture with Physics-Informed Refinement for Robust ECG Digitization.
Primary independent result: official private-leaderboard SNR 19.742 dB, rank 24 / 1,425, in the PhysioNet — Digitization of ECG Images challenge (public leaderboard: 20.051 dB, rank 23).
Result hierarchy
| Evidence | Cohort | Result | Interpretation |
|---|---|---|---|
| Official private challenge leaderboard | hidden challenge test set | 19.742 dB; rank 24 / 1,425 | Primary independent challenge result |
| LUDB v1.0.1 external waveforms | 200 / 200 records | mean record SNR 21.393 dB (95% bootstrap CI 20.854–21.904) | Waveform-cohort transfer through the same renderer |
| ECG-Image-Kit robustness | 20 records × 4 profiles; 80 / 80 successful runs | clean 23.19, mild 22.35, moderate 21.77, severe 20.35 dB | Paired, same-renderer degradation study |
| Automated interval consistency | 190–197 valid pairs, depending on interval | HR MAE 0.174 bpm; other MAEs 1.85–10.95 ms | Algorithmic consistency only, not clinical validation |
Scope of "external." LUDB supplies waveform-disjoint records from a source
not listed among the training databases. Those waveforms were rendered through
the same ECG-Image-Kit generator used by the imaging pipeline, pinned to
commit 27b90f56896c9fc78b05a83ca14844ea2637aa0b.
These experiments therefore do not establish cross-generator, scanner,
paper-vendor, or acquisition-device generalization.
Quick reviewer demo
Open demo.ipynb in Google Colab or Kaggle and run all cells. It
is preconfigured for this repository and downloads the included inference-only
V23 export, both rectifier checkpoints, and the public challenge demo assets.
A free GPU is sufficient; CPU execution is slower.
The demo assets are for interactive illustration and pipeline checking only. They are not the LUDB external cohort and are not used to substantiate the v4 external, robustness, or interval results.
Frozen model and rectifier assets
The repository includes the assets needed for reviewer inference:
| File | Bytes | SHA-256 |
|---|---|---|
v23_paper_to_pulse.pth |
365,826,091 | 2ac8acab2c06644661e7ef93c2304ffa3b3966c2139e4dbbe531238025448b45 |
rectifier/weight/stage0-last.checkpoint.pth |
57,420,817 | b7360dfce9c49305b54272cf242e93e5728823f439a8e5ad59c03b073988cfc9 |
rectifier/weight/stage1-last.checkpoint.pth |
97,834,657 | 313f1e5dafdc212977e4586ce118453866830be0fa32664e36054f7f4568a46a |
The archived full competition checkpoint was named v23_epoch038.pth and has
SHA-256
e290465929654083db9956bbbfb6886c31a9e0aa6d0fe8bbc150eded397a609e.
The smaller file released here is an inference-only export. Its 489-tensor state
dictionary is byte-canonically identical to the audited epoch-38 checkpoint;
the canonical tensor SHA-256 is
c8c7ccfcc542d2d9beef9f9151a33391b1a3e2b5c9aee043cfba013dab0c87fb.
See results/weight_manifest.json and
docs/PROVENANCE.md.
Frozen medal pipeline
The competition path performs:
- Stage-0 orientation correction, with fallback to the input image;
- Stage-1 grid rectification, with fallback to the Stage-0 image;
- four-row V23 inference with a ConvNeXt-based encoder and DSNT coordinate head;
- standard 3 × 4 lead segmentation, using row four as the full Lead-II rhythm strip; and
- direct signal export with no smoothing, algebraic lead projection, baseline-offset correction, or short/long Lead-II blend.
The output-free audited Kaggle source is in
notebooks/medal_pipeline.ipynb. The simpler
repository-native execution path is demo.ipynb.
External LUDB result
The 200-record run used LUDB v1.0.1 (500 Hz, ten-second, 12-lead waveforms), no post-processing, and the competition-aligned metric with up to 0.2 s temporal alignment plus constant-offset alignment.
| Metric | Result |
|---|---|
| Successful records | 200 / 200 |
| Mean record SNR | 21.3927 dB |
| Median record SNR | 22.2024 dB |
| 95% bootstrap CI for mean SNR | [20.8542, 21.9037] dB |
| Pooled SNR | 20.3311 dB |
| Mean PCC | 0.99255 |
| Mean NMSE | 0.01232 |
Record-level and per-lead artifacts are in results/external/.
Post-processing ablation
All modes were evaluated on the same 200 LUDB records. The frozen no-post path was best; smoothing and the algebraic constraint variants reduced SNR on this cohort.
| Mode | Mean SNR (dB) | Paired change vs no post (dB) |
|---|---|---|
| none | 21.393 | 0.000 |
| smooth | 19.082 | -2.311 |
| partial projection | 19.395 | -1.997 |
| full projection | 19.367 | -2.026 |
| Lead-II blend | 21.382 | -0.011 |
| smooth + projection + blend | 17.457 | -3.935 |
This is a component ablation, not a claim that every physiological constraint is harmful in every setting.
Same-renderer robustness
The robustness run used only supported ECG-Image-Kit options at the pinned commit—no separate renderer and no custom image overlay. Twenty paired LUDB records were rendered under four profiles.
| Profile | Successful runs | Mean SNR (dB) | Paired change vs clean (dB) |
|---|---|---|---|
| clean | 20 / 20 | 23.19 | 0.00 |
| mild | 20 / 20 | 22.35 | -0.85 |
| moderate | 20 / 20 | 21.77 | -1.42 |
| severe | 20 / 20 | 20.35 | -2.85 |
Exact profile arguments, record-level values, and confidence intervals are in
docs/METHODS.md and
results/robustness/.
Automated interval consistency
The same NeuroKit2 delineator was applied to native LUDB Lead II and to the digitized Lead II.
| Quantity | Valid pairs | MAE |
|---|---|---|
| HR | 197 | 0.174 bpm |
| RR | 197 | 1.85 ms |
| QRS | 190 | 7.18 ms |
| PR | 190 | 9.11 ms |
| QT | 196 | 10.26 ms |
| QTc | 196 | 10.95 ms |
These values measure automated-analysis consistency. They are not an independent cardiologist reading study, diagnostic-accuracy result, or clinical ground truth for the digitizer. Comparisons with LUDB annotations remain in the released tables so the delineator's own error is visible.
Historical internal aggregate: 23.08 dB
The previously circulated 23.08 dB number is only an internal arithmetic aggregate of 13 listed per-lead values. No released record manifest, record-level predictions, evaluation output, or checkpoint metadata links it to a held-out cohort. It is not treated here as a validation, external-test, or challenge result, and it does not appear in the manuscript.
Note that per-lead averaging is systematically optimistic relative to the record-level metric used by the challenge: on the released LUDB run the mean of the twelve per-lead SNRs is 22.38 dB, against a record-level mean of 21.39 dB.
Verify the released numbers
The artifact checks use only the Python standard library:
python3 scripts/verify_results.py
python3 scripts/render_summary.py
The output-free notebook
notebooks/reproduce_results.ipynb runs the
same checks interactively. GPU/remote notebooks preserve the exact source used
for the reported analyses:
notebooks/medal_pipeline.ipynbnotebooks/ludb_external_validation.ipynbnotebooks/ludb_robustness.ipynbnotebooks/ludb_interval_consistency.ipynb
Raw LUDB waveforms, rendered LUDB images, and prediction caches are not redistributed. The remote notebooks obtain the public waveform source at runtime and assert the pinned renderer commit before generation.
Repository contents
demo.ipynb repository-native reviewer demo
demo_data/ public challenge demo assets only
v23_paper_to_pulse.pth inference-only V23 state export
rectifier/ Stage-0/Stage-1 source, weights, offline wheel
docs/ provenance, methods, and limitations
notebooks/ output-free medal and LUDB analysis notebooks
results/ verified CSV, JSON, and PNG artifacts
scripts/ standard-library verification utilities
Data source for external evaluation: LUDB v1.0.1,
DOI 10.13026/eegm-h675.
License and provenance notes
The bundled rectifier code and weights derive from a publicly released challenge baseline and retain their upstream terms. The demo assets originate from the public PhysioNet/Kaggle challenge and are provided for reviewer verification. Model weights and repository-authored notebooks are released for research and review. See the upstream sources and challenge terms before redistribution or commercial use.

