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.
Qu'est-ce que le OCR C++ gratuit ?
La reconnaissance optique de caractères (OCR) dans les écritures non latines—en particulier le chinois—présente des défis uniques en raison de la complexité et de la variété des caractères. Heureusement, l'API OCR C++ open source de Sebastian Starke offre une solution propre et extensible, adaptée à la reconnaissance de caractères chinois imprimés ou manuscrits, notamment à partir de sources de manuscrits. Conçue avec simplicité et adaptabilité à l'esprit, cette API légère permet aux développeurs de logiciels d'expérimenter la reconnaissance de caractères en utilisant des méthodes classiques de traitement d'image plutôt que des modèles d'apprentissage automatique lourds.
Ce projet n'est pas un moteur OCR neuronal à grande échelle comme Tesseract. Au lieu de cela, il adopte une approche différente : il utilise une correspondance basée sur des modèles, où les caractères sont comparés pixel par pixel avec des échantillons connus. Cela le rend idéal pour un usage éducatif, des environnements contrôlés ou des tâches de reconnaissance spécifiques comme l'analyse de manuscrits historiques, les fontes chinoises traditionnelles ou les jeux de données d'écriture manuscrite simplifiée. Ce projet convient particulièrement aux développeurs travaillant dans des environnements à faibles ressources, tels que les systèmes Linux embarqués, Raspberry Pi ou les appareils de numérisation industrielle, puisqu'il ne dépend pas de bibliothèques lourdes ou d'outils d'apprentissage profond.
Commencer avec OCR
La façon recommandée d'installer OCR est d'utiliser GitHub. Veuillez utiliser la commande suivante pour une installation fluide.
Install OCR API via GitHub
Install OCR API via GitHub
git clone https://github.com/sebastianstarke/OCR.git Vous pouvez également l'installer manuellement ; téléchargez les derniers fichiers de version directement depuis le dépôt GitHub repository.
Moteur OCR basé sur des modèles
L'API C++ open source de reconnaissance optique de caractères (OCR) pour les manuscrits chinois offre un support complet pour l'utilisation d'un moteur OCR basé sur des modèles au sein d'applications C++. Au cœur de cette bibliothèque se trouve un système classique de comparaison d'images : les images de caractères sont binarisées puis comparées aux modèles à l'aide d'une métrique de distance (généralement une comparaison pixel par pixel). Pour le chinois, cela est particulièrement utile lorsqu'on travaille avec une calligraphie ou des manuscrits imprimés cohérents.
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");
Support du prétraitement d'image
La bibliothèque OCR open source fournit un support complet pour les fonctionnalités de prétraitement d'image au sein d'applications C++. La bibliothèque propose un prétraitement de base comme le seuillage et le recadrage afin de nettoyer les entrées bruyantes. Les manuscrits chinois sont souvent écrits sur du papier vieilli, il est donc essentiel de nettoyer les images pour obtenir des résultats précis. L'exemple suivant montre comment, avec seulement quelques lignes de code C++, les développeurs peuvent effectuer le prétraitement d'image.
How to Perform Image Preprocessing before OCR Operations inside C++ APPs?
OCR::ImageProcessor processor;
cv::Mat cleanImage = processor.binarize("raw_scan.png");
Support des transformations morphologiques
Le processus commence par une série de transformations morphologiques. Ce sont des opérations fondamentales de traitement d'image qui modifient la géométrie des caractéristiques d'une image. Dans ce contexte, elles sont utilisées pour nettoyer l'image du manuscrit, éliminer le bruit et préparer les caractères pour la segmentation.