Darmowe API rozpoznawania znaków optycznych dla chińskich rękopisów
Open Source C++ OCR do wykonywania operacji OCR na chińskich rękopisach przy użyciu dopasowywania opartego na szablonach, gdzie znaki są dopasowywane piksel po pikselu do znanych próbek.
Czym jest darmowy C++ OCR?
Rozpoznawanie znaków optycznych (OCR) w skryptach niełacińskich — szczególnie chińskich — stawia przed nami unikalne wyzwania ze względu na złożoność i różnorodność znaków. Na szczęście otwarto‑źródłowe API OCR w C++ autorstwa Sebastiana Starke oferuje czyste, rozszerzalne rozwiązanie dostosowane do rozpoznawania drukowanych lub odręcznych chińskich znaków, zwłaszcza pochodzących z rękopisów. Zaprojektowane z myślą o prostocie i elastyczności, to lekkie API umożliwia programistom eksperymentowanie z rozpoznawaniem znaków przy użyciu klasycznych metod przetwarzania obrazu, zamiast ciężkich modeli uczenia maszynowego.
Ten projekt nie jest pełnoskalowym silnikiem OCR opartym na sieciach neuronowych, takim jak Tesseract. Zamiast tego przyjmuje inną drogę: wykorzystuje dopasowywanie oparte na szablonach, gdzie znaki są porównywane piksel po pikselu z znanymi próbkami. Dzięki temu jest idealny do zastosowań edukacyjnych, w kontrolowanych środowiskach lub przy specyficznych zadaniach rozpoznawczych, takich jak analiza historycznych rękopisów, tradycyjne chińskie czcionki czy uproszczone zestawy danych odręcznego pisma. Projekt jest szczególnie przydatny dla deweloperów pracujących w środowiskach o ograniczonych zasobach, takich jak wbudowane systemy Linux, Raspberry Pi czy przemysłowe urządzenia skanujące, ponieważ nie opiera się na ciężkich zależnościach ani bibliotekach głębokiego uczenia.
Rozpoczęcie pracy z OCR
Zalecany sposób instalacji OCR to użycie GitHub. Proszę użyć poniższego polecenia, aby uzyskać płynną instalację.
Instalacja API OCR za pośrednictwem GitHub
Instalacja API OCR za pośrednictwem GitHub
git clone https://github.com/sebastianstarke/OCR.git Możesz również zainstalować go ręcznie; pobierz najnowsze pliki wydania bezpośrednio z GitHub repozytorium.
Silnik OCR oparty na szablonach
Otwarty kod C++ API rozpoznawania znaków optycznych w chińskich rękopisach zapewnia pełne wsparcie dla używania silnika OCR opartego na szablonach w aplikacjach C++. W sercu tej biblioteki leży klasyczny system porównywania obrazów: obrazy znaków są binaryzowane, a następnie porównywane z szablonami przy użyciu metryki odległości (zwykle porównanie piksel po pikselu). Dla chińskiego jest to szczególnie przydatne przy pracy z jednolitą kaligrafią lub drukowanymi rękopisami.
Jak wykonać rozpoznawanie OCR oparte na szablonach w aplikacjach C++?
OCR::TemplateCollection templates;
templates.loadFromFolder("templates/"); // Load preprocessed characters
OCR::Recognizer recognizer(templates);
std::string recognizedText = recognizer.recognizeFromImage("scanned_page.png");
Wsparcie wstępnego przetwarzania obrazu
Otwarta biblioteka OCR zapewnia pełne wsparcie dla funkcji wstępnego przetwarzania obrazu w aplikacjach C++. Biblioteka oferuje podstawowe przetwarzanie, takie jak progowanie i przycinanie, aby oczyścić szumne wejścia. Chińskie rękopisy często są pisane na starzejących się kartkach, więc czyszczenie obrazu jest niezbędne dla dokładnych wyników. Poniższy przykład pokazuje, jak przy użyciu kilku linii kodu C++ programiści mogą wykonać wstępne przetwarzanie obrazu.
Jak wykonać wstępne przetwarzanie obrazu przed operacjami OCR w aplikacjach C++?
OCR::ImageProcessor processor;
cv::Mat cleanImage = processor.binarize("raw_scan.png");
Wsparcie transformacji morfologicznych
Proces rozpoczyna się serią transformacji morfologicznych. Są to podstawowe operacje przetwarzania obrazu, które modyfikują geometrię cech na obrazie. W tym kontekście są używane do oczyszczenia obrazu rękopisu, usuwania szumów i przygotowania znaków do segmentacji.