Zum Fußzeileninhalt springen
VERWENDUNG VON IRONOCR
So führen Sie OCR auf Nummernschildern in C# aus

Wie man in C# ein Kfz-Kennzeichen mit OCR erfasst (Tutorial)

Die Erkennung von Kfz-Kennzeichen ist zu einem unverzichtbaren Werkzeug in vielen Branchen geworden, von der Verkehrssteuerung und Parksystemen bis hin zu Strafverfolgung und Mautlösungen. Durch den Einsatz der Optischen Zeichenerkennung (OCR) Technologie können Entwickler effizient Text aus Bildern extrahieren und so den Prozess der Identifizierung von Kfz-Kennzeichen automatisieren. In diesem Tutorial werden wir demonstrieren, wie man IronOCR, eine leistungsstarke C# OCR-Bibliothek, verwendet, um Kfz-Kennzeichen genau aus Bildern zu lesen. Mit der nahtlosen Integration in OpenCV-Quellcode für Aufgaben der Computer Vision bietet IronOCR eine robuste Lösung zur Erkennung von Text selbst aus komplexen oder verrauschten Bildquellen. Egal, ob Sie mit einem sauberen Bild eines Kennzeichens oder einem vollständigen Fahrzeugfoto arbeiten, dieser Leitfaden führt Sie durch die Schritte zum Aufbau eines zuverlässigen Systems zur Kfz-Kennzeichenerkennung mit modernen OCR-Techniken.

Verwendung der Kfz-Kennzeichenerkennung in C#

  1. Installieren Sie die C#-Bibliothek für die Kfz-Kennzeichenerkennung
  2. Importieren Sie das Kfz-Kennzeichenbild in eine neue OcrImageInput-Instanz.
  3. Wenden Sie Bildfilter an, um die Texterkennung in C# zu verbessern.
  4. Verbessern Sie die Erkennungsgeschwindigkeit, indem Sie den Bereich des Kennzeichens im Foto angeben.
  5. Drucken Sie den extrahierten Text mit einer OcrLicensePlateResult-Instanz.

Einstieg mit IronOCR

IronOCR ist eine C# OCR-Bibliothek, die auf der Tesseract OCR-Engine basiert und speziell entwickelt wurde, um hohe Genauigkeit und Effizienz in Texterkennungsprojekten in .NET-Anwendungen zu erzielen. Ideal für den Umgang mit verrauschten oder minderwertigen Bildern, bietet IronOCR leistungsstarke Bildvorverarbeitungsmöglichkeiten wie automatische Rauschreduzierung und Graustufenumwandlung, die die Klarheit der Textextraktion verbessern.

Einige der herausragenden Funktionen von IronOCR sind:

  • Hohe OCR-Genauigkeit: Optimiert für verschiedene Sprachen und Schriftarten, besticht IronOCR durch Genauigkeit, selbst bei der Arbeit mit komplexem oder verzerrtem Text.
  • Unterstützung von Bildern und PDFs: Es kann Text aus verschiedenen Bildformaten und PDF-Dateien lesen und ist somit vielseitig für verschiedene Dokumenttypen geeignet.
  • Integration mit OpenCV: Durch die Unterstützung von OpenCV kann IronOCR Aufgaben der Computer Vision durchführen, wie das Erkennen bestimmter Textbereiche innerhalb eines Bildes, was für die Kfz-Kennzeichenerkennung besonders nützlich ist.
  • Erweiterte Vorverarbeitung: Beinhaltet Filter für Graustufenumwandlung, Rotation, Entzerrung und Kontrasterhöhung, um die Erkennungsqualität zu verbessern.
  • Flexible Eingabeoptionen: Unterstützt mehrseitige Dokumente und einstellbare Bereiche, wodurch 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 Tools der Computer Vision erfordern.

Visuelles Studio-Projekt erstellen

Beginnen Sie mit dem Öffnen von Visual Studio und wählen Sie "Neues Projekt erstellen". Dadurch gelangen Sie zu einer Seite, auf der Sie den Projekttyp auswählen können, den 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".

Projekttyp in Visual Studio

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

Projektname und Speicherort

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

Erstelltes Projekt

Der nächste Schritt besteht darin, die IronOCR-Bibliothek zu installieren, damit wir mit der Verarbeitung von Kfz-Kennzeichen 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 mit .NET Framework und .NET Core kompatibel, was die Integration in verschiedene .NET-Anwendungen erleichtert.

Schritt 1: Paket-Manager-Konsole öffnen

Navigieren Sie in Visual Studio zu Tools > NuGet-Paket-Manager > Paket-Manager-Konsole.

