Tesseract OCR : lire un scan en local (guide français)
Tesseract est le moteur d'OCR libre de référence (Apache 2.0, plus de 70 000 étoiles sur GitHub, version 5.5.3 en 2026) : gratuit, hors ligne, disponible partout, et sa précision dépend bien plus de la qualité de l'image — résolution, redressement, contraste — que de ses propres réglages. Sur du texte propre il reste rapide et fiable ; sur une mise en page complexe ou un document légèrement incliné, sa précision peut s'effondrer d'un coup.
Un PDF scanné ne contient pas de texte : c'est une image de texte. Tant qu'on ne l'a pas fait passer par une reconnaissance optique, il s'indexe à vide et l'assistant documentaire jure que le document ne dit rien. Tesseract est le moteur libre de référence pour cette étape : gratuit, hors ligne, disponible partout, et bien plus dépendant de la qualité de l'image que de ses propres réglages.
#Ce qu'est Tesseract, et ce qu'il n'est pas
Tesseract est un moteur de reconnaissance optique de caractères publié sous licence Apache 2.0. Le dépôt officiel, décrit par ses mainteneurs comme le « Tesseract Open Source OCR Engine », dépasse aujourd'hui les 70 000 étoiles sur GitHub. La version 4 lui a ajouté un moteur fondé sur des réseaux de neurones LSTM, centré sur la reconnaissance de lignes ; le moteur historique, qui reconnaît des motifs de caractères, reste accessible en option. Il lit les formats d'image courants (PNG, JPEG, TIFF) et produit du texte brut, du hOCR, du PDF ou du TSV. La dernière version stable en date, la 5.5.3, est sortie le 24 juillet 2026. En pratique : installez le fichier de langue, soignez l'image (300 points par pouce, page droite, contraste net), choisissez le bon mode de segmentation, puis vérifiez le résultat sur une vingtaine de pages avant de lancer un lot.
Ce qu'il n'est pas : un outil de compréhension de documents. Il rend du texte, éventuellement avec des positions. Il ne dit pas qu'un bloc est un titre, ne reconstruit pas un tableau en lignes et colonnes, et ne comprend pas ce qu'il lit. Pour un document structuré, l'OCR n'est qu'une brique parmi d'autres.
#Le français : le fichier de langue
Ton ChatGPT privé et gratuit sur ta machine en 1 heure — LM Studio, Ollama, Open WebUI, tes documents, sans cloud.
- Espace en ligne à vie
- PDF + fichiers
- Mises à jour à vie
Par défaut, Tesseract lit l'anglais. Sur un document français, cela se traduit par des accents perdus et des mots approximatifs — et beaucoup de gens en concluent que le moteur est mauvais. La documentation précise que sans l'option -l, c'est l'anglais qui est supposé. Il faut donc installer le fichier de données de la langue et le demander explicitement à l'exécution. Le projet revendique la reconnaissance de plus de cent langues une fois les bons paquets installés.
#La qualité de l'image fait tout
C'est le point que l'on découvre trop tard : la documentation officielle consacre sa page « Improve quality » au traitement de l'image avant les réglages du moteur. Tesseract fait déjà des opérations internes (bibliothèque Leptonica), mais elles ne suffisent pas toujours, et un prétraitement de quelques lignes suffit souvent à rendre lisible un scan médiocre. Koncile, un éditeur de logiciel d'extraction de factures, illustre l'ampleur du phénomène dans ses propres tests, publiés en 2026 : sur une facture inclinée de trois à cinq degrés à peine, le taux de lecture correct passe de 100 % à 31 %. Ce n'est pas une étude indépendante, mais l'ordre de grandeur correspond à l'avertissement de la documentation officielle. Aucun réglage du moteur ne rattrape une chute pareille ; seul un redressement préalable le peut.
- Résolution
- La documentation officielle indique que Tesseract fonctionne mieux sur des images d'au moins 300 points par pouce, et suggère de redimensionner sinon.
- Redressement
- La documentation prévient que la qualité de la segmentation en lignes baisse nettement quand la page est trop penchée : il faut faire pivoter l'image pour que les lignes soient horizontales. Voir le chiffre ci-dessus.
- Contraste et binarisation
- Tesseract binarise en interne (algorithme d'Otsu), un résultat parfois médiocre quand le fond est d'une teinte inégale. La version 5.0 a ajouté deux méthodes, Adaptive Otsu et Sauvola, réglables par les paramètres thresholding_*. Pour un moteur en version 4 ou plus, il faut du texte sombre sur fond clair.
- Bordures
- Des bords très larges perturbent le moteur, mais un texte rogné trop serré aussi : la documentation conseille d'ajouter une petite bordure blanche (10 pixels dans son exemple) autour d'un extrait sans marge.
- 01Redresser la pageDétecter l'angle dominant du texte et faire pivoter l'image avant tout le reste ; un simple script basé sur la transformée de Hough suffit pour la plupart des scanners de bureau.
- 02Nettoyer le contrasteConvertir en niveaux de gris puis binariser (seuillage adaptatif plutôt qu'un seuil fixe, qui échoue sur un éclairage inégal) pour obtenir du noir franc sur blanc franc.
- 03Recadrer et lancer l'OCRRetirer les bords de scanner et les grandes marges vides, laisser une fine bordure blanche autour du texte, puis appeler Tesseract avec la langue et le mode de segmentation adaptés au type de document traité.
#Les réglages qui changent le résultat
| Option | À quoi elle sert | Quand y toucher |
|---|---|---|
| Mode de segmentation de page (--psm) | Indique au moteur à quoi ressemble la page : bloc unique, colonne, ligne isolée (7), texte épars (11) | Sur un ticket, une étiquette, une colonne étroite, un petit recadrage : le mode par défaut attend une page entière |
| Mode moteur (--oem) | 1 : réseau de neurones LSTM seul ; 0 : moteur historique | Rarement : les fichiers de langue des paquets Linux courants (tessdata_fast) ne gèrent que le LSTM, et les modes 0 et 2 ne fonctionnent pas avec eux |
| Liste de caractères autorisés (tessedit_char_whitelist) | Restreint la reconnaissance à un sous-ensemble de caractères | Sur un champ purement numérique, pour limiter les confusions entre lettres et chiffres |
| Dictionnaires (load_system_dawg, load_freq_dawg) | Deux variables qui activent les listes de mots du moteur | Sur des reçus, des listes de prix, des codes : les désactiver peut aider quand la plupart du texte n'est pas fait de mots courants |
Le mode de segmentation est le réglage que l'on oublie le plus souvent. La documentation le rappelle : par défaut, Tesseract attend une page de texte, et pour lire une petite zone il faut choisir un autre mode. Sur une image contenant une seule ligne, le mode 7 la traite comme une ligne unique. Pour du texte épars sans ordre particulier — une capture d'écran avec des étiquettes disséminées — le mode correspondant évite le même problème. Le mode moteur, lui, change rarement le résultat, pour une raison pratique : le moteur historique n'est présent que dans les fichiers de langue du dépôt tessdata, pas dans les variantes rapides ou précises livrées par la plupart des distributions.
Sur du texte imprimé propre et bien cadré, Tesseract reste compétitif : FastOCR, un service d'OCR en ligne qui vend une alternative cloud, indique 95 à 97,2 % de précision pour Tesseract v5 sur du texte anglais propre, contre 98,2 à 99,1 % pour Google Cloud Vision. Ce sont des chiffres d'un acteur intéressé, sans protocole publié : prenez-les comme un ordre de grandeur, pas comme une mesure. Le choix du moteur devrait se faire sur la nature réelle des documents : propres et imprimés, Tesseract suffit largement ; abîmés, manuscrits ou densément structurés, il devient le maillon faible de la chaîne.
#Tesseract ou un modèle de vision
| Critère | Tesseract | Modèle de vision local |
|---|---|---|
| Ressources | Processeur seul | GPU souhaitable, plusieurs gigaoctets |
| Vitesse | Très rapide | Nettement plus lent |
| Texte propre sur une colonne | Excellent | Équivalent, plus cher |
| Mise en page complexe, tableaux | Faible : la documentation du projet reconnaît un problème connu avec les tableaux | Bien meilleur |
| Écriture manuscrite | Très faible : 25 à 40 % selon FastOCR | Nettement meilleur |
| Compréhension du contenu | Aucune | Peut répondre à une question sur le document |
| Risque d'invention | Faible : il confond des caractères plutôt que de composer des valeurs | Réel : un modèle peut halluciner une valeur plausible |
Cette dernière ligne compte pour tout contrôle documentaire : Tesseract se trompe en confondant des caractères, alors qu'un modèle de vision peut produire un nombre parfaitement formé et faux. La différence n'est pas absolue, car un 0 lu comme un 8 dans un montant ne se voit pas non plus, mais un texte aberrant trahit plus souvent un moteur d'OCR qu'une valeur plausible inventée. Un comparatif publié en 2026 résume le paysage qui a changé : les vraies alternatives ne sont plus des moteurs OCR classiques mais des modèles de vision-langage open source, listant nommément PaddleOCR-VL parmi eux — avec un coût en contrepartie, puisque ces modèles réclament un GPU là où Tesseract se contente d'un processeur ordinaire.
- Les modèles multimodaux locaux, ce qu'ils savent lire
- Extraire les données d'une facture : la chaîne complète
- Convertir des documents structurés avec Docling
- PaddleOCR : le moteur qui gère les mises en page complexes
- Source : dépôt officiel Tesseract sur GitHub
- Source : Koncile, comparatif Tesseract 2026 (éditeur d'extraction de factures)
- Source : page de manuel de tesseract (options --psm et --oem)
- Source : documentation Tesseract, améliorer la qualité
- Source : documentation Tesseract, fichiers de données
#Le vrai coût d'un projet Tesseract
Le moteur lui-même ne coûte rien, ce qui masque souvent où va réellement le temps d'un projet OCR. Le vrai travail se trouve autour du moteur : prétraitement d'image (redressement, binarisation, bordures) et vérification du résultat. Un budget réaliste prévoit du temps pour ces deux étapes dès le départ plutôt que de les découvrir après un premier lot de résultats décevants.
- Scanner ou photo de téléphone
- Un scanner à plat produit des pages plus droites et mieux éclairées qu'une photo prise à main levée ; privilégier le scanner dès que le volume le justifie.
- Format de sortie
- Texte brut suffit pour l'indexation ; le format hOCR conserve les positions, utile pour surligner un extrait dans l'interface d'origine.
- Contrôle qualité
- Un échantillon relu à la main après chaque changement de source de scan repère une dérive avant qu'elle ne touche tout le lot.
- Volume et parallélisation
- Tesseract est multithread par défaut (OpenMP), ce qui ne convient pas à un gros lot. La FAQ du projet recommande de lancer un processus par cœur avec la variable OMP_THREAD_LIMIT=1, qui supprime le surcoût du multithreading.
Un dernier poste souvent oublié : le nommage des fichiers produits. Sur plusieurs milliers de pages, il faut pouvoir retrouver quel texte correspond à quel scan ; conserver le même nom de base entre l'image et le texte reconnu règle le problème dès le départ.
#L'insérer dans une chaîne locale
Dans une installation documentaire locale, Tesseract intervient à un seul endroit : juste avant l'indexation, sur les documents dépourvus de couche de texte. Le test à automatiser est simple — si l'extraction de texte d'un PDF rend moins de quelques dizaines de caractères par page (seuil à ajuster sur votre corpus), c'est probablement un scan, et il part à l'OCR. Sans ce test, des documents entiers entrent silencieusement vides dans l'index, et personne ne s'en aperçoit avant qu'un utilisateur ne s'étonne.
Le redressement et la binarisation méritent d'être automatisés dans ce même pipeline plutôt que laissés à l'appréciation de chaque page : un script qui détecte l'angle dominant et corrige avant l'appel au moteur évite une bonne part des mauvaises surprises décrites plus haut. Sur un lot homogène — toujours le même scanner, le même type de document — ce prétraitement se règle une fois et tourne ensuite sans surveillance.
#FAQ
Tesseract est-il gratuit ?+
Comment lui faire lire du français ?+
Pourquoi mon résultat est-il illisible ?+
Tesseract sait-il lire les tableaux ?+
Faut-il préférer un modèle de vision ?+
Qu'est-ce que le mode de segmentation de page ?+
Comment rendre un PDF scanné interrogeable avec Tesseract ?+
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.