Extraire les données d'un passeport en C# ; avec IronOCR

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

La méthode ReadPassport d'IronOCR extrait des données structurées des images de passeport, notamment les noms, les numéros de passeport, les dates de naissance et les dates d'expiration en une seule ligne de code C#, ce qui la rend idéale pour les applications d'immigration et de sécurité.

Dans les applications et les systèmes tels que les comptoirs d'enregistrement et les contrôles de sécurité dans les aéroports, où les agents traitent quotidiennement d'importants volumes de passeports, il est essentiel de disposer d'un système fiable qui extrait avec précision les informations essentielles sur les voyageurs afin de garantir un processus d'immigration efficace et rationalisé. La bibliothèque IronOCR offre des fonctionnalités OCR avancées spécifiquement optimisées pour la lecture de passeports, en exploitant Tesseract 5 sous le capot avec des améliorations en matière d'apprentissage automatique.

Démarrage rapide : Extraire les informations MRZ du passeport en une seule ligne

Cet exemple montre comment charger une image de passeport à l'aide de OcrInput, utiliser ReadPassport() pour extraire des données et accéder à des champs structurés tels que des noms, des numéros et des dates à partir du PassportInfo renvoyé. Aucune configuration complexe n'est requise, il suffit d'une ligne directe. Contrairement aux mises en œuvre traditionnelles de Tesseract, IronOCR fournit une API simplifiée spécialement conçue pour l'extraction de documents.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronOCR avec le gestionnaire de packages NuGet

    PM > Install-Package IronOcr

  2. Copiez et exécutez cet extrait de code.

    var passportInfo = new IronOcr.IronTesseract().ReadPassport(new IronOcr.OcrInput("passport.jpg")).PassportInfo;
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronOCR dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer

Comment extraire les données d'un passeport en C#?

À titre d'exemple, nous utiliserons une image de passeport comme donnée d'entrée pour illustrer les fonctionnalités d'IronOCR. Après avoir chargé l'image à l'aide OcrInput , vous pouvez utiliser la méthode ReadPassport pour identifier et extraire les informations du passeport. Cette méthode renvoie 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.

La méthode ReadPassport fait partie des capacités de lecture de documents spécialisés d'IronOCR, qui comprend également des méthodes pour lire les plaques d'immatriculation, chèques MICR, et d'autres documents structurés. La méthode utilise des techniques avancées de vision artificielle pour localiser et extraire automatiquement la zone MRZ (Machine Readable Zone).