Schritt 2: IronOCR-Paket installieren

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

Install-Package IronOcr

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

Install-Package IronOcr.ComputerVision.Windows

Stellen Sie sicher, dass Sie die IronOcr.Extensions.AdvancedScan Erweiterung installiert haben, damit Sie die leistungsstarke ReadLicensePlate-Methode verwenden können:

Install-Package IronOcr.Extensions.AdvancedScan

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

NuGet-Paket-Manager

Code einrichten

Schließlich müssen wir die notwendigen Importe und using-Anweisungen an den Anfang unseres Codes hinzufügen:

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

Kfz-Kennzeichen mit Optischer Zeichenerkennung lesen

In diesem Abschnitt werden wir ein Programm erstellen, das Kfz-Kennzeichen mit IronOCR, einer Tesseract OCR-Engine, liest, die im Extrahieren von Text aus Bildern hervorragend ist. Um die Fahrzeugerkennung zu implementieren, können wir auch zusätzliche maschinelle Lernbibliotheken einbeziehen. Besonders hervorzuheben ist, dass IronOCR mit OpenCV integriert ist, einer führenden Open-Source-Bibliothek für Computer Vision, die es uns ermöglicht, Objekterkennungsaufgaben wie die Identifizierung von Fahrzeugen und Kfz-Kennzeichen durchzuführen.

Beispiel für ein Kfz-Kennzeichenbild

Wir werden mit folgendem Kfz-Kennzeichen arbeiten:

Kfz-Kennzeichenbeispiel

Beispielcode zur Durchführung von OCR auf Kfz-Kennzeichen

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

OCR-Ausgabe

Code Erklärung:

  • Initialisierung: var ocr = new IronTesseract(); erstellt eine neue Instanz der IronTesseract-Klasse, die Methoden zur Optischen Zeichenerkennung (OCR) bietet.

  • Bildeingabe: Die using-Anweisung erstellt ein neues OcrImageInput-Objekt mit der angegebenen Bilddatei "licensePlate.jpeg". Dieses Objekt ist dafür ausgelegt, die Bilddaten für die OCR-Verarbeitung aufzunehmen.

  • Bildvorverarbeitung:

    • input.DeNoise(); wendet einen digitalen Rauschfilter an, um die Qualität des Bildes zu verbessern, sodass die OCR-Engine den Text leichter lesen kann.
    • input.ToGrayScale(); wandelt das Bild in Graustufen um, was die Erkennungsgenauigkeit und Verarbeitungsgeschwindigkeit verbessern kann.
  • Kfz-Kennzeichenerkennung: Die Zeile OcrLicensePlateResult result = ocr.ReadLicensePlate(input); verwendet die ReadLicensePlate-Methode, um das verarbeitete Bild zu analysieren und alle erkannten Kennzeicheninformationen zu extrahieren und in einem OcrLicensePlateResult-Objekt zu speichern.

  • Ausgabespeicherung: Der Kennzeichentext wird in der String-Variable output gespeichert, indem result.Text aufgerufen wird, welches den erkannten Text des Kennzeichens enthält.

  • Konsolenausgabe: Schließlich druckt Console.WriteLine(output); den extrahierten Kennzeichentext zur Überprüfung auf die Konsole.

Kfz-Kennzeichen von einem Auto scannen

Wenn wir ein Bild eines gesamten Autos haben, anstatt nur des Kennzeichens, können wir einen rechteckigen Bereich angeben, um sich auf den Kennzeichenbereich zu konzentrieren. Wir können System.Drawing.Rectangle verwenden, um diesen Bereich in Pixeln zu definieren.

Originalbild

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

Auto mit Kfz-Kennzeichen

Durch die Angabe des Interessensgebietes verbessern wir die Verarbeitungsgeschwindigkeit und vermeiden die Extraktion unnötiger Texte.

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

Fokussierte OCR-Ausgabe

