top of page

OCR - Reconnaissance de Texte pour l'Analyse de Documents

L'OCR, ou Reconnaissance Optique de Caractères, est une technologie informatique qui permet la conversion automatique de textes imprimés ou manuscrits en texte éditable et numérique. En utilisant des algorithmes sophistiqués et des modèles d'apprentissage automatique, l'OCR analyse les images ou les scans de documents contenant du texte, puis identifie et interprète les caractères présents.


Cette technologie est largement utilisée pour automatiser la saisie de données à partir de documents physiques tels que livres, factures, formulaires et articles de presse. Elle trouve également des applications dans la numérisation de documents historiques et la création de moteurs de recherche pour documents imprimés. Grâce à l'OCR, il est possible de gagner du temps et d'améliorer la précision lors de la conversion de supports physiques en fichiers numériques, contribuant ainsi à la facilitation de l'archivage, de la recherche d'information et de la manipulation de données textuelles.


Dans cet article de blog, nous présentons les méthodes d'IA actuelles permettant de réaliser de la détection et reconnaissance de texte.



1. Les différentes étapes d’un algorithme d'OCR


Pré-processing

Comme pour tout problème de Deep Learning, les techniques d'OCR requièrent une phase de pré-traitement essentielle. Bien que certaines images, telles que celles provenant de scanners, puissent être de bonne qualité, d'autres peuvent souffrir de bruit, de variations importantes de luminosité ou d'autres problèmes visuels. Par conséquent, cette étape de pré-traitement revêt une importance capitale pour normaliser les images et les amener à un niveau de cohérence initial.


Détection de texte

Ensuite, intervient la phase de détection et de localisation des éléments textuels dans l'image. Pour accomplir cette tâche, on fait appel à des modèles de Deep Learning tels que Mask-RCNN, YOLO, Faster-RCNN, et d'autres, qui permettent d'identifier les zones de texte au sein de l'image. Ces réseaux s'appuient principalement sur des couches de convolution (CNN) pour extraire les caractéristiques visuelles de l'image, lesquelles seront ensuite classifiées comme étant du texte. Selon les besoins de l'OCR, les boîtes englobantes peuvent contenir soit un mot, soit une seule lettre, ce qui peut influencer légèrement la troisième étape du processus.


Reconnaissance de texte

La dernière étape concerne la reconnaissance du texte proprement dite. L'algorithme considère chaque boîte de texte identifiée précédemment, et pour chacune d'entre elles, il fait généralement appel à un modèle fondé sur les réseaux neuronaux récurrents (RNN), tels que les LSTM (Long Short-Term Memory), ou sur des mécanismes d'attention et des réseaux Transformers, qui sont des approches plus récentes et performantes. Cette étape a pour objectif de classifier chaque caractère parmi un ensemble de caractères préalablement défini. Il convient de noter qu'un même modèle ne peut généralement pas être utilisé pour reconnaître à la fois du chinois et de l'anglais, en raison des différences linguistiques.En combinant l'ensemble de ces classifications obtenues pour toutes les boîtes de texte, on parvient à reconstituer l'intégralité du texte contenu dans l'image.


Exemple de détection et reconnaissance de textes à partir d'un screenshot de la page web Mcovision


Réseaux de neurones

Revenons plus en détail sur les différents réseaux de neurones utilisés pour l'OCR.

  • CNN : Les Convolutional Neural Networks (CNN) figurent parmi les techniques les plus pertinentes dans le domaine de l'apprentissage en profondeur pour l'OCR, notamment lors de l'étape de détection de texte. Les couches de convolution sont fréquemment adoptées pour les tâches de classification d'images en raison de leur efficacité dans l'extraction de caractéristiques visuelles. Elles sont capables de repérer les contours saillants au sein d'une image et, à un niveau plus avancé, d'identifier des formes et des objets complexes. Par comparaison avec les couches entièrement connectées, les couches convolutives réduisent la complexité des algorithmes OCR en appliquant des filtres de détection de motifs sur l'ensemble de l'image. Cette approche permet de mieux capturer les informations spatiales et de réduire la quantité de paramètres nécessaires pour analyser l'image, ce qui s'avère particulièrement efficace pour des données visuelles telles que celles rencontrées dans l'OCR.


  • RNN : Les Réseaux de Neurones à Mémoire à Court et Long Terme, ou RNNs (Recurrent Neural Networks en anglais), constituent une catégorie de modèles d'apprentissage profond conçus pour traiter des données séquentielles. Contrairement aux réseaux neuronaux conventionnels qui traitent les données d'entrée de manière indépendante, les RNNs tiennent compte de la structure temporelle des données, ce qui les rend particulièrement adaptés à des tâches comme la traduction automatique, la reconnaissance vocale, la génération de texte et autres problèmes impliquant des séquences. L'élément clé des RNNs réside dans leur capacité à entretenir une mémoire interne ou un "état caché" capable de stocker des informations des étapes temporelles précédentes. Cette mémoire leur permet de saisir les dépendances à long terme au sein des séquences, ce qui est essentiel pour appréhender le contexte et la signification des données séquentielles. Lorsque nous examinons la représentation ci-dessous, chaque xi peut être interprété comme un mot distinct au sein d'une phrase. En conséquence, la sortie hi est liée non seulement au xi actuel, mais aussi à tous les xi précédents en raison des informations transmises par les connexions horizontales à chaque étape.

