Безплатна 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. Моля, използвайте следната команда за гладка инсталация

Инсталирайте 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]
 Български