UTILISATION DE L'IRONOCR

Comment reconnaître une plaque d'immatriculation en C# (Tutoriel)

Mise à jour novembre 12, 2024
Partager:

Introduction

La reconnaissance des plaques d'immatriculation est devenue un outil essentiel dans de nombreux secteurs, allant de la gestion du trafic et des systèmes de stationnement à l'application de la loi et aux solutions de péage. En tirant parti de Reconnaissance optique de caractères (OCR)technologie, les développeurs peuvent extraire efficacement du texte à partir d'images, en automatisant le processus d'identification des plaques d'immatriculation. Dans ce tutoriel, nous allons démontrer comment utiliser IronOCRune bibliothèque OCR C# puissante, pour lire avec précision les plaques d'immatriculation à partir d'images. Grâce à son intégration transparente avec le code source OpenCV pour les tâches de vision par ordinateur, IronOCR offre une solution robuste pour la reconnaissance de texte, même à partir de sources d'images complexes ou bruyantes. Que vous travailliez avec une image de plaque d'immatriculation claire ou une photo complète de véhicule, ce guide vous expliquera les étapes pour créer un système de reconnaissance de plaques d'immatriculation fiable en utilisant des techniques modernes de ROC.

Comment utiliser la reconnaissance de plaques d'immatriculation en C

  1. Install the C# library to use license plate recognition

  2. Importer l'image de la plaque d'immatriculation dans une nouvelle instance de OcrImageInput.

  3. Appliquer des filtres d'image pour améliorer l'extraction de texte en C#

  4. Améliorez la vitesse de reconnaissance en spécifiant la région de la plaque d'immatriculation sur la photo.

  5. Imprimez le texte extrait en utilisant une instance de OcrLicensePlateResult

Premiers pas avec IronOCR

IronOCR est une bibliothèque OCR en C# construite sur le moteur Tesseract OCR, spécialement conçue pour offrir une grande précision et efficacité aux projets de reconnaissance de texte dans les applications .NET. Idéal pour gérer les images bruyantes ou de basse qualité, IronOCR inclut de puissantes capacités de prétraitement d'image comme la réduction automatique du bruit et la conversion en niveaux de gris, qui améliorent la clarté de l'extraction de texte.

Certaines des fonctionnalités remarquables d'IronOCR incluent :

  • Haute précision OCR : Optimisé pour différentes langues et polices, IronOCR excelle en précision même lorsqu'il travaille avec du texte complexe ou déformé.
  • Support pour les images et les PDF : Il peut lire du texte à partir de plusieurs formats d'images et de fichiers PDF, ce qui le rend polyvalent pour différents types de documents.
  • Intégration avec OpenCV : Grâce au support d'OpenCV, IronOCR peut effectuer des tâches de vision par ordinateur telles que la détection de zones de texte spécifiques dans une image, ce qui est particulièrement utile pour la reconnaissance de plaques d'immatriculation.
  • Prétraitement avancé : Inclut des filtres pour la conversion en niveaux de gris, la rotation, le redressement et l'amélioration du contraste pour améliorer la qualité de reconnaissance.
  • Options d'entrée flexibles : Prend en charge les documents multipages et les régions ajustables, permettant aux développeurs de concentrer le traitement OCR sur des zones sélectionnées pour des résultats plus rapides et plus ciblés.

    Avec ces capacités, IronOCR est une solution puissante pour développer des applications de reconnaissance optique de caractères (OCR) qui exigent précision, flexibilité et facilité d'intégration avec d'autres outils de vision par ordinateur.

Créer un projet Visual Studio

Commencez par ouvrir Visual Studio et sélectionner « Créer un nouveau projet ». Cela vous amènera à une page où vous pouvez sélectionner le type de projet que vous souhaitez créer.(dans notre cas, nous créerons une application console). Sélectionnez le type d'application souhaité et cliquez sur "Suivant".

License Plate Ocr Csharp Tutorial 1 related to Créer un projet Visual Studio

Maintenant, donnez un nom à votre projet et choisissez l'emplacement où il sera enregistré.

License Plate Ocr Csharp Tutorial 2 related to Créer un projet Visual Studio

Enfin, sélectionnez votre framework .NET cible et cliquez sur le bouton "Créer". Cela créera le projet, comme indiqué ci-dessous.

License Plate Ocr Csharp Tutorial 3 related to Créer un projet Visual Studio

La prochaine étape consiste à installer la bibliothèque IronOCR afin que nous puissions commencer à traiter les plaques d'immatriculation.

Installation de l'IronOCR

