Passer au contenu du pied de page
UTILISATION D'IRONOCR
Comment effectuer la reconnaissance optique de caractères sur les plaques d'immatriculation en C#

Comment effectuer la reconnaissance de plaques d'immatriculation en C# (Tutoriel)

La reconnaissance des plaques d'immatriculation est devenue un outil essentiel dans de nombreux secteurs, de la gestion du trafic et des systèmes de stationnement aux solutions de maintien de l'ordre et de péage. En tirant parti de la technologie de reconnaissance optique de caractères (OCR), les développeurs peuvent extraire efficacement le texte des images, automatisant ainsi le processus d'identification des plaques d'immatriculation. Dans ce tutoriel, nous allons vous montrer comment utiliser IronOCR , une puissante bibliothèque OCR C#, 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 bruitées. Que vous travailliez avec une image nette de plaque d'immatriculation ou une photo complète du véhicule, ce guide vous accompagnera pas à pas dans la création d'un système de reconnaissance de plaques d'immatriculation fiable utilisant les techniques OCR modernes.

Comment utiliser la reconnaissance de plaques d'immatriculation en C

  1. Installez la bibliothèque C# pour utiliser la reconnaissance des plaques d'immatriculation.
  2. Importez l'image de la plaque d'immatriculation dans une nouvelle instance OcrImageInput .
  3. Appliquer des filtres d'image pour améliorer l'extraction de texte en C#.
  4. Améliorer la vitesse de reconnaissance en spécifiant la zone de la plaque d'immatriculation sur la photo.
  5. Imprimez le texte extrait à l'aide d'une instance OcrLicensePlateResult .

Premiers pas avec IronOCR

IronOCR est une bibliothèque OCR C# basée sur le moteur OCR Tesseract, spécialement conçue pour apporter une précision et une efficacité élevées aux projets de reconnaissance de texte dans les applications .NET. Idéal pour le traitement d'images bruitées ou de faible qualité, IronOCR inclut de puissantes fonctionnalités de prétraitement d'image telles que la réduction automatique du bruit et la conversion en niveaux de gris, qui améliorent la clarté de l'extraction de texte.

Parmi les caractéristiques remarquables d'IronOCR, on peut citer :

  • Haute précision OCR : Optimisé pour diverses langues et polices, IronOCR excelle en matière de précision, même lorsqu'il travaille avec des textes complexes ou déformés.
  • Prise en charge des images et des fichiers PDF : Il peut lire le texte de plusieurs formats d'image et de fichiers PDF, ce qui le rend polyvalent pour différents types de documents.
  • Intégration avec OpenCV : Grâce à la prise en charge d'OpenCV, IronOCR peut effectuer des tâches de vision par ordinateur telles que la détection de régions de texte spécifiques dans une image, ce qui est particulièrement utile pour la reconnaissance des plaques d'immatriculation.
  • Prétraitement avancé : Inclut des filtres de conversion en niveaux de gris, de rotation, de redressement et d'amélioration du contraste pour améliorer la qualité de la reconnaissance.
  • Options de saisie 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.

Grâce à ces fonctionnalités, IronOCR est une solution puissante pour la création d'applications OCR exigeant 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électionnez " Créer un nouveau projet ". Vous accéderez ainsi à une page où vous pourrez sélectionner le type de projet que vous souhaitez créer (dans notre cas, nous allons créer une application console). Sélectionnez le type d'application souhaité et cliquez sur " Suivant ".

! Type de projet Visual Studio

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

! Nom et emplacement du projet

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

Projet créé

L'étape suivante consiste à installer la bibliothèque IronOCR afin de pouvoir commencer le traitement des plaques d'immatriculation.

Installation d'IronOCR

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

Étape 1 : Ouvrir la console du gestionnaire de packages

Dans Visual Studio, accédez à Outils > Gestionnaire de packages NuGet > Console du gestionnaire de packages .

Étape 2 : Installez le package IronOCR

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

Install-Package IronOcr

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

Install-Package IronOcr.ComputerVision.Windows

Assurez-vous d'avoir installé l'extension IronOCR.Extensions.AdvancedScan afin de pouvoir utiliser sa puissante méthode ReadLicensePlate :

Install-Package IronOcr.Extensions.AdvancedScan

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

Gestionnaire de packages NuGet

Configuration du code

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

using IronOcr;
using IronOcr;
Imports IronOcr
$vbLabelText   $csharpLabel

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

Dans cette section, nous allons créer un programme pour lire les plaques d'immatriculation en utilisant IronOCR , un moteur OCR Tesseract qui excelle dans l'extraction de texte à partir d'images. Pour mettre en œuvre la détection des véhicules, nous pouvons également intégrer des bibliothèques d'apprentissage automatique supplémentaires. IronOCR s'intègre notamment à OpenCV, une bibliothèque de vision par ordinateur open source 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 allons travailler avec la plaque d'immatriculation suivante :