Code Erklärung:

  • 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 Anweisung using (var input = new OcrInput()) erstellt ein neues OcrInput-Objekt, das zum Laden und Verarbeiten des Bildes für die OCR verwendet wird.
  • Definition des Interessensbereichs: var contentArea = new Rectangle(x: 252, y: 282, width: 148, height: 47); definiert einen rechteckigen Bereich (contentArea) innerhalb des Bildes. Dieses Rechteck gibt die Koordinaten und Abmessungen (Breite und Höhe) an, wo das Kennzeichen voraussichtlich zu finden ist.
  • Laden des Bildes: input.LoadImage("CarPlate.jpeg", contentArea); lädt die angegebene Bilddatei ("CarPlate.jpeg") und konzentriert sich auf das definierte Rechteck (contentArea), um die OCR-Verarbeitung auf diesen spezifischen Bereich zu beschränken.
  • Lesen des Kfz-Kennzeichens: OcrLicensePlateResult result = ocr.ReadLicensePlate(input); ruft die ReadLicensePlate-Methode auf, die das Eingabebild auf Kennzeichenzeichen analysiert und ein OcrLicensePlateResult-Objekt mit dem extrahierten Text zurückgibt.
  • Ausgabe: Console.WriteLine(result.Text); druckt den erkannten Text des Kennzeichens auf die Konsole.

Automatische Nummernschilderkennung

IronOCR nutzt OpenCV, um Textbereiche innerhalb von Bildern zu identifizieren und dabei verschiedene Bildverarbeitungstechniken einzusetzen. Diese Funktionalität ermöglicht es Programmen, Kfz-Kennzeichen zu erkennen, indem sie Textbereiche im Bild lokalisieren und dann Tesseract zur Erkennung dieser Regionen einsetzen.

Installation

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

Beispiel mit automatischer Bereichserkennung für Kfz-Kennzeichen:

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

Automatische OCR-Ausgabe

Code Erklärung:

  • Initialisierung: Eine Instanz der IronTesseract-Klasse wird erstellt, die für die optische Zeichenerkennung (OCR) mit der Tesseract-Engine verwendet wird.
  • Bildeingabe: Ein neues OcrImageInput-Objekt wird mit der angegebenen Bilddatei ("CarPlate.jpeg") instanziiert. Dieses Objekt dient als Eingabe für den OCR-Prozess und ist in einer using-Anweisung eingeschlossen, um eine ordnungsgemäße Ressourcenverwaltung zu gewährleisten.
  • Textbereichserkennung: Die FindTextRegion()-Methode wird auf dem input-Objekt aufgerufen. Diese Methode verwendet Techniken der Computer Vision, um automatisch Bereiche im Bild zu identifizieren, die wahrscheinlich Text enthalten, wobei speziell das Kfz-Kennzeichen anvisiert wird.
  • Kfz-Kennzeichenerkennung: Die ReadLicensePlate-Methode wird aufgerufen, um die erkannten Textbereiche zu analysieren und das Nummernschild zu extrahieren. Das Ergebnis wird in einem OcrLicensePlateResult-Objekt gespeichert, das den erkannten Text und alle zugehörigen Metadaten enthält.
  • Ausgabe: Der erkannte Text des Nummernschilds wird auf die Konsole gedruckt, sodass der Benutzer die extrahierte Nummer des Kennzeichens sehen kann.

IronOCR Lizenzierung

IronOCR Lizenz

Für diejenigen, die IronOCR selbst ausprobieren möchten, bietet IronOCR eine kostenlose Testversion, die Ihnen Zugang zur gesamten Palette der angebotenen Tools gewährt, sodass Sie diese in Ihren eigenen Projekten ausprobieren können, bevor Sie eine Lizenz kaufen. Sobald Ihre kostenlose Testversion abläuft, beginnt die IronOCR-Lizenzierung ab nur $liteLicense für die Lite-Lizenz. Außerdem bietet es optionale Add-ons gegen Aufpreis an, wie beispielsweise die gebührenfreie Vertriebsabdeckung und ununterbrochenen Support und laufende Produktaktualisierungen.

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

Abschluss

In diesem Leitfaden haben wir untersucht, wie man ein zuverlässiges System zur Kfz-Kennzeichenerkennung in C# mit IronOCR aufbaut. Mit seinen leistungsstarken Textextraktionsfähigkeiten und der Integration in OpenCV bietet IronOCR eine effiziente, benutzerfreundliche Lösung für Anwendungen, die eine genaue Texterkennung von Fahrzeugbildern erfordern. Von der Vorverarbeitung des Bildes bis zur Einstellung spezifischer Erkennungsregionen vereinfacht IronOCR den OCR-Prozess mit Werkzeugen, die auf verrauschte oder komplexe Bilder zugeschnitten sind, wie Kfz-Kennzeichen in Verkehrs- und Überwachungsaufnahmen.

