1. Продукти
  2.   OCR
  3.   C++
  4.   Guten OCR
 
  

Безкоштовна JavaScript бібліотека для розпізнавання тексту зі сканованих зображень та форм

Відкрита бібліотека оптичного розпізнавання символів (OCR) на JavaScript для розпізнавання тексту з чорно-білих сканованих зображень та документів з підтримкою попередньої обробки зображень та шаблонів у веб або Node.js додатках.

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

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

Previous Next

Початок роботи з Guten OCR

Рекомендований спосіб встановлення Guten OCR — використання Brew. Будь ласка, використайте наступну команду для безпроблемної інсталяції

Install Guten OCR via Brew

 brew install git-lfs 

Install Guten OCR via GitHub

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

You can also install it manually; download the latest release files directly from GitHub repository.

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

Відкрита бібліотека Guten OCR написана повністю на JavaScript, що робить її сумісною як з браузером, так і з середовищем Node.js. Вона включає вбудовані функції попередньої обробки зображень для підвищення точності розпізнавання. Підтримує бінаризацію зображень (перетворення у чорно-біле), зниження шуму, виправлення нахилу та інше. Нижче наведено приклад, як розробники можуть застосовувати кілька кроків попередньої обробки перед виконанням OCR‑операції над зображеннями.

How to Apply Image Preprocessing before OCR Operation via JavaScript Library?

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 тощо) у canvas, а потім бінарна матриця кожного символу стає референтним шаблоном. При аналізі зображення бібліотека порівнює сегменти зображення з цими шаблонами, щоб знайти найкращий збіг. Це здійснюється за допомогою комбінованого вертикального та горизонтального сканування ліній для визначення обмежувальних рамок.

Сегментація символів за допомогою OCR бібліотеки

Відкрита JavaScript‑бібліотека Guten OCR дозволяє розробникам легко виконувати сегментацію символів. Після бінаризації зображення наступним кроком є сегментація окремих символів. Guten OCR сканує рядки та стовпці, щоб виявити області з густими чорними пікселями, розділяючи їх на потенційні символи. Нижче наведено приклад, який демонструє, як розробники можуть виконувати сегментацію символів за допомогою JavaScript OCR‑бібліотеки.

How to Perform Character Segmentation using JavaScript Library?

const segment = require('guten-ocr/segment');
const boxes = segment(binarized); // returns array of [x, y, width, height]
 Українська