Image vers texte (OCR) : comment ça marche et comment obtenir un texte propre

Mis à jour :

L’OCR, reconnaissance optique de caractères, transforme l’image d’un texte en texte que l’on peut copier, rechercher et modifier. C’est lui qui lit la capture d’un message d’erreur, la photo d’une lettre ou un contrat scanné. La plupart de ses erreurs viennent de l’image, pas du moteur : quelques minutes consacrées à la photo font souvent gagner plus de temps que la correction du résultat.

Comment l’OCR lit une image

Tesseract, le moteur libre derrière la plupart des outils d’OCR gratuits, procède en trois étapes. Il passe d’abord l’image en noir et blanc, en décidant pour chaque pixel s’il s’agit d’encre ou de papier. Il repère ensuite les blocs, les colonnes et les lignes de texte. Enfin, depuis la version 4.00, un réseau de neurones lit chaque ligne entière d’un coup, et non lettre par lettre, et les données de la langue l’aident à choisir entre des formes proches.

Chaque étape peut échouer à sa manière : une ombre sur la page gâche le noir et blanc, une photo de travers gâche les lignes, et une mauvaise langue gâche les lettres.

Image vers texte (OCR)

Ce qui compte le plus

Problèmes courants et solutions

Ce que vous voyezQue faire
Lettres manquantes ou casséesPrenez la photo sous une lumière égale, sans ombres ; augmentez le contraste ou scannez à 300 ppp
Lignes mélangées ou dans le désordreRedressez l’image ; pour les tickets et les tableaux, lisez ligne par ligne
Signes sans queue ni tête sur les bordsRognez les bords sombres du scanner en gardant une fine marge blanche
Accents perdusChoisissez la langue du texte avant la lecture
Texte clair sur fond sombre mal luInversez d’abord les couleurs : le moteur attend du texte foncé sur fond clair
0 et O, 1 et l, 5 et S confondusVérifiez à l’œil codes, montants et noms : aucun mot n’aide le moteur à deviner

Les erreurs sur les chiffres sont les plus graves, car rien dans le texte ne les trahit. Comparez toujours montants, dates et références avec l’image.

Captures, photos et scans

Une capture d’écran est le cas facile : nette, droite et uniformément éclairée. Son seul problème est le petit texte des interfaces, que l’outil de nTools agrandit avant la lecture. Une photo de page apporte les cas difficiles : perspective, ombres, flou et fond chargé. Un scan à plat à 300 ppp est la meilleure source pour les longs documents.

PDF scannés

Un PDF issu d’un scan est un ensemble d’images : on ne peut pas sélectionner son texte, une recherche ne trouve rien et un lecteur d’écran n’a rien à lire. Les règles d’accessibilité du W3C (WCAG) traitent ce PDF comme des images de texte et recommandent d’y appliquer l’OCR, puis de vérifier le texte reconnu et son ordre de lecture. Si vous pouvez sélectionner le texte d’un PDF, c’est déjà du texte, et le copier est plus exact que n’importe quel OCR.

PDF vers Word lit les pages scannées par OCR et donne un document modifiable ; vous pouvez aussi transformer les pages en images et les lire dans Image vers texte.

PDF vers Word

Où va l’image

Beaucoup de services d’OCR envoient l’image sur un serveur. Tesseract peut aussi fonctionner dans le navigateur, compilé en WebAssembly : c’est ainsi que fonctionne l’outil de nTools, si bien que l’image et le texte restent sur votre appareil. Le navigateur télécharge seulement le moteur et les données de la langue choisie.

Questions fréquentes

L’OCR peut-il lire l’écriture manuscrite ?

Mal. Tesseract est entraîné sur du texte imprimé ; des capitales d’imprimerie soignées passent parfois, une écriture ordinaire non. L’écriture manuscrite demande des moteurs entraînés spécialement pour elle.

Quelle est la précision de l’OCR ?

Sur une page imprimée propre scannée à 300 ppp, presque tous les caractères sont justes. Les photos, le petit texte et les polices inhabituelles apportent plus d’erreurs. L’indice de confiance affiché par l’outil est une estimation du moteur lui-même, un signal d’alerte plutôt qu’une garantie.

Pourquoi 0 et O, ou 1 et l, sont-ils confondus ?

Leurs formes sont presque identiques dans beaucoup de polices. Dans les mots ordinaires, les données de la langue aident à choisir ; dans les codes, numéros de série et mots de passe, elles ne peuvent pas : vérifiez-les caractère par caractère.

Quelles langues peut-il lire ?

Tesseract dispose de données pour plus de 100 langues. L’outil de nTools propose l’anglais, l’espagnol, le français, l’allemand, l’italien et le portugais ; choisissez la langue avant la lecture, car elle change les lettres attendues par le moteur.

L’OCR garde-t-il les tableaux et la mise en forme ?

Non. Le résultat est du texte brut avec des retours à la ligne. Les tableaux sont un point faible connu de Tesseract : lisez-les ligne par ligne, pour que chaque rangée reste groupée, puis reconstituez les colonnes.

Références

  1. Tesseract documentation — Improving the quality of the output
  2. Tesseract documentation — Neural nets in Tesseract 4.00
  3. Tesseract.js — Pure JavaScript OCR for more than 100 languages
  4. W3C — WCAG 2.2 technique PDF7: performing OCR on a scanned PDF document
  5. W3C — Understanding WCAG 2.2: Images of Text (1.4.5)

Guides associés