Développement19 juin 2026· via DEV Community

Pourquoi l'OCR des cartes d'identité mondiales échoue – et comment y remédier

Pourquoi l'OCR des cartes d'identité mondiales échoue – et comment y remédier

Image : DEV Community

L'OCR des cartes d'identité nationales semble simple : il suffit de fournir une carte pour obtenir le nom, le numéro d'identification et la date de naissance. En pratique, c'est un champ de mines. Le premier pays fonctionne parfaitement – jusqu'à ce que le second apparaisse, et soudain, des champs disparaissent, des noms s'affichent n'importe comment, ou des années de naissance passent à 2567. Le vrai défi n'est pas de lire le texte, mais de donner un sens à 30 documents différents qui ne s'accordent sur rien.

Chaque document obéit à ses propres règles

Il n'existe pas de schéma universel pour les "cartes d'identité nationales". Les cartes thaïlandaises incluent la religion ; les allemandes, la taille et la couleur des yeux ; les chinoises, l'ethnie et l'autorité émettrice. Ces champs ne sont pas des exceptions rares – ils font partie intégrante des documents officiels. Concevoir un modèle de données unique avec des colonnes fixes vous oblige soit à supprimer des données critiques pour certains pays, soit à stocker des enregistrements clairsemés remplis de valeurs nulles et de correctifs spécifiques à chaque pays. La solution ? Traiter l'ensemble des champs comme une variable de premier ordre : votre système doit accepter que le "nom" puisse être une simple chaîne dans un pays, être divisé en champs "prénom/famille" dans un autre, ou même apparaître dans deux scripts simultanément.

Pièges des scripts et de la translittération

Les utilisateurs mondiaux impliquent des scripts variés – thaï, chinois, arabe, cyrillique. Une astuce courante consiste à tout translittérer en latin, mais c'est une erreur. La translittération fait perdre des nuances : les diacritiques disparaissent, plusieurs orthographes natives se réduisent à une seule forme latine, et vous ne pouvez plus faire correspondre les noms avec les documents sources ou les bases de données gouvernementales. La bonne approche ? Stocker la valeur dans son script d'origine, tel qu'imprimé, et n'inclure une forme latine que si la carte la fournit elle-même. Cela préserve l'intégrité des correspondances tout en soutenant les systèmes en aval qui nécessitent de l'ASCII.

Dates et nombres exigent une attention particulière

Les dates sont rarement simples. Les cartes d'identité thaïlandaises utilisent le calendrier bouddhiste (BE), qui ajoute 543 ans à l'année grégorienne et utilise souvent des chiffres thaïs. Un analyseur naïf échoue soit à interpréter les chiffres, soit se trompe de siècle sur l'année. Pour y remédier, convertissez les chiffres thaïs, soustrayez 543, et normalisez au format ISO 8601 tout en conservant la chaîne d'origine pour l'affichage. Les numéros d'identification varient aussi : les cartes thaïlandaises en comptent 13 ; les chinoises, 18, avec souvent des sommes de contrôle ou des codes régionaux. Exploitez ces structures pour valider les lectures dès le départ et détecter les erreurs avant qu'elles ne se propagent.


Source : DEV Community. Synthèse éditoriale assistée par IA — TechnoExpress.

Lire la source originale sur DEV Community →

← Retour à l'accueil