Heart rate
-bpm mean
- min · - max, beat by beat
Preview of a planned tool. Upload is not open.
Planned: take a photo of an ECG printout, or upload a scan or PDF.
Measure a real traceThis page previews the planned release. Unless a section says it comes from the sample recording, it describes what the tool will do, not what exists today.
A smartphone photo, a flatbed scan or a PDF exported from an ECG machine. ECG AI will find the grid, trace the waveform, and give you heart rate, rhythm and interval measurements, with the extracted trace drawn over your image so you can check every beat it read.
Upload is not open yet. Until it is, every number below is computed in your browser from one original digital recording: PTB-XL record 00001, public and de-identified. No image is read anywhere on this page.
No image is processed here. This sheet is drawn from the recording, to show the planned steps.
Calibrate from the grid: measures the 1 mm and 5 mm grid squares in your image to set time and voltage scales, rather than guessing the resolution. Reads the paper speed (25 or 50 mm/s) and gain (10 mm/mV) from the printout, or asks you to confirm them.
Paper speed 25 mm/s. Gain 10 mm/mV.
Planned: separates the waveform from the grid and any printed text, and converts it to a time series in millivolts.
0.00 s · 0 beats · last interval, none yet
Beats found by a simple detector on this page, not the ECG AI pipeline. Lead I, 1,000 samples at 100 Hz.
Computed in this tab from the original digital recording. No image was digitised.
Ten seconds is short for variability measures. They show the calculation, not a finding.
-bpm mean
- min · - max, beat by beat
RR interval per beat.
Each interval against the next.
A trained model will classify the strip and give a confidence. It is designed to flag low-quality input as unreadable.
No model output is shown here, because the model is not trained yet. PTB-XL's label for this record: normal ECG (NORM), from its clinical report, human-validated. That report also notes low voltage, and the dataset flags static noise on leads I to V1.
PR, QRS duration and QT/QTc, on 12-lead pages. Not measured in this preview.
If the overlay doesn't sit on the ink, don't trust the numbers.
At release: download a PDF summary, the digitised signal (CSV or WFDB) and a JSON report for your own analysis. Today you can download this sample's CSV and JSON at the end of the page.
What follows describes the public release. Today's build is the research prototype, first on the roadmap below.
Trained only on public, de-identified research datasets, and never on images uploaded to this site.
| Dataset | What it contributes |
|---|---|
| PTB-XL | 21,799 ten-second 12-lead ECGs from 18,869 patients, with rhythm labels from clinical reports, most validated by a cardiologist |
| Chapman/Ningbo | 45,152 ten-second 12-lead ECGs from two further hospitals, rich in arrhythmias |
| CinC Challenge 2017 | 8,528 single-lead strips labelled normal, AF, other or noisy |
| MIT-BIH Noise Stress Test | Real electrode, muscle and baseline noise, used to teach the model what "unreadable" looks like |
Honest testing. PTB-XL is split by patient using its published folds, so no person appears in both training and testing. Datasets without patient IDs are used for training only, never for the reported results. The model is then tested the way you'll use it: on images of ECGs, including printouts that were photographed, scanned, creased and stained, run through the full upload, digitise, analyse pipeline, rather than only on clean digital signals.
Per-class sensitivity and specificity on the held-out test set, for clean signals and for images side by side.
Not published yet. This slot is filled from a real evaluation run, never an estimate.
ECGs are health data, and the site is built to keep as little as possible.
Image and PDF loading, waveform tracing, heart rate, HRV and rule-based rhythm flags. Not public, and it still has known measurement errors, so its numbers are not reliable yet.
A model trained on PTB-XL with patient-separated testing, replacing the rule-based flags.
Grid-based scaling, accuracy measured on photographed and scanned printouts.
Every lead traced, plus interval measurements (PR, QRS, QT/QTc).
Web app at ecg-ai.online with the evaluation results published on this page.
Students and educators, to practise reading strips and compare measurements with the tool's. Researchers, to digitise archived paper ECGs into signals they can analyse. Developers: the same pipeline as an open-source Python library and a command-line tool.
No. It's a measurement and learning tool. Only a qualified clinician can interpret an ECG for a patient.
Flat, well-lit, in-focus printouts with the full grid visible, at standard paper speed (25 mm/s) and gain (10 mm/mV).
Yes, for research and education.
Yes. The digitisation and analysis pipeline is open source.
Built on open data from PhysioNet. Please cite:
Drag the two arms onto neighbouring R peaks, the tall spikes. Then see how close you got to this page's simple beat detector.
You-
Page's detector, nearest beats-