Aucun upload, 100 % local, sans compte

Article

Améliorer la précision de l'OCR : corriger l'image avant de reconnaître le texte

Un OCR ne vaut que l'image qu'on lui donne. Un scan de travers, peu contrasté et bruité produit un texte illisible, quelle que soit la qualité du moteur. Voici ce qui change vraiment les résultats, dans le bon ordre, le tout exécuté localement dans votre navigateur.

Pourquoi l'OCR peine sur les vrais scans

Un moteur OCR comme Tesseract a été entraîné sur du texte propre, horizontal et bien contrasté. Il découpe une page en lignes, les lignes en mots, et les mots en formes de caractères, puis compare chaque forme à son modèle entraîné. Les scans réels cassent ces hypothèses : la page est inclinée de quelques degrés, l'éclairage est inégal, la résolution est basse, et le bord du scanner ou la page voisine ajoutent du bruit sombre. Chacun de ces problèmes fait que l'étape de segmentation des lignes et des caractères se trompe, et une mauvaise segmentation se répercute en caractères erronés. La solution est rarement un autre moteur : c'est préparer l'image pour que les hypothèses du moteur tiennent. En pratique, le prétraitement améliore davantage la précision que le choix du moteur OCR.

Schéma de la chaîne de prétraitement OCR : un scan passe par les étapes orientation, redressement, recadrage et niveaux de gris avant d’atteindre le moteur de reconnaissance.

Commencez par la résolution : visez 300 DPI

Tesseract fonctionne le mieux autour de 300 DPI pour du texte courant. En dessous d'environ 200 DPI, les traits de chaque glyphe se brouillent avec leurs voisins et la précision chute fortement. Si vous maîtrisez la numérisation, réglez le scanner sur 300 DPI avant toute chose, car c'est le choix le plus déterminant. Si vous n'avez qu'une image basse résolution, l'agrandir n'invente pas le détail jamais capturé, mais un agrandissement modéré peut tout de même aider le moteur à séparer des caractères qui se touchent en donnant plus de pixels à la segmentation. Les très petits caractères profitent de 400 à 600 DPI ; au-delà, vous ne faites qu'alourdir le fichier sans gain de précision. Quand la source est un PDF, convertissez d'abord chaque page en image à la résolution cible, puis lancez l'OCR sur cette image.

Mettez l'orientation dans le bon sens

Si la page est pivotée de 90, 180 ou 270 degrés, le moteur lit de côté ou à l'envers et renvoie n'importe quoi. Tesseract dispose d'une passe de détection d'orientation et d'écriture (OSD) qui peut deviner la rotation, mais elle n'est pas fiable sur du texte clairsemé, des formulaires ou des pages dominées par des images. Remettre la page droite vous-même supprime l'incertitude. Cette étape est sans perte et instantanée : pivoter d'un multiple de 90 degrés ne fait que réassigner les pixels existants à de nouvelles positions, sans coût de qualité ni rééchantillonnage. Faites-le avant le redressement, car le redressement suppose que le texte est déjà à peu près horizontal.

Redressement : corriger la légère inclinaison

Même une inclinaison de 2 à 3 degrés, du type de celle qu'on obtient en posant une page un peu de travers, nuit à l'OCR : l'étape de détection des lignes horizontales coupe une ligne de texte en deux, ou en fusionne deux en une. Le redressement (deskew) mesure l'angle dominant des lignes de texte (souvent par analyse de profil de projection ou transformée de Hough) et fait pivoter la page pour la remettre de niveau. Contrairement à une rotation de 90 degrés, le redressement est une petite rotation d'angle arbitraire : il rééchantillonne donc les pixels et ajoute un léger flou. Ce compromis en vaut presque toujours la peine, car des lignes de niveau se segmentent proprement et le gain de précision dépasse de loin ce léger adoucissement. Redressez après avoir corrigé l'orientation et avant de recadrer.

Avant et après redressement : à gauche une page de texte inclinée de quelques degrés, à droite remise de niveau pour que les lignes soient horizontales.

Recadrez sur le texte et éliminez le bruit

Tout ce qui n'est pas le texte voulu est du bruit que le moteur peut mal interpréter : le bord sombre du scanner, une partie de la page voisine, un coin agrafé, un doigt ou une perforation. Recadrer sur le seul bloc de texte supprime ces fausses cibles, ce qui améliore la précision et accélère la reconnaissance puisque le moteur a moins de surface à analyser. Pour un document multicolonnes, le recadrage (ou un OCR colonne par colonne) empêche aussi le moteur de lire en travers de la gouttière et d'entrelacer deux colonnes en une seule ligne illisible. Recadrez après le redressement, pour que le contenu soit bien aligné dans le cadre.

Contraste, niveaux de gris et le vrai fonctionnement de la binarisation

L'OCR travaille au final sur une image binaire : chaque pixel est décidé comme encre ou comme papier. Tesseract le fait en interne avec la méthode d'Otsu, qui choisit un seuil global unique à partir de l'histogramme de l'image. Cela marche bien quand la page a un éclairage uniforme et un bon contraste, et échoue quand une ombre ou un fond coloré rend un coin plus sombre que le seuil ne l'attend. Les gains fiables sont : convertir en niveaux de gris, pour qu'une dominante de couleur ne fausse pas le seuil, et uniformiser l'éclairage pour que toute la page reste du même côté de ce seuil. Augmenter modérément le contraste aide le texte pâle. Ce qui se retourne souvent contre vous, c'est une binarisation manuelle brutale : si vous passez vous-même en noir et blanc pur avec le mauvais seuil, vous effacez des traits pâles que la passe du moteur aurait gardés. Laissez le moteur binariser, et donnez-lui une image uniforme en niveaux de gris au départ. Sunasty propose le passage en niveaux de gris pour les PDF ; pour un réglage fin du contraste, un éditeur de bureau reste préférable, mais un éclairage uniforme à la numérisation compte plus que n'importe quel curseur.

Choisissez la bonne langue et vérifiez le résultat

Tesseract charge un fichier de données entraînées distinct par langue et par écriture. Passer un modèle anglais sur du texte français ou grec produit des erreurs évitables, surtout sur les caractères accentués ou non latins, alors sélectionnez la langue qui correspond au document. Enfin, traitez la sortie de l'OCR comme un brouillon, pas une réponse finale : le moteur n'a aucun moyen de savoir qu'un nom est bien orthographié ou qu'un 0 n'est pas un O. Relisez les chiffres, les noms propres et tout ce qui a une portée juridique ou financière. Pour les tableaux et les mises en page multicolonnes, attendez-vous à corriger la structure à la main, car l'OCR renvoie un flux de texte reconnu, pas une mise en page reconstruite.

Outils mentionnés dans cet article

Questions fréquentes

Agrandir un scan flou améliore-t-il l'OCR ?

Pas vraiment en soi. L'agrandissement ne récupère pas le détail que le scan n'a jamais capturé, donc une image floue à 100 DPI reste floue. Un agrandissement modéré peut aider le moteur à séparer des caractères qui se touchent en donnant plus de pixels à la segmentation, mais renumériser à 300 DPI est bien plus efficace que n'importe quel agrandissement.

Dois-je passer l'image en noir et blanc pur moi-même d'abord ?

En général non. Tesseract binarise en interne avec la méthode d'Otsu, et un seuil manuel brutal mal choisi efface des traits pâles que le moteur aurait gardés. Convertissez plutôt en niveaux de gris et uniformisez l'éclairage, puis laissez le moteur choisir son propre seuil.

Mon texte est de côté. L'OCR va-t-il le pivoter automatiquement ?

Parfois. Tesseract a une passe de détection d'orientation, mais elle n'est pas fiable sur les formulaires, le texte clairsemé ou les pages riches en images. Remettre la page droite vous-même de 90, 180 ou 270 degrés est sans perte et supprime l'incertitude, c'est donc le choix le plus sûr.

Tout cela envoie-t-il mon document quelque part ?

Non. La rotation, le redressement, le recadrage, le passage en niveaux de gris et l'OCR lui-même s'exécutent tous dans votre navigateur. L'OCR utilise une version WebAssembly de Tesseract, et les données de langue entraînées sont téléchargées une fois puis mises en cache. Votre fichier ne quitte jamais l'appareil.

Sources