Wie man Passdaten mit IronOCR extrahiert

Chaknith Bin
Chaknith Bin
7. August 2024
Aktualisiert 16. Februar 2025
Teilen Sie:
This article was translated from English: Does it need improvement?
Translated
View the article in English

In Anwendungen und Systemen wie der Gepäckaufgabe und der Sicherheitskontrolle an Flughäfen, bei denen Mitarbeiter täglich mit einer großen Anzahl von Pässen zu tun haben, ist ein zuverlässiges System, das wichtige und wesentliche Informationen über den Reisenden genau extrahiert, entscheidend, um einen effizienten und reibungslosen Ablauf durch die Einwanderung zu gewährleisten.

IronOCR ist ein zuverlässiges Werkzeug, das das Extrahieren und Lesen von Daten aus einem Reisepass mühelos macht. Der Prozess wird mit einem einfachen Aufruf der ReadPassport-Methode unkompliziert.

Beginnen Sie noch heute mit der Verwendung von IronOCR in Ihrem Projekt mit einer kostenlosen Testversion.

Erster Schritt:
green arrow pointer

Um diese Funktion zu nutzen, müssen Sie auch das IronOcr.Extension.AdvancedScan-Paket installieren.

Beispiel zur Extraktion 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 Methode ReadPassport verwenden, um Informationen aus dem Reisepass zu identifizieren 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 Zeichenketten.

Bitte beachten Sie

  • Die Methode funktioniert derzeit nur für englischsprachige Pässe.
  • Die Verwendung des erweiterten Scans im .NET-Framework setzt voraus, dass das Projekt auf einer x64-Architektur läuft.

Passworteingabe

Beispielfoto

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 erhalten wurde.

  • GivenNames: Eine Eigenschaft von PassportInfo, die die Vornamen des Passporteingangs als Zeichenfolge zurückgibt. Dies entspricht der ersten MRZ-Datenzeile mit den Positionen von 4 bis 44.
  • Land: Eine Eigenschaft von PassportInfo gibt das Land des Passworteingabe als Zeichenkette zurück. Dies entspricht der ersten MRZ-Datenzeile mit den Positionen 2 bis 3. Die zurückgegebene Zeichenfolge würde den vollständigen Namen des ausstellenden Landes anstelle der Abkürzung ausschreiben. In unserem Beispiel kehrt die USA zu den Vereinigten Staaten von Amerika zurück.
  • PassportNumber: Eine Eigenschaft von PassportInfo gibt die Vornamen der Reisepass-Eingabe als Zeichenkette zurück. Dies entspricht der zweiten MRZ-Datenzeile, mit Positionen von 1 bis 9.
  • Nachname: Eine Eigenschaft von PassportInfo gibt den Nachnamen des Reisepass-Eingangs als String zurück. Dies entspricht der ersten MRZ-Datenzeile mit den Positionen von 4 bis 44.
  • DateOfBirth: Eine Eigenschaft von PassportInfo gibt das Geburtsdatum des Passporteingangs als Zeichenkette im Format JJJJ-MM-TT zurück. Dies entspricht der zweiten MRZ-Datenzeile mit den Positionen 14 bis 19.
  • DateOfExpiry: Ein Eigenschaftsmitglied von PassportInfo gibt das Ablaufdatum des Passes als Zeichenkette im Format JJJJ-MM-TT zurück. Dies entspricht der zweiten MRZ-Datenzeile mit den Positionen 22 bis 27.

Verstehen der MRZ-Informationen

IronOCR liest die MRZ-Informationen, die sich in den unteren zwei Reihen eines jeden Reisepasses befinden, der dem Standard der (Internationalen Zivilluftfahrt-Organisation) ICAO entspricht. Die MRZ-Daten bestehen aus zwei Datenzeilen, wobei jede Positionenreihe einzigartige Informationen enthält. Hier ist eine kurze Tabelle, welche Informationen dem Index der Zeile entsprechen: für alle Ausnahmen und eindeutigen Bezeichner, siehe bitte die ICAO-Dokumentationsstandards.

Beispiel-Eingabe:

MRZ-Position

Erste Reihe

Position Field Description
1Document TypeTypically 'P' for passport
2-3Issuing CountryThree-letter country code (ISO 3166-1 alpha-3)
4-44Surname and Given NamesSurname followed by '<<' and then given names separated by '<'

Zweite Reihe

Position Field Description
1-9Passport NumberUnique passport number
10Check Digit (Passport Number)Check digit for the passport number
11-13NationalityThree-letter nationality code (ISO 3166-1 alpha-3)
14-19Date of BirthDate of birth in YYMMDD format
20Check Digit (Date of Birth)Check digit for the date of birth
21SexGender ('M' for male, 'F' for female, 'X' for unspecified)
22-27Date of ExpiryExpiry date in YYMMDD format
28Check Digit (Date of Expiry)Check digit for the date of expiry
29-42Personal NumberOptional personal number (usually national ID number)
43Check Digit (Personal Number)Check digit for the personal number
44Check Digit (Composite)Overall check digit

Fehlersuche

Wir könnten die Ergebnisse von IronOCR auch verifizieren, indem wir den rohen extrahierten Text aus dem Passbild und das Vertrauensniveau abrufen, um zu bestätigen, ob die extrahierten Informationen korrekt sind. Anhand des obigen Beispiels können wir auf die Confidence und Text-Eigenschaften 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:

Debuggen
  • Confidence: Die Confidence-Eigenschaft von OcrPassportResult ist ein Float, der die statistische Genauigkeit der OCR als Mittelwert jedes Zeichens angibt. Dieser Wert wäre niedriger, wenn das Passbild unscharf ist oder andere Informationen enthält. Wo eins das höchste und vertrauensvollste ist und null das niedrigste und am wenigsten vertrauensvolle.
  • Text: Die Text-Eigenschaft aus OcrPassportResult enthält den rohen, ungeparsten Text, der aus dem Passbild extrahiert wurde. Entwickler könnten dies in Unit-Tests verwenden, um den extrahierten Text des Passbildes zu überprüfen.
Chaknith Bin
Software-Ingenieur
Chaknith arbeitet an IronXL und IronBarcode. Er hat tiefgehende Expertise in C# und .NET und hilft, die Software zu verbessern und Kunden zu unterstützen. Seine Erkenntnisse aus Benutzerinteraktionen tragen zu besseren Produkten, Dokumentation und einem insgesamt besseren Erlebnis bei.