Comment extraire les données de passeport avec IronOCR
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.
Comment extraire les données de passeport avec IronOCR
- Téléchargez une bibliothèque C# pour lire les passeports
- Importer l'image du passeport pour la lecture
- Assurez-vous que le document contient uniquement l'image du passeport, sans en-têtes ni pieds de page.
- Utiliser le
Lire le passeport
méthode pour extraire des données de l'image - Accéder à la OcrPassportResult propriété pour visualiser et manipuler davantage les données extraites du passeport
Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit.
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
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)
Sortie
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 :
Première Rangée
Position | Champ | Description |
---|---|---|
Type de document | Typiquement 'P' pour passeport | |
-3 | Pays émetteur | Code de pays à trois lettres (ISO 3166-1 alpha-3) |
-44 | Nom et prénoms | Nom de famille suivi de '<<' and then given names separated by '<' |
Deuxième rangée
Position | Champ | Description |
---|---|---|
-9 | Numéro de passeport | Numéro de passeport unique |
0 | Chiffre de contrôle (numéro de passeport) | Chiffre de contrôle du numéro de passeport |
1-13 | Nationalité | Code de nationalité à trois lettres (ISO 3166-1 alpha-3) |
4-19 | Date de naissance | Date de naissance au format AAMMJJ |
0 | Chiffre de contrôle (Date de naissance) | Chiffre de contrôle pour la date de naissance |
1 | Sexe | Genre ('M' pour masculin, 'F' pour féminin, 'X' pour non spécifié) |
2-27 | Date d'expiration | Date d'expiration au format AAMMJJ |
8 | Chiffre de contrôle (date d'expiration) | Chiffre de contrôle pour la date d'expiration |
9-42 | Numéro personnel | Numéro personnel facultatif (généralement numéro d'identification national) |
3 | Chiffre de contrôle (numéro personnel) | Chiffre de contrôle pour le numéro personnel |
4 | Chiffre 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)
Sortie de la console :
- Confiance : La propriété
Confidence
deOcrPassportResult
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
deOcrPassportResult
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.