Skip to content
BrowserOCR

About

Small, honest, local OCR

BrowserOCR is a static web application for turning up to 10 supported images or one PDF into editable text. It intentionally excludes accounts, uploads, translation, and server fallbacks.

How it works

ONNX Runtime Web executes PP-OCRv6 away from the main thread. TypeScript handles local image decoding, normalization, detection post-processing, line crops, CTC decoding, and reading order. For PDFs, the browser extracts native text and sends only pages that need recognition through the same local OCR runtime.

Choose a local OCR workflow

PDF engine attribution

Native PDF inspection and text extraction use LiteParse and its PDFium build, distributed under the Apache License 2.0. Scanned-page rendering uses Mozilla's PDF.js, also under Apache License 2.0. BrowserOCR ships both as same-origin browser assets; it does not call a document service. The bundled image-codec JBIG2, OpenJPEG, and QCMS notices accompany those decoder assets.

Umi-OCR informed the product comparison, but none of its desktop runtime or PyMuPDF-based PDF layer is included in BrowserOCR.

Model attribution

The detector and recognition models are PP-OCRv6 by PaddlePaddle, distributed under the Apache License 2.0. BrowserOCR uses the official Tiny detector, Tiny recognizer, and optional Small recognizer ONNX exports. See the versioned model manifest and license copy.

Image decoder attribution

TIFF decoding uses the MIT-licensed UTIF library. HEIC/HEIF decoding uses the pure-Rust WASM decoder maintained by heictosize.com’s private HEIC converter. Its open-source implementation is distributed here under AGPL-3.0. See the bundled license notice.

Limits

OCR results can contain errors. High accuracy changes recognition only and cannot recover lines missed by the shared detector. Always verify critical text against the original image or PDF.

Contact

Questions, bug reports, and support requests are welcome at [email protected].