Qu'est-ce que l'OCR (reconnaissance optique de caractères)

Jonathan Grandperrin

Jonathan Grandperrin

Un collage illustrant la technologie de reconnaissance optique de caractères (OCR). Il associe des images originales provenant de divers supports, notamment des formulaires, des pièces d'identité, des lettres, une affiche de film et une carte Pokémon, à des versions traitées où tout le texte détecté est surligné par des encadrés bleus. La partie droite présente des exemples rapprochés de cette détection de texte.

L' aperçu

La nécessité de scanner nos pièces d'identité, nos factures, nos reçus, etc., et de récupérer les informations qui y sont stockées s'est produite à un moment ou à un autre de notre vie. De même, vous pourriez avoir des documents PDF contenant des informations à extraire. Saviez-vous que la reconnaissance optique de caractères (OCR) en est responsable ?

Cet article vous fournira une image claire du potentiel de l'OCR, de ce que c'est, des technologies utilisées et des utilisations les plus courantes (et utiles) de cette technologie.

Que signifie OCR ?

OCR est l'abréviation de Reconnaissance optique de caractères. La définition technique fait référence aux technologies logicielles capables de capturer des éléments de texte à partir d'images ou de documents et de les convertir en format texte lisible par machine.

Grâce àl'OCR, transformation d'une image en document numérique éditable

Les technologies OCR simples ont un champ d'utilisation limité. Sans couche de traitement supplémentaire, il est généralement prévu de récupérer du texte codé automatiquement à partir d'images ou de documents numérisés et de le stocker dans un logiciel de gestion de documents.

Pour d'autres cas d'utilisation, tels que l'extraction d'informations clés à partir de documents, il est nécessaire de créer une autre couche d'intelligence en plus de la sortie OCR, sur la base d'informations sémantiques ou d'autres caractéristiques visuelles ou du langage naturel. Quel que soit le contexte, l'OCR est la première étape lorsque le point d'entrée de votre flux de travail reçoit une saisie de texte structurée à partir de documents ou de photos numérisés.

Par conséquent, l'acronyme OCR est couramment utilisé pour désigner toute application basée sur l'OCR, telle qu'une application mobile grand public transformant une image en un document texte modifiable. Par exemple, un logiciel capable d'extraire des informations clés des factures est souvent appelé « OCR des factures ».

OCR pour documents et photos

Dans les écoles primaires, vous avez appris à effectuer la conversion d'une image en texte en utilisant vos yeux comme entrées visuelles et vos connaissances sur la forme des personnages en tant que modèle. Certes, à cet âge, vous étiez capable de lire des mots correctement écrits/dactylographiés sur une feuille de papier, mais vous aviez peut-être du mal à lire des graffitis manuscrits.

Avant de plonger dans la technologie OCR, il est important de comprendre les principaux cas d'utilisation et la manière dont elle est utilisée dans les logiciels. La structuration du texte à partir d'images peut aider à résoudre de nombreux cas d'utilisation réels.

De cette manière, nous allons diviser les cas d'utilisation en deux domaines visuels distincts :

  • L'OCR dans la nature : un message d'amour écrit sur le sable de la plage
  • OCR sur des documents : votre billet de train

Ces deux domaines présentent des différences significatives en termes de densité d'éléments (beaucoup plus élevée dans les documents) et d'arrangements spatiaux/structurels. Nous allons toutefois nous concentrer sur le domaine le plus spécifique : l'OCR sur les documents.

À quoi sert l'OCR ?

Convertir une image en texte à l'aide de l'OCR

La conversion d'image en texte est le cas d'utilisation le plus courant de l'OCR. Il fait référence à toute application Web ou mobile transformant une image contenant du texte en texte clair lisible par machine. L'objectif principal de ces outils est d'aider l'utilisateur à transcrire tout le texte capturé sur une photo en quelques secondes, au lieu de taper manuellement tout le texte. Le texte obtenu peut ensuite être copié dans le presse-papiers de l'utilisateur et utilisé sur son appareil.

Numérisez des documents avec l'OCR

Également appelée dématérialisation, la numérisation d'un document consiste à créer une copie lisible par machine d'un document pour le stocker dans un logiciel de gestion documentaire. Il peut s'agir d'un format de texte brut ou d'une copie modifiable avec la même mise en page. Dans le second scénario, une OCR capable de détecter la position de chaque mot ainsi que son contenu textuel est requise pour détecter la mise en page des documents.

