UTILISATION DE L'IRONOCR

Comment créer une reconnaissance de caractères en C#

Publié avril 29, 2024
Partager:

Introduction

La technologie de la reconnaissance optique des caractères(OCR) permet de convertir un texte imprimé ou manuscrit en un format numérique lisible par une machine. Lorsqu'un document est scanné(comme une facture ou un reçu)l'image numérisée est enregistrée par votre ordinateur sous la forme d'un fichier image. Toutefois, le texte contenu dans l'image numérisée ne peut pas être modifié, recherché ou compté à l'aide d'un éditeur de texte ordinaire.

Cependant, l'OCR peut traiter l'image, extraire le texte et le transformer en un format de texte lisible par les ordinateurs. Il permet d'extraire du texte à partir de diverses sources, y compris des fichiers PDF et d'autres images numérisées. En outre, les capacités d'OCR vont au-delà de la simple extraction de texte pour inclure les principaux formats d'image et les documents PDF, en les convertissant en données OCR consultables.

En C#, les développeurs peuvent exploiter la puissance de l'OCR grâce à diverses bibliothèques, dont la puissante bibliothèqueIronOCR deIron Software. Dans ce tutoriel, nous explorerons les bases de l'OCR et montrerons comment utiliser l'OCRIronOCR pour effectuer une reconnaissance de caractères efficace en C#.

Comment créer une reconnaissance de caractères dans C# ;

  1. Créez un tout nouveau projet C# et donnez-lui un nom dans Visual Studio.

  2. Installer leIronOCR .NET et l'inclure dans le dossier du projet.

  3. Utiliser leIronOCR Tesseract pour lire du texte à partir d'images.

  4. Utiliser leIronOCR Fonctionnalités avancées pour lire le texte dans les images

  5. Optimisation des performances deIronOCR Lire l'opération.

Premiers pas avec IronOCR

IronOCR une bibliothèque C# développée parIron Software est un logiciel qui offre des capacités avancées d'OCR. Il permet d'extraire avec précision du texte à partir d'images, de PDF et de documents numérisés. Avant de nous plonger dans le code, assurez-vous que vous avez installé IronOCR dans votre projet.

Principales caractéristiques d'IronOCR de Iron Software

Moteur OCR Tesseract amélioré

IronOCR augmente les capacités du moteur OCR Tesseract, largement utilisé, en améliorant à la fois la précision et la vitesse. Il s'agit d'une solution robuste pour l'extraction de texte à partir de diverses sources, y compris les images, les PDF et d'autres formats de documents.

Large couverture linguistique

Prenant en charge plus de 127 langues, IronOCR est capable de répondre aux besoins multilingues, ce qui en fait un choix idéal pour les applications exigeant une polyvalence linguistique.

Choix de sorties polyvalentes

Le texte extrait peut être édité sous forme de texte simple ou de données structurées pour une intégration transparente dans les pipelines de traitement ultérieurs. En outre, IronOCR facilite la création de PDF consultables directement à partir d'images.

Adaptabilité multiplateforme

Conçu pour être compatible avec C#, F# et VB.NET, IronOCR fonctionne en toute transparence dans divers environnements .NET, notamment les versions 8, 7, 6, Core, Standard et Framework.

Tirer parti de Tesseract 5

IronOCR exploite la puissance de Tesseract 5, finement adapté pour des performances optimales au sein de l'écosystème .NET.

Capacité d'OCR par zone

Avec IronOCR, les utilisateurs peuvent définir avec précision des zones spécifiques dans les documents, ce qui permet un traitement OCR ciblé. Cette fonction améliore la précision et l'efficacité en concentrant la puissance de traitement là où elle est le plus nécessaire.

Outils de prétraitement d'images

La bibliothèque offre une suite de fonctionnalités de prétraitement d'images telles que le désalignement et la réduction du bruit. Ces outils garantissent des résultats de qualité supérieure, même lorsque les images sources sont imparfaites, ce qui améliore l'expérience globale de l'OCR.

