Outils image

Ce que l'OCR sait lire et ce qu'il ne sait pas : extraire un texte exploitable d'une capture ou d'un scan

Tesseract lit un texte imprimé net à 99 % et l'écriture manuscrite à environ 0 %. Ce qui décide du résultat (résolution, contraste, modèle de langue, mise en page) et comment préparer l'image pour obtenir le bon texte.

L’essentiel

L’OCR (reconnaissance optique de caractères) transforme des pixels qui ressemblent à des lettres en véritable texte. Sur une photo nette ou une capture d’écran de texte imprimé, le résultat est quasi parfait ; sur de l’écriture manuscrite, des polices décoratives ou la photo floue d’un menu, il est quasi inutilisable. Le moteur de ce site est Tesseract, qui tourne dans le navigateur avec douze packs de langue ; l’image reste sur votre appareil. La plupart des mauvais résultats viennent de l’image, pas du moteur, et se corrigent avant d’appuyer sur le bouton.

Comment fonctionne le moteur

Tesseract est né chez Hewlett-Packard en 1985, est passé en open source en 2005 et est maintenu par Google depuis 2006. La version 4 (2018) a remplacé le classifieur caractère par caractère par un réseau de neurones LSTM qui lit une ligne entière d’un coup, ce qui lui permet de gérer les lettres qui se touchent et les polices proportionnelles que l’ancien moteur ne savait pas lire. Le traitement se déroule ainsi : repérer les zones de texte sur la page, les découper en lignes, passer chaque ligne dans le réseau, puis laisser un modèle de langue (un dictionnaire et des statistiques de suites de lettres) trancher entre des formes proches (l, 1, I ; 0, O). Cette dernière étape explique pourquoi le choix de la langue compte : un modèle anglais qui lit de l’allemand « corrigera » straße en strasse, voire pire.

Dans le navigateur, le moteur est compilé en WebAssembly (environ 4 Mo) et chaque pack de langue pèse 0,7 à 3 Mo, téléchargé à la première utilisation puis mis en cache. Les packs chinois et japonais sont les plus lourds, car il y a des milliers de caractères à connaître.

Ce qui décide du résultat

La résolution. Tesseract veut des lettres d’environ 30 pixels de haut ; en dessous de 20, le réseau commence à deviner. La photo d’une page prise au téléphone convient ; une miniature de 400 pixels de large, non. Si vous devez passer une petite image à l’OCR, agrandissez-la d’abord 2× : cela n’ajoute aucune information, mais laisse de la marge à la détection des lignes.

Le contraste et l’uniformité. Du noir sur du blanc, éclairé uniformément. La photo d’une page sous une lampe de bureau a un centre clair et des coins gris ; le moteur binarise l’image avec un seul seuil, et un côté de la page disparaît. Photographiez sous une lumière uniforme, ou scannez.

La rectitude. Le moteur corrige une inclinaison de quelques degrés. Une page photographiée de biais devient un trapèze, et les lignes convergent ; faites pivoter l’image et recadrez-la sur le bloc de texte avant l’OCR. Le recadrage élimine aussi le bord de la table, votre pouce et l’autre page, qui produiraient chacun une ligne de caractères parasites.

La mise en page. Un texte courant sur une seule colonne ne pose aucun problème. Deux colonnes sont en général détectées. Les tableaux, formulaires, textes habillant des images et légendes en marge ressortent dans l’ordre choisi par le moteur, et les colonnes de chiffres perdent leur alignement. Pour un tableau, passez à l’OCR les cellules dont vous avez besoin plutôt que la page entière.

La police. Polices de livre et d’écran standard : excellent. Polices condensées, ornementales, cursives ou en contour : médiocre. Un texte composé dans une police que les données d’entraînement n’ont jamais vue est lu forme par forme, et les corrections du modèle de langue aggravent le résultat au lieu de l’améliorer.

L’écriture manuscrite. Pratiquement pas prise en charge. Tesseract est entraîné sur des caractères imprimés ; des capitales d’imprimerie sur un formulaire peuvent passer, l’écriture cursive non. La reconnaissance d’écriture manuscrite relève d’une autre famille de modèles, et cet outil ne la fait pas.

Langues et mélanges

Choisissez la langue du texte, et uniquement celle-là si possible. Sélectionner trois langues triple le nombre de candidats pour chaque caractère, ralentit la reconnaissance et réduit la précision. Le texte mixte (un document chinois avec des noms de produits en anglais) est le cas où deux langues ensemble se justifient (chinois + anglais) : le moteur bascule mot par mot. Douze langues sont disponibles : anglais, chinois simplifié et traditionnel, japonais, coréen, espagnol, français, allemand, portugais, russe, italien et vietnamien.

PDF scannés

Un PDF issu d’un scanner est une image de chaque page ; le texte n’y est pas disponible pour le copier. Convertissez les pages en images à 200–300 dpi et passez-les à l’OCR. Un rendu à 72 dpi (la résolution d’écran) donne des lettres de 10 pixels et du charabia.

Ce que « 99 % » veut dire en pratique

Une bonne passe d’OCR sur une page propre se trompe sur environ un caractère sur cent. Sur une page de 500 mots, cela fait une trentaine d’erreurs, surtout dans les chiffres, les noms propres et la ponctuation, c’est-à-dire précisément les éléments qu’une relecture fluide ne permet pas de repérer. Vérifiez chaque chiffre par rapport à l’original avant que le texte serve à quelque chose d’important ; l’OCR fournit un brouillon, pas une transcription.

Synthèse vocaleTextToSpeech.tools Compresser une vidéoFreeCompress.video Dictionnaire chinois-anglaisChineseDict.com