Wie man Passdaten mit IronOCR extrahiert

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

von Curtis Chau

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 die IronOcr.Extension.AdvancedScan paket.

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 ReadPassport-Methode 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 Zeichenfolgen.

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

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)
VB   C#

Ausgabe

Ergebnisausgabe

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

  • GivenNames: Eine Eigenschaft von PassportInfo gibt die Vornamen des Reisepassinputs als String zurück. Dies entspricht der ersten MRZ-Datenzeile mit den Positionen von 4 bis 44.
  • Country: Eine Eigenschaft von PassportInfo gibt das Land des Passes 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 des Reisepass-Eingangs 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 Passporteingangs als Zeichenfolge zurück. Dies entspricht der ersten MRZ-Datenzeile mit den Positionen von 4 bis 44.
  • DateOfBirth: Eine Eigenschaft von PassportInfo, die das Geburtsdatum des Passes als Zeichenkette im Format JJJJ-MM-TT zurückgibt. 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 in den unteren beiden Zeilen eines jeden Reisepasses enthalten sind, der dem Standard entspricht.(Internationale Zivilluftfahrtorganisation) ICAO. 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 bitte auf dieICAODokumentationsstandards.

Beispiel einer Reisepass-Eingabe:

MRZ-Standort

Erste Reihe

Position Feld Beschreibung
DokumenttypNormalerweise 'P' für Reisepass
-3AusstellungslandDrei-Buchstaben-Ländercode (ISO 3166-1 alpha-3)
-44Nachname und VornamenNachname gefolgt von '<<' and then given names separated by '<'

Zweite Zeile

Position Feld Beschreibung
-9ReisepassnummerEinzigartige Reisepassnummer
0Prüfziffer (Reisepassnummer)Prüfziffer für die Reisepassnummer
1-13StaatsangehörigkeitDreibuchstabiger Ländercode (ISO 3166-1 alpha-3)
4-19GeburtsdatumGeburtsdatum im YYMMDD-Format
0Prüfziffer (Geburtsdatum)Prüfziffer für das Geburtsdatum
1GeschlechtGeschlecht ('M' für männlich, 'F' für weiblich, 'X' für nicht spezifiziert)
2-27AblaufdatumAblaufdatum im YYMMDD-Format
8Prüfziffer (Ablaufdatum)Prüfziffer für das Ablaufdatum
9-42Persönliche NummerOptionale persönliche Nummer (in der Regel nationale Identifikationsnummer)
3Prüfziffer (Personennummer)Prüfziffer für die Personalnummer
4Prüfziffer (Komposit)Gesamtprüfziffer

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 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)
VB   C#

Konsolenausgabe:

Debuggen
  • Confidence: Die Confidence-Eigenschaft von OcrPassportResult ist ein Gleitkommawert, der die OCR statistische Genauigkeit als Durchschnitt aller Zeichen 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.
  • Die Text-Eigenschaft von OcrPassportResult enthält den rohen, nicht geparsten Text, der aus dem Passbild extrahiert wurde. Entwickler könnten dies in Unit-Tests verwenden, um den extrahierten Text des Passbildes zu überprüfen.