[{i:(

  • La méthode ne fonctionne actuellement que pour les passeports en anglais.
  • L'utilisation de l'analyse avancée sur .NET Framework nécessite que le projet s'exécute sur une architecture x64.
  • Pour les utilisateurs de Mac, veuillez noter que la méthode ReadPassport ne fait actuellement pas pivoter automatiquement l'entrée. Lors de l'utilisation de cette entrée, veuillez vous assurer que le fichier MRZ se trouve toujours en bas du fichier ; sinon, le processus échouera.
    @@--BRACKET-FERMETURE--@@

Quel format d'image de passeport dois-je utiliser ? IronOcr prend en charge divers formats d'image [](https://ironsoftware.com/csharp/ocr/how-to/input-images/), notamment JPG, PNG, TIFF et BMP. Pour des résultats optimaux, veillez à ce que votre image de passeport ait une résolution adéquate (au moins 300 DPI) et un éclairage approprié. Les paramètres [DPI](https://ironsoftware.com/csharp/ocr/how-to/dpi-setting/) peuvent être ajustés si vous travaillez avec des scans de moindre qualité.
Exemple de page de données de passeport américain montrant les champs biographiques, les dates et la zone lisible par machine pour la démonstration d'extraction de données
### De quel code ai-je besoin pour extraire les données d'un passeport? L'exemple suivant illustre le processus complet d'extraction des données d'un passeport. Pour les applications traitant plusieurs passeports, envisagez de mettre en œuvre [la prise en charge du multithreading](https://ironsoftware.com/csharp/ocr/how-to/async/) pour améliorer les performances. Vous pouvez également suivre la progression de l'OCR pour les opérations de longue durée. ```csharp :path=/static-assets/ocr/content-code-examples/how-to/read-passport-read-passport.cs ``` ### Quel résultat puis-je attendre de ReadPassport? Les données extraites sont renvoyées dans un format structuré qui facilite leur intégration dans les systèmes existants. La classe [OcrResult](https://ironsoftware.com/csharp/ocr/examples/results-objects/) fournit un accès complet à toutes les informations extraites.
Console de débogage montrant les données extraites du passeport : nom, pays, numéro de passeport et dates du traitement OCR
Nous accédons ensuite au membre de données `PassportInfo` obtenu à partir de l'objet `OcrPassportResult` . Le processus d'extraction gère automatiquement les différents formats et mises en page des passeports, ce qui permet d'obtenir des résultats cohérents dans les différents pays d'émission. - `GivenNames` : Une propriété de `PassportInfo` renvoie les prénoms du passeport saisi sous forme de chaîne de caractères. Cela correspond à la première ligne de données MRZ, positions 4 à 44. - `Country` : Une propriété de `PassportInfo` renvoie le pays du passeport saisi sous forme de chaîne de caractères. Cela correspond à la première ligne de données MRZ, positions 2 à 3. La chaîne renvoyée indique le nom complet du pays émetteur au lieu de l'abréviation. Dans notre exemple, USA signifie "États-Unis d'Amérique". - `PassportNumber` : Une propriété de `PassportInfo` renvoie le numéro de passeport du passeport saisi sous forme de chaîne de caractères. Cela correspond à la deuxième ligne de données MRZ, positions 1 à 9. - `Surname` : Une propriété de `PassportInfo` renvoie le nom de famille de l'entrée du passeport sous forme de chaîne de caractères. Cela correspond à la première ligne de données MRZ, positions 4 à 44. - `DateOfBirth` : Une propriété de `PassportInfo` renvoie la date de naissance du passeport saisi sous forme de chaîne de caractères au format AAAA-MM-JJ. Cela correspond à la deuxième ligne de données MRZ, positions 14 à 19. - `DateOfExpiry` : Une propriété membre de `PassportInfo` renvoie la date d'expiration du passeport saisi sous forme de chaîne de caractères au format AAAA-MM-JJ. Cela correspond à la deuxième ligne de données MRZ, positions 22 à 27.

Quelles sont les informations MRZ que je peux extraire des passeports ? IronOCR lit les informations MRZ contenues dans les deux rangées inférieures de tout passeport qui suit la norme de l'(Organisation de l'aviation civile internationale) [ICAO](https://www.icao.int/). Les données MRZ se composent de deux lignes de données, chaque ensemble de positions contenant des informations uniques. Voici un bref tableau indiquant les informations correspondant à l'index de la ligne. La fonctionnalité d'analyse MRZ d'IronOcr est conçue pour gérer les variations de la qualité d'impression et [l'orientation de l'image](https://ironsoftware.com/csharp/ocr/how-to/image-orientation-correction/). Pour les documents difficiles, vous pouvez appliquer des [filtres de correction d'image](https://ironsoftware.com/csharp/ocr/how-to/image-quality-correction/) pour améliorer la précision de la reconnaissance. ### À quoi ressemble la section MRZ? La MRZ se trouve généralement au bas de la page du passeport et consiste en deux lignes de texte normalisé. La compréhension de la structure MRZ permet de résoudre les problèmes d'extraction et de valider les résultats.
Page du passeport américain avec la zone de lecture automatique (MRZ) surlignée en rouge montrant les lignes de données alphanumériques codées
Première rangée
Poste à pourvoir Champ Description du projet
1Type de documentGénéralement, " P " pour passeport
2-3Pays émetteurCode pays à trois lettres (ISO 3166-1 alpha-3)
4-44Nom et prénomNom de famille suivi de '<<' puis prénoms séparés par '<'
Deuxième rangée
Poste à pourvoir Champ Description du projet
1-9Numéro de passeportnuméro de passeport unique
10Chiffre de contrôle (numéro de passeport)Chiffre de contrôle du numéro de passeport
11-13NationalitéCode de nationalité à trois lettres (ISO 3166-1 alpha-3)
14-19Date de naissanceDate de naissance au format AAMMJJ
20Chiffre de contrôle (Date de naissance)Chiffre de contrôle de la date de naissance
21SexeGenre (" M " pour masculin, " F " pour féminin, " X " pour non spécifié)
22-27Date d'expirationDate d'expiration au format AAMMJJ
28Chiffre de contrôle (date d'expiration)Chiffre de contrôle de la date d'expiration
29-42Numéro personnelNuméro personnel facultatif (généralement numéro d'identification national)
43Chiffre de contrôle (numéro personnel)Chiffre de contrôle du numéro personnel
44Chiffre de contrôle (composite)chiffre de contrôle global

## Comment déboguer et vérifier les résultats de l'extraction de passeports? Nous pouvons é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`. À des fins de débogage, vous pourriez vouloir [mettre en évidence des zones de texte](https://ironsoftware.com/csharp/ocr/how-to/highlight-texts-as-images/) pour vérifier visuellement quelles zones ont été reconnues. Cette fonctionnalité est particulièrement utile pour résoudre les problèmes d'extraction ou optimiser les zones de balayage. ```csharp :path=/static-assets/ocr/content-code-examples/how-to/read-passport-debug.cs ``` [VS Code debug console showing passport data output with personal details, countries, and encoded strings](/static-assets/ocr/how-to/read-passport/debug.webp) (Console de débogage du code VS affichant les données du passeport avec les détails personnels, les pays et les chaînes encodées) - `Confidence` : La propriété `Confidence` de `OcrPassportResult` est un nombre flottant indiquant la confiance dans la précision statistique de l'OCR sous forme de moyenne pour chaque caractère. Cette marge est plus faible si l'image du passeport est floue ou contient d'autres informations. Le chiffre un correspond à la valeur la plus élevée et la plus sûre, et le chiffre zéro à la valeur la plus basse et la moins sûre. Pour les applications de production, envisagez de mettre en place des [seuils de confiance des résultats](https://ironsoftware.com/csharp/ocr/how-to/tesseract-result-confidence/) pour garantir la qualité des données. - `Text` : La propriété `Text` de `OcrPassportResult` contient le texte brut, non analysé, extrait de l'image du passeport. Les développeurs peuvent l'utiliser dans des tests unitaires pour vérifier le texte extrait de l'image du passeport. Pour les scénarios avancés, vous pouvez exporter les résultats au format [hOCR](https://ironsoftware.com/csharp/ocr/how-to/html-hocr-export/) pour une analyse plus approfondie. ## Bonnes pratiques pour les applications de numérisation de passeports Lors de la mise en œuvre de la numérisation des passeports dans des environnements de production, il convient de tenir compte de ces facteurs supplémentaires : 1. **Qualité des images** : veillez à ce que les images d'entrée répondent à des normes de qualité minimales. L'[Assistant de filtrage](https://ironsoftware.com/csharp/ocr/how-to/filter-wizard/) peut aider à optimiser les images pour une meilleure reconnaissance. 2. **Performance** : Pour le traitement de gros volumes, mettez en œuvre la prise en charge [async](https://ironsoftware.com/csharp/ocr/how-to/async/) et envisagez le traitement par lots de plusieurs passeports. 3. **Sécurité** : les données des passeports étant sensibles, il convient de veiller au traitement adéquat des données et d'envisager l'intégration avec des systèmes de gestion de documents sécurisés. 4. **Validation** : mettre en œuvre la validation des chiffres de contrôle pour les données MRZ extraites afin d'en garantir l'exactitude. Le format MRZ comprend plusieurs chiffres de contrôle qui peuvent être utilisés pour vérifier l'intégrité des informations extraites. 5. **Gestion des erreurs** : mettre en œuvre une gestion robuste des erreurs pour les cas où les images de passeport peuvent être endommagées, mal éclairées ou contenir des formats non standard.

Questions Fréquemment Posées

Comment extraire des données de passeport à partir d'images en C# ?

Vous pouvez extraire des données de passeport à l'aide de la méthode ReadPassport d'IronOCR. Il suffit de charger votre image de passeport avec OcrInput et d'appeler ReadPassport() pour obtenir des données structurées, notamment les noms, les numéros de passeport, les dates de naissance et les dates d'expiration, en une seule ligne de code.

Quelles informations relatives aux passeports peuvent être extraites automatiquement ?

La méthode ReadPassport d'IronOcr extrait les prénoms, le pays, le numéro de passeport, le nom de famille, la date de naissance et la date d'expiration des images de passeport. Toutes les données sont renvoyées sous forme de chaînes dans un objet structuré PassportInfo.

Ai-je besoin d'une configuration complexe pour lire les données des passeports MRZ ?

Aucune configuration complexe n'est nécessaire. IronOcr fournit une API simplifiée qui extrait les données MRZ des passeports en une seule ligne de code, contrairement aux implémentations traditionnelles de Tesseract qui nécessitent davantage de configuration.

Quelle est la technologie utilisée pour la lecture des passeports ?

IronOcr exploite Tesseract 5 sous le capot avec des améliorations d'apprentissage automatique et des techniques avancées de vision par ordinateur pour localiser et extraire automatiquement la zone MRZ (Machine Readable Zone) des images de passeport.

Peut-on l'utiliser pour les systèmes d'immigration dans les aéroports ?

Oui, IronOCR est idéal pour les applications d'immigration et de sécurité dans les aéroports où les agents traitent quotidiennement d'importants volumes de passeports. Il permet d'extraire de manière fiable des informations critiques sur les voyageurs afin de garantir l'efficacité des processus d'immigration.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Revu par
Jeff Fritz
Jeffrey T. Fritz
Responsable principal du programme - Équipe de la communauté .NET
Jeff est également responsable principal du programme pour les équipes .NET et Visual Studio. Il est le producteur exécutif de la série de conférences virtuelles .NET Conf et anime 'Fritz and Friends', une diffusion en direct pour développeurs qui est diffusée deux fois par semaine où il parle de technologie et écrit du code avec les téléspectateurs. Jeff écrit des ateliers, des présentations et prévoit du contenu pour les plus grands événements de développement Microsoft, y compris Microsoft Build, Microsoft Ignite, .NET Conf et le sommet Microsoft MVP
Prêt à commencer?
Nuget Téléchargements 5,246,844 | Version : 2025.12 vient de sortir