Nous allons maintenant développer une application de démonstration qui utilise IronOCR pour lire du texte à partir d'images.

Conditions préalables

  1. Visual Studio: Assurez-vous que vous avez installéVisual Studio ou tout autre environnement de développement C#.

  2. NuGet Package Manager: Assurez-vous que NuGet est présent afin de gérer les paquets dans votre projet.

Étape 1 : Créer un nouveau projet C# dans Visual Studio

Pour commencer, créons une nouvelle application console à l'aide de Visual Studio, comme indiqué ci-dessous.

Comment créer une reconnaissance de caractères en C# : Figure 1 - Création d'un tout nouveau projet C# dans Visual Studio

Indiquez ci-dessous le nom et l'emplacement du projet.

Comment créer une reconnaissance de caractères en C# : Figure 2 - Donnez un nom au projet et indiquez l'emplacement où vous souhaitez le sauvegarder

Sélectionnez la version .NET requise pour le projet.

Comment créer une reconnaissance de caractères en C# : Figure 3 - Sélectionner la version .NET appropriée pour le projet

Cliquez sur le bouton Créer pour créer le nouveau projet.

Étape 2 : Installez la bibliothèque IronOCR et intégrez-la à votre projet.

IronOCR peuvent être trouvés dans leNuGet comme indiqué ci-dessous. Utilisez la commande fournie pour installer le paquet.

Comment créer une reconnaissance de caractères en C# : Figure 4 - Page de téléchargement du NuGet Package Manager d'IronOCR

À l'aide du gestionnaire de paquets NuGet de Visual Studio, recherchez IronOCR et installez-le dans le dossier de votre projet.

Comment créer une reconnaissance de caractères en C# : Figure 5 - Recherche d'IronOCR dans l'onglet browse à l'aide du gestionnaire de paquets NuGet

Une fois installée, l'application est prête à utiliserIronOCR pour lire du texte à partir d'images.

Étape 3 : Utiliser le IronOCR Tesseract pour lire du texte à partir d'images.

IronOCR se distingue en tant que bibliothèque .NET exclusive offrant les capacités OCR de Tesseract 5. À l'heure actuelle, elle a la particularité d'être la bibliothèque Tesseract 5 la plus sophistiquée, tous langages de programmation confondus. IronOCR intègre de manière transparente Tesseract 5 dans divers environnements .NET, notamment Framework, Standard, Core, Xamarin et Mono, garantissant ainsi une prise en charge complète dans l'ensemble de l'écosystème.

Considérons le fichier image ci-dessous comme entrée. Voyons maintenant comment lire le texte dans ce fichier image

Comment créer une reconnaissance de caractères en C# : Figure 6 - Exemple d'entrée

using IronOcr;
public class Program
{
    public static void Main(String [] args)
    {
        var ocrTesseract = new IronTesseract(); 
    using var ocrInput = new OcrInput();
    ocrInput.LoadImage(@"sample1.png");
    var ocrResult = ocrTesseract.Read(ocrInput);
    Console.WriteLine(ocrResult.Text);
    }
}
using IronOcr;
public class Program
{
    public static void Main(String [] args)
    {
        var ocrTesseract = new IronTesseract(); 
    using var ocrInput = new OcrInput();
    ocrInput.LoadImage(@"sample1.png");
    var ocrResult = ocrTesseract.Read(ocrInput);
    Console.WriteLine(ocrResult.Text);
    }
}
Imports IronOcr
Public Class Program
	Public Shared Sub Main(ByVal args() As String)
		Dim ocrTesseract = New IronTesseract()
	Dim ocrInput As New OcrInput()
	ocrInput.LoadImage("sample1.png")
	Dim ocrResult = ocrTesseract.Read(ocrInput)
	Console.WriteLine(ocrResult.Text)
	End Sub
End Class
VB   C#

