Extraire du texte d'images n'a jamais été aussi simple qu'aujourd'hui grâce à la technologie de reconnaissance optique de caractères (OCR).
L'OCR nous permet de faire toutes sortes de choses utiles, comme rechercher des images à l'aide de requêtes textuelles, reproduire des documents sans les saisir à la main et même convertir du texte manuscrit en texte numérique.
Mais qu'est-ce que la reconnaissance optique de caractères ? Comment ça marche réellement ? Cela peut vous sembler de la magie noire, mais à la fin de cet article, vous aurez une solide compréhension de la façon dont les ordinateurs peuvent reconnaître les lettres et les mots.
Pour comprendre comment le texte est extrait d'une image, nous devons d'abord comprendre ce que sont les images et comment elles sont stockées sur les ordinateurs.
Un pixel est un seul point d'une couleur particulière. Une image est essentiellement une collection de pixels. Plus il y a de pixels dans une image, plus sa résolution est élevée. Un ordinateur ne sait pas que l'image d'un panneau est vraiment un panneau --- il sait simplement que le premier pixel est de cette couleur, le pixel suivant est de cette couleur, et affiche tous ses pixels pour que vous puissiez les voir.
Cela signifie que le texte et le non-texte ne sont pas différents d'un ordinateur, et c'est pourquoi la reconnaissance optique des caractères est si difficile. Dans cet esprit, voici comment cela fonctionne.
Avant que le texte puisse être extrait, l'image doit être massée de certaines manières pour rendre l'extraction plus facile et plus susceptible de réussir. C'est ce qu'on appelle le prétraitement, et différentes solutions logicielles utilisent différentes combinaisons de techniques.
Les techniques de prétraitement les plus courantes incluent :
Binarisation
Chaque pixel de l'image est converti en noir ou en blanc. L'objectif est de préciser quels pixels appartiennent au texte et quels pixels appartiennent à l'arrière-plan, ce qui accélère le processus OCR réel.
Redresser
Étant donné que les documents sont rarement numérisés avec un alignement parfait, les caractères peuvent se retrouver inclinés ou même à l'envers. Le but ici est d'identifier les lignes de texte horizontales, puis de faire pivoter l'image afin que ces lignes soient réellement horizontales.
Éliminer
Que l'image ait été binarisée ou non, il peut y avoir du bruit qui peut interférer avec l'identification des caractères. Le déchatoiement se débarrasse de ce bruit et essaie de lisser l'image.
Suppression de ligne
Identifie toutes les lignes et marques qui ne sont probablement pas des caractères, puis les supprime afin que le processus OCR réel ne soit pas confus. C'est particulièrement important lors de la numérisation de documents comportant des tableaux et des boîtes.
Zonage
Sépare l'image en blocs de texte distincts, par exemple pour identifier les colonnes dans les documents à plusieurs colonnes.
Tout d'abord, le processus OCR essaie d'établir la ligne de base pour chaque ligne de texte de l'image (ou s'il a été zoné lors du prétraitement, il fonctionnera dans chaque zone une à la fois). Chaque ligne de caractères identifiée est traitée une par une.
Pour chaque ligne de caractères, le logiciel OCR identifie l'espacement entre les caractères en recherchant des lignes verticales de pixels non textuels (ce qui devrait être évident avec une binarisation appropriée). Chaque bloc de pixels entre ces lignes non textuelles est marqué comme un "jeton" qui représente un caractère. Par conséquent, cette étape est appelée tokénisation .
Une fois que tous les caractères potentiels de l'image sont tokenisés, le logiciel OCR peut utiliser deux techniques différentes pour identifier les caractères que ces tokens sont réellement :
Reconnaissance de formes
Chaque jeton est comparé pixel par pixel à un ensemble complet de glyphes connus --- y compris les chiffres, la ponctuation et d'autres symboles spéciaux --- et la correspondance la plus proche est sélectionnée. Cette technique est également connue sous le nom de correspondance matricielle.
Il y a plusieurs inconvénients ici. Tout d'abord, les jetons et les glyphes doivent être de taille similaire, sinon aucun d'entre eux ne correspondra. Deuxièmement, les jetons doivent être dans une police similaire à celle des glyphes, ce qui exclut l'écriture manuscrite. Mais si la police du jeton est connue, la reconnaissance des formes peut être rapide et précise.
Extraction de caractéristiques
Chaque jeton est comparé à différentes règles qui décrivent de quel type de personnage il pourrait s'agir. Par exemple, deux lignes verticales de même hauteur reliées par une seule ligne horizontale sont susceptibles d'être un H majuscule.
Cette technique est utile car elle n'est pas limitée à certaines polices ou tailles. Il peut également être plus nuancé en reconnaissant les différences subtiles entre un I majuscule, un L minuscule et le chiffre 1. L'inconvénient ? La programmation des règles est beaucoup plus complexe que la simple comparaison des pixels d'un jeton aux pixels d'un glyphe.
Une fois que toutes les correspondances de jetons sont terminées, le logiciel OCR peut simplement l'appeler un jour et vous présenter les résultats. Mais généralement, il faut faire un peu plus de trucage pour s'assurer que vous ne roulez pas des yeux sur des résultats de charabia.
Restriction lexicale
Tous les mots sont comparés à un lexique de mots approuvés, et ceux qui ne correspondent pas sont remplacés par le mot le plus proche. Un dictionnaire est un exemple de lexique. Cela peut aider à corriger les mots contenant des caractères erronés, comme "thorn" au lieu de "th0rn".
Optimisations spécifiques aux applications
Lorsque l'OCR est utilisé dans des contextes de niche, tels que des documents médicaux ou juridiques, un type spécial d'OCR peut être utilisé, spécialement conçu pour ce contexte. Dans ces cas, le logiciel OCR peut rechercher des équations mathématiques, des termes spécifiques à l'industrie, etc.
Langage naturel
Cette technique avancée corrige les phrases en utilisant un modèle de langage qui décrit la probabilité que certains mots soient suivis d'autres mots. C'est similaire à la technologie qui prédit le mot que vous voulez taper ensuite sur un clavier mobile.
Lorsqu'il est bien fait, cela peut donner un texte remarquablement lisible.
Maintenant que vous savez comment fonctionne l'OCR, il devrait être facile de voir que tous les outils d'OCR ne sont pas égaux. La précision de vos résultats dépendra fortement de la manière dont le logiciel implémente les différentes techniques d'OCR décrites dans cet article.
Nous recommandons fortement OneNote pour cela, ce qui n'est qu'une des raisons pour lesquelles il bat Evernote pour la prise de notes. Si vous êtes prêt à payer pour une solution premium, pensez à OmniPage. Consultez notre comparaison entre OneNote et OmniPage pour l'OCR. Pour les documents mobiles, vous voudrez consulter ces applications OCR pour les appareils Android.
Comment utilisez-vous la reconnaissance optique des caractères ? Avez-vous des outils OCR préférés que nous n'avons pas mentionnés? Faites-le nous savoir dans les commentaires ci-dessous !