Starting…
First visit downloads ~60 MB (Python runtime + models). It's cached afterwards.
Or click an example to try it (synthetic ECGs rendered from PTB-XL):
Detected leads
Report
| Measurement | Value | Typical adult range |
|---|
Not assessed by this demo
Digitized signals
P wave QRS complex T wave
How it works
- Lead detection: a fine-tuned YOLOv8s model locates the 12 leads and the rhythm strip.
- Digitization: colour filtering and a morphological black-hat remove the grid and stains; dynamic programming follows the trace; the mm scale is measured from the paper grid (FFT).
- Wave segmentation: a 1D U-Net labels P and T waves; a Pan-Tompkins-style detector anchors QRS complexes.
- Interpretation: heart rate (voted across leads), PR, QRS, QT/QTc, electrical axis and ST deviation, with rule-based findings.
Python (NumPy, SciPy, OpenCV) running on Pyodide · neural networks on ONNX Runtime Web · models trained with PyTorch / Ultralytics
⚠️ Portfolio / research demo, not a medical device. Do not use for diagnosis.