Pour commencer avec IronOCR dans votre projet C#, vous devrez installer le package IronOCR depuis NuGet. IronOCR est compatible avec .NET Framework et .NET Core, ce qui le rend facile à intégrer dans diverses applications .NET.

Étape 1 : Ouvrez la console du gestionnaire de packages

Dans Visual Studio, naviguez vers Tools > NuGet Package Manager > Package Manager Console.

Étape 2 : Installer le package IronOCR

Entrez la commande suivante dans la console du gestionnaire de packages :

Install-Package IronOcr
Install-Package IronOcr
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronOcr
VB   C#

Cette commande installe la bibliothèque IronOCR, y compris toutes les dépendances nécessaires pour exécuter les fonctions OCR dans votre projet. Comme notre application nécessite des fonctionnalités avancées telles que la détection de plaques d'immatriculation à l'aide de la vision par ordinateur, vous pouvez également installer le package facultatif IronOcr.ComputerVision.Windows de cette manière :

Install-Package IronOcr.ComputerVision.Windows
Install-Package IronOcr.ComputerVision.Windows
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronOcr.ComputerVision.Windows
VB   C#

Et assurez-vous d'avoir leIronOcr.Extensions.AdvancedScanextension installée afin que vous puissiez utiliser sa puissante méthode ReadLicensePlate :

Install-Package IronOcr.Extensions.AdvancedScan
Install-Package IronOcr.Extensions.AdvancedScan
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronOcr.Extensions.AdvancedScan
VB   C#

Alternativement, vous pouvez installer les packages en utilisant Outils > Gestionnaire de paquet NuGet > Gérer les packages NuGet pour la solution et rechercher les packages dont vous avez besoin :

License Plate Ocr Csharp Tutorial 4 related to Étape 2 : Installer le package IronOCR

Configuration du code

Enfin, nous devons ajouter les importations nécessaires et les instructions using en haut de notre code :

using IronOcr;
using IronOcr;
Imports IronOcr
VB   C#

Lecture des plaques d'immatriculation avec la reconnaissance optique de caractères

Dans cette section, nous allons créer un programme pour lire les plaques d'immatriculation en utilisantIronOCR, un moteur OCR Tesseract qui excelle dans l'extraction de texte à partir d'images. Pour mettre en œuvre la détection de véhicules, nous pouvons également incorporer des bibliothèques de machine learning supplémentaires. Notamment, IronOCR s'intègre avec OpenCV, une bibliothèque open-source de vision par ordinateur de premier plan, ce qui nous permet d'effectuer des tâches de détection d'objets telles que l'identification de véhicules et de plaques d'immatriculation.

Exemple d'image de plaque d'immatriculation

Nous travaillerons avec la plaque d'immatriculation suivante :

License Plate Ocr Csharp Tutorial 5 related to Exemple d'image de plaque d'immatriculation

Ensuite, ajoutez le code suivant pour effectuer la reconnaissance OCR sur la plaque d'immatriculation :

using IronOcr;

var ocr = new IronTesseract();

using (var input = new OcrImageInput("licensePlate.jpeg"))
{
    // Fixing the digital noise and making the image easier to read
    input.DeNoise();
    input.ToGrayScale();

    // Using the OcrLicensePlateResult and ReadLicensePlate methods to read the license plate information and store it for further use
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);

    // Saving the license plate text to a string variable
    string output = result.Text;

    // Outputting the license plate text to the console
    Console.WriteLine(output);
}
using IronOcr;

var ocr = new IronTesseract();

using (var input = new OcrImageInput("licensePlate.jpeg"))
{
    // Fixing the digital noise and making the image easier to read
    input.DeNoise();
    input.ToGrayScale();

    // Using the OcrLicensePlateResult and ReadLicensePlate methods to read the license plate information and store it for further use
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);

    // Saving the license plate text to a string variable
    string output = result.Text;

    // Outputting the license plate text to the console
    Console.WriteLine(output);
}
Imports IronOcr

Private ocr = New IronTesseract()

Using input = New OcrImageInput("licensePlate.jpeg")
	' Fixing the digital noise and making the image easier to read
	input.DeNoise()
	input.ToGrayScale()

	' Using the OcrLicensePlateResult and ReadLicensePlate methods to read the license plate information and store it for further use
	Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)

	' Saving the license plate text to a string variable
	Dim output As String = result.Text

	' Outputting the license plate text to the console
	Console.WriteLine(output)
End Using
VB   C#

License Plate Ocr Csharp Tutorial 6 related to Comment reconnaître une plaque d'immatriculation en C# (Tutoriel)

