1. Товары
  2.   OCR
  3.   JavaScript
  4.   Guten OCR
 
  

Бесплатная JavaScript‑библиотека для извлечения текста из отсканированных изображений и форм

Открытая библиотека JavaScript для оптического распознавания символов (OCR), позволяющая извлекать текст из черно-белых отсканированных изображений и документов с поддержкой предобработки изображений и шаблонов в веб‑приложениях или Node.js.

В современном цифровом мире технология оптического распознавания символов (OCR) играет решающую роль в преобразовании отсканированных изображений, рукописных заметок или печатных документов в редактируемые и поисковые данные. Для разработчиков JavaScript, ищущих легкое и открытое решение, Guten OCR предлагает убедительный выбор. Этот OCR‑движок, основанный на JavaScript, разработан с упором на простоту, что делает его идеальным для внедрения функций OCR непосредственно в браузерные или Node.js приложения. В библиотеку включено несколько важных функций, таких как распознавание символов по шаблонам, пороговая обработка и бинаризация изображений, сегментация символов, сопоставление шаблонов и сборка текста, поддержка модульной кодовой базы и т.д. Он ориентирован на распознавание печатного текста из черно‑белых отсканированных документов и лучше всего подходит для хорошо отформатированного текста, такого как книги или формы.

Guten OCR — это открытый OCR‑движок на JavaScript, созданный компанией Gutenye. В отличие от тяжёлых OCR‑инструментов, требующих внешних зависимостей или сложной настройки, Guten OCR полностью написан на JavaScript, что позволяет запускать его в веб‑браузере или на сервере с Node.js. Библиотека использует базовые методы обработки изображений для сегментации символов и их распознавания с помощью системы распознавания шаблонов символов. Хотя пока он не может конкурировать с коммерческими OCR‑движками, такими как Tesseract, в поддержке многоязычного или рукописного текста, его простота и возможность модификации делают его отличным вариантом для образовательных проектов, прототипов или встроенных OCR‑функций в пользовательских веб‑приложениях. В отличие от Tesseract и других крупных движков, Guten OCR намеренно лёгок и сфокусирован — что делает его отличной отправной точкой для тех, кто хочет понять, как работает OCR изнутри.

Previous Next

Начало работы с Guten OCR

Рекомендуемый способ установки Guten OCR — использовать Brew. Пожалуйста, используйте следующую команду для беспроблемной установки.

Установите Guten OCR через Brew

 brew install git-lfs 

Установить Guten OCR через GitHub

 git clone git@github.com:gutenye/ocr.git 

Вы также можете установить его вручную; загрузите последние файлы релиза напрямую из репозитория GitHub.

Предобработка изображений перед операциями OCR

Библиотека открытого кода Guten OCR полностью написана на JavaScript, что делает её совместимой как с браузерными, так и с Node.js средами. Она включает встроенные функции предварительной обработки изображений для повышения точности распознавания. Поддерживается бинаризация изображений (преобразование в черно‑белый), шумоподавление, коррекция наклона и многое другое. Ниже приведён пример, показывающий, как разработчики могут применять несколько шагов предварительной обработки изображений перед выполнением OCR‑операции над изображениями.

Как применить предварительную обработку изображения перед операцией OCR с помощью JavaScript-библиотеки?

const { preprocess } = require('guten-ocr');

// Apply multiple preprocessing steps
const processedImage = preprocess(imageData, [
  'grayscale',    // Convert to grayscale
  'binarize',     // Convert to black and white
  'deskew',       // Correct skew
  'denoise'       // Reduce noise
]);

// Then perform OCR on the processed image
ocr.recognize(processedImage).then(/* ... */);

Распознавание символов с помощью шаблонов

Библиотека JavaScript Guten OCR предоставляет полную поддержку выполнения OCR‑операций с использованием шаблонов в JavaScript‑приложениях. В основе Guten OCR лежит система сопоставления шаблонов. Вместо обучения модели машинного обучения она использует предопределённые шаблоны символов. Это делает систему быстрее и проще для понимания, но более чувствительной к согласованности шрифтов и макета. Для выполнения этой задачи библиотека рендерит каждый символ (A–Z, a–z, 0–9 и т.д.) на холсте, после чего бинарная матрица каждого символа становится эталонным шаблоном. При анализе изображения библиотека сравнивает сегменты изображения с этими шаблонами, чтобы найти наилучшее совпадение. Она делает это, используя комбинацию вертикального и горизонтального сканирования линий для определения ограничивающих рамок.

Сегментация символов с помощью библиотеки OCR

Открытая JavaScript‑библиотека Guten OCR позволяет разработчикам программного обеспечения легко выполнять сегментацию символов. После бинаризации изображения следующий шаг — сегментация отдельных символов. Guten OCR сканирует строки и столбцы, чтобы обнаружить области с плотными черными пикселями, разделяя их на потенциальные символы. Ниже приведён пример, демонстрирующий, как разработчики могут выполнять сегментацию символов с помощью JavaScript‑OCR‑библиотеки.

Как выполнить сегментацию символов с использованием JavaScript-библиотеки?

const segment = require('guten-ocr/segment');
const boxes = segment(binarized); // returns array of [x, y, width, height]
 Русский