Light-OCR — локальное распознавание текста

Light-OCR распознаёт текст в изображениях и PDF на устройстве. Библиотека для Node.js и C++ возвращает строки, координаты и оценку уверенности.

Light-OCR — библиотека распознавания текста для приложений на Node.js и C++. Она обрабатывает изображения и PDF на вашем устройстве и возвращает распознанные строки вместе с оценкой уверенности и координатами. Это компонент для разработчиков, а не готовый веб-сервис или настольная программа.

Что умеет Light-OCR

В стандартную Node.js-сборку входят модель PP-OCRv6 Small, движок распознавания и средство чтения PDF. Принимаются изображения JPEG и PNG, PDF-файлы, закодированные данные и буферы пикселей. Результат содержит текстовые строки в порядке чтения, координаты областей на изображении, оценки уверенности, сведения о странице и время обработки.

Координаты помогают связать найденный текст с исходным документом: например, подсветить строку на скане, показать область с распознанным полем или подготовить данные для дальнейшей обработки. Light-OCR выполняет именно распознавание текста; понимание смысла документа и извлечение бизнес-выводов остаются задачей приложения.

Изображения, области и многостраничные документы

Команда recognize распознаёт текст, а detect находит текстовые области без чтения их содержимого. Для отдельных фрагментов изображения можно задать область обработки. Режим tiled предназначен для крупных изображений с мелким или плотным текстом.

PDF можно обрабатывать постранично: библиотека передаёт результат по мере чтения документа, а не требует сначала вручную извлечь каждую страницу. В командной строке доступны текстовый, JSON- и построчный JSON-форматы, диапазоны страниц и обработка нескольких изображений как одного задания.

Как использовать в приложении

Для Node.js требуется версия 22 или новее. Установка выполняется через npm; пакет содержит необходимые компоненты, поэтому после установки не нужно отдельно скачивать модель или устанавливать средство чтения PDF.

npm install @arcships/light-ocr

import { createEngine } from "@arcships/light-ocr";
import { readFile } from "node:fs/promises";

const engine = await createEngine();
try {
  const result = await engine.recognizeEncoded(await readFile("image.jpg"));
  for (const line of result.lines) {
    console.log(line.text, line.confidence, line.box);
  }
} finally {
  await engine.close();
}

Для PDF в пакете есть функция recognizeDocument, которая позволяет последовательно получать страницы и их распознанные строки. Командная строка подходит для разовой проверки файлов и автоматизации обработки. Разработчики на C++ могут собрать статическую библиотеку из исходного кода с помощью CMake.

Локальная обработка и аппаратное ускорение

Распознавание выполняется на устройстве: изображения, PDF и результаты не отправляются в облачный сервис Light-OCR. После установки модели не загружаются при первом запуске. При этом для установки npm-пакета потребуется доступ к реестру npm.

Режим Auto выбирает доступный путь выполнения. На компьютерах Mac с процессором Apple Silicon и macOS 15 или новее сначала используется Core ML, а затем — центральный процессор. В сборках Linux x64 с glibc может применяться WebGPU через Vulkan, а в Windows x64 — WebGPU через Direct3D 12; при недоступности ускорения используется CPU. На остальных перечисленных сборках по умолчанию работает CPU.

Размер модели и варианты сборки

Стабильная стандартная модель Small занимает около 30 МБ. Это размер модели, а не гарантированный общий объём установки. Отдельно доступны предварительные версии: Tiny — около 6,3 МБ и 49 языков, без японского; Medium — около 139 МБ и ориентирована на качество распознавания. Они устанавливаются отдельными пакетами с меткой next и не меняют стабильную сборку. Для Small в документации нет отдельной таблицы поддерживаемых языков, поэтому перед внедрением стоит проверить распознавание на нужных языках и типах документов.

Кому подойдёт Light-OCR

Библиотека подойдёт разработчикам, которым нужно встроить локальное распознавание в приложение, CLI или настольную программу: например, для чтения сканов, извлечения строк из PDF или подготовки текста для дальнейшего поиска и обработки. Открытая лицензия Apache 2.0 позволяет использовать проект в собственных разработках с соблюдением условий лицензии.

Если задача шире распознавания строк и включает работу со структурой документов, полезно сравнить Light-OCR с Docling. Для специализированного распознавания документов также можно посмотреть страницу Mistral OCR 4.1. Исходный код, инструкции и актуальные варианты установки доступны в репозитории Light-OCR; пакет публикуется в npm.