Si vous avez déjà tenté d'extraire des données structurées d'un connaissement avec un OCR généraliste, vous connaissez la conclusion : cela ne fonctionne pas. Pas de manière fiable, en tout cas. Et en conformité commerciale internationale, « pas de manière fiable » signifie « pas du tout ».
Chez Atlas Verify, nous traitons des milliers de documents commerciaux — connaissements, certificats biologiques, phytosanitaires et d'origine, factures commerciales, listes de colisage et des dizaines d'autres. Au début, nous avons évalué toutes les grandes plateformes OCR du marché. Elles ont toutes échoué au même test : face à un document sur lequel elles n'ont pas été spécifiquement entraînées, les résultats vont d'incomplets à dangereusement faux.
Cet article explique notre choix d'une chaîne personnalisée, les difficultés propres aux documents commerciaux et les principes techniques guidant notre approche.
Le problème de la diversité documentaire
La plupart des services OCR sont optimisés pour un ensemble restreint de types de documents. Google Document AI excelle pour les factures et reçus. AWS Textract traite bien les formulaires structurés. Azure Form Recognizer peut être entraîné sur des modèles personnalisés. Mais le commerce international génère une diversité documentaire considérable.
Notre système seul traite plus de 35 types distincts. Un connaissement ne ressemble en rien à un certificat biologique. Un certificat phytosanitaire USDA n'a presque aucune ressemblance structurelle avec un certificat de l'UE. Un avis d'arrivée d'une compagnie peut être un PDF structuré aux tableaux propres ; celui d'une autre, un fax numérisé avec des annotations manuscrites.
Le point essentiel est que chaque type possède son schéma — des champs précis importants pour la conformité. Un connaissement nécessite expéditeur, destinataire, partie à notifier, numéros de conteneurs, nom du navire, ports de chargement et déchargement, descriptions des marchandises. Un certificat biologique nécessite organisme certificateur, nom de l'opération, identifiant NOP, produits certifiés et dates de validité.
Les OCR généralistes ne comprennent pas ces schémas. Ils extraient du texte et peuvent identifier des tableaux. Mais ils ignorent que « MEDU4107760 » est un numéro de conteneur ou que « NOP ID: 7880315519 » est un identifiant critique à vérifier dans la USDA Organic Integrity Database. Sans compréhension des schémas, l'OCR n'est qu'une conversion coûteuse en texte.
Pourquoi « assez bon » est dangereux
Dans la plupart des applications, un taux d'exactitude de 95% est excellent. En conformité commerciale, c'est un risque de responsabilité.
Prenons un numéro de conteneur. Le format standard (ISO 6346) comporte quatre lettres suivies de sept chiffres, dont le dernier est un chiffre de contrôle. Si l'OCR lit mal un seul caractère — « 0 » devient « O », « 8 » devient « B » — le numéro est invalide. Les systèmes en aval tentant le suivi ne renvoient aucun résultat et la chaîne de vérification se rompt silencieusement.
Le même principe s'applique aux identifiants NOP, codes SH, numéros IMO et dates de certification. Une erreur d'un caractère peut tout changer. Un code SH 0901.11 (café non torréfié, non décaféiné) plutôt que 0901.12 (café non torréfié, décaféiné) entraîne des droits de douane, exigences réglementaires et profils de risque différents.
Notre architecture
Notre chaîne de traitement comporte trois étapes, chacune conçue pour maximiser l'exactitude face aux défis des documents commerciaux.
Étape 1 : Classification documentaire — Avant toute extraction, nous identifions le type de document. Cette classification détermine le schéma d'extraction, les champs à rechercher et la méthode de validation.
Étape 2 : Extraction tenant compte des schémas — Une fois le document classé, nous appliquons un modèle propre à son type qui connaît les champs à rechercher et leur emplacement habituel. Cela diffère fondamentalement de l'OCR généraliste, qui extrait tout et laisse l'interprétation à l'utilisateur.
Étape 3 : Validation croisée — Les données extraites sont automatiquement recoupées avec des sources externes. Les numéros de conteneurs sont validés par les API des compagnies maritimes. Les identifiants NOP sont contrôlés dans la USDA Organic Integrity Database. Les codes portuaires sont vérifiés dans le World Port Index. Cette étape détecte les erreurs OCR et les données frauduleuses.
Enseignements
Après le traitement de dizaines de milliers de documents commerciaux, plusieurs principes sont devenus clairs :
1. La spécialisation sectorielle surpasse le généraliste. Chaque tentative d'utilisation d'un OCR généraliste exigeait tant de post-traitement que nous passions plus de temps à corriger ses résultats qu'à construire une solution personnalisée.
2. La classification est le fondement. Une erreur de type documentaire se répercute sur toutes les étapes suivantes. Nous investissons fortement dans son exactitude, car tout le reste en dépend.
3. La validation est plus importante que l'extraction. Extraire un numéro de conteneur est utile. Confirmer qu'il s'agit d'un véritable conteneur sur un véritable navire au bon port est ce qui compte réellement pour la conformité.
4. Les résultats structurés permettent l'automatisation. L'objectif est de produire des données structurées lisibles par machine, alimentant directement les processus automatisés de vérification, au-delà de la numérisation pour lecture humaine.
Construire une chaîne fiable de traitement pour le commerce international est réellement difficile. Les documents sont divers, les exigences d'exactitude extrêmes et les conséquences des erreurs importantes. Mais c'est aussi fondamental : chaque capacité de vérification dépend de notre aptitude à lire et comprendre avec exactitude les documents accompagnant les marchandises dans les chaînes mondiales.