Schéma illustrant l'interaction séquentielle entre les éléments d'une phrase dans un RNN

http://colah.github.io/posts/2015-08-Understanding-LSTMs/


  • LSTM : Les LSTM (Long Short-Term Memory) représentent une extension des RNNs conçue pour surmonter les problèmes de "vanishing" ou "exploding gradient". Une cellule LSTM génère trois sorties. La principale, hi, est analogue à la sortie d'une cellule RNN. Cependant, les données transmises à l'étape suivante sont constituées de deux valeurs qui évoluent suite aux opérations décrites ci-dessous. Comparativement aux RNN classiques, une cellule LSTM intègre davantage d'opérations, ce qui améliore ses performances et résout le problème de gradient lors de l'entraînement. En somme, cette complexité accrue lui confère la capacité de sélectivement ignorer certaines informations tout en attribuant un poids significatif à d'autres.


Schéma d'un module LSTM

http://colah.github.io/posts/2015-08-Understanding-LSTMs/


  • Attention : Les réseaux d'attention, également connus sous le nom de "attention networks" en anglais, forment une catégorie de modèles d'apprentissage profond qui se sont révélés extrêmement performants pour traiter des séquences ou des ensembles de données où certaines parties revêtent une importance accrue par rapport à d'autres. L'engouement autour des réseaux d'attention provient de leur capacité à focaliser leur attention sur des segments spécifiques de l'entrée, en accordant un poids supérieur aux éléments pertinents et en atténuant l'influence des éléments moins significatifs. Le principe fondamental sous-tendant les réseaux d'attention est de permettre au modèle de prendre une décision dynamique quant aux parties de l'entrée à privilégier pour la tâche en cours. Cette réalisation repose sur l'attribution de poids d'attention à chaque élément de l'entrée, ce qui permet au modèle d'effectuer une combinaison pondérée des éléments en fonction de leur pertinence respective. Initialement, les réseaux d'attention ont connu un grand succès dans le domaine de la traduction, avant de se répandre pour résoudre une multitude d'autres problèmes en traitement automatique du langage naturel (NLP).


  • Transformers : Apparu en 2017, ce type d'architecture a établi de nouveaux standards dans le domaine du traitement automatique du langage naturel (NLP). Ces architectures neuronales reposent exclusivement sur les couches d'attention, laissant de côté les réseaux de neurones récurrents (RNN) et les réseaux neuronaux à convolution (CNN). Elles se composent de deux architectures principales : l'attention multi-têtes et l'encodage positionnel. L'attention multi-têtes représente une couche comportant plusieurs cellules d'attention. Cette approche permet au modèle d'apprendre simultanément plusieurs représentations d'attention, ce qui lui confère la capacité de saisir des relations complexes entre les éléments d'une séquence. Chaque tête d'attention dispose de sa propre matrice de poids, qui est apprise pendant la phase d'entraînement. Cette conception apporte une flexibilité considérable au modèle. Étant donné que les architectures de type Transformers traitent tous les éléments d'une séquence en parallèle, elles doivent comprendre la position relative de chaque élément. Pour y parvenir, les Transformers intègrent des informations de position dans les embeddings (représentations vectorielles) des mots. Cette addition permet au modèle de discerner l'ordre des éléments au sein de la séquence. Actuellement, cette approche est largement prédominante dans les tâches liées au traitement automatique du langage naturel (NLP). Elle trouve des applications dans divers domaines, allant de la reconnaissance optique de caractères (OCR) à la traduction automatique, en passant par l'analyse de texte et les systèmes de dialogue.


2. Extraction d'information pertinentes par NLP


