Extrahieren von Reisepassdaten in C#35; mit IronOCR

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

Die Methode ReadPassport von IronOCR extrahiert strukturierte Daten aus Passbildern, darunter Namen, Passnummern, Geburtsdaten und Ablaufdaten, in einer einzigen Zeile C#-Code und ist damit ideal für Einwanderungs- und Sicherheitsanwendungen.

Bei Anwendungen und Systemen wie Check-in-Schaltern und der Sicherheitskontrolle an Flughäfen, wo Agenten täglich große Mengen an Pässen bearbeiten, ist ein zuverlässiges System, das geschäftskritische Informationen über Reisende genau extrahiert, von entscheidender Bedeutung, um einen effizienten und rationellen Einreiseprozess zu gewährleisten. Die IronOCR-Bibliothek bietet fortschrittliche OCR-Funktionen, die speziell für das Lesen von Reisepässen optimiert sind. Sie nutzt Tesseract 5 mit Erweiterungen für maschinelles Lernen.

Schnellstart: Extrahieren Sie MRZ-Passinformationen in einer Zeile

Dieses Beispiel zeigt, wie ein Passbild mit OcrInput geladen wird, wie ReadPassport() verwendet wird, um Daten zu extrahieren, und wie auf strukturierte Felder wie Namen, Nummern und Daten aus der zurückgegebenen PassportInfo zugegriffen wird. Keine komplexe Einrichtung erforderlich - nur eine einfache Zeile. Im Gegensatz zu herkömmlichen Tesseract-Implementierungen bietet IronOCR eine vereinfachte API, die speziell für die Dokumentenextraktion entwickelt wurde.

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

Wie extrahiere ich Passdaten in C#?

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.

Die Methode ReadPassport ist Teil der spezialisierten Dokumentenlesefähigkeiten von IronOCR, die auch Methoden zum Lesen von Nummernschildern, MICR-Schecks und anderen strukturierten Dokumenten umfassen. Die Methode verwendet fortschrittliche Computer-Vision-Techniken, um den MRZ-Bereich (Machine Readable Zone) automatisch zu lokalisieren und zu extrahieren.

