Free Optical Character Recognition API for Chinese Manuscripts

Open Source C++ OCR to perform OCR operations on Chinese Manuscripts using template-based matching, where characters are matched pixel-wise against known samples.

Какво е безплатен C++ OCR?

Оптичното разпознаване на знаци (OCR) в нелатински писмености — особено китайски — поставя уникални предизвикателства поради сложността и разнообразието на знаците. За щастие, OCR C++ API с отворен код от Себастиан Старке предлага чисто, разширяемо решение, съобразено с разпознаването на печатни или ръкописни китайски знаци, особено от ръкописни източници. Проектиран с простота и адаптивност, този лек API позволява на софтуерните разработчици да експериментират с разпознаване на знаци, използвайки класически методи за обработка на изображения, вместо тежки модели за машинно обучение.

Този проект не е пълномащабен невронен OCR двигател като Tesseract. Вместо това следва различен подход: използва шаблонно съвпадение, където знаците се сравняват пиксел по пиксел със известни образци. Това го прави идеален за образователна употреба, контролирани среди или специфични задачи за разпознаване като анализ на исторически ръкописи, традиционни китайски шрифтове или набори от опростени ръкописни данни. Проектът е особено подходящ за разработчици, работещи в среди с ограничени ресурси, като вградени Linux системи, Raspberry Pi или индустриални сканиращи устройства, тъй като не зависи от тежки зависимости или библиотеки за дълбоко обучение.

Previous Next

Започване с OCR

Препоръчителният начин за инсталиране на OCR е чрез GitHub. Моля, използвайте следната команда за гладка инсталация.

Инсталиране на OCR API чрез GitHub

Инсталиране на OCR API чрез GitHub

 git clone https://github.com/sebastianstarke/OCR.git  

Можете също да го инсталирате ръчно; изтеглете последните файлове от изданието директно от репозитория в GitHub .

Шаблонен OCR двигател

Отвореният код за оптично разпознаване на знаци (OCR) в китайски ръкописи C++ API предоставя пълна поддръжка за използване на шаблонен OCR двигател в C++ приложения. В сърцето на тази библиотека се намира класическа система за сравнение на изображения: изображенията на знаците се бинаризират и след това се сравняват с шаблони, използвайки метрика за разстояние (обикновено пикселно сравнение). За китайския език това е особено полезно при работа с последователна калиграфия или печатни ръкописи.

Как да извършите шаблонно OCR разпознаване в C++ приложения?

OCR::TemplateCollection templates;
templates.loadFromFolder("templates/"); // Load preprocessed characters

OCR::Recognizer recognizer(templates);
std::string recognizedText = recognizer.recognizeFromImage("scanned_page.png");

Поддръжка на предварителна обработка на изображения

Отворената OCR библиотека предоставя пълна поддръжка за функционалност за предварителна обработка на изображения в C++ приложения. Библиотеката предлага основна обработка като прагово задаване и изрязване, за да се почистят шумните входове. Китайските ръкописи често са написани върху старо хартия, затова почистването на изображението е от съществено значение за точни резултати. Следният пример показва как с няколко реда C++ код софтуерните разработчици могат да извършат предварителна обработка на изображението.

Как да извършите предварителна обработка на изображението преди OCR операции в C++ приложения?

OCR::ImageProcessor processor;
cv::Mat cleanImage = processor.binarize("raw_scan.png");

Поддръжка на морфологични трансформации

Процесът започва с поредица от морфологични трансформации. Това са фундаментални операции за обработка на изображения, които променят геометрията на характеристиките в изображението. В този контекст те се използват за почистване на изображението на ръкописа, премахване на шума и подготовка на знаците за сегментация.

 Български