Comme évoqué précédemment, l'OCR joue un rôle essentiel en permettant la lecture du contenu textuel présent dans une image. Toutefois, l'objectif ultime souvent poursuivi est bien plus ambitieux : il consiste généralement à identifier une information spécifique au sein du texte, voire à la déduire. Prenez l'exemple d'une facture où l'on souhaite extraire l'IBAN du destinataire ainsi que le montant pour automatiser une tâche. L'OCR en lui-même ne suffira pas à accomplir toutes ces étapes. Il se contente de nous fournir le texte présent dans l'image, sans discernement quant à l'importance de l'IBAN ou d'autres éléments similaires. C'est là que l'intégration d'un modèle NLP (natural language processing) pur entre en jeu dans le processus.


Bien que l'exemple de l'IBAN ne soit pas nécessairement l'exemple le plus approprié, car une méthode basée sur les expressions régulières (regex) pourrait convenir, il s'avère nécessaire d'utiliser des méthodes plus sophistiquées pour extraire des informations plus complexes. C'est dans cette optique que des modèles tels que ChatGPT se révèlent extrêmement bénéfiques. ChatGPT, fondé sur l'architecture des transformers, est spécialement conçu pour répondre à des questions et générer du texte à la demande dans le domaine du traitement automatique du langage naturel (NLP). Ainsi, il devient envisageable de présenter une question accompagnée du texte issu de l'OCR à ChatGPT, dans le but d'obtenir des informations spécifiques, tout en définissant le format souhaité.



ChatGPT : avantages et inconvénients

ChapGPT n'est pas un outil d'OCR mais plutôt un outil de NLP. Nous allons rapidement décrire ses forces et faiblesses pour ensuite présenter des exemples de combinaison entre OCR et NLP.





Avantages
  • Génération de texte de haute qualité : ChatGPT est capable de produire du texte qui semble fluide, cohérent et souvent pertinent pour de nombreuses requêtes. Cela le rend utile pour des tâches allant de la rédaction de contenu à l'aide à la réflexion.

  • Polyvalence : ChatGPT peut être utilisé pour une variété de tâches et de domaines, allant de la rédaction et l'édition de texte à la génération d'idées, la résolution de problèmes et la fourniture d'informations générales.

  • Disponibilité : Étant une application en ligne, ChatGPT est facilement accessible à partir de n'importe quel navigateur, ce qui permet aux utilisateurs de l'utiliser sans avoir besoin d'installer ou de configurer quoi que ce soit. Il est également disponible sous forme d'API.

  • Interaction naturelle : ChatGPT permet aux utilisateurs d'interagir avec lui en langage naturel, ce qui facilite la communication et l'obtention d'informations ou d'assistance.

Désavantages
  • Réponses inexactes ou trompeuses : ChatGPT n'a pas toujours une compréhension précise du contexte et peut parfois fournir des réponses incorrectes, trompeuses ou inventées. Il ne vérifie pas systématiquement les faits.

  • Sensibilité au format : ChatGPT peut être sensible à la façon dont une question est formulée. Des reformulations mineures peuvent parfois conduire à des réponses différentes.

  • Manque de jugement : ChatGPT ne possède pas de jugement moral ni de conscience. Il peut donc générer du contenu inapproprié, offensant ou politiquement biaisé.

  • Dépendance aux données d'entraînement : Les réponses de ChatGPT sont basées sur les données qu'il a été entraîné sur. Si les données contiennent des biais ou des erreurs, ils peuvent se refléter dans les réponses générées.

  • Absence de compréhension approfondie : Bien que ChatGPT puisse paraître compréhensif, il ne comprend pas vraiment le sens de manière profonde. Ses réponses sont basées sur des modèles statistiques et des associations de mots.


Conclusion

En conclusion, l'OCR joue un rôle essentiel dans la conversion de textes imprimés ou manuscrits en formats numériques. Cela simplifie l'extraction de données à partir de documents physiques et facilite la numérisation de documents historiques. Les étapes de l'algorithme OCR, allant de la préparation à la détection et à la reconnaissance de texte, sont cruciales. Différents types de réseaux neuronaux, tels que les CNN, les RNN, les LSTM et les Transformers, sont utilisés pour ces processus. L'intégration du NLP, en particulier via des modèles comme ChatGPT, permet d'extraire des informations spécifiques du texte. ChatGPT présente des avantages tels que la génération de texte de qualité, mais il a aussi des limites en termes d'exactitude et de compréhension approfondie. En combinant OCR et NLP, on améliore considérablement la conversion de supports physiques en données numériques.






35 vues0 commentaire

Posts récents

Voir tout
bottom of page