Décomposition du code :

  • Initialisation : La ligne var ocr = new IronTesseract(); crée une nouvelle instance de laTesseract de ferclasse, qui fournit des méthodes pour la reconnaissance optique de caractères(OCR).
  • Entrée d'image : L'instruction using crée un nouveauOcrImageInputobjet avec le fichier image spécifié "licensePlate.jpeg". Cet objet est conçu pour contenir les données d'image destinées au traitement OCR.
  • Prétraitement d'images :

    *input.DeNoise();applique un filtre de réduction de bruit numérique pour améliorer la qualité de l'image, facilitant ainsi la lecture du texte par le moteur OCR.

    *input.ToGrayScale();convertit l'image en niveaux de gris, ce qui peut améliorer la précision de la reconnaissance et la vitesse de traitement.

  • Reconnaissance de plaque d'immatriculation : La ligne OcrLicensePlateResult result = ocr.ReadLicensePlate(entrée); utilise la méthode ReadLicensePlate pour analyser l'image traitée et extraire les informations sur la plaque d'immatriculation qu'il détecte, en stockant les résultats dans unOcrLicensePlateResult objet.
  • Stockage de la sortie : Le texte de la plaque d'immatriculation est stocké dans la variable de type chaîne output en accédant à result.Text, qui contient le texte reconnu de la plaque d'immatriculation.
  • Sortie de la console : Enfin, Console.WriteLine(sortie); affiche le texte de la plaque d'immatriculation extrait sur la console pour vérification.

Numérisation des plaques d'immatriculation à partir d'une voiture

Si nous avons une image de l'ensemble de la voiture plutôt que seulement de la plaque d'immatriculation, nous pouvons spécifier une région rectangulaire pour nous concentrer sur la zone de la plaque d'immatriculation. Nous pouvons utiliserSystem.Drawing.Rectangleà définir cette zone en pixels.

Image originale

Nous utiliserons le fichier image suivant pour notre exemple :

License Plate Ocr Csharp Tutorial 7 related to Image originale

En spécifiant la zone d'intérêt, nous améliorons la vitesse de traitement et évitons d'extraire du texte inutile.

Code d'implémentation

using IronOcr;
using System.Drawing;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47);
    input.LoadImage("CarPlate.jpeg", contentArea);
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
    Console.WriteLine(result.Text);
}
using IronOcr;
using System.Drawing;

var ocr = new IronTesseract();

using (var input = new OcrInput())
{
    var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47);
    input.LoadImage("CarPlate.jpeg", contentArea);
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
    Console.WriteLine(result.Text);
}
Imports IronOcr
Imports System.Drawing

Private ocr = New IronTesseract()

Using input = New OcrInput()
	Dim contentArea = New Rectangle(x:= 252, y:= 282, width:= 148, height:= 47)
	input.LoadImage("CarPlate.jpeg", contentArea)
	Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)
	Console.WriteLine(result.Text)
End Using
VB   C#

License Plate Ocr Csharp Tutorial 8 related to Code d'implémentation

Décomposition du Code :

  • Initialisation : var ocr = new IronTesseract(); crée une nouvelle instance de la classe IronTesseract, qui est chargée d'exécuter les opérations OCR.
  • OCR Input : L'utilisation(var input = new OcrInput())L'instruction crée un nouvel objet OcrInput, qui sera utilisé pour charger et traiter l'image pour l'OCR.
  • Définir la zone d'intérêt : var contentArea = new Rectangle(x : 252, y : 282, largeur : 148, hauteur : 47); définit une zone rectangulaire(contentArea)dans l'image. Ce rectangle spécifie les coordonnées et les dimensions(largeur et hauteur)où la plaque d'immatriculation est censée se trouver.
  • Chargement de l'image : input.LoadImage("CarPlate.jpeg", contentArea); charge le fichier d'image spécifié("CarPlate.jpeg")et se concentre sur le rectangle défini(contentArea)pour limiter le traitement OCR à cette région spécifique.
  • Lecture de la plaque d'immatriculation : OcrLicensePlateResult résultat = ocr.ReadLicensePlate(entrée); invoque la méthode ReadLicensePlate, qui analyse l'image d'entrée pour les caractères de la plaque d'immatriculation et renvoie un objet OcrLicensePlateResult contenant le texte extrait.
  • Sortie: Console.WriteLine(result.Text); imprime le texte reconnu de la plaque d'immatriculation sur la console.

Reconnaissance automatique des plaques d'immatriculation

IronOCR utilise OpenCV pour identifier les zones de texte dans les images, en employant diverses techniques de traitement d'image. Cette fonctionnalité permet au programme de détecter les plaques d'immatriculation en localisant les zones de texte dans l'image, puis en utilisant Tesseract pour lire ces régions.

