Passdaten in C# mit IronOCR extrahieren

This article was translated from English: Does it need improvement?
Translated
View the article in English

In Anwendungen und Systemen wie dem Check-in am Schalter und der Sicherheitsprüfung an Flughäfen, bei denen Agenten täglich mit einer großen Anzahl wichtiger Pässe umgehen müssen, ist ein zuverlässiges System, das essenzielle, mission-kritische Informationen über den Reisenden präzise extrahiert, entscheidend, um einen effizienten und reibungslosen Ablauf durch die Einwanderung zu gewährleisten.

Schnellstart: Extrahieren Sie MRZ-Passinformationen in einer Zeile

Beginnen Sie in Sekundenschnelle mit dem Lesen von Pässen: Dieses Beispiel zeigt, wie einfach es ist, ein Passbild mit OcrInput zu laden, ReadPassport() zu verwenden, um Daten zu extrahieren, und dann auf die strukturierten Felder wie Namen, Nummern und Daten im zurückgegebenen PassportInfo zuzugreifen. Kein aufwändiges Setup—nur eine einfache Zeile.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronOCR mit dem NuGet-Paketmanager.

    PM > Install-Package IronOcr

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    var passportInfo = new IronOcr.IronTesseract().ReadPassport(new IronOcr.OcrInput("passport.jpg")).PassportInfo;
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronOCR in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer

Beispiel für das Extrahieren von Passdaten

Als Beispiel verwenden wir ein Passbild als Eingabe, um die Funktionalität von IronOCR zu demonstrieren. Nach dem Laden des Bildes mit OcrInput können Sie die ReadPassport-Methode nutzen, um Informationen aus dem Pass zu erkennen und zu extrahieren. Diese Methode gibt ein OcrPassportResult-Objekt zurück, das Eigenschaften wie GivenNames, Country, PassportNumber, Surname, DateOfBirth und DateOfExpiry enthält. Alle Mitglieder des PassportInfo-Objekts sind Zeichenfolgen.

