How to Extract Passport Data with IronOCR

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 IconGet started making PDFs with NuGet now:

  1. Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. Copy and run this code snippet.

    var passportInfo = new IronOcr.IronTesseract().ReadPassport(new IronOcr.OcrInput("passport.jpg")).PassportInfo;
  3. Deploy to test on your live environment

    Start using IronOCR in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

Minimaler Arbeitsablauf (5 Schritte)

  1. Laden Sie eine C#-Bibliothek herunter, um Pässe zu lesen
  2. Importieren Sie das Passbild zum Lesen
  3. Stellen Sie sicher, dass das Dokument nur das Passbild enthält, ohne Kopf- oder Fußzeilen
  4. Verwenden Sie die ReadPassport-Methode, um Daten aus dem Bild zu extrahieren
  5. Greifen Sie auf die Eigenschaft OcrPassportResult zu, um die extrahierten Passdaten anzuzeigen und weiterzuverarbeiten

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.

Hinweis:

  • 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.

Pass Eingabe

class="content-img-align-center">
class="center-image-wrapper"> 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

class="content-img-align-center">
class="center-image-wrapper"> Ergebnis Ausgabe

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 Positionen 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 Positionen 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 Positionen 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 Positionen 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 Positionen 14 bis 19.
  • DateOfExpiry: Ein Eigenschaftsmitglied von PassportInfo gibt das Ablaufdatum der Pass-Eingabe als Zeichenfolge im Format JJJJ-MM-TT zurück. Dies entspricht der zweiten MRZ-Datenreihe, mit Positionen 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 Position eindeutige Informationen enthält. Hier ist eine kurze Tabelle, die zeigt, welche Informationen dem Index der Zeile entsprechen.

Beispiel-Eingabe

class="content-img-align-center">
class="center-image-wrapper"> MRZ-Position

Erste Reihe

Position Feld Beschreibung
1DokumenttypTypischerweise 'P' für Pass
2-3AusstellungslandDreistelliger Ländercode (ISO 3166-1 Alpha-3)
4-44Nachname und VornamenNachname gefolgt von '<<' und dann Vornamen durch '<' getrennt

Zweite Reihe

Position 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 YYMMDD
20Prüfziffer (Geburtsdatum)Prüfziffer für das Geburtsdatum
21GeschlechtGeschlecht ('M' für männlich, 'F' für weiblich, 'X' für nicht spezifiziert)
22-27AblaufdatumAblaufdatum im Format YYMMDD
28Prüfziffer (Ablaufdatum)Prüfziffer für das Ablaufdatum
29-42PersonennummerOptionale Personennummer (meistens nationale ID-Nummer)
43Prüfziffer (Personennummer)Prüfziffer für die Personennummer
44Prüfziffer (Gesamt)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?

Sie können die Methode ReadPassport von IronOCR verwenden, um Passdaten in C# zu extrahieren. Installieren Sie zuerst die IronOCR-Bibliothek und das Paket IronOcr.Extension.AdvancedScan. 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?

Ja, Sie können die Genauigkeit der extrahierten Daten mit der Confidence-Eigenschaft des OcrPassportResult-Objekts überprüfen, wobei ein Wert nahe bei 1 auf hohe Genauigkeit 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,044,537 | Version: 2025.11 gerade veröffentlicht