IRONOCR VERWENDEN

OCR von Nummernschildern in C# (Anleitung)

Aktualisiert 12. November 2024
Teilen Sie:

Einführung

Die Kennzeichenerkennung ist zu einem unverzichtbaren Werkzeug in vielen Branchen geworden, von der Verkehrsüberwachung und Parksystemen bis hin zu Strafverfolgung und Mautlösungen. Durch die NutzungOptische Zeichenerkennung (OCR)Mit dieser Technologie können Entwickler effizient Text aus Bildern extrahieren und den Prozess der Identifizierung von Nummernschildern automatisieren. In diesem Tutorial werden wir demonstrieren, wie man IronOCR, eine leistungsstarke C# OCR-Bibliothek, um Nummernschilder aus Bildern genau zu lesen. Mit seiner nahtlosen Integration in den OpenCV-Quellcode für Computer-Vision-Aufgaben bietet IronOCR eine robuste Lösung zur Texterkennung selbst aus komplexen oder rauschenden Bildquellen. Egal ob Sie mit einem klaren Bild eines Nummernschildes oder einem vollständigen Fahrzeugfoto arbeiten, dieser Leitfaden führt Sie durch die Schritte, um ein zuverlässiges System zur Nummernschilderkennung mit modernen OCR-Techniken zu erstellen.

Wie man die Nummernschilderkennung in C# verwendet

  1. Installieren Sie die C#-Bibliothek, um die Nummernschilderkennung zu nutzen.

  2. Importieren Sie das Nummernschildbild in eine neue OcrImageInput-Instanz.

  3. Bildfilter anwenden, um die Textextraktion in C# zu verbessern

  4. Verbessern Sie die Erkennungsgeschwindigkeit, indem Sie den Kennzeichenbereich im Foto angeben.

  5. Drucken Sie den extrahierten Text mit einer Instanz von OcrLicensePlateResult aus.

Erste Schritte mit IronOCR

IronOCR ist eine C#-OCR-Bibliothek, die auf der Tesseract-OCR-Engine basiert und speziell entwickelt wurde, um Text-Erkennungsprojekte in .NET-Anwendungen mit hoher Genauigkeit und Effizienz zu unterstützen. Ideal für die Verarbeitung von lauten oder minderwertigen Bildern bietet IronOCR leistungsstarke Bildvorverarbeitungsfunktionen wie automatische Rauschunterdrückung und Graustufenumwandlung, die die Klarheit der Textextraktion verbessern.

Einige der herausragenden Funktionen von IronOCR umfassen:

  • Hohe OCR-Genauigkeit: Optimiert für verschiedene Sprachen und Schriftarten, zeichnet sich IronOCR durch hohe Genauigkeit aus, selbst bei komplexem oder verzerrtem Text.
  • Bild- und PDF-Unterstützung: Es kann Text aus verschiedenen Bildformaten und PDF-Dateien lesen, was es vielseitig für unterschiedliche Dokumenttypen macht.
  • Integration mit OpenCV: Durch die Unterstützung von OpenCV kann IronOCR Computer Vision-Aufgaben durchführen, wie z.B. das Erkennen bestimmter Textbereiche innerhalb eines Bildes, was insbesondere für die Erkennung von Nummernschildern nützlich ist.
  • Erweiterte Vorverarbeitung: Beinhaltet Filter für Graustufenumwandlung, Rotation, Entzerrung und Kontrastverbesserung, um die Erkennungsqualität zu verbessern.
  • Flexible Eingabeoptionen: Unterstützt mehrseitige Dokumente und anpassbare Bereiche, sodass Entwickler die OCR-Verarbeitung auf ausgewählte Bereiche konzentrieren können, um schnellere und gezieltere Ergebnisse zu erzielen.

    Mit diesen Fähigkeiten ist IronOCR eine leistungsstarke Lösung für den Aufbau von OCR-Anwendungen, die Genauigkeit, Flexibilität und einfache Integration mit anderen Computer Vision-Tools erfordern.

Erstellen eines Visual Studio-Projekts

Öffnen Sie Visual Studio und wählen Sie "Neues Projekt erstellen". Dadurch gelangen Sie auf eine Seite, auf der Sie die Art des Projekts auswählen können, das Sie erstellen möchten.(In unserem Fall werden wir eine Konsolenanwendung erstellen.). Wählen Sie den gewünschten Anwendungstyp aus und klicken Sie auf "Weiter".

