5 min pour comprendre l’OCR – Partie 1

5 min pour comprendre l'OCR - Partie 1

L’OCR, Optical Characters Recognition, connu en français sous les termes de Reconnaissance Optique de Caractères, est un sujet qui, aujourd’hui encore, laisse place à l’amélioration. En effet, ce qui parait être une évidence pour un humain peut rapidement devenir un cauchemar pour la machine.

La lecture de caractères dans un document scanné ou photographié pose des problèmes, qui, à l’ère de l’intelligence artificielle, restent de réels challenges.

Qu’est-ce que l’OCR ?  

Le principe de l’OCR repose sur la conversion informatisée d’une image représentant du texte vers un format de données textuel, qui est facilement exploitable par la machine. Plus simplement, il consiste à extraire le texte d’une image.

Pour cela, il existe une série de transformations par laquelle l’image doit passer pour permettre l’extraction de ses données.

La première étape est souvent le nettoyage de l’image, selon les outils, le niveau de nettoyage de l’image peut varier d’une simple normalisation de la luminosité et du contraste, jusqu’à une détection avancée des potentielles déformations de perspective, le nettoyage des ombres et reflets, la correction du flou ou encore la suppression des motifs d’arrière-plan.

La seconde est la détection des zones de textes pour déclencher sa conversion par l’analyse des pixels qui compose les caractères. Elle est souvent appelée segmentation.

Il existe plusieurs variations, plus ou moins évoluée du processus d’OCR, allant d’une simple extraction de texte brut, à une extraction adaptée au type de document à traiter, celle-ci permet d’extraire des données structurées et exploitables. Comme dans le cas d’un tableau ou d’un formulaire.

Les applications 

Traditionnellement l’OCR est utilisé pour des fonctions d’indexation. A partir d’une image ou d’un scan de document dans une GED par exemple, on en extrait le contenu textuel et il est joint aux metadata du document. Ce qui permet à des moteurs d’indexation classiques, s’appuyant sur le texte, de traiter et d’indexer des images de document.

En effet, il est beaucoup plus simple en informatique de traiter du texte plutôt qu’une image. C’est pour cela que l’OCR est vastement utilisé dans des applications de traitement automatique de documents. Une fois que le contenu texte du document a été extrait, il ne s’agit ensuite plus que de traiter du texte avec les techniques traditionnelles, et non pas de l’image.

C’est aussi le cas dans le domaine du machine Learning, pré-traiter des images avec de l’OCR peut permettre d’extraire des données à grande valeur ajoutés lors de l’entraînement d’un algorithme.

 

L’intérêt d’extraire les données textuelles d’une image est donc immense dans des applications de text-mining et peuvent permettre d’augmenter considérablement le volume de données potentiellement disponible. 

Outillage et concurrence

De nombreuses solutions proposent un service d’OCR. Parmi les plus performantes sur le marché on retrouve :

  • Tesseract-ocr : une solution open-source maintenue par Google. Elle intègre un système de segmentation sur les blocs de texte, mais aucune préparation de l’image. Elle propose des réseaux de neurones LSTM pour la conversion de caractères depuis sa version 4.
  • Google Cloud Vision : un service intégré à GCP, qui intègre une segmentation très complète et profite d’un système de préparation de l’image intégré.
  • Amazon Textract : le service présenté dans l’écosystème AWS propose une segmentation des tableaux et formulaires uniquement. La préparation de l’image est également intégrée.

Dans le cas de GCP et AWS, les étapes de traitement de l’image sont automatisées et intégrées dans les outils.  Cela a l’avantage d’être transparent mais ne propose pas d’être spécialisé à certains types de documents et peut donc se retrouver limité par rapport à une utilisation beaucoup plus libre, comme avec Tesseract-ocr.

Dans tous les cas cités la sortie texte a besoin d’être nettoyée, la machine n’étant pas consciente du contexte de lecture, peut donc avoir tendance à ignorer certains éléments déterminant pour une qualité d’extraction optimale. Il est donc nécessaire d’intégrer ces outils d’OCR dans un système adapté.

L’OCR est un outil puissant, qui a été remis au gout du jours grâce à des utilisation dans le text mining et à des application modernes. Il est aujourd’hui essentiel de se poser la question d’utiliser une pipeline d' »OCRisation » lorsque l’on traite des images à caractère textuel, surtout dans les projets de machine learning.

Grace à cette librairie, les données géographiques deviennent aussi faciles à exploiter avec Spark que les autres types de données (numériques, chaînes de caractères, dates).