Explication du code

  1. Nous commençons par créer IronTesseract avec la configuration requise

  2. Nous chargeons ensuite l'exemple d'image affiché dans l'objet OcrInput

  3. Enfin, nous lisons le texte de l'image et l'affichons sur la console

Sortie

Comment créer une reconnaissance de caractères en C# : Figure 7 - Texte extrait à l'aide d'IronOCR

Étape 4 : Utiliser les fonctionnalités avancées d'IronOCR pour lire le texte dans les images

L'objet IronTesseract.Configuration permet aux utilisateurs avancés d'accéder à l'API Tesseract sous-jacente au sein de C#/.NET, ce qui permet une configuration détaillée de l'installation en vue d'un réglage fin et d'une optimisation. Voici quelques-unes des configurations avancées possibles

Sélection de la langue

Vous pouvez spécifier la langue de l'OCR à l'aide de la propriété Language. Par exemple, pour régler la langue sur l'anglais, utilisez :

IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
IronTesseract ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
Dim ocr As New IronTesseract()
ocr.Language = OcrLanguage.English
VB   C#

Mode de segmentation des pages

Le PageSegmentationMode détermine la manière dont Tesseract segmente l'image d'entrée. Les options comprennent AutoOsd, SingleBlock, SingleLine, etc. Par exemple :

ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd
VB   C#

Variables Tesseract personnalisées

Vous pouvez affiner Tesseract en définissant des variables spécifiques. Par exemple, pour désactiver la parallélisation :

ocr.Configuration.TesseractVariables ["tessedit_parallelize"] = false;
ocr.Configuration.TesseractVariables ["tessedit_parallelize"] = false;
ocr.Configuration.TesseractVariables ("tessedit_parallelize") = False
VB   C#

La liste noire et la liste blanche des personnages

Utilisez WhiteListCharacters et BlackListCharacters pour contrôler les caractères reconnus par Tesseract. Par exemple :

ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
ocr.Configuration.BlackListCharacters = "`ë
^";
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
ocr.Configuration.BlackListCharacters = "`ë
^";
ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
ocr.Configuration.BlackListCharacters = "`ë ^"
VB   C#

**Variables de configuration supplémentaires

Explorez d'autres variables de configuration de Tesseract pour personnaliser le comportement en fonction de vos besoins. Par exemple :

ocr.Configuration.TesseractVariables ["classify_num_cp_levels"] = 3;
ocr.Configuration.TesseractVariables ["textord_debug_tabfind"] = 0;
// ... (more variables)
ocr.Configuration.TesseractVariables ["classify_num_cp_levels"] = 3;
ocr.Configuration.TesseractVariables ["textord_debug_tabfind"] = 0;
// ... (more variables)
ocr.Configuration.TesseractVariables ("classify_num_cp_levels") = 3
ocr.Configuration.TesseractVariables ("textord_debug_tabfind") = 0
' ... (more variables)
VB   C#

Essayons maintenant de décoder la même image en utilisant les paramètres avancés

