ai mascot
IA6 min de lecture

Comment l'OCR lit le texte dans les images

Vous prenez en photo un recu, et quelques secondes plus tard le texte apparait a l'ecran, modifiable, recherchable et copiable. Derriere cette interaction apparemment simple se cachent des decennies de recherche en reconnaissance optique de caracteres - la technologie qui apprend aux ordinateurs a lire. Comment une machine regarde-t-elle des pixels et y voit-elle des lettres ?


Bref historique

L'OCR est ne dans les annees 1950, lorsque les services postaux ont eu besoin de trier le courrier automatiquement. Les premiers systemes ne savaient lire que des polices specialement concues, imprimees a l'encre magnetique (les chiffres bloques en bas des cheques sont un vestige de cette epoque). Dans les annees 1990, les scanners et les logiciels OCR de bureau ont rendu la numerisation de documents praticable. Aujourd'hui, l'OCR fonctionne en temps reel sur les cameras de telephone pour lire des panneaux, des menus et des plaques d'immatriculation.


Comment fonctionne l'OCR moderne

Les pipelines OCR modernes decoupent le probleme en quatre etapes :

PretraiterDetecterSegmenterReconnaître
  1. Pretraitement de l'image - conversion en niveaux de gris, suppression du bruit, correction de l'inclinaison, normalisation du contraste. C'est l'etape qui a le plus grand impact sur la precision.
  2. Detection du texte - localisation des zones de l'image qui contiennent du texte. Les systemes modernes utilisent des reseaux neuronaux pour tracer des boites englobantes autour des lignes et des mots.
  3. Segmentation des caracteres - isolation des caracteres individuels (ou, dans les systemes modernes, traitement de mots entiers d'un seul coup avec des modeles de sequence).
  4. Reconnaissance - classification de chaque caractere au moyen de pattern matching ou de reseaux neuronaux, puis application de modeles de langue pour corriger les caracteres ambigus.
Image → Preprocess → Detect text regions → Segment characters → Recognise → Output text
  │         │              │                    │               │
  │     Grayscale      Bounding boxes      Split or         Neural net
  │     Deskew         around lines        sequence         + language
  │     Denoise                            model            model

Le moteur Tesseract

Tesseract est le moteur OCR open source le plus utilise. Developpe a l'origine par Hewlett-Packard dans les annees 1980, il est devenu open source en 2005 et est aujourd'hui maintenu par Google. Tesseract 5 utilise un reseau neuronal LSTM (Long Short-Term Memory) pour la reconnaissance, ce qui a nettement ameliore la precision par rapport a l'ancienne approche par pattern matching.

Tesseract prend en charge plus de 100 langues et systemes d'ecriture, dont le chinois, l'arabe et le devanagari. Il peut fonctionner dans le navigateur via WebAssembly (au travers de bibliotheques comme Tesseract.js), ce qui signifie que l'OCR peut s'executer entierement cote client sans envoyer les images a un serveur.


Pourquoi l'OCR est difficile

DefiPourquoi c'est difficileAttenuation
Ecriture manuscriteVariation quasi infinie d'un scripteur a l'autreModeles specialises de reconnaissance de l'ecriture manuscrite (HTR)
Texte courbeLes caracteres se deforment le long d'arcsPretraitement de rectification du texte
Faible contrasteTexte clair sur fond clairSeuillage adaptatif, egalisation d'histogramme
Ecritures non latinesDavantage de glyphes, caracteres reliesModeles specifiques a chaque langue
Mises en page complexesTableaux, colonnes, contenu mixteAnalyse de mise en page avant la reconnaissance
Hello World300 DPI, clean scan99% accuracyvsHe11o Wor1d72 DPI, noisy photo72% accuracy
Le pretraitement fait deja la moitie du travail. Avant d'envoyer une image a un moteur OCR, essayez d'augmenter la resolution a au moins 300 DPI, de convertir en niveaux de gris et d'appliquer un renforcement de nettete. A eux seuls, ces traitements peuvent faire passer la precision de 70 % a plus de 95 % sur du texte imprime net.

Facteurs de precision

La precision de l'OCR depend bien davantage de la qualite de l'entree que du moteur lui-meme :

  • Resolution - plus le DPI est eleve, plus il y a de pixels par caractere, donc plus le modele dispose d'informations. 300 DPI est la norme pour les documents numerises.
  • Contraste - un texte fonce sur fond blanc est ideal. Les fonds colores, les degradés et les filigranes reduisent tous la precision.
  • Nettete de la police - les polices standard (Arial, Times) sont reconnues avec une precision quasi parfaite. Les polices decoratives, scriptes ou tres stylisees provoquent des erreurs.
  • Bruit de l'image - poussiere, plis et artefacts de compression JPEG brouillent les contours des caracteres.

Usages concrets

  • Numerisation de recus - les applis de suivi des depenses extraient les totaux, les dates et les noms de commercants
  • Numerisation de documents - les bibliotheques convertissent livres et archives en texte recherchable
  • Reconnaissance de plaques d'immatriculation - les systemes de peage et les parkings lisent les plaques en temps reel
  • Accessibilite - les lecteurs d'ecran utilisent l'OCR pour decrire le texte present dans les images aux personnes malvoyantes
L'OCR ne se contente pas de lire du texte - il fait le pont entre le monde physique et le monde numerique. Chaque formulaire scanne, chaque tableau blanc photographie et chaque panneau traduit depend d'une machine qui a appris a voir des lettres dans des pixels.

Essayez par vous-même

Mettez en pratique ce que vous avez appris avec notre Image to Text (OCR).

Comment l'OCR lit le texte dans les images | ToolsCanvas