Not a medical device. Research and education only.

Preview: upload opens at public release

Preview of a planned tool. Upload is not open.

Turn a paper ECG into a signal you can measure.

Planned: take a photo of an ECG printout, or upload a scan or PDF.

Measure a real trace

This 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.

Upload

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.

Photo
Smartphone, JPG or PNG
Scan
Flatbed, JPG, PNG or TIFF
PDF
Exported from an ECG machine
Layout
A single rhythm strip or a full 12-lead page
Paper
Detects the ECG sheet, corrects perspective and rotation, and evens out shadows and uneven lighting

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.

Digitise, illustrated

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.

Trace each lead, illustrated

Planned: separates the waveform from the grid and any printed text, and converts it to a time series in millivolts.

Beat by beat

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.

Analyse

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.

Heart rate

-bpm mean

- min · - max, beat by beat

Tachogram

RR interval per beat.

Variability

Mean RR
-
SDNN
-
RMSSD
-
pNN50
-

Poincaré

Each interval against the next.

Rhythm

A trained model will classify the strip and give a confidence. It is designed to flag low-quality input as unreadable.

  • Normal sinus rhythm
  • Atrial fibrillation
  • Other arrhythmia
  • Too noisy to read

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.

Intervals

PR, QRS duration and QT/QTc, on 12-lead pages. Not measured in this preview.

Check and download

If the overlay doesn't sit on the ink, don't trust the numbers.

At release, the extracted trace is overlaid on your original image, with every detected beat marked. Here the overlay fits by construction, because this sheet was drawn from the signal. On a real photo, that fit is the test.

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.

How the model is trained

Trained only on public, de-identified research datasets, and never on images uploaded to this site.

DatasetWhat it contributes
PTB-XL21,799 ten-second 12-lead ECGs from 18,869 patients, with rhythm labels from clinical reports, most validated by a cardiologist
Chapman/Ningbo45,152 ten-second 12-lead ECGs from two further hospitals, rich in arrhythmias
CinC Challenge 20178,528 single-lead strips labelled normal, AF, other or noisy
MIT-BIH Noise Stress TestReal 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.

Results

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.

Your data

ECGs are health data, and the site is built to keep as little as possible.

  • No account needed.
  • Processed, then deleted. Uploads are analysed and removed when your session ends. Nothing is stored unless you choose to save a report.
  • Not used for training. Your images are never added to a training set.
  • No advertising or third-party trackers.
  • Remove names first. If your printout shows a name, date of birth or hospital number, cover or crop it before uploading.

What it can't do

  • It is not a diagnosis. It has not been clinically validated, and it is not FDA-cleared or CE-marked.
  • One strip sees only rhythm. Heart attacks, ischaemia, hypertrophy and many other conditions need all 12 leads and a clinician's reading.
  • Image quality limits accuracy. Blur, glare, heavy folds and cropped grids all lower accuracy. The tool is designed to warn you when an image is too poor to read, but it can still be wrong.
  • Rare rhythms are under-represented. Expect lower accuracy on them than on normal rhythm or atrial fibrillation.

Roadmap

  1. Research prototype today

    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.

  2. Trained rhythm model

    A model trained on PTB-XL with patient-separated testing, replacing the rule-based flags.

  3. Calibrated digitisation

    Grid-based scaling, accuracy measured on photographed and scanned printouts.

  4. Full 12-lead

    Every lead traced, plus interval measurements (PR, QRS, QT/QTc).

  5. Public release

    Web app at ecg-ai.online with the evaluation results published on this page.

Questions

Who is it for?

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.

Is this a diagnosis?

No. It's a measurement and learning tool. Only a qualified clinician can interpret an ECG for a patient.

Which ECGs work best?

Flat, well-lit, in-focus printouts with the full grid visible, at standard paper speed (25 mm/s) and gain (10 mm/mV).

Is it free?

Yes, for research and education.

Is the code open?

Yes. The digitisation and analysis pipeline is open source.

Credits

Built on open data from PhysioNet. Please cite:

  • Wagner P, Strodthoff N, Bousseljot R-D, et al. PTB-XL, a large publicly available electrocardiography dataset. Scientific Data 7, 154 (2020).
  • Goldberger AL, Amaral LAN, Glass L, et al. PhysioBank, PhysioToolkit, and PhysioNet. Circulation 101(23):e215-e220 (2000).
  • Each dataset's page above lists its own citation, which must accompany any results that use it.

Now you read it.

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-

PTB-XL record 00001, lead I (CC BY 4.0). For learning, not for care. Chest pain, fainting or palpitations: contact emergency services or a doctor now.