[{i:(

  • Die Methode funktioniert derzeit nur für englischsprachige 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--@@

Welches Passbildformat sollte ich verwenden?

IronOCR unterstützt verschiedene Bildformate, darunter JPG, PNG, TIFF und BMP. Um optimale Ergebnisse zu erzielen, sollten Sie sicherstellen, dass Ihr Passbild eine angemessene Auflösung (mindestens 300 DPI) und eine gute Beleuchtung aufweist. Die DPI-Einstellungen können angepasst werden, wenn mit Scans geringerer Qualität gearbeitet wird.

Beispiel einer US-Passdatenseite mit biografischen Feldern, Daten und maschinenlesbarem Bereich für Datenextraktionsdemo

Welchen Code benötige ich, um Passdaten zu extrahieren?

Das folgende Beispiel veranschaulicht den gesamten Prozess der Extraktion von Reisepassdaten. Für Anwendungen, die mehrere Pässe verarbeiten, sollten Sie Multithreading-Unterstützung implementieren, um die Leistung zu verbessern. Sie können auch den OCR-Fortschritt für langwierige Vorgänge verfolgen.

: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

Welche Ausgabe kann ich von ReadPassport erwarten?

Die extrahierten Daten werden in einem strukturierten Format zurückgegeben, das sich leicht in bestehende Systeme integrieren lässt. Die Klasse OcrResult bietet umfassenden Zugriff auf alle extrahierten Informationen.

Debug-Konsole mit extrahierten Passdaten: Name, Land, Passnummer und Daten der OCR-Verarbeitung

Wir greifen dann auf das PassportInfo-Datenmitglied zu, das aus dem OcrPassportResult-Objekt abgerufen wurde. Der Extraktionsprozess verarbeitet automatisch verschiedene Passlayouts und -formate und liefert konsistente Ergebnisse für verschiedene ausstellende Länder.

  • GivenNames: Eine Eigenschaft von PassportInfo gibt die Vornamen der Pass-Eingabe als Zeichenfolge zurück. Dies entspricht der ersten MRZ-Datenzeile, Stelle 4 bis 44.
  • Country: Eine Eigenschaft von PassportInfo gibt das Land der Pass-Eingabe als Zeichenfolge zurück. Dies entspricht der ersten MRZ-Datenzeile, Stelle 2 bis 3. Die zurückgegebene Zeichenfolge gibt den vollständigen Namen des ausstellenden Landes anstelle der Abkürzung an. In unserem Beispiel ergibt USA "Vereinigte Staaten von Amerika".
  • PassportNumber: Eine Eigenschaft von PassportInfo gibt die Passnummer der Pass-Eingabe als Zeichenfolge zurück. Dies entspricht der zweiten MRZ-Datenzeile, Stelle 1 bis 9.
  • Surname: Eine Eigenschaft von PassportInfo gibt den Nachnamen der Pass-Eingabe als Zeichenfolge zurück. Dies entspricht der ersten MRZ-Datenzeile, Stelle 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-Datenzeile, Stelle 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-Datenzeile, Stelle 22 bis 27.

Welche MRZ-Informationen kann ich aus Reisepässen extrahieren?

IronOCR liest die MRZ-Informationen in den unteren beiden Zeilen jedes Reisepasses, der dem Standard der (International Civil Aviation Organization) ICAO entspricht. Die MRZ-Daten bestehen aus zwei Datenzeilen, wobei jeder Satz von Stelleen eindeutige Informationen enthält. Hier ist eine kurze Tabelle, die zeigt, welche Informationen dem Index der Zeile entsprechen.

Die MRZ-Parsing-Funktionalität in IronOCR wurde entwickelt, um Variationen in der Druckqualität und Bildausrichtung zu bewältigen. Bei anspruchsvollen Dokumenten können Sie Bildkorrekturfilter anwenden, um die Erkennungsgenauigkeit zu verbessern.

Wie sieht der MRZ-Abschnitt aus?

Die MRZ befindet sich in der Regel am unteren Rand der Reisepass-Seite und besteht aus zwei Zeilen standardisierten Textes. Das Verständnis der MRZ-Struktur hilft bei der Fehlerbehebung von Extraktionsproblemen und der Validierung von Ergebnissen.

US-Reisepass-Seite mit maschinenlesbarer Zone (MRZ), die in einem roten Kasten hervorgehoben ist und verschlüsselte alphanumerische Datenzeilen zeigt

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

Wie kann ich die Ergebnisse der Pass-Extraktion debuggen und überprüfen?

Wir können die Ergebnisse von IronOCR auch überprüfen, indem wir den aus dem Passbild extrahierten Rohtext und das Konfidenzniveau erhalten, 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.

Zu Debugging-Zwecken können Sie Textbereiche hervorheben, um visuell zu überprüfen, welche Bereiche erkannt wurden. Diese Funktion ist besonders nützlich bei der Fehlerbehebung von Extraktionsproblemen oder der Optimierung von Scanbereichen.

: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

VS Code Debug-Konsole mit Passdatenausgabe mit persönlichen Angaben, Ländern und verschlüsselten Zeichenfolgen

  • Confidence: Die Confidence-Eigenschaft von OcrPassportResult ist ein Gleitkommawert, der die OCR statistische Genauigkeitszuversicht als Durchschnitt jedes Zeichens anzeigt. Dieser Schwellenwert ist niedriger, wenn das Passbild unscharf ist oder andere Informationen enthält. Eine Eins ist die höchste und sicherste, und eine Null ist die niedrigste und unsicherste. Für Produktionsanwendungen sollten Sie Ergebniszuverlässigkeit Schwellenwerte einführen, um die Datenqualität zu gewährleisten.
  • Text: Die Text-Eigenschaft von OcrPassportResult enthält den rohen, ungeparsten Text, der aus dem Passbild extrahiert wurde. Die Entwickler können dies in Unit-Tests verwenden, um den extrahierten Text des Passbildes zu überprüfen. Für fortgeschrittene Szenarien können Sie die Ergebnisse im hOCR-Format zur weiteren Analyse exportieren.

Best Practices für Anwendungen zum Scannen von Reisepässen

Bei der Implementierung von Pass-Scans in Produktionsumgebungen sollten Sie diese zusätzlichen Faktoren berücksichtigen:

  1. Bildqualität: Sicherstellen, dass die eingegebenen Bilder den Mindestqualitätsstandards entsprechen. Der Filter-Assistent kann helfen, Bilder für eine bessere Erkennung zu optimieren.

  2. Leistungsfähigkeit: Für die Verarbeitung großer Mengen sollten Sie async-Unterstützung implementieren und die Stapelverarbeitung mehrerer Pässe in Betracht ziehen.

  3. Sicherheit: Da es sich bei den Passdaten um sensible Daten handelt, sollten Sie für eine ordnungsgemäße Datenverarbeitung sorgen und die Integration mit sicheren Dokumentenverwaltungssystemen in Betracht ziehen.

  4. Validierung: Implementierung einer Prüfziffernvalidierung für die extrahierten MRZ-Daten zur Gewährleistung der Genauigkeit. Das MRZ-Format enthält mehrere Prüfziffern, mit denen die Integrität der extrahierten Informationen überprüft werden kann.

  5. Fehlerbehandlung: Implementieren Sie eine robuste Fehlerbehandlung für Fälle, in denen Passbilder beschädigt oder schlecht beleuchtet sind oder nicht standardisierte Formate enthalten.

Häufig gestellte Fragen

Wie extrahiere ich Reisepassdaten aus Bildern in C#?

Sie können Passdaten mit der ReadPassport-Methode von IronOCR extrahieren. Laden Sie einfach Ihr Passbild mit OcrInput und rufen Sie ReadPassport() auf, um strukturierte Daten einschließlich Namen, Passnummern, Geburtsdaten und Ablaufdaten in einer einzigen Codezeile zu erhalten.

Welche Reisepassinformationen können automatisch extrahiert werden?

Die ReadPassport-Methode von IronOCR extrahiert Vornamen, Land, Passnummer, Nachname, Geburtsdatum und Gültigkeitsdatum aus Passbildern. Alle Daten werden als Zeichenketten in einem strukturierten PassportInfo-Objekt zurückgegeben.

Benötige ich eine komplexe Einrichtung, um Pass-MRZ-Daten zu lesen?

Es ist keine komplexe Einrichtung erforderlich. IronOCR bietet eine vereinfachte API, die Pass-MRZ-Daten in nur einer Codezeile extrahiert, im Gegensatz zu traditionellen Tesseract-Implementierungen, die mehr Konfiguration erfordern.

Auf welcher Technologie basiert die Fähigkeit, Reisepässe zu lesen?

IronOCR nutzt Tesseract 5 unter der Haube mit Erweiterungen des maschinellen Lernens und fortschrittlichen Computer-Vision-Techniken, um den MRZ-Bereich (Machine Readable Zone) von Passbildern automatisch zu lokalisieren und zu extrahieren.

Kann dies für Flughafen-Einwanderungssysteme verwendet werden?

Ja, IronOCR ist ideal für Einwanderungs- und Sicherheitsanwendungen an Flughäfen, wo Agenten täglich große Mengen an Pässen bearbeiten. Es bietet eine zuverlässige Extraktion von geschäftskritischen Reiseinformationen, um effiziente Einwanderungsprozesse zu gewährleisten.

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,246,844 | Version: 2025.12 gerade veröffentlicht