Passer au contenu du pied de page
OUTILS OCR
Comment implémenter l'OCR en C# en utilisant des bibliothèques open source

C# OCR open source (Liste pour développeurs)

La reconnaissance optique de caractères (OCR) est une technologie révolutionnaire qui transforme complètement la manière dont les documents numérisés peuvent être utilisés dans le monde numérique d'aujourd'hui. Elle permet aux ordinateurs de reconnaître et d'extraire du texte à partir de diverses sources, y compris des documents PDF numérisés, ce qui nous permet de modifier et interagir efficacement avec les documents PDF. L'un des programmes de reconnaissance optique de caractères (OCR) est Adobe Acrobat, qui vous permet d'extraire rapidement du texte de documents numérisés et de les convertir en PDF éditables et en PDF d'images consultables.

Les développeurs peuvent accéder à des outils et API robustes qui utilisent des algorithmes de pointe et des approches d'apprentissage machine en exploitant des bibliothèques OCR comme Tesseract et IronOCR. Ces bibliothèques permettent une reconnaissance de texte précise, ce qui simplifie la gestion et la récupération d'informations utiles tant à partir de documents numérisés que de nouveaux documents. L'OCR permet une analyse de contenu transparente et aide les entreprises et les particuliers à maximiser leur productivité en tirant le meilleur parti de leurs documents numérisés et de leurs images de pages. L'OCR est un outil essentiel dans la technologie actuelle, qu'il soit utilisé pour numériser des documents basés sur papier, extraire des données de factures ou simplement améliorer l'accessibilité des documents.

Tesseract

Le moteur OCR open-source le plus renommé s'appelle Tesseract, et il a été initialement créé par Hewlett-Packard. Depuis 2006, Google soutient ce projet de logiciel libre, qui est publié sous licence Apache.

L'un des systèmes open-source gratuits les plus précis disponibles est le moteur OCR Tesseract. Tesseract prend désormais en charge 116 langues avec sa version stable la plus récente, 4.1.1, qui est basée sur LSTM.

Tesseract nécessite le soutien d'une interface graphique (GUI) distincte lorsqu'il est exécuté à partir d'une interface en ligne de commande car il n'a pas sa propre interface intégrée. Il peut apprendre de nouvelles informations en utilisant ses réseaux neuronaux et dispose d'un pipeline avancé de prétraitement d'images. La technique la plus efficace pour ajouter des fonctionnalités OCR à votre application .NET est le Tesseract .NET SDK, qui est l'une des meilleures solutions pour fournir des capacités de reconnaissance de texte. Bien que Tesseract soit sans aucun doute la meilleure bibliothèque OCR actuellement sur le marché.

GOCR

La licence publique GNU a été utilisée pour créer le programme OCR (reconnaissance optique de caractères) connu sous le nom de GOCR. Il transforme les fichiers texte en images numérisées de documents. Après avoir lancé le programme et géré l'équipe de développement sur SF, Joerg Schulenburg continue de gérer le package à base de temps (très) réduite aujourd'hui.

Comme GOCR peut être utilisé avec plusieurs interfaces, il est relativement simple de le porter sur d'autres systèmes d'exploitation, applications réseau et architectures. Il peut lire une large gamme de types de fichiers d'images, et jusqu'à 2010, sa qualité s'est continuellement améliorée.

Selon GOCR, il peut gérer les polices sans serif à une seule colonne avec une hauteur de 20 à 60 pixels. Il signale des difficultés avec le texte écrit dans des alphabets autres que le latin, les polices avec empattement, les lettres qui se chevauchent, divers caractères typographiques, les photos bruyantes et les angles de déformations excessives. GOCR est également capable de traduire les codes barres.

CuneiForm

CuneiForm, une technologie libre et open-source, est maintenant aussi connue sous le nom de "Cognitive OpenOCR." Elle a une sortie intégrée et une base de données. Elle couvre 23 langues différentes et effectue également des tâches telles que la numérisation de formats de texte, l'analyse et l'identification de la mise en page des documents.

Cognitive Technologies a développé les licences pour OpenOCR, qui sont gratuites et BSD. Bien qu'il prenne en charge une utilisation multiplateforme, les utilisateurs de Linux ne disposent pas d'une interface graphique.

