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