Безплатна 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 под капака.
Започване с 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]