Pour simplifier le travail de reconnaissance des caractères dans toute application Dot NET Framework 2.0 ou ultérieure, la bibliothèque wrapper Puma Dot NET est utilisée. Il exécute une vérification du dictionnaire lors du traitement des données pour améliorer la qualité de la reconnaissance.

CuneiForm est une technologie conçue pour convertir automatiquement ou semi-automatiquement des copies électroniques de documents papiers et de fichiers image en une forme éditable sans affecter la structure et les polices de documents d'origine. Le système se compose de deux parties pour traiter les documents électroniques par lots et un document à la fois. De plus, le système prend en charge une combinaison de russe et d'anglais. Seule la branche créée par Andrei Borovsky en 2009 prend en charge la reconnaissance d'autres hybrides de langues. Enseigner au système à reconnaître d'autres langues est difficile car chaque langue est associée à un fichier de données, dont la structure et le processus de création ne sont pas divulgués par les développeurs.

Kraken

Kraken a été développé pour résoudre les problèmes d'Ocropus sans impacter ses autres fonctionnalités. Il utilise sa bibliothèque de réseaux neuronaux CLSTM et tire parti de l'expérience précieuse acquise lors des projets précédents avec de nouvelles données. Il nécessite l'utilisation de certaines bibliothèques externes pour fonctionner efficacement sur différentes plateformes. Avec l'aide des informations stockées, il peut faire des prédictions plus précises concernant les problèmes potentiels de validation des données. De plus, sa méthodologie de travail facilite le déploiement et l'entraînement faciles de nouveaux modèles.

A9T9

A9T9 est un logiciel OCR gratuit qui peut être utilisé pour extraire du texte à partir de fichiers d'image et convertir des images et des documents PDF. Il fournit une interface utilisateur graphique (GUI) pour le moteur OCR Tesseract.

Le programme est facile à configurer. Le plus important, c'est qu'il est complètement gratuit et open-source. Il n'y a pas de logiciels espions ni de logiciels publicitaires.

Vous pouvez ouvrir un fichier PDF ou une image, et le contenu du fichier source sera affiché dans la fenêtre de gauche. Si votre document a plusieurs pages ou est un document multipages, vous pouvez utiliser les flèches en bas de la page pour naviguer entre les pages.

Pour initier le processus d'OCR, il suffit de cliquer sur le bouton vert OCR, et la sortie apparaîtra dans le deuxième panneau droit. Vous avez la possibilité d'enregistrer le texte de sortie à la fois en tant que fichiers texte et documents Word.

IronOCR

Contrairement à la bibliothèque Tesseract standard, IronOCR étend Tesseract et fournit une bibliothèque OCR C# native avec une précision plus élevée, des performances améliorées et une stabilité accrue. IronOCR peut être utilisé dans les programmes et sites Web .NET pour extraire du texte à partir de PDF et d'images. Il prend en charge un large éventail de langues étrangères et peut générer des sorties en texte brut ou des données structurées. Il est capable de scanner des codes barres et des images avec un texte intégré. La bibliothèque peut être utilisée dans des applications développées sous .NET pour la console, le web, MVC et le bureau. L'équipe de développement offre une assistance directe pour le processus de licence pour les déploiements commerciaux. IronOCR est compatible avec les dernières versions de Visual Studio.

Avantage d'IronOCR

  • En utilisant la dernière version du moteur Tesseract 5, IronOCR est capable de lire des documents papiers, des codes barres et des codes QR à partir de divers fichiers image ou PDF. Ce package simplifie l'incorporation de l'OCR dans les applications de bureau, console et web.
  • IronOCR nous permet d'effectuer l'OCR, ce qui nous permet de convertir des PDF numérisés en PDF consultables.
  • En plus des listes de mots et des langues personnalisées, IronOCR prend en charge 125 langues différentes dans le monde entier.
  • IronOCR peut scanner plus de 20 types différents de codes barres et de codes QR.
  • IronOCR peut fournir une sortie en texte brut ainsi que des données de codes barres. Les développeurs peuvent récupérer tout le contenu pour une entrée directe dans un système en utilisant un paradigme alternatif d'objets de données structurées. Cela inclut des titres structurés, des paragraphes, des lignes, des mots et des caractères dans les applications web.

Voici le code d'exemple que nous utiliserons pour reconnaître le contenu textuel de l'image donnée et le convertir en texte.

using IronOcr;

// Instantiate an IronTesseract object to utilize its OCR capabilities
var Ocr = new IronTesseract();

// Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest;

// Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Create an OcrInput object to add images for OCR processing
using (var Input = new OcrInput())
{
    // Add the image to be processed; specify the image's path
    Input.AddImage(@"Demo.png");

    // Perform the OCR and store the result
    var Result = Ocr.Read(Input);

    // Output the extracted text to the console
    Console.WriteLine(Result.Text);

    // Pause the console to keep it open
    Console.ReadKey();
}
using IronOcr;

// Instantiate an IronTesseract object to utilize its OCR capabilities
var Ocr = new IronTesseract();

// Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest;

// Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Create an OcrInput object to add images for OCR processing
using (var Input = new OcrInput())
{
    // Add the image to be processed; specify the image's path
    Input.AddImage(@"Demo.png");

    // Perform the OCR and store the result
    var Result = Ocr.Read(Input);

    // Output the extracted text to the console
    Console.WriteLine(Result.Text);

    // Pause the console to keep it open
    Console.ReadKey();
}
Imports IronOcr

' Instantiate an IronTesseract object to utilize its OCR capabilities
Private Ocr = New IronTesseract()

' Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest

' Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5

' Create an OcrInput object to add images for OCR processing
Using Input = New OcrInput()
	' Add the image to be processed; specify the image's path
	Input.AddImage("Demo.png")

	' Perform the OCR and store the result
	Dim Result = Ocr.Read(Input)

	' Output the extracted text to the console
	Console.WriteLine(Result.Text)

	' Pause the console to keep it open
	Console.ReadKey()
End Using
$vbLabelText   $csharpLabel

Dans l'extrait de code ci-dessus, nous développons une fonctionnalité en utilisant IronTesseract. Tout d'abord, nous instancions un nouvel objet OcrInput pour permettre l'ajout d'un ou plusieurs fichiers images. Vous pouvez ajouter autant d'images que vous souhaitez en spécifiant le chemin de chaque image en utilisant la méthode AddImage. Après avoir ajouté vos images, la méthode Read est appelée sur l'objet IronTesseract pour effectuer l'OCR sur l'entrée fournie. Le texte résultant est ensuite extrait et affiché via la console.

La sortie ci-dessous montre le texte extrait de l'image fournie précédemment, démontrant que le texte a été extrait avec succès de l'image.

Liste des codes sources ouverts OCR C# (Pour les développeurs) Figure 1 - Sortie

Consultez cet article pour une instruction complète d'IronOCR.

Conclusion

Les outils OCR open-source nous permettent de créer nos propres programmes en utilisant leur code source. Cependant, certains outils n'ont pas de bibliothèque officielle ou d'équipe dédiée pour fournir un support en cas de problèmes de codage. La documentation de Tesseract manque également d'exemples de code ou de tutoriels pour les scénarios d'utilisation courants, ce qui rend difficile pour les débutants de comprendre le code et les bibliothèques.

IronOCR prend en charge divers projets .NET comme .NET Framework Standard 2, .NET Framework 4.5 et .NET Core 2, 3 et 5. Il fonctionne également avec des technologies plus récentes comme Mono, Xamarin et Azure. En exploitant les technologies IronOCR, nous pouvons améliorer les résultats de Tesseract et corriger les documents ou images numérisés de manière inexacte. Le système de dictionnaire complexe de Tesseract est géré via le NuGet Package. Nous utilisons la bibliothèque Iron OCR pour développer un outil OCR.

Avec IronOCR, nous pouvons utiliser le programme sans aucune configuration supplémentaire, et il prend en charge les fichiers PDF, les TIFF multi-images, ainsi que tous les formats d'images courants. Il offre également des capacités de reconnaissance de codes barres, nous permettant d'extraire les données de codes barres et de lire les valeurs de codes barres à partir des images. IronOCR offre une édition de développement économique avec un essai gratuit, et la licence à vie est incluse dans le pack IronOCR sans frais supplémentaires. Le pack IronOCR fournit une couverture pour plusieurs plateformes avec un seul paiement. Pour plus d'informations sur les prix de IronOCR, veuillez voir cette page.

Kannaopat Udonpant
Ingénieur logiciel
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Pendant qu'il poursuivait son diplôme, Kannapat est également devenu membre du laboratoire de robotique de véhicules, qui fait partie du département de bioproduction. En 2022, il a utilisé ses compé...
Lire la suite