using IronOcr;
public class Program
{
    public static void Main()
    {
        Console.WriteLine("Decoding using advanced features");
        var ocrTesseract = new IronTesseract() // create instance
        {
            Language = OcrLanguage.EnglishBest, // configure best english language
            Configuration = new TesseractConfiguration()
            {
                ReadBarCodes = false, // read bar codes false
                BlackListCharacters = "`ë
^", // black listed characters
                WhiteListCharacters = null, // no white list, allow all
                PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
                TesseractVariables = null, // no custom variable used
            },
            MultiThreaded = false,
        };
        using var ocrInput = new OcrInput(); // create a disposible ocr input object
        ocrInput.AddImage(@"sample1.png"); // load the sample image 
        var ocrResult = ocrTesseract.Read(ocrInput); // read the text from the image
        Console.WriteLine(ocrResult.Text);// output the image
    }
}
using IronOcr;
public class Program
{
    public static void Main()
    {
        Console.WriteLine("Decoding using advanced features");
        var ocrTesseract = new IronTesseract() // create instance
        {
            Language = OcrLanguage.EnglishBest, // configure best english language
            Configuration = new TesseractConfiguration()
            {
                ReadBarCodes = false, // read bar codes false
                BlackListCharacters = "`ë
^", // black listed characters
                WhiteListCharacters = null, // no white list, allow all
                PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd,
                TesseractVariables = null, // no custom variable used
            },
            MultiThreaded = false,
        };
        using var ocrInput = new OcrInput(); // create a disposible ocr input object
        ocrInput.AddImage(@"sample1.png"); // load the sample image 
        var ocrResult = ocrTesseract.Read(ocrInput); // read the text from the image
        Console.WriteLine(ocrResult.Text);// output the image
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Explication du code

  1. Configuration IronOCR : Une instance d'IronTesseract(la classe principale IronOCR) est créée et affectée à la variable ocrTesseract.

    Les paramètres de configuration sont appliqués à ocrTesseract :

    1. Langue : Spécifie la langue de l'OCR(en l'occurrence, l'anglais).

    2. Configuration : Un objet TesseractConfiguration qui permet une personnalisation plus poussée :

    3. ReadBarCodes : Désactive la lecture des codes-barres.

    4. BlackListCharacters : Spécifie les caractères à mettre sur liste noire(caractères à ne pas reconnaître).

    5. WhiteListCharacters : Aucune liste blanche n'est spécifiée, tous les caractères sont autorisés.

    6. PageSegmentationMode : Définit le mode de segmentation des pages sur "AutoOsd"

    7. TesseractVariables : Aucune variable personnalisée n'a été utilisée.
    1. MultiThreaded : Désactive le multithreading.
  1. EntréeOCR et chargement d'images: Un bloc d'utilisation crée un objet ocrInput jetable de type OcrInput. Le fichier image "sample1.png" est ajouté à ocrInput.

  2. Extraction de texte : La méthode Read est appelée sur ocrTesseract, en passant par ocrInput.

  3. Le résultat est stocké dans la variable ocrResult.

  4. Sortie : Le texte extrait est imprimé sur la console à l'aide de Console.WriteLine(ocrResult.Text).

Sortie

Comment créer une reconnaissance de caractères en C# : Figure 8 - Texte extrait à l'aide d'IronOCR

Étape 5 : Optimisation des performances de l'opération de lecture IronOCR.

Lorsque vous travaillez avec IronOCR, vous avez accès à divers filtres d'image qui peuvent aider à prétraiter les images avant d'effectuer l'OCR. Ces filtres optimisent la qualité de l'image, améliorent la visibilité et réduisent le bruit ou les artefacts. Ils permettent d'améliorer les performances de l'opération d'OCR.

  1. Rotate :

    Le filtre Rotation permet de faire pivoter les images d'un certain nombre de degrés dans le sens des aiguilles d'une montre. Pour une rotation dans le sens inverse des aiguilles d'une montre, utilisez des nombres négatifs.

  2. Deskew :

    Le filtre Deskew corrige l'obliquité de l'image, en veillant à ce que le texte soit droit et orthogonal. Ceci est particulièrement utile pour l'OCR, car Tesseract fonctionne mieux avec des scans correctement orientés.

  3. Echelle :

    Le filtre Échelle met à l'échelle proportionnellement les pages d'entrée de l'OCR.

  4. Binariser :

    Le filtre Binarize convertit chaque pixel en noir ou en blanc, sans zone intermédiaire. Il permet d'améliorer les performances de l'OCR en cas de très faible contraste entre le texte et l'arrière-plan.

  5. ToGrayScale :

    Le filtre ToGrayScale convertit chaque pixel en une nuance de gris. Bien qu'il soit peu probable qu'elle améliore de manière significative la précision de l'OCR, elle peut en améliorer la vitesse.

  6. Invert :

    Le filtre Invert inverse les couleurs : le blanc devient noir et le noir devient blanc.

  7. ReplaceColor :

    Le filtre ReplaceColor remplace une couleur spécifique dans une image par une autre couleur, en tenant compte d'un certain seuil.

  8. Contraste :

    Le filtre Contraste augmente automatiquement le contraste. Il améliore souvent la vitesse et la précision de l'OCR dans les numérisations à faible contraste.

  9. Dilater et Éroder :

    Ces filtres morphologiques avancés manipulent les limites des objets dans une image.

    1. La dilatation ajoute des pixels aux limites de l'objet.
    1. Erode supprime les pixels des limites de l'objet.

    2. Aiguiser :

      Le filtre Sharpen permet d'accentuer la netteté des documents OCR flous et d'aplatir les canaux alpha au blanc.

    3. DeNoise :

      Le filtre DeNoise supprime le bruit numérique. Utilisez-le lorsque du bruit est attendu.

    4. DeepCleanBackgroundNoise :

      Ce filtre de suppression du bruit de fond important ne doit être utilisé que lorsque le bruit de fond extrême du document est connu. Elle peut réduire la précision de l'OCR pour les documents propres et est gourmande en ressources humaines.

    5. Améliorer la résolution :

      Le filtre EnhanceResolution améliore la résolution des images de faible qualité. Elle n'est pas souvent nécessaire en raison de la gestion automatique de la résolution.

    Voici un exemple d'application de filtres à l'aide d'IronOCR en C# :

var ocr = new IronTesseract();
var input = new OcrInput();
input.LoadImage("sample.png");
input.Deskew();
var result = ocr.Read(input);
Console.WriteLine(result.Text);
var ocr = new IronTesseract();
var input = new OcrInput();
input.LoadImage("sample.png");
input.Deskew();
var result = ocr.Read(input);
Console.WriteLine(result.Text);
Dim ocr = New IronTesseract()
Dim input = New OcrInput()
input.LoadImage("sample.png")
input.Deskew()
Dim result = ocr.Read(input)
Console.WriteLine(result.Text)
VB   C#

Applications courantes de l'OCR

  1. Numérisation de documents: L'OCR est largement utilisé pour convertir en format numérique des documents papier scannés, tels que des factures, des reçus, des formulaires et des contrats. Ce processus de numérisation rationalise le stockage, la récupération et la gestion des documents, réduisant ainsi l'encombrement du papier et améliorant l'efficacité.

  2. Extraction de données: L'OCR permet d'extraire du texte et des données à partir de documents numérisés, d'images et de PDF. Ces données extraites peuvent être utilisées pour la saisie automatisée de données, l'analyse de contenu, l'indexation et l'intégration dans des bases de données ou des systèmes d'entreprise.

  3. **La technologie OCR permet d'extraire du texte à partir d'images imprimées ou manuscrites à des fins d'indexation et de recherche. Cette capacité est utilisée dans diverses applications, notamment la réalité augmentée, les moteurs de recherche basés sur l'image et les services de traduction.

  4. Reconnaissance automatique des plaques d'immatriculation(ALPR): Les systèmes ALPR utilisent l'OCR pour lire les numéros de plaques d'immatriculation à partir d'images ou de flux vidéo capturés par des caméras installées dans des applications de surveillance du trafic, de gestion des parkings, de perception de péages et d'application de la loi.

  5. Solutions d'accessibilité: OCR joue un rôle crucial dans la création de contenus accessibles aux personnes souffrant de déficiences visuelles. En convertissant le texte des images ou des documents en parole ou en braille, l'OCR contribue à rendre l'information accessible aux personnes handicapées.

  6. **La technologie OCR est utilisée dans les processus de vérification de l'identité, tels que la numérisation et le traitement des documents d'identité comme les passeports, les permis de conduire et les cartes d'identité. Il permet de vérifier l'authenticité des documents et d'extraire des informations pertinentes à des fins de vérification de l'identité.

  7. Banque et finance: L'OCR est utilisé dans la banque et la finance pour des tâches telles que la lecture de chèques, le traitement de factures, la conversion d'un document PDF existant, l'extraction de données à partir d'états financiers et l'automatisation de flux de travail basés sur des documents afin d'améliorer la précision et l'efficacité des opérations financières.

  8. **Dans le secteur de la santé, l'OCR facilite la conversion des dossiers médicaux manuscrits ou imprimés en formats électroniques, ce qui contribue à la création de dossiers médicaux électroniques(DSE) la gestion, l'analyse des données et les processus de prise de décision.

  9. **La technologie OCR est intégrée dans les outils de traduction et les applications d'apprentissage des langues pour convertir les textes imprimés d'une langue à l'autre. Les utilisateurs peuvent saisir du texte à l'aide de leur appareil et l'OCR les aide à le traduire dans la langue souhaitée en temps réel.

    1. Préservation des archives et des documents historiques: L'OCR est utilisé pour numériser les documents d'archives et les documents historiques, les préservant dans des formats numériques pour un accès futur, la recherche et l'analyse, tout en assurant la préservation d'un patrimoine culturel de grande valeur.

Conditions d'obtention de la licence

IronOCR. Fournissez les détails ci-dessous pour recevoir la clé à votre adresse électronique

Comment créer une reconnaissance de caractères en C# : Figure 9 - Page de licence d'essai d'IronPDF

Une fois la clé obtenue, soit par achat, soit par essai gratuit, suivez les étapes suivantes pour utiliser la clé

Définir votre clé de licence : Définissez votre clé de licence IronOCR en utilisant le code. Ajoutez la ligne suivante au démarrage de votre application(avant d'utiliser IronOCR):

IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";
IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";
IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01"
VB   C#

Clé d'application mondiale(Web.Config ou App.Config) : Pour appliquer une clé globalement dans votre application, utilisez le fichier de configuration(Web.Config ou App.Config). Ajoutez la clé suivante à votre appSettings :

<configuration>
    <!-- Other settings -->
    <appSettings>
        <add key="IronOcr.LicenseKey" value="IRONOCR-MYLICENSE-KEY-1EF01"/>
    </appSettings>
</configuration>
<configuration>
    <!-- Other settings -->
    <appSettings>
        <add key="IronOcr.LicenseKey" value="IRONOCR-MYLICENSE-KEY-1EF01"/>
    </appSettings>
</configuration>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<configuration> <!-- Other settings -- > <appSettings> <add key="IronOcr.LicenseKey" value="IRONOCR-MYLICENSE-KEY-1EF01"/> </appSettings> </configuration>
VB   C#

Utilisation du fichier appsettings.json de .NET Core : Pour les applications .NET Core, créez un fichier appsettings.json dans le répertoire racine de votre projet. Remplacez la clé "IronOcr.LicenseKey" par la valeur de votre licence :

{
    "IronOcr.LicenseKey": "IRONOCR-MYLICENSE-KEY-1EF01"
}
{
    "IronOcr.LicenseKey": "IRONOCR-MYLICENSE-KEY-1EF01"
}
If True Then
	"IronOcr.LicenseKey": "IRONOCR-MYLICENSE-KEY-1EF01"
End If
VB   C#

Test de votre clé de licence : Vérifiez que votre clé a été installée correctement en la testant :

bool result = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01");
bool result = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01");
Dim result As Boolean = IronOcr.License.IsValidLicense("IRONOCR-MYLICENSE-KEY-1EF01")
VB   C#

Conclusion

En conclusion,IronOCRà partir de 749 $. Profitez de la puissance de l'OCR avecIronOCR et ouvrez un monde de possibilités dans vos projets C#.

< PRÉCÉDENT
Comment réaliser l'OCR de l'immatriculation d'un véhicule en C#
SUIVANT >
Comment lire des documents d'identité à l'aide de l'OCR en C#