Wie man Passdaten mit IronOCR extrahiert
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.
Wie man Passdaten mit IronOCR extrahiert
- Laden Sie eine C#-Bibliothek herunter, um Pässe zu lesen.
- Importieren Sie das Passbild zur Erkennung
- Stellen Sie sicher, dass das Dokument nur das Passbild ohne Kopf- oder Fußzeilen enthält.
- Verwenden Sie die
Reisepass lesen
Methode zur Extraktion von Daten aus dem Bild - Zugriff auf die OcrPassportResult Eigenschaft zur Ansicht und weiteren Bearbeitung der extrahierten Passdaten
Beginnen Sie noch heute mit der Verwendung von IronOCR in Ihrem Projekt mit einer kostenlosen Testversion.
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
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)
Ausgabe
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:
Erste Reihe
Position | Feld | Beschreibung |
---|---|---|
Dokumenttyp | Normalerweise 'P' für Reisepass | |
-3 | Ausstellungsland | Drei-Buchstaben-Ländercode (ISO 3166-1 alpha-3) |
-44 | Nachname und Vornamen | Nachname gefolgt von '<<' and then given names separated by '<' |
Zweite Zeile
Position | Feld | Beschreibung |
---|---|---|
-9 | Reisepassnummer | Einzigartige Reisepassnummer |
0 | Prüfziffer (Reisepassnummer) | Prüfziffer für die Reisepassnummer |
1-13 | Staatsangehörigkeit | Dreibuchstabiger Ländercode (ISO 3166-1 alpha-3) |
4-19 | Geburtsdatum | Geburtsdatum im YYMMDD-Format |
0 | Prüfziffer (Geburtsdatum) | Prüfziffer für das Geburtsdatum |
1 | Geschlecht | Geschlecht ('M' für männlich, 'F' für weiblich, 'X' für nicht spezifiziert) |
2-27 | Ablaufdatum | Ablaufdatum im YYMMDD-Format |
8 | Prüfziffer (Ablaufdatum) | Prüfziffer für das Ablaufdatum |
9-42 | Persönliche Nummer | Optionale persönliche Nummer (in der Regel nationale Identifikationsnummer) |
3 | Prüfziffer (Personennummer) | Prüfziffer für die Personalnummer |
4 | Prü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)
Konsolenausgabe:
- Confidence: Die
Confidence
-Eigenschaft vonOcrPassportResult
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 vonOcrPassportResult
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.