Darmowa biblioteka JavaScript do parsowania tekstu z zeskanowanych obrazów i formularzy
Otwartoźródłowa biblioteka JavaScript do rozpoznawania znaków optycznych (OCR), służąca do parsowania tekstu z czarno-białych zeskanowanych obrazów i dokumentów, z obsługą wstępnego przetwarzania obrazów oraz szablonów w aplikacjach webowych lub Node.js.
W nowoczesnym świecie cyfrowym technologia rozpoznawania znaków optycznych (OCR) odgrywa kluczową rolę w przekształcaniu zeskanowanych obrazów, odręcznych notatek lub drukowanych dokumentów w edytowalne i przeszukiwalne dane. Dla programistów JavaScript poszukujących lekkiego i otwartoźródłowego rozwiązania, Guten OCR oferuje atrakcyjną opcję. Ten oparty na JavaScript silnik OCR został zaprojektowany z myślą o prostocie, co czyni go idealnym do osadzania funkcji OCR bezpośrednio w aplikacjach przeglądarkowych lub Node.js. Biblioteka zawiera szereg ważnych funkcji, takich jak rozpoznawanie znaków przy użyciu szablonów, progowanie i binaryzacja obrazu, segmentacja znaków, dopasowywanie szablonów i składanie tekstu, wsparcie modularnej bazy kodu i inne. Skupia się na rozpoznawaniu drukowanego tekstu z czarno-białych zeskanowanych dokumentów i najlepiej sprawdza się przy dobrze sformatowanym tekście, takim jak książki czy formularze.
Guten OCR to otwartoźródłowy silnik OCR w JavaScript stworzony przez Gutenye. W przeciwieństwie do ciężkich narzędzi OCR, które wymagają zewnętrznych zależności lub rozbudowanej konfiguracji, Guten OCR jest napisany w całości w JavaScript, co oznacza, że może działać w przeglądarce internetowej lub na serwerze z Node.js. Biblioteka wykorzystuje podstawowe techniki przetwarzania obrazu do segmentacji znaków i ich identyfikacji przy użyciu systemu rozpoznawania wzorców znaków. Choć jeszcze nie konkuruje z komercyjnymi silnikami OCR, takimi jak Tesseract, pod względem wsparcia wielu języków czy rozpoznawania odręcznego tekstu, jej prostota i możliwość modyfikacji czynią ją doskonałą opcją dla projektów edukacyjnych, proof-of-conceptów lub wbudowanych funkcji OCR w niestandardowych aplikacjach webowych. W przeciwieństwie do Tesseract czy innych większych silników, Guten OCR jest celowo lekki i skoncentrowany – co czyni go świetnym punktem wyjścia dla tych, którzy chcą zrozumieć, jak działa OCR od podszewki.
Rozpoczęcie pracy z Guten OCR
Zalecany sposób instalacji Guten OCR to użycie Brew. Proszę użyć następującego polecenia, aby uzyskać płynną instalację
Instalacja Guten OCR przez Brew
brew install git-lfs Instalacja Guten OCR przez GitHub
git clone git@github.com:gutenye/ocr.git Możesz również zainstalować go ręcznie; pobierz najnowsze pliki wydania bezpośrednio z GitHub repozytorium.
Wstępne przetwarzanie obrazu przed operacjami OCR
Otwartoźródłowa biblioteka Guten OCR jest napisana w całości w JavaScript, co sprawia, że jest kompatybilna zarówno z przeglądarką, jak i środowiskiem Node.js. Zawiera wbudowane funkcje wstępnego przetwarzania obrazu, aby zwiększyć dokładność rozpoznawania. Obsługuje binaryzację obrazu (konwersję do czerni i bieli), redukcję szumów, korekcję pochylenia i inne. Poniższy przykład pokazuje, jak programiści mogą zastosować wiele kroków wstępnego przetwarzania przed wykonaniem operacji OCR na obrazach.
Jak zastosować wstępne przetwarzanie obrazu przed operacją OCR przy użyciu biblioteki 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(/* ... */);
Rozpoznawanie znaków za pomocą szablonów
Biblioteka JavaScript Guten OCR zapewnia pełne wsparcie dla wykonywania operacji OCR przy użyciu szablonów w aplikacjach JavaScript. W sercu Guten OCR znajduje się system dopasowywania szablonów. Zamiast trenować model uczenia maszynowego, wykorzystuje on predefiniowane wzorce znaków. Dzięki temu system jest szybszy i łatwiejszy do zrozumienia, ale bardziej wrażliwy na spójność czcionki i układu. Aby wykonać to zadanie, biblioteka renderuje każdy znak (A–Z, a–z, 0–9, itp.) w canvas, a następnie macierz binarna dla każdego znaku staje się szablonem odniesienia. Podczas analizy obrazu biblioteka porównuje segmenty obrazu z tymi szablonami, aby znaleźć najlepsze dopasowanie. Robi to, wykorzystując kombinację skanowania linii pionowych i poziomych w celu zlokalizowania prostokątów ograniczających.
Segmentacja znaków przy użyciu biblioteki OCR
Otwartoźródłowa biblioteka JavaScript Guten OCR umożliwia programistom łatwe wykonywanie segmentacji znaków. Po binaryzacji obrazu następnym krokiem jest segmentacja poszczególnych znaków. Guten OCR skanuje wiersze i kolumny, aby wykryć obszary o dużej gęstości czarnych pikseli, oddzielając je jako potencjalne znaki. Poniższy przykład demonstruje, jak programiści mogą wykonywać segmentację znaków przy użyciu biblioteki JavaScript OCR.
Jak wykonać segmentację znaków przy użyciu biblioteki JavaScript?
const segment = require('guten-ocr/segment');
const boxes = segment(binarized); // returns array of [x, y, width, height]