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.
Co je Free C++ OCR?
Optické rozpoznávání znaků (OCR) v ne-latinových skriptech – zejména čínštině – představuje jedinečné výzvy kvůli složitosti a rozmanitosti znaků. Naštěstí open-source OCR C++ API od Sebastiana Starke nabízí čisté, rozšiřitelné řešení přizpůsobené rozpoznávání tištěných nebo ručně psaných čínských znaků, zejména z rukopisných zdrojů. Navrženo s důrazem na jednoduchost a přizpůsobivost, toto odlehčené API umožňuje vývojářům softwaru experimentovat s rozpoznáváním znaků pomocí klasických metod zpracování obrazu místo těžkých modelů strojového učení.
Tento projekt není plnohodnotný neuronový OCR engine jako Tesseract. Místo toho volí jiný přístup: používá šablonové porovnávání, kde jsou znaky porovnávány pixel po pixelu s známými vzorky. To jej činí ideálním pro vzdělávací použití, řízená prostředí nebo specifické úlohy rozpoznávání, jako je analýza historických rukopisů, tradiční čínské typografie nebo sady zjednodušených rukopisných dat. Projekt je zvláště vhodný pro vývojáře pracující v prostředích s omezenými zdroji, jako jsou vestavěné Linux systémy, Raspberry Pi nebo průmyslová skenovací zařízení. Protože nezávisí na těžkých závislostech nebo knihovnách hlubokého učení.
Začínáme s OCR
Doporučený způsob instalace OCR je pomocí GitHubu. Použijte prosím následující příkaz pro snadnou instalaci.
Install OCR API via GitHub
Install OCR API via GitHub
git clone https://github.com/sebastianstarke/OCR.git Můžete jej také nainstalovat ručně; stáhněte nejnovější soubory vydání přímo z repozitáře GitHub.
Šablonový OCR engine
Open source API pro optické rozpoznávání znaků (OCR) v čínských rukopisech v C++ poskytuje kompletní podporu pro používání šablonového OCR enginu v C++ aplikacích. V jádru této knihovny leží klasický systém porovnávání obrázků: obrázky znaků jsou binarizovány a poté porovnávány s šablonami pomocí metriky vzdálenosti (typicky pixelové porovnání). Pro čínštinu je to zvláště užitečné při práci s konzistentní kaligrafií nebo tištěnými rukopisy.
How to Perform Template-Based OCR Recognition in C++ apps?
OCR::TemplateCollection templates;
templates.loadFromFolder("templates/"); // Load preprocessed characters
OCR::Recognizer recognizer(templates);
std::string recognizedText = recognizer.recognizeFromImage("scanned_page.png");
Podpora předzpracování obrazu
Otevřená knihovna OCR poskytuje kompletní podporu pro funkci předzpracování obrazu v C++ aplikacích. Knihovna nabízí základní předzpracování jako prahování a ořezávání pro vyčištění šumivých vstupů. Čínské rukopisy jsou často psány na starém papíru, takže čištění obrazu je nezbytné pro přesné výsledky. Následující příklad ukazuje, jak mohou vývojáři softwaru pomocí několika řádků C++ kódu provést předzpracování obrazu.
How to Perform Image Preprocessing before OCR Operations inside C++ APPs?
OCR::ImageProcessor processor;
cv::Mat cleanImage = processor.binarize("raw_scan.png");
Podpora morfologických transformací
Proces začíná sérií morfologických transformací. Jedná se o základní operace zpracování obrazu, které mění geometrii prvků na obrázku. V tomto kontextu jsou používány k vyčištění obrázku rukopisu, odstranění šumu a přípravě znaků pro segmentaci.