Egal ob Sie für die Verkehrsüberwachung, die Parkraumüberwachung oder eine Anwendung, die eine automatisierte Kfz-Kennzeichenerkennung erfordert, entwickeln, bietet IronOCR eine umfassende Bibliothek, die sich nahtlos in .NET-Umgebungen integriert. Indem Sie diese Schritte befolgen, sind Sie in der Lage, OCR-gestützte Lösungen bereitzustellen, die Effizienz und Genauigkeit in verschiedenen realen Szenarien verbessern. Mit zusätzlichen Funktionen wie der Bereichsauswahl und Rauschreduzierung sorgt IronOCR dafür, dass Ihre Aufgaben der Kfz-Kennzeichenerkennung für die bestmöglichen Ergebnisse optimiert sind.

Häufig gestellte Fragen

Wie kann ich OCR verwenden, um Nummernschilder in C# zu identifizieren?

Sie können IronOCR verwenden, um Nummernschilder in C# zu identifizieren, indem Sie die IronTesseract-Klasse verwenden, um eine OCR-Instanz zu erstellen, das Bild mit dem Nummernschild zu laden, Vorverarbeitungsfilter wie Rauschunterdrückung anzuwenden und den Text mit der ReadLicensePlate-Methode zu extrahieren.

Was sind die Vorteile der Verwendung von OCR zur Nummernschilderkennung?

Die Verwendung von OCR zur Nummernschilderkennung automatisiert den Prozess der Textextraktion, bietet hohe Genauigkeit und Effizienz. IronOCR verbessert dies durch Unterstützung mehrerer Bildformate und Integration in die Computer Vision, was es ideal für Anwendungen wie Verkehrsmanagement und Strafverfolgung macht.

Wie kann ich mit verrauschten oder minderwertigen Bildern bei der OCR-Verarbeitung umgehen?

IronOCR bietet leistungsstarke Bildvorverarbeitungsfunktionen wie automatische Rauschunterdrückung und Graustufenumwandlung, die die Genauigkeit der Textextraktion auch bei verrauschten oder minderwertigen Bildern verbessern.

Ist es möglich, die OCR-Verarbeitung auf bestimmte Bereiche eines Bildes zu fokussieren?

Ja, IronOCR ermöglicht es, rechteckige Interessenbereiche innerhalb eines Bildes anzugeben, um die OCR-Verarbeitung zu fokussieren, was sowohl die Geschwindigkeit als auch die Genauigkeit der Textextraktion aus Bereichen wie Nummernschildern verbessert.

Wie fange ich mit OCR in einem Visual Studio-Projekt an?

Um OCR in einem Visual Studio-Projekt zu starten, erstellen Sie eine neue Konsolenanwendung, installieren Sie das IronOCR-Paket über NuGet und implementieren Sie die OCR-Logik mit IronOCR-Klassen und -Methoden. Diese Einrichtung ermöglicht es Ihnen, OCR-Aufgaben innerhalb Ihrer Anwendung durchzuführen.

Welche Funktionen bietet IronOCR für die Nummernschilderkennung?

IronOCR bietet hohe OCR-Genauigkeit, Integration mit OpenCV für erweiterte Computer-Vision-Aufgaben, fortschrittliche Vorverarbeitungsfilter und Unterstützung für mehrere Bild- und PDF-Formate, was es zu einem vielseitigen Tool für die Nummernschilderkennung macht.

Wie integriert IronOCR sich in Computer-Vision-Aufgaben?

IronOCR integriert sich mit OpenCV, um verschiedene Computer-Vision-Aufgaben zu erfüllen, wie die automatische Texterkennung, was den OCR-Prozess für Anwendungen wie die Nummernschilderkennung verbessert.

Welche Lizenzierungsoptionen sind für IronOCR verfügbar?

IronOCR bietet eine kostenlose Testversion sowie verschiedene Lizenzoptionen, die bei einer Lite-Lizenz beginnen. Zusätzliche Add-ons und die Iron Suite sind für Nutzer verfügbar, die erweiterte Funktionalitäten über verschiedene Anwendungen hinweg suchen.

Kann OCR-Technologie auf vollständige Fahrzeugbilder angewendet werden?

Ja, IronOCR kann mit Bildern von ganzen Fahrzeugen verwendet werden. Durch die Angabe des Nummernschildbereichs können Sie die OCR-Verarbeitung auf den gewünschten Bereich fokussieren, unnötige Textextraktion vermeiden und die Verarbeitungseffizienz verbessern.

Kannaopat Udonpant
Software Ingenieur
Bevor er Software-Ingenieur wurde, absolvierte Kannapat ein PhD in Umweltressourcen an der Hokkaido University in Japan. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Fakultät für Bioproduktionstechnik ist. Im Jahr 2022 nutzte er seine C#-Kenntnisse, um dem Engineering-Team von Iron Software ...
Weiterlesen