License Plate Ocr Csharp Tutorial 1 related to Erstellen eines Visual Studio-Projekts

Geben Sie Ihrem Projekt jetzt einen Namen und wählen Sie den Speicherort aus, an dem es gespeichert werden soll.

License Plate Ocr Csharp Tutorial 2 related to Erstellen eines Visual Studio-Projekts

Wählen Sie schließlich Ihr Ziel-.NET-Framework aus und klicken Sie auf die Schaltfläche "Erstellen". Dadurch wird das Projekt wie unten gezeigt erstellt.

License Plate Ocr Csharp Tutorial 3 related to Erstellen eines Visual Studio-Projekts

Der nächste Schritt besteht darin, die IronOCR-Bibliothek zu installieren, damit wir mit der Verarbeitung von Nummernschildern beginnen können.

Installation von IronOCR

Um mit IronOCR in Ihrem C#-Projekt zu beginnen, müssen Sie das IronOCR-Paket von NuGet installieren. IronOCR ist kompatibel mit dem .NET Framework und .NET Core, was die Integration in verschiedene .NET-Anwendungen erleichtert.

Schritt 1: Öffnen Sie die Paket-Manager-Konsole

Navigieren Sie in Visual Studio zu Tools > NuGet Package Manager > Package Manager Console.

Schritt 2: Installieren Sie das IronOCR-Paket

Geben Sie den folgenden Befehl in der Paket-Manager-Konsole ein:

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

Dieser Befehl installiert die IronOCR-Bibliothek, einschließlich aller Abhängigkeiten, die erforderlich sind, um OCR-Funktionen in Ihrem Projekt auszuführen. Da unsere Anwendung erweiterte Funktionen wie Kennzeichenerkennung mittels Computer Vision benötigt, können Sie das optionale IronOcr.ComputerVision.Windows-Paket auf diese Weise installieren:

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#

Und stellen Sie sicher, dass Sie dieIronOcr.Extensions.AdvancedScanErweiterung installiert, damit Sie die leistungsstarke ReadLicensePlate-Methode nutzen können:

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#

Alternativ können Sie die Pakete über Tools > NuGet-Paket-Manager > NuGet-Pakete für die Lösung verwalten installieren und nach den benötigten Paketen suchen:

License Plate Ocr Csharp Tutorial 4 related to Schritt 2: Installieren Sie das IronOCR-Paket

Einrichten des Codes

Schließlich müssen wir die erforderlichen Imports und Using-Anweisungen am Anfang unseres Codes hinzufügen:

using IronOcr;
using IronOcr;
Imports IronOcr
VB   C#

Lesen von Nummernschildern mit optischer Zeichenerkennung

In diesem Abschnitt werden wir ein Programm erstellen, um Nummernschilder mithilfe von IronOCR zu lesen.IronOCReine Tesseract-OCR-Engine, die sich durch die Extraktion von Text aus Bildern auszeichnet. Um die Fahrzeugerkennung zu implementieren, können wir auch zusätzliche Machine-Learning-Bibliotheken einbinden. Bemerkenswerterweise integriert sich IronOCR mit OpenCV, einer führenden Open-Source-Computer-Vision-Bibliothek, die es uns ermöglicht, Objekterkennungsaufgaben wie die Identifizierung von Fahrzeugen und Kennzeichen durchzuführen.

Beispiel eines Kennzeichenbildes

Wir werden mit folgendem Nummernschild arbeiten:

License Plate Ocr Csharp Tutorial 5 related to Beispiel eines Kennzeichenbildes

Fügen Sie als Nächstes den folgenden Code hinzu, um OCR auf dem Nummernschild durchzuführen:

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 OCR von Nummernschildern in C# (Anleitung)

