Инструменты27 июля 2026 г., 17:45 МСК🤖 Auto

Tesseract.js v7: OCR в браузере с WebAssembly и поддержкой Node.js 16+

Библиотека Tesseract.js выпустила седьмую версию, обеспечивая распознавание текста на любом языке прямо в браузере и Node.js через WebAssembly. Разбираем технические детали и миграцию.

Баннер новости 4472

Суть обновления: WebAssembly и кроссплатформенность

Tesseract.js — это JavaScript-библиотека, которая портирует движок OCR Tesseract в браузер и среду Node.js, используя WebAssembly. Проект не модифицирует ядро Tesseract, а обертывает его для работы в JS-среде. Это позволяет извлекать текст из изображений практически на любом языке без необходимости серверной обработки.

Библиотека поддерживает работу через webpack, esm, тег <script> с CDN, а также нативно в Node.js. Для разработчиков это означает гибкость: можно запускать OCR как в клиентской части SPA, так и на бэкенде.

Требования и совместимость версий

Важно учитывать требования к среде выполнения при выборе версии. В последних релизах были внесены существенные изменения в архитектуру инициализации воркеров и управление памятью.

Версия Требование к Node.js Ключевые изменения
v7 v16+ Актуальная версия. Оптимизация памяти и времени выполнения.
v6 v14+ Исправлен утечка памяти. По умолчанию отключены форматы вывода кроме text (например, hocr).
v5 Размер файлов уменьшен на 54% (англ) и 73% (кит.). Упрощена инициализация через createWorker.

Как использовать: Пример кода

API библиотеки стало проще. Создание воркера теперь асинхронно. Для распознавания нескольких изображений рекомендуется создавать воркер один раз, обрабатывать файлы и затем завершать работу воркера методом terminate().

  • Установка: npm install tesseract.js или yarn add tesseract.js.
  • Базовый сценарий:
import createWorker from 'tesseract.js';

async () => {
  const worker = await createWorker('eng');
  const ret = await worker.recognize('https://example.com/image.png');
  console.log(ret.data.text);
  await worker.terminate();
}

Альтернативы и ограничения

Важно отметить, что Tesseract.js не поддерживает PDF-файлы напрямую и не улучшает точность распознавания за счет модификации моделей. Если вам нужна работа с PDF или улучшенная точность, разработчики рекомендуют библиотеку Scribe.js, которая расширяет возможности Tesseract, добавляя поддержку PDF и улучшенные модели распознавания.

Сообщество и вклад

Проект активно развивается за счет сообщества. Доступны примеры для Electron, TypeScript, а также расширения для Chrome (Manifest V3). Для разработчиков доступен локальный сервер разработки на http://localhost:3000 для тестирования изменений в коде.

Источник: Github ↗