← Back to the workshop
Behind the scenes

Hearth OCR

An experimental browser reader for blood-pressure monitor photos, with every value checked by you.

Illustration of a monitor display beside a reading checklist

Experimental browser preview

Hearth reads systolic pressure (SYS), diastolic pressure (DIA), and pulse from common upright, three-row monitor displays. Choose a photo or use the camera, crop the display, and correct the result before copying it.

Check every value against the monitor before using or copying a reading. This is experimental OCR, not a validated medical reader. Recognition accuracy on new real-world photos remains unproven.

Try the preview

Download and extract the attached release ZIP. It includes the source, two ONNX models, and the browser runtime. No account, npm install, or model training is needed. Python 3.12 or newer is recommended.

From the extracted folder, run:

python3 prototype/serve.py

Use a current browser on the same computer to open the local preview:

http://127.0.0.1:8765/

The server listens only on your computer. Camera access from another device requires a secure browser context such as HTTPS.

How it works

A detector finds the display, and a digit recognizer reads its rows. ONNX inference runs in a browser worker. Consistency checks and crop retries can reject or retry uncertain results; they do not guarantee a correct reading.

Privacy and offline use

Normal photo processing stays in the browser's memory: the app does not upload or save your photos. After a complete first load, the service worker caches the app and models for offline use. The local development evaluation tools are a separate workflow.

Reuse and integration

The original code and bundled models use AGPL-3.0-only. ONNX Runtime Web retains its MIT terms. The model card explains provenance, checksums, and limitations; the integration guide documents reuse in another app.