[{i:(

  • Die Methode funktioniert derzeit nur für englischbasierte Pässe.
  • Die Verwendung eines erweiterten Scans auf .NET Framework erfordert, dass das Projekt auf x64-Architektur läuft.
  • Für Mac-Benutzer: Bitte beachten Sie, dass die ReadPassport-Methode derzeit die Eingabe nicht automatisch dreht. Bei der Verwendung der Eingabe stellen Sie bitte sicher, dass die MRZ immer am unteren Ende der Datei ist; andernfalls schlägt der Vorgang fehl. @@--KLAMMER-SCHLIESSEN--@@

Pass Eingabe

Beispielbild

Code

:path=/static-assets/ocr/content-code-examples/how-to/read-passport-read-passport.cs
using IronOcr;
using System;

// Instantiate OCR engine
var ocr = new IronTesseract();

using var inputPassport = new OcrInput();

inputPassport.LoadImage("passport.jpg");

// Perform OCR
OcrPassportResult result = ocr.ReadPassport(inputPassport);

// Output passport information
Console.WriteLine(result.PassportInfo.GivenNames);
Console.WriteLine(result.PassportInfo.Country);
Console.WriteLine(result.PassportInfo.PassportNumber);
Console.WriteLine(result.PassportInfo.Surname);
Console.WriteLine(result.PassportInfo.DateOfBirth);
Console.WriteLine(result.PassportInfo.DateOfExpiry);
Imports IronOcr
Imports System

' Instantiate OCR engine
Private ocr = New IronTesseract()

Private inputPassport = New OcrInput()

inputPassport.LoadImage("passport.jpg")

' Perform OCR
Dim result As OcrPassportResult = ocr.ReadPassport(inputPassport)

' Output passport information
Console.WriteLine(result.PassportInfo.GivenNames)
Console.WriteLine(result.PassportInfo.Country)
Console.WriteLine(result.PassportInfo.PassportNumber)
Console.WriteLine(result.PassportInfo.Surname)
Console.WriteLine(result.PassportInfo.DateOfBirth)
Console.WriteLine(result.PassportInfo.DateOfExpiry)
$vbLabelText   $csharpLabel

Ausgabe

Ergebnisausgabe

Wir greifen dann auf das PassportInfo-Datenmitglied zu, das aus dem OcrPassportResult-Objekt abgerufen wurde.

  • GivenNames: Eine Eigenschaft von PassportInfo gibt die Vornamen der Pass-Eingabe als Zeichenfolge zurück. Dies entspricht der ersten MRZ-Datenreihe, mit Stelleen von 4 bis 44.
  • Country: Eine Eigenschaft von PassportInfo gibt das Land der Pass-Eingabe als Zeichenfolge zurück. Dies entspricht der ersten MRZ-Datenreihe, mit Stelleen von 2 bis 3. Die zurückgegebene Zeichenkette gibt den vollständigen Namen des ausstellenden Landes anstelle der Abkürzung an. In unserem Beispiel gibt die USA 'Vereinigte Staaten von Amerika' zurück.
  • PassportNumber: Eine Eigenschaft von PassportInfo gibt die Passnummer der Pass-Eingabe als Zeichenfolge zurück. Dies entspricht der zweiten MRZ-Datenreihe, mit Stelleen von 1 bis 9.
  • Surname: Eine Eigenschaft von PassportInfo gibt den Nachnamen der Pass-Eingabe als Zeichenfolge zurück. Dies entspricht der ersten MRZ-Datenreihe, mit Stelleen von 4 bis 44.
  • DateOfBirth: Eine Eigenschaft von PassportInfo gibt das Geburtsdatum der Pass-Eingabe als Zeichenfolge im Format JJJJ-MM-TT zurück. Dies entspricht der zweiten MRZ-Datenreihe, mit Stelleen 14 bis 19.
  • DateOfExpiry: Ein Mitglied der Eigenschaften von PassportInfo gibt das Ablaufdatum des Reisepasses als Zeichenfolge im Format YYYY-MM-DD zurück. Dies entspricht der zweiten MRZ-Datenreihe, mit Stelleen 22 bis 27.

Das MRZ-Informationen verstehen

IronOCR liest die MRZ-Informationen, die in den unteren zwei Reihen eines jeden Passes enthalten sind, der dem Standard der (International Civil Aviation Organization) ICAO folgt. Die MRZ-Daten bestehen aus zwei Datenreihen, wobei jede Stelle eindeutige Informationen enthält. Hier ist eine kurze Tabelle, die zeigt, welche Informationen dem Index der Zeile entsprechen.

Beispiel-Eingabe

MRZ-Standort

Erste Reihe

Stelle Feld Beschreibung
1DokumenttypTypischerweise 'P' für Reisepass
2-3Ausstellendes LandDreistelliger Ländercode (ISO 3166-1 alpha-3)
4-44Nachname und VornamenNachname gefolgt von '<<' und dann Vornamen getrennt durch '<'

Zweite Reihe

Stelle Feld Beschreibung
1-9PassnummerEindeutige Passnummer
10Prüfziffer (Passnummer)Prüfziffer für die Passnummer
11-13NationalitätDreistelliger Nationalitätscode (ISO 3166-1 alpha-3)
14-19GeburtsdatumGeburtsdatum im Format JJMMTT
20Prüfziffer (Geburtsdatum)Prüfziffer für das Geburtsdatum
21SexGeschlecht ('M' für männlich, 'F' für weiblich, 'X' für nicht angegeben)
22-27AblaufdatumAblaufdatum im Format JJMMTT
28Prüfziffer (Ablaufdatum)Prüfziffer für das Ablaufdatum
29-42Persönliche NummerOptionale persönliche Nummer (in der Regel die nationale Identifikationsnummer)
43Prüfziffer (Persönliche Nummer)Prüfziffer für die persönliche Nummer
44Prüfziffer (zusammengesetzt)Gesamtprüfziffer

Debugging

Wir können die Ergebnisse von IronOCR auch überprüfen, indem wir den rohen extrahierten Text aus dem Passbild und das Vertrauensniveau abrufen, um zu bestätigen, ob die extrahierten Informationen korrekt sind. Mit dem obigen Beispiel können wir auf die Eigenschaften Confidence und Text des OcrPassportResult-Objekts zugreifen.

:path=/static-assets/ocr/content-code-examples/how-to/read-passport-debug.cs
using IronOcr;
using System;

// Instantiate OCR engine
var ocr = new IronTesseract();

using var inputPassport = new OcrInput();

inputPassport.LoadImage("passport.jpg");

// Perform OCR
OcrPassportResult result = ocr.ReadPassport(inputPassport);

// Output Confidence level and raw extracted text
Console.WriteLine(result.Confidence);
Console.WriteLine(result.Text);
Imports IronOcr
Imports System

' Instantiate OCR engine
Private ocr = New IronTesseract()

Private inputPassport = New OcrInput()

inputPassport.LoadImage("passport.jpg")

' Perform OCR
Dim result As OcrPassportResult = ocr.ReadPassport(inputPassport)

' Output Confidence level and raw extracted text
Console.WriteLine(result.Confidence)
Console.WriteLine(result.Text)
$vbLabelText   $csharpLabel

Konsolenausgabe

  • Confidence: Die Confidence-Eigenschaft von OcrPassportResult ist ein Gleitkommawert, der die OCR statistische Genauigkeitszuversicht als Durchschnitt jedes Zeichens anzeigt. Dieser Gleitkommawert wäre niedriger, wenn das Passbild unscharf ist oder andere Informationen enthält. Eins ist das höchste und zuversichtlichste und 0 das niedrigste und am wenigsten vertrauensvolle.
  • Text: Die Text-Eigenschaft von OcrPassportResult enthält den rohen, ungeparsten Text, der aus dem Passbild extrahiert wurde. Entwickler könnten dies in Komponententests verwenden, um den extrahierten Text des Passbildes zu überprüfen.

Häufig gestellte Fragen

Wie kann ich Passdaten mit OCR in C# extrahieren?

8. Sie können die ReadPassport-Methode von IronOCR verwenden, um Passdaten in C# zu extrahieren. Installieren Sie zuerst die IronOCR-Bibliothek und das IronOcr.Extension.AdvancedScan-Paket. Importieren Sie das Passbild und rufen Sie dann ReadPassport auf, um die Daten abzurufen.

Welche Informationen können mit IronOCR aus einem Pass extrahiert werden?

IronOCR kann Details wie Vornamen, Land, Passnummer, Nachname, Geburtsdatum und Ablaufdatum aus einem Pass extrahieren.

Was ist die maschinenlesbare Zone (MRZ) in einem Pass?

Die MRZ befindet sich in den unteren beiden Reihen eines Passes und enthält wichtige Daten. IronOCR liest diese Zone, um Informationen gemäß den ICAO-Standards zu extrahieren.

Was sind die Anforderungen für die Verwendung der Methode ReadPassport in IronOCR?

Sie müssen das Paket IronOcr.Extension.AdvancedScan installieren und sicherstellen, dass Ihr Projekt auf einer x64-Architektur läuft, um erweiterte Scanfunktionen zu ermöglichen.

Kann IronOCR zur Überprüfung der Genauigkeit der extrahierten Passdaten verwendet werden?

7. Ja, Sie können die Genauigkeit der extrahierten Daten mit der Confidence-Eigenschaft des OcrPassportResult-Objekts überprüfen, wobei ein Wert nahe 1 auf hohe Zuverlässigkeit hinweist.

Welche Sprachen werden von IronOCR für die Passdatenauswertung unterstützt?

Derzeit unterstützt IronOCR englischsprachige Pässe für die Datenauswertung.

Wie behandelt IronOCR den aus einem Pass extrahierten Text?

Die extrahierten Daten werden im OcrPassportResult-Objekt gespeichert, wobei jedes Element als Zeichenfolge dargestellt wird, um einen einfachen Zugriff und eine einfache Bearbeitung zu ermöglichen.

Wofür wird die 'Text'-Eigenschaft im OcrPassportResult-Objekt verwendet?

Die 'Text'-Eigenschaft ermöglicht den Zugriff und die Überprüfung des aus einem Pass extrahierten Textes, um sicherzustellen, dass die Informationen genau und vollständig sind.

Was soll ich tun, wenn das Passbild Kopf- oder Fußzeilen enthält?

Stellen Sie sicher, dass das Passbild frei von Kopf- oder Fußzeilen ist, bevor Sie IronOCR verwenden, da diese die Genauigkeit des Datenauswertungsprozesses beeinträchtigen können.

Was sind häufige Tipps zur Fehlerbehebung bei der Verwendung von IronOCR für Pässe?

Überprüfen Sie, ob die richtigen Pakete installiert sind, stellen Sie sicher, dass das Bild klar und richtig ausgeschnitten ist, und überprüfen Sie die Architekturkompatibilität (x64) für optimale Leistung.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Rezensiert von
Jeff Fritz
Jeffrey T. Fritz
Principal Program Manager - .NET Community Team
Jeff ist außerdem Principal Program Manager für das .NET- und Visual Studio-Team. Er ist der ausführende Produzent der .NET Conf Virtual Conference Series und moderiert ‚Fritz and Friends‘, einen Livestream für Entwickler, der zweimal wöchentlich ausgestrahlt wird. Dort spricht er über Technik und schreibt gemeinsam mit den Zuschauern Code. Jeff schreibt Workshops, Präsentationen und plant Inhalte für die größten Microsoft-Entwicklerveranstaltungen, einschließlich Microsoft Build, Microsoft Ignite, .NET Conf und dem Microsoft MVP Summit.
Bereit anzufangen?
Nuget Downloads 5,167,857 | Version: 2025.11 gerade veröffentlicht