Exemple de plaque d'immatriculation

Exemple de code pour effectuer une reconnaissance optique de caractères (OCR) sur une plaque d'immatriculation

using IronOcr;

var ocr = new IronTesseract();

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

    // Reads the license plate information and stores it for further use
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);

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

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

var ocr = new IronTesseract();

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

    // Reads the license plate information and stores it for further use
    OcrLicensePlateResult result = ocr.ReadLicensePlate(input);

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

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

Private ocr = New IronTesseract()

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

	' Reads the license plate information and stores it for further use
	Dim result As OcrLicensePlateResult = ocr.ReadLicensePlate(input)

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

	' Outputs the license plate text to the console
	Console.WriteLine(output)
End Using
$vbLabelText   $csharpLabel

! Sortie OCR

Analyse du Code :

  • Initialisation : var ocr = new IronTesseract(); crée une nouvelle instance de la classe IronTesseract , qui fournit des méthodes pour la reconnaissance optique de caractères (OCR).

  • Entrée d'image : L'instruction using crée un nouvel objet OcrImageInput 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 des images :

    • input.DeNoise(); applique un filtre de réduction du 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 des plaques d'immatriculation : La ligne OcrLicensePlateResult result = ocr.ReadLicensePlate(input); utilise la méthode ReadLicensePlate pour analyser l'image traitée et extraire toutes les informations de plaque d'immatriculation qu'elle détecte, en stockant les résultats dans un objet OcrLicensePlateResult .

  • Stockage des données : Le texte de la plaque d'immatriculation est stocké dans la variable de chaîne de caractères output en accédant result.Text , qui contient le texte reconnu de la plaque d'immatriculation.

  • Sortie console : Enfin, Console.WriteLine(output); affiche le texte extrait de la plaque d'immatriculation dans la console pour vérification.

Lecture des numéros de plaques d'immatriculation d'une voiture

Si nous disposons d'une image de la voiture entière plutôt que de la seule plaque d'immatriculation, nous pouvons spécifier une zone rectangulaire pour nous concentrer sur la zone de la plaque d'immatriculation. Nous pouvons utiliser System.Drawing.Rectangle pour définir cette zone en pixels.

Image originale

Nous utiliserons le fichier image suivant comme exemple :

Voiture avec plaque d'immatriculation !

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
$vbLabelText   $csharpLabel

! Sortie OCR ciblée

Analyse du Code :

  • Initialisation : var ocr = new IronTesseract(); crée une nouvelle instance de la classe IronTesseract , qui est responsable de l'exécution des opérations OCR.
  • Entrée OCR : L'instruction using (var input = new OcrInput()) crée un nouvel objet OcrInput , qui sera utilisé pour charger et traiter l'image pour l'OCR.
  • Définition de la zone d'intérêt : var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47); définit une zone rectangulaire (contentArea) dans l'image. Ce rectangle spécifie les coordonnées et les dimensions (largeur et hauteur) de l'emplacement prévu pour la plaque d'immatriculation.
  • Chargement de l'image : input.LoadImage("CarPlate.jpeg", contentArea); charge le fichier 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 result = ocr.ReadLicensePlate(input); invoque la méthode ReadLicensePlate , qui analyse l'image d'entrée à la recherche de caractères de plaque d'immatriculation et renvoie un objet OcrLicensePlateResult contenant le texte extrait.
  • Sortie : Console.WriteLine(result.Text); affiche le texte reconnu de la plaque d'immatriculation dans la console.

Reconnaissance automatique des plaques d'immatriculation

IronOCR exploite OpenCV pour identifier les régions de texte dans les images, en utilisant diverses techniques de traitement d'images. Cette fonctionnalité permet aux programmes 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 des plaques d'immatriculation, installez le package requis via la console du gestionnaire de packages :

Exemple d'utilisation de la détection automatique de la région pour les plaques d'immatriculation :

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
$vbLabelText   $csharpLabel

! Sortie OCR automatique

Analyse 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.
  • Entrée d'image : Un nouvel objet OcrImageInput est instancié avec le fichier image spécifié (" CarPlate.jpeg "). Cet objet servira d'entrée au processus OCR et est inclus dans une instruction using afin d'assurer une gestion appropriée des ressources.
  • Détection de région de texte : La méthode FindTextRegion() est appelée sur l'objet input . Cette méthode utilise des techniques de vision par ordinateur pour identifier automatiquement les zones de l'image susceptibles de contenir du texte, en ciblant spécifiquement la plaque d'immatriculation.
  • Reconnaissance des plaques d'immatriculation : La méthode ReadLicensePlate est utilisée pour analyser les zones de texte détectées et extraire le numéro de 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 affiché sur la console, permettant à l'utilisateur de voir le numéro de plaque d'immatriculation extrait.

Licences IronOCR

! Licence IronOCR

Pour ceux qui souhaitent tester IronOCR par eux-mêmes, IronOCR propose un essai gratuit qui vous donne accès à l'ensemble des outils disponibles, ce qui signifie que vous pouvez les essayer dans vos propres projets avant d'acheter une licence. Une fois votre période d'essai gratuite terminée, la licence IronOCR commence à seulement $liteLicense pour la licence lite. Il propose également des options supplémentaires moyennant un coût additionnel, telles que la couverture de redistribution sans redevance, un support ininterrompu et des mises à jour continues du produit.

Par ailleurs, si vous avez besoin d'utiliser d'autres produits Iron Software que IronOCR, tels qu'IronPDF pour vos tâches liées aux PDF ou IronWord pour travailler avec des documents Word, Iron Software propose également Iron Suite , 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# en utilisant IronOCR . 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 de texte précise à partir d'images de véhicules. Du prétraitement de l'image à la définition de régions de détection spécifiques, IronOCR simplifie le processus OCR grâce à des outils adaptés aux images bruitées ou complexes, comme les plaques d'immatriculation dans la circulation et les images de surveillance.

Que vous développiez des solutions pour la surveillance du trafic, le contrôle du stationnement ou toute autre 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 serez en mesure de déployer des solutions basées sur la reconnaissance optique de caractères (OCR) qui amélioreront l'efficacité et la précision dans divers scénarios concrets. Grâce à des fonctionnalités supplémentaires telles que la sélection de région et la réduction du bruit, IronOCR garantit que vos tâches de reconnaissance de plaques d'immatriculation sont optimisées pour obtenir les meilleurs résultats possibles.

Questions Fréquemment Posées

Comment puis-je utiliser l'OCR pour identifier les numéros de plaques d'immatriculation en C# ?

Vous pouvez utiliser IronOCR pour identifier les numéros de plaques d'immatriculation en C# en employant la classe IronTesseract pour créer une instance OCR, charger l'image contenant la plaque d'immatriculation, appliquer des filtres de prétraitement tels que réduction de bruit, et extraire le texte en utilisant la méthode ReadLicensePlate.

Quels sont les avantages de l'utilisation de l'OCR pour la reconnaissance des plaques d'immatriculation ?

L'utilisation de l'OCR pour la reconnaissance des plaques d'immatriculation automatise le processus d'extraction de texte, offrant une haute précision et efficacité. IronOCR améliore cela en offrant la prise en charge de plusieurs formats d'image et une intégration avec la vision par ordinateur, ce qui le rend idéal pour des applications telles que la gestion du trafic et l'application de la loi.

Comment puis-je gérer des images bruyantes ou de faible qualité dans le traitement OCR ?

IronOCR fournit des capacités puissantes de prétraitement d'image, telles que la réduction automatique de bruit et la conversion en niveaux de gris, qui améliorent la précision de l'extraction de texte même en traitant avec des images bruyantes ou de faible qualité.

Est-il possible de focaliser le traitement OCR sur des régions spécifiques d'une image ?

Oui, IronOCR permet de spécifier des régions d'intérêt rectangulaires dans une image pour concentrer le traitement OCR, améliorant à la fois la vitesse et la précision de l'extraction de texte à partir de zones telles que les plaques d'immatriculation.

Comment commencer avec l'OCR dans un projet Visual Studio ?

Pour commencer à utiliser l'OCR dans un projet Visual Studio, créez une nouvelle Application Console, installez le package IronOCR via NuGet et implémentez la logique OCR en utilisant les classes et méthodes IronOCR. Cette configuration vous permet de réaliser facilement des tâches OCR au sein de votre application.

Quelles fonctionnalités IronOCR offre-t-il pour la reconnaissance des plaques d'immatriculation ?

IronOCR offre une haute précision OCR, une intégration avec OpenCV pour des tâches de vision par ordinateur améliorées, des filtres de prétraitement avancés et la prise en charge de plusieurs formats d'image et de PDF, ce qui en fait un outil polyvalent pour la reconnaissance des plaques d'immatriculation.

Comment IronOCR s'intègre-t-il avec les tâches de vision par ordinateur ?

IronOCR s'intègre avec OpenCV pour réaliser diverses tâches de vision par ordinateur, telles que la détection automatique des régions de texte, améliorant le processus OCR pour des applications comme la reconnaissance des plaques d'immatriculation.

Quelles options de licences sont disponibles pour IronOCR ?

IronOCR propose un essai gratuit ainsi que diverses options de licence, à partir d'une licence légère. Des add-ons supplémentaires et l'Iron Suite sont disponibles pour les utilisateurs recherchant des fonctionnalités étendues à travers différentes applications.

La technologie OCR peut-elle être appliquée aux images complètes de véhicules ?

Oui, IronOCR peut être utilisé avec des images de véhicules entiers. En spécifiant la région de la plaque d'immatriculation, vous pouvez focaliser le traitement OCR sur la zone souhaitée, évitant une extraction de texte inutile et améliorant l'efficacité du traitement.

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