Comment extraire les données de passeport avec IronOCR

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

par Curtis Chau

Dans les applications et systèmes tels que l'enregistrement au comptoir et le contrôle de sécurité dans les aéroports, où les agents doivent gérer un grand volume de passeports quotidiennement, disposer d'un système fiable qui extrait avec précision les informations essentielles et cruciales concernant le voyageur est crucial pour garantir un processus efficace et rationalisé à travers l'immigration.

IronOCR est un outil fiable qui rend l'extraction et la lecture de données d'un passeport sans effort. Le processus devient simple grâce à un appel au ReadPassport Method.

Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit.

Première étape :
green arrow pointer

Pour utiliser cette fonction, vous devez également installer le IronOcr.Extension.AdvancedScan l'emballage.

Exemple d'extraction de données de passeport

À titre d'exemple, nous utiliserons une image de passeport comme entrée pour démontrer la fonctionnalité d'IronOCR. Après avoir chargé l'image à l'aide de OcrInput, vous pouvez utiliser la méthode ReadPassport pour identifier et extraire des informations du passeport. Cette méthode retourne un objet OcrPassportResult, qui contient des propriétés telles que GivenNames, Country, PassportNumber, Surname, DateOfBirth et DateOfExpiry. Tous les membres de l'objet PassportInfo sont des chaînes de caractères.

[{i :(

  • La méthode fonctionne actuellement uniquement pour les passeports basés sur l'anglais.
  • L'utilisation de l'analyse avancée sur le Framework .NET nécessite que le projet soit exécuté sur une architecture x64.

    )}]

Entrée de passeport

Exemple d'image

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#

Sortie

Sortie de résultat

Nous accédons ensuite au membre de données PassportInfo obtenu à partir de l'objet OcrPassportResult.

  • GivenNames : Une propriété de PassportInfo qui renvoie les prénoms du passeport saisi sous forme de chaîne de caractères. Ceci correspond à la première ligne de données MRZ avec les positions de 4 à 44.
  • Country : Une propriété de PassportInfo retourne le pays du passeport saisi sous forme de chaîne de caractères. Cela correspond à la première ligne de données MRZ avec les positions de 2 à 3. La chaîne retournée indiquerait le nom complet du pays émetteur au lieu de l'abréviation. Dans notre exemple, les USA reviennent aux États-Unis d'Amérique.
  • PassportNumber : Une propriété de PassportInfo retourne les prénoms du passeport saisi sous forme de chaîne de caractères. Cela correspond à la deuxième ligne de données MRZ, avec des positions allant de 1 à 9.
  • Nom de famille : Une propriété de PassportInfo renvoie le nom de famille du passeport saisi sous forme de chaîne. Ceci correspond à la première ligne de données MRZ avec les positions de 4 à 44.
  • DateOfBirth : Une propriété de PassportInfo renvoie la date de naissance du passeport d'entrée sous forme de chaîne au format AAAA-MM-JJ. Cela correspond à la deuxième ligne de données MRZ avec les positions de 14 à 19.
  • DateOfExpiry : Un membre de la propriété PassportInfo qui renvoie la date d'expiration du passeport saisi sous forme de chaîne dans le format AAAA-MM-JJ. Ceci correspond à la deuxième ligne de données MRZ avec les positions 22 à 27.

Comprendre les informations MRZ

IronOCR lit les informations MRZ qui sont contenues dans les deux lignes du bas de tout passeport conforme à la norme de(Organisation de l'aviation civile internationale) ICAO. Les données MRZ se composent de deux lignes de données, chaque ensemble de positions contenant des informations uniques. Voici un tableau récapitulatif indiquant quelle information correspond à l'indice de la ligne ; pour toutes les exceptions et identifiants uniques, veuillez vous référer à laICAOnormes de documentation.

Exemple de saisie de passeport :

Emplacement de la MRZ

Première Rangée

Position Champ Description
Type de documentTypiquement 'P' pour passeport
-3Pays émetteurCode de pays à trois lettres (ISO 3166-1 alpha-3)
-44Nom et prénomsNom de famille suivi de '<<' and then given names separated by '<'

Deuxième rangée

Position Champ Description
-9Numéro de passeportNuméro de passeport unique
0Chiffre de contrôle (numéro de passeport)Chiffre de contrôle du numéro de passeport
1-13NationalitéCode de nationalité à trois lettres (ISO 3166-1 alpha-3)
4-19Date de naissanceDate de naissance au format AAMMJJ
0Chiffre de contrôle (Date de naissance)Chiffre de contrôle pour la date de naissance
1SexeGenre ('M' pour masculin, 'F' pour féminin, 'X' pour non spécifié)
2-27Date d'expirationDate d'expiration au format AAMMJJ
8Chiffre de contrôle (date d'expiration)Chiffre de contrôle pour la date d'expiration
9-42Numéro personnelNuméro personnel facultatif (généralement numéro d'identification national)
3Chiffre de contrôle (numéro personnel)Chiffre de contrôle pour le numéro personnel
4Chiffre de Contrôle (Composite)Chiffre de contrôle global

Débogage

Nous pourrions également vérifier les résultats d'IronOCR en obtenant le texte brut extrait de l'image du passeport et le niveau de confiance pour confirmer si les informations extraites sont exactes. En utilisant l'exemple ci-dessus, nous pouvons accéder aux propriétés Confidence et Text de l'objet OcrPassportResult.

: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#

Sortie de la console :

Déboguer
  • Confiance : La propriété Confidence de OcrPassportResult est un flottant indiquant la confiance en précision statistique de l'OCR, en tant que moyenne de chaque caractère. Ce montant serait inférieur si l'image du passeport est floue ou contient d'autres informations. Où 1 représente le niveau le plus élevé et le plus sûr, et 0 le niveau le plus bas et le moins sûr.
  • Texte : La propriété Text de OcrPassportResult contient le texte brut non analysé extrait de l'image du passeport. Les développeurs pourraient utiliser ceci dans les tests unitaires pour vérifier le texte extrait de l'image du passeport.