La plupart des entreprises de numérisation fournissent à leurs clients le matériel approprié (scanners) pour gérer la conversion de documents papier en données numériques.

Processus de numérisation de documents utilisant l'OCR, le papier, la numérisation, l'OCR et un logiciel de gestion de documents

Rendez les PDF consultables et indexables grâce à l'OCR

Toute archive de documents non structurés peut être transformée en texte lisible par machine afin de rendre chaque document consultable à l'aide d'une requête en langage naturel. En utilisant uniquement une OCR, vous pouvez simuler une recherche CTRL/CMD+F dans un document numérisé sur le texte qu'il contient. Pour les cas d'utilisation plus avancés de l'OCR, il est probable que vous deviez créer un moteur de recherche pour rechercher différentes informations sémantiques écrites dans votre document. L'ajout de fonctionnalités d'extraction d'informations clés en plus de votre OCR peut être nécessaire avant d'indexer les données extraites dans un moteur de recherche.

{{cta-awareness-1= » /in-progress/global-blog-elements "}}

Reconnaissance optique de caractères pour la reconnaissance de documents

Également appelée classification de documents, cette tâche consiste à classer automatiquement un nouveau document en lui attribuant un type parmi un ensemble prédéfini de classes de documents. Dans ce cas, le rôle de l'OCR est d'extraire tous les mots et caractères d'un document et de les utiliser ultérieurement comme fonctionnalités pour un classificateur. Ce classificateur peut être basé sur de simples règles de détection de mots clés (taxes sur les factures ou les reçus, numéros de passeport pour les documents de passeport...) ainsi que des algorithmes d'apprentissage automatique (ML) pour une classification plus complexe. L'utilisation d'un modèle ML est un réel avantage pour cette tâche, car il ne nécessite pas d'OCR extrêmement robuste pour obtenir de très hautes performances.

Reconnaissance ou classification des documents
  1. Dans les flux de travail d'approvisionnement: lorsqu'il s'agit d'un nouveau document semblable à une facture, les actions entreprises dans le cadre d'un flux de travail d'approvisionnement sont différentes selon le type de document. Un bon de commande doit être approuvé, une facture doit être payée et, enfin, un reçu doit être téléchargé dans le système de comptabilité.
  2. Dans la gestion des dépenses: Le logiciel de gestion des dépenses utilise les données des reçus pour appliquer le bon processus d'approbation ou pour détecter d'éventuelles fraudes. Par exemple, certaines entreprises ne remboursent que partiellement les dépenses d'essence ou de restauration de leurs employés, mais remboursent intégralement les reçus de stationnement ou d'hôtel. Certains d'entre eux ne remboursent pas non plus les frais de restaurant de leurs employés si l'heure de réception n'est pas dans une plage horaire précise.
  3. Dans la demande de prêt: Pour certains processus de demande de prêt, le demandeur envoie un PDF unique comprenant un ensemble de différents documents (pièces d'identité, déclaration de revenus, fiches de paie, certificat de constitution des entreprises, etc.). Ce PDF unique doit être divisé en types de documents appropriés pour envoyer chacun d'entre eux dans différents flux de travail.

Extraire des informations clés sur des documents à l'aide de l'OCR

Ce cas d'utilisation est probablement le plus compliqué et le plus crucial dans le domaine de l'automatisation des flux de travail. Il consiste à extraire des informations spécifiques de documents et à les sortir dans un format lisible par machine qui peut être utilisé dans d'autres logiciels.

Par rapport au problème de classification des documents, la performance de l'OCR utilisée est extrêmement importante pour ce cas d'utilisation car elle ne repose pas sur une extrapolation du contenu du texte, mais sur certains caractères spécifiquement enchaînés.

ALT : Extraction des informations clés du document
  1. Flux de travail d'intégration des clients : Cela implique d'obtenir des données structurées à partir de documents existants afin de renseigner les informations de compte des clients dans le logiciel requis. Dans les logiciels de gestion des contrats, par exemple, les utilisateurs doivent stocker leurs contrats passés et en cours avec leurs données clés pour bénéficier des fonctionnalités du produit. Ces données clés incluent principalement les parties, le type de contrat, les dates de début et de fin et la politique de renouvellement. Automatiser le extraction d'informations clés (KIE) des contrats est important pour faciliter le processus d'intégration.
  2. Dans les flux de travail d'approvisionnement: L'automatisation des comptes fournisseurs (AP) nécessite extraction des données clés inscrites dans les factures pour automatiser ou faciliter le processus de paiement des factures entrantes. L'utilisation du terme « OCR de facture » car ce cas d'utilisation est très répandu mais il ne correspond pas à la définition technique d'une OCR. L'ensemble de données à extraire dépend légèrement du flux de travail et des spécifications du logiciel, mais il comprend généralement :
  • Nom du fournisseur (parfois accompagné d'un identifiant d'entreprise tel que le TIN (numéro d'identification fiscale), le SIRET, le numéro de TVA...)
  • Date de facturation
  • Date d'échéance du paiement
  • Montants totaux des factures : un taxes incluses et un hors taxes
  • Facturer le total des taxes (parfois avec les détails de la ligne fiscale)
  • Coordonnées bancaires du fournisseur

L'ajout de données clés supplémentaires en haut de cette liste peut aider à couvrir un plus grand nombre de cas d'utilisation des achats :

  • La mise en correspondance tripartite consiste à associer un bon de commande, une facture et un reçu de paiement à l'aide du numéro de bon de commande (PO) qui doit être extrait des trois documents ;
  • Automatisation des comptes clients (AR) et de l'affacturage nécessitant l'extraction automatique du nom et de l'adresse du client ;
  • L'approbation des achats nécessite l'extraction des rubriques inscrites sur les factures. L'extraction des rubriques est une tâche qui ne correspond pas exactement au problème d'extraction des informations clés, car elle repose sur la détection et la structuration des tableaux.

{{cta-consideration-1= » /in-progress /global-blog-elements «}}

Technologie OCR

Comment distinguer les séquences de mots simples d'un document ? Comment percevez-vous la différence entre « écrire un ou deux paragraphes sur un sujet » et « créer un document sur un sujet » ?

Il est vrai que les paragraphes consécutifs ne suffisent pas pour constituer un document. Les documents codent les informations en combinant des conventions sémantiques/d'écriture (à quoi fait référence une séquence de caractères donnée) et des arrangements visuels/structurels (par exemple, des documents de type formulaire). Les documents peuvent facilement intégrer des informations non textuelles (par exemple une image), ce qui en fait un support d'information plus riche que les mots sous forme de séquences uniquement.

Pipeline générique OCR

Dans un premier temps, examinons comment un humain interprète un document :

  • Localisation partielle des informations
  • Concentrez-vous sur les mots de manière séquentielle pour reconnaître les informations textuelles
  • Utilisez vos connaissances sémantiques pour donner un sens à ce texte.

Nous pouvons également affirmer qu'un être humain utilise ses connaissances sémantiques comme une boucle de rétroaction pour la reconnaissance de texte : si vous avez des doutes visuels sur un caractère au milieu d'un mot, vos connaissances linguistiques vous aideront à dissiper ce doute.

Les technologies d'OCR s'appuient sur les mêmes étapes pour détecter et reconnaître le texte contenu dans les images. La première étape consiste à localiser les éléments de texte dans l'image, et la seconde consiste à reconnaître les caractères à ces emplacements afin de les convertir en une séquence de caractères lisible par machine.

OCR détection de texte

En général, un problème de détection d'objets avec computer vision fait référence à la tâche de détection de la position des objets dans les images. La sortie de ces algorithmes est une liste de cadres de délimitation correspondant aux positions de chaque objet détecté dans l'image.

Détection de texte OCR

L'algorithme de détection de texte d'un pipeline d'OCR est chargé de détecter chaque chaîne de caractères de l'image qui ne contient pas d'espace vide. La définition de haut niveau de l'algorithme de détection de texte est la suivante :

  • Entrée : image avec plusieurs séquences de mots
  • Sortie : localisation de chaque mot/séquence de caractères ininterrompue.

Par convention, nous considérerons que la localisation est effectuée à l'aide de cadres de délimitation (le plus petit cadre rectangulaire englobant le mot). Mais en général, la sortie peut être n'importe quel polygone contenant l'objet souhaité.

Une première approche de la détection de texte : Détection simple d'objets

Architectures de modèles de vision par ordinateur les plus populaires : Faster R-CNN, YOLO

Détection d'objets pour la détection de texte

Extraction des caractéristiques de l'image

La plupart des modèles de machine learning traitent les informations visuelles à l'aide de plusieurs couches de circonvolutions. Les convolutions sont un type de fonction mathématique utilisée dans un réseau neuronal généralement utilisé pour reconnaître des motifs présents dans des images. Chaque couche extrait des informations de son voisin précédent en identifiant des modèles spatiaux locaux. Ces couches empilées permettent ainsi d'extraire de plus en plus de motifs spatiaux plus larges et plus complexes.

Ce processus est généralement appelé extraction de caractéristiques (spatiales) et produit un ensemble de modèles spatiaux complexes identifiés par votre modèle. Pour une introduction détaillée aux réseaux de neurones convolutifs, consultez cet excellent article avec animation interactive dans le navigateur.

Regroupement de fonctionnalités

Chaque objet est représenté par un ensemble de coordonnées qui est le cadre de délimitation qui inclut l'objet que nous recherchons (des mots dans ce cas). Pour le candidat de chaque objet, imaginons que les caractéristiques extraites sont un ensemble de matrices (N, N) (N étant généralement beaucoup plus petite que la taille de l'image d'entrée), dont le coin supérieur gauche correspond aux motifs spatiaux extraits en haut à gauche de votre image d'entrée. Nous devons maintenant nous concentrer sur un large éventail de tailles d'objets dans l'image. Pour ce faire, nous allons définir quelques priorités :

  • un ensemble de rapports hauteur/largeur attendus
  • un ensemble de barèmes attendus
  • un ensemble de centres d'objets attendus

Plus précisément, à un endroit ou à un centre d'objet donné, nous ne considérerons que les objets proches de n'importe quelle combinaison de nos rapports hauteur/largeur et de nos échelles prédéfinis.

Maintenant que nous avons les caractéristiques extraites et la localisation estimée approximative (cadre de délimitation) d'un objet, nous allons extraire les caractéristiques de chaque emplacement et les redimensionner à l'aide d'une opération appelée regroupement de régions (RoI pooling dans Faster-RCNN, RoI Align dans Mask-RCNN) illustrée ci-dessous.

Vision par ordinateur avec regroupement de fonctionnalités

En utilisant cela, si nous avions M centres d'objets attendus, 3 rapports hauteur/largeur possibles et 3 échelles possibles, nous obtiendrions un ensemble de 9 * M caractéristiques regroupées (chacune correspondant à une combinaison de centre, de rapport hauteur/largeur et d'échelle). Veuillez noter que cela est vrai quelle que soit la taille des caractéristiques que nous avons extraites.

Classification et régression des boîtes

Pour chacun de nos objets candidats, nous pouvons désormais effectuer différentes tâches. Lors de la détection d'objets, nous affinerons le cadre de délimitation (en partant de la valeur correspondante du centre + de l'échelle + du rapport hauteur/largeur) et classerons l'objet (par exemple, s'agit-il d'un chien ou d'un chat ?). Dans notre contexte, la classification sera simplement binaire (est-ce un mot ou pas ?).

Une deuxième approche de la détection de texte : segmentation d'images

Architectures de modèles de vision par ordinateur les plus populaires : U-Net, DeepLab

Segmentation d'images pour la détection de texte

En utilisant les mêmes caractéristiques extraites que pour la détection d'objets, l'ensemble des caractéristiques spatiales (N, N), nous devons maintenant les redimensionner aux dimensions de l'image (H, W). Rappelez-vous que N est plus petit que H ou W.

Mise à l'échelle des fonctionnalités

Surtout si nos matrices (N, N) sont beaucoup plus petites que l'image, le suréchantillonnage de base n'apporterait aucune valeur. Plutôt que de simplement interpoler nos matrices en (H, W), les architectures disposent de différentes astuces pour apprendre les opérations de mise à l'échelle, telles que les circonvolutions transposées. Nous obtenons ensuite des caractéristiques à grain fin pour chaque pixel de l'image.

Classification binaire

En utilisant les nombreuses caractéristiques de ces pixels, quelques opérations sont effectuées pour déterminer leur catégorie. Dans notre cas, nous déterminerons uniquement si le pixel appartient à un mot, ce qui produit un résultat similaire à l'illustration de « segmentation » de la figure précédente.

Conversion du boîtier de délimitation

Enfin, la carte de segmentation binaire doit être convertie en un ensemble de cadres de délimitation. Cela semble être une tâche beaucoup plus facile que de produire la carte de segmentation, mais deux mots proches l'un de l'autre peuvent sembler identiques selon votre carte de segmentation. Un certain post-traitement est nécessaire pour produire une localisation pertinente des objets.

Reconnaissance de texte OCR

Reconnaissance de texte OCR

Le bloc de reconnaissance de texte d'un pipeline d'OCR est chargé de transcrire la séquence de caractères d'une image :

  • Entrée : image avec une seule séquence de caractères
  • Sortie : la valeur du mot

L'hypothèse selon laquelle il n'existe qu'une seule séquence de caractères nous permet d'envisager deux approches.

Une première approche de la reconnaissance de texte : la classification des caractères glissants

Reconnaissance de texte à caractères roulants

Divisez les mots en groupes de caractères

Vous pouvez trouver de nombreuses techniques de vision par ordinateur pour localiser horizontalement chaque caractère, telles que des histogrammes de couleurs horizontaux. Généralement, cette opération ne nécessite pas de puissance de calcul importante grâce à notre hypothèse d'une séquence à un seul caractère.

Classification des personnages

Désormais, au lieu d'avoir une séquence de caractères à identifier, cela devient un simple problème de classification d'images. Au lieu de prédire s'il s'agit d'un chien ou d'un chat (est-ce un mot ou non), nous devrons identifier directement le personnage de notre image.

Heureusement pour nous, cela ne nécessite pas de grandes images d'entrée ni d'architectures très profondes, comme l'a prouvé Yann Lecun avec son modèle LeNet5 entraîné pour classer les chiffres manuscrits en 1998. De manière concise, le modèle extraira les caractéristiques spatiales, les regroupera et classera l'ensemble des caractéristiques afin de prédire le résultat. Ensuite, il ne nous reste plus qu'à assembler nos prédictions de caractères en prédictions de mots.

Une deuxième approche pour la reconnaissance de texte : la modélisation de séquences

Reconnaissance de caractères par modélisation de séquences OCR

Extraction des caractéristiques de l'image

Nos recadrages d'images de mots peuvent désormais être intégrés à un modèle afin d'extraire des caractéristiques spatiales similaires à ce que nous avons fait dans le domaine de la détection d'objets (à une résolution beaucoup plus faible cette fois). À des fins de simplification, imaginons que cela donne un ensemble de (1, N) caractéristiques spatiales.

Alignement et classement

Il est maintenant très important de noter que les caractéristiques extraites auront toujours la même taille de sortie, quelle que soit la longueur du mot. Cela signifie que dans nos (1, N) caractéristiques spatiales, il y a rarement N caractères. Vous l'avez peut-être compris : nous avons un problème d'alignement.

Ce problème d'alignement est commun à tous les problèmes de modélisation de séquences tels que la transcription d'un son en texte, d'une image en une séquence de caractères, etc.

L'une des approches modernes consiste à utiliser la classification temporelle connexionniste (expliquée avec brio dans cet article) qui se déroule en deux étapes :

  • alignement : passer de nos fonctionnalités N-6 (x1,..., x6) à N caractères alignés (« c », « c », « a », « a », « a », « a », « t »)
  • effondrement : fusion des caractères alignés sur N dans une sortie propre (« c », « a », « t ») Obstacles OCR obstacles du monde réel

Ressources OCR

En fonction de vos contraintes et de vos ressources internes, vous pouvez tirer parti de l'OCR de multiples manières : de la mise en œuvre de votre propre OCR à la gestion de son déploiement prêt pour la production, en passant par la délégation de l'ensemble du processus à un service commercial tiers.

Bibliothèques OCR open source

Bien que les ressources open source ne soient généralement pas gratuites, vous devez disposer de ressources internes pour orchestrer le déploiement de votre service. Cependant, cela permet généralement de personnaliser votre bloc de prédiction (réentraînement, optimisation, interfaçage) puisque vous avez accès à l'intégralité de la base de code.

Mindee fournit aux développeurs et aux data scientists une OCR open source en python Docteur R, vous trouverez une démo ci-dessous.

API OCR Mindee

L'aspect positif des services commerciaux est que vous n'aurez qu'à interfacer l'API avec votre système d'information. Avec cette option, vous déléguez à des tiers les responsabilités d'orchestration du cloud et de développement de modèles en échange du paiement de votre facture. Mindee est une API OCR fiable qui permet d'analyser des documents pour les développeurs. Grâce à notre clé API gratuite, vous pouvez rapidement et facilement commencer à utiliser nos API de reconnaissance optique de caractères (OCR) pour extraire des informations de vos documents.

{{cta-conversion-1= » /en cours/éléments de blog mondiaux "}}

À propos

Qu'il s'agisse de simples photos, de fichiers PDF complexes ou de fichiers manuscrits, l'API de Mindee transforme les données de vos documents en JSON structuré de manière hautement fiable. Aucune formation sur les modèles n'est requise. Tous les alphabets et toutes les langues sont pris en charge.

,
,

Key Takeway

Key Takeway