Installation

Pour activer le modèle de détection de plaques d'immatriculation, installez le package requis via la Console du Gestionnaire de Packages :

var ocr = new IronTesseract();

using (var input = new OcrImageInput("CarPlate.jpeg"))
{
    input.FindTextRegion();
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
    Console.WriteLine(result.Text);
}
var ocr = new IronTesseract();

using (var input = new OcrImageInput("CarPlate.jpeg"))
{
    input.FindTextRegion();
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);
    Console.WriteLine(result.Text);
}
Dim ocr = New IronTesseract()

Using input = New OcrImageInput("CarPlate.jpeg")
	input.FindTextRegion()
	Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)
	Console.WriteLine(result.Text)
End Using
VB   C#

License Plate Ocr Csharp Tutorial 9 related to Installation

Décomposition du Code :

  • Initialisation : Une instance de la classe IronTesseract est créée, qui sera utilisée pour la reconnaissance optique de caractères.(OCR)avec le moteur Tesseract.
  • Image Input : Un nouvel objet OcrImageInput est instancié avec le fichier image spécifié.("CarPlate.jpeg"). Cet objet servira d'entrée pour le processus OCR et est inclus dans une instruction using pour garantir une gestion adéquate des ressources.
  • Détection de la région de texte : LaFindTextRegionla méthode est appelée sur l'objet d'entrée. Cette méthode utilise des techniques de vision par ordinateur pour identifier automatiquement les zones de l'image qui contiennent probablement du texte, en ciblant spécifiquement la plaque d'immatriculation.
  • Reconnaissance de plaque d'immatriculation : La méthode ReadLicensePlate est invoquée pour analyser les régions de texte détectées et extraire le numéro de la plaque d'immatriculation. Le résultat est stocké dans un objet OcrLicensePlateResult, qui contient le texte reconnu et toutes les métadonnées associées.
  • Sortie : Le texte de la plaque d'immatriculation détectée est imprimé sur la console, permettant à l'utilisateur de voir le numéro de plaque extrait.

Licences IronOCR

License Plate Ocr Csharp Tutorial 10 related to Licences IronOCR

Pour ceux qui souhaitent essayer IronOCR par eux-mêmes, IronOCR offre unessai gratuitqui vous donne accès à toute la gamme d'outils qu'il a à offrir, ce qui signifie que vous pouvez les essayer dans vos propres projets avant d'acheter une licence. Une fois votre essai gratuit terminé,Licences IronOCRcommence à partir de seulement $749 pour la licence Lite. Il propose également des modules complémentaires optionnels moyennant un coût supplémentaire, tels que la couverture de redistribution sans redevances, ainsi qu'un support ininterrompu et des mises à jour continues du produit.

Au-delà de cela, si vous avez besoin d'utiliser plus de produits IronSoftware au-delà de simplement IronOCR, comme IronPDF pour vos tâches liées aux PDF ou IronWord pour travailler avec des documents Word, alors IronSoftware propose égalementIron Suite, ce qui est un excellent moyen d'accéder à toute la gamme d'outils à un prix avantageux.

Conclusion

Dans ce guide, nous avons exploré comment construire un système de reconnaissance de plaques d'immatriculation fiable en C# utilisantIronOCR. Grâce à ses puissantes capacités d'extraction de texte et son intégration avec OpenCV, IronOCR offre une solution efficace et facile à utiliser pour les applications nécessitant une reconnaissance précise du texte à partir d'images de véhicules. De la prétraitement de l'image à la définition de régions de détection spécifiques, IronOCR simplifie le processus de reconnaissance optique des caractères (OCR) avec des outils adaptés aux images bruyantes ou complexes, telles que les plaques d'immatriculation dans le trafic et les séquences de surveillance.

Que vous développiez pour la surveillance du trafic, le contrôle du stationnement, ou toute application nécessitant la reconnaissance automatique des plaques d'immatriculation, IronOCR offre une bibliothèque complète qui s'intègre parfaitement aux environnements .NET. En suivant ces étapes, vous êtes prêt à déployer des solutions alimentées par OCR qui améliorent l'efficacité et la précision dans divers scénarios réels. Avec des fonctionnalités supplémentaires comme la sélection de régions et la réduction de bruit, IronOCR garantit que vos tâches de reconnaissance de plaques d'immatriculation sont optimisées pour obtenir les meilleurs résultats possibles.

< PRÉCÉDENT
Comment OCR le permis de conduire en C#
SUIVANT >
Comment obtenir du texte à partir d'une facture en C# Tutoriel