Code-Aufschlüsselung:

  • Initialisierung: Die Zeile var ocr = new IronTesseract(); erstellt eine neue Instanz derEisenTesseraktKlasse, die Methoden für die optische Zeichenerkennung bereitstellt(OCR).
  • Bild-Eingabe: Die using-Anweisung erstellt ein neuesOcrImageInputObjekt mit der angegebenen Bilddatei "licensePlate.jpeg". Dieses Objekt ist dafür ausgelegt, die Bilddaten für die OCR-Verarbeitung zu halten.
  • Bildvorverarbeitung:

    • input.DeNoise();wendet einen digitalen Rauschunterdrückungsfilter an, um die Bildqualität zu verbessern, sodass die OCR-Engine den Text einfacher lesen kann.
  • input.InGraustufen();konvertiert das Bild in Graustufen, was die Erkennungsgenauigkeit und Verarbeitungsgeschwindigkeit verbessern kann.
  • Kennzeichenerkennung: Die Zeile OcrLicensePlateResult result = ocr.ReadLicensePlate(eingabe); verwendet die ReadLicensePlate-Methode, um das verarbeitete Bild zu analysieren und alle erkannten Kennzeicheninformationen zu extrahieren, wobei die Ergebnisse in einemOcrLicensePlateResult objekt.
  • Ausgabespeicherung: Der Kennzeichentext wird in der Zeichenfolgenvariablen output gespeichert, indem auf result.Text zugegriffen wird, das den erkannten Text des Kennzeichens enthält.
  • Konsolenausgabe: Schließlich, Console.WriteLine(ausgabe); druckt den extrahierten Kennzeichentext zur Überprüfung auf die Konsole.

Scannen von Nummernschildern aus einem Auto

Wenn wir ein Bild eines gesamten Autos anstatt nur des Nummernschilds haben, können wir einen rechteckigen Bereich angeben, um uns auf den Bereich des Nummernschilds zu konzentrieren. Wir können verwendenSystem.Drawing.Rectanglediesen Bereich in Pixeln festzulegen.

Originalbild

Wir werden die folgende Bilddatei für unser Beispiel verwenden:

License Plate Ocr Csharp Tutorial 7 related to Originalbild

Indem wir das Interessengebiet angeben, verbessern wir die Verarbeitungsgeschwindigkeit und vermeiden es, unnötigen Text zu extrahieren.

Implementierungscode

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 Implementierungscode

Code-Aufschlüsselung:

  • Initialisierung: var ocr = new IronTesseract(); erstellt eine neue Instanz der IronTesseract-Klasse, die für die Ausführung der OCR-Operationen verantwortlich ist.
  • OCR-Eingabe: Die Verwendung(var input = new OcrInput())Die Anweisung erstellt ein neues OcrInput-Objekt, das verwendet wird, um das Bild für die OCR zu laden und zu verarbeiten.
  • Definieren des Interessengebiets: var contentArea = new Rectangle(x: 252, y: 282, Breite: 148, Höhe: 47); definiert einen rechteckigen Bereich(Inhaltsbereich)im Bild. Dieses Rechteck gibt die Koordinaten und Abmessungen an.(breite und Höhe)wo sich das Kennzeichen voraussichtlich befindet.
  • Bild Laden: input.LoadImage("CarPlate.jpeg", Inhaltsbereich); lädt die angegebene Bilddatei("CarPlate.jpeg")und konzentriert sich auf das definierte Rechteck(Inhaltsbereich)um die OCR-Verarbeitung auf diesen spezifischen Bereich zu beschränken.
  • Das Nummernschild lesen: OcrLicensePlateResult result = ocr.ReadLicensePlate(eingabe); ruft die Methode ReadLicensePlate auf, die das Eingabebild auf Kennzeichenzeichen analysiert und ein OcrLicensePlateResult-Objekt zurückgibt, das den extrahierten Text enthält.
  • Ausgabe: Console.WriteLine(result.Text); druckt den erkannten Text des Nummernschilds auf die Konsole.

Automatische Nummernschild-Erkennung

IronOCR nutzt OpenCV, um Textbereiche innerhalb von Bildern zu identifizieren und setzt dabei verschiedene Bildverarbeitungstechniken ein. Diese Funktionalität ermöglicht es dem Programm, Nummernschilder zu erkennen, indem Textbereiche im Bild lokalisiert und anschließend Tesseract verwendet werden, um diese Bereiche zu lesen.

Einrichtung

Um das Kennzeichenerkennungsmodell zu aktivieren, installieren Sie das erforderliche Paket über die Paket-Manager-Konsole:

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 Einrichtung

Code-Aufschlüsselung:

  • Initialisierung: Eine Instanz der IronTesseract-Klasse wird erstellt, die für die optische Zeichenerkennung verwendet wird.(OCR)mit der Tesseract-Engine.
  • Bild Eingabe: Ein neues OcrImageInput-Objekt wird mit der angegebenen Bilddatei instanziiert("CarPlate.jpeg"). Dieses Objekt dient als Eingabe für den OCR-Prozess und ist in eine using-Anweisung eingeschlossen, um ein ordnungsgemäßes Ressourcenmanagement sicherzustellen.
  • Texterkennungsbereich: DerFindTextRegionMethode wird auf das Eingabeobjekt aufgerufen. Diese Methode verwendet Computer-Vision-Techniken, um automatisch Bereiche im Bild zu identifizieren, die wahrscheinlich Text enthalten, wobei speziell das Nummernschild ins Visier genommen wird.
  • Kennzeichenerkennung: Die Methode ReadLicensePlate wird aufgerufen, um die erkannten Textbereiche zu analysieren und die Kennzeichennummer zu extrahieren. Das Ergebnis wird in einem OcrLicensePlateResult-Objekt gespeichert, das den erkannten Text und alle zugehörigen Metadaten enthält.
  • Ausgabe: Der erkannte Kennzeichentext wird in die Konsole gedruckt, sodass der Benutzer die extrahierte Kennzeichennummer sehen kann.

IronOCR-Lizenzierung

License Plate Ocr Csharp Tutorial 10 related to IronOCR-Lizenzierung

Für diejenigen, die IronOCR selbst ausprobieren möchten, bietet IronOCR einkostenloser Testdas Ihnen Zugang zu der gesamten Palette an Tools gewährt, die angeboten werden, was bedeutet, dass Sie sie in Ihren eigenen Projekten ausprobieren können, bevor Sie eine Lizenz kaufen. Sobald Ihre kostenlose Testversion abläuft,IronOCR-Lizenzierungbeginnt ab nur $749 für die Lite License. Es bietet auch optionale Add-ons gegen Aufpreis, wie etwa die gebührenfreie Weitergabeabdeckung sowie ununterbrochene Unterstützung und fortlaufende Produktaktualisierungen.

Darüber hinaus, wenn Sie feststellen, dass Sie über IronOCR hinaus noch weitere IronSoftware-Produkte benötigen, wie z.B. IronPDF für Ihre PDF-bezogenen Aufgaben oder IronWord für die Arbeit mit Word-Dokumenten, dann bietet IronSoftware auch Iron Suite, was eine großartige Möglichkeit ist, Zugang zur gesamten Palette von Tools zu einem großartigen Preis zu haben.

Schlussfolgerung

In diesem Leitfaden haben wir untersucht, wie man ein zuverlässiges Kennzeichenerkennungssystem in C# erstellt, indem manIronOCR. Mit seinen leistungsstarken Textextraktionsfähigkeiten und der Integration mit OpenCV bietet IronOCR eine effiziente, benutzerfreundliche Lösung für Anwendungen, die eine genaue Texterkennung aus Fahrzeugbildern erfordern. Von der Vorverarbeitung des Bildes bis hin zur Einstellung bestimmter Erkennungsregionen vereinfacht IronOCR den OCR-Prozess mit Werkzeugen, die speziell für verrauschte oder komplexe Bilder angepasst sind, wie beispielsweise Nummernschilder in Verkehrs- und Überwachungsaufnahmen.

Egal, ob Sie für Verkehrsüberwachung, Parkraumüberwachung oder jede Anwendung, die eine automatisierte Nummernschilderkennung erfordert, entwickeln – IronOCR bietet eine umfassende Bibliothek, die sich nahtlos in .NET-Umgebungen integrieren lässt. Indem Sie diese Schritte befolgen, sind Sie in der Lage, OCR-gesteuerte Lösungen bereitzustellen, die Effizienz und Genauigkeit in verschiedenen realen Szenarien verbessern. Mit zusätzlichen Funktionen wie Regionenauswahl und Rauschreduzierung garantiert IronOCR, dass Ihre Aufgaben zur Kennzeichenerkennung für bestmögliche Ergebnisse optimiert sind.

< PREVIOUS
OCR von Führerscheinen in C#
NÄCHSTES >
Wie man Text aus einer Rechnung in C# Tutorial

Sind Sie bereit, loszulegen? Version: 2024.11 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 2,791,504 Lizenzen anzeigen >