Comment configurer Tesseract OCR
Guide du débutant : installation et pièges courants
Tesseract est le moteur OCR open source le plus utilisé au monde — gratuit, plus de 100 langues, et il fonctionne sur n'importe quelle machine. Mais l'installer et obtenir un résultat exploitable du premier coup implique quelques étapes que le README GitHub passe sous silence. Ce guide couvre exactement cela : l'installation, votre première extraction, une aide-mémoire des commandes que vous utiliserez vraiment, et les trois pièges qui font trébucher la plupart des débutants.

Points clés à retenir
- Tesseract — le moteur OCR open source le plus utilisé au monde — est gratuit, prend en charge plus de 100 langues et atteint une précision de 95 à 99 % sur des scans propres. Mais avec ses réglages par défaut, les photos de téléphone et les reçus renvoient souvent des mots déformés, des lignes fusionnées ou le fameux « Empty page!! »
- Trois erreurs corrigeables expliquent environ 80 % des problèmes des débutants — et aucune d'elles n'est « le moteur est mauvais ». La correction la plus efficace est de changer le mode PSM : un reçu qui renvoie du charabia avec PSM 3 (« entièrement automatique ») peut produire une sortie propre et lisible avec un seul drapeau (
--psm 4). - Chaque utilisateur de Tesseract finit par se heurter au même mur : le numéro de facture, la date, le total et les lignes d'articles sont tous là en tant que caractères, mais l'outil n'a aucune idée de ce qui est quoi. Pour obtenir des champs nommés qui atterrissent dans la bonne colonne de votre feuille de calcul, vous avez besoin d'une couche qui lit la sémantique du document, pas seulement les caractères.
Ce qu'est Tesseract OCR (et ce qu'il n'est pas)
Tesseract est un moteur de reconnaissance optique de caractères open source, développé à l'origine chez Hewlett-Packard dans les années 1980 et maintenu par Google depuis 2006. Il prend une image de texte — un document scanné, une photo de page — et renvoie le texte qu'il y trouve, caractère par caractère.
Il fait bien une seule chose : la reconnaissance de caractères sur du texte imprimé propre. Donnez-lui un scan 300 DPI d'une page dactylographiée, et il renverra les mots avec une précision de 95 à 99 %. Donnez-lui une photo de reçu prise au téléphone, et la précision chute. Donnez-lui un formulaire manuscrit, et il devient essentiellement inutilisable.
Comprendre cette limite est important, car la plupart des débutants blâment le « mauvais OCR » pour ce qui est en réalité le bon outil appliqué au mauvais problème. Tesseract lit les caractères. Il ne comprend pas la structure du document — il ne sait pas quel nombre est le total de la facture par rapport à un sous-total de ligne, il ne reconnaît pas les tableaux, et il n'a aucune notion de champs sémantiques. Cette sortie de texte plat est une fonctionnalité, pas un bug. Pour un aperçu plus approfondi de la comparaison entre Tesseract et l'extraction IA moderne, consultez notre explicateur qu'est-ce que l'OCR et la comparaison des meilleurs outils OCR open source.
Tesseract est distribué sous licence Apache 2.0 — libre d'utilisation, de modification et de redistribution.

Installation : trois systèmes d'exploitation, une commande chacun
Tesseract n'est pas fourni avec un assistant d'installation graphique (sauf si vous comptez l'installeur NSIS de Windows). Vous l'installez via le gestionnaire de paquets de votre système sur Linux et macOS, ou via un installeur tiers sur Windows. Le point clé : installez à la fois le moteur et les données linguistiques dont vous avez besoin.
Le tableau ci-dessous couvre la méthode d'installation principale pour chaque système d'exploitation. Après l'installation, vérifiez toujours avec tesseract --version.
| Système d'exploitation | Commande d'installation | Données linguistiques supplémentaires |
|---|---|---|
| Ubuntu/Debian Linux | sudo apt install tesseract-ocr | sudo apt install tesseract-ocr-deu (allemand), tesseract-ocr-fra (français), etc. |
| macOS (Homebrew) | brew install tesseract | brew install tesseract-lang (toutes les langues d'un coup) |
| Windows | Téléchargement depuis UB Mannheim (installeur 64 bits) | Sélectionnez les langues pendant l'installation, ou téléchargez les fichiers .traineddata dans C:\Program Files\Tesseract-OCR\tessdata\ |

Un détail important sur Windows : l'installeur n'ajoute pas Tesseract au PATH de votre système automatiquement dans certaines versions. Vous devrez ajouter le répertoire d'installation (généralement C:\Program Files\Tesseract-OCR) au PATH de votre système, ou définir la variable d'environnement TESSDATA_PREFIX pointant vers le dossier tessdata. C'est la source la plus courante d'erreurs pour les débutants, et nous la traitons en détail dans la section sur les pièges ci-dessous.
Votre première extraction : Python + pytesseract
Tesseract peut être utilisé directement en ligne de commande, mais la plupart des développeurs préfèrent l'appeler depuis Python. La bibliothèque pytesseract fournit une interface Python propre autour du binaire Tesseract.
Installez le package Python :
pip install pytesseract pillowTrouvez une image avec du texte imprimé clair — une lettre tapée, une page de document scannée ou une photo nette de reçu — et enregistrez-la sous le nom sample.png dans votre répertoire de travail. Exécutez ensuite :
from PIL import Image
import pytesseract
img = Image.open('sample.png')
text = pytesseract.image_to_string(img)
print(text)Si tout est correctement installé, le texte extrait devrait s'afficher dans votre terminal. Si vous obtenez TesseractNotFoundError: tesseract is not installed or it's not in your PATH, passez à la section des pièges ci-dessous — c'est le piège n°1 et la solution est simple.
Sous Windows, vous devrez peut-être aussi indiquer à pytesseract où se trouve l'exécutable Tesseract :
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'À quoi vous attendre pour votre première extraction : Sur un document propre et haute résolution, vous obtiendrez un texte précis avec des sauts de ligne raisonnables. Sur une photo de mauvaise qualité ou un document à la mise en page complexe, vous verrez des mots déformés, des lignes fusionnées et des caractères manquants. Ce n'est pas un bug — Tesseract a besoin d'une entrée propre pour produire une sortie propre. Le prétraitement d'image (seuillage, redressement, débruitage) est souvent nécessaire pour les documents réels.
5 commandes que vous utiliserez vraiment
L'interface en ligne de commande de Tesseract propose des dizaines d'options. En pratique, vous n'en utiliserez régulièrement qu'une poignée. Voici l'aide-mémoire :
Extraction de texte de base
tesseract scan.png stdoutAffiche le texte extrait directement dans le terminal. Remplacez stdout par output pour enregistrer dans output.txt.
Spécifier une langue
tesseract scan.png stdout -l deuUtilisez l'option -l avec un code ISO à 3 lettres. Plusieurs langues : -l eng+deu+fra. Sans cette option, Tesseract OCR utilise l'anglais par défaut.
Mode de segmentation de page (PSM)
tesseract receipt.png stdout --psm 4Le paramètre de réglage le plus impactant. Le PSM 4 suppose une seule colonne de texte (idéal pour les factures). Le PSM 6 suppose un bloc uniforme. Le PSM 7 traite l'image comme une seule ligne. Lorsque les tableaux sont mal extraits, le PSM est généralement la solution.
Sortie PDF interrogeable
tesseract scan.png output pdfCrée un PDF avec une couche de texte par-dessus l'image d'origine. Utile pour archiver des documents numérisés tout en les gardant interrogeables. Vous pouvez le combiner avec -l et --psm selon vos besoins.
Traitement par lots de toutes les images d'un dossier
for file in *.jpg; do tesseract "$file" "${file%.jpg}"; doneTraite chaque JPG du répertoire courant et produit un fichier .txt par image. Changez l'extension de .jpg en .png ou selon vos fichiers. Sous Windows PowerShell, l'équivalent est : Get-ChildItem *.jpg | ForEach-Object { tesseract $_.Name $_.BaseName }.
Comprendre les modes PSM : le réglage le plus important

Tesseract propose 14 modes de segmentation de page (PSM 0–13). Le mode par défaut est le PSM 3 — segmentation automatique complète de la page. Pour de nombreux documents réels, le mode automatique fait de mauvaises suppositions, et le modifier est l'ajustement à plus fort impact que vous puissiez faire.
Voici un guide pratique des modes que vous utiliserez réellement :
| PSM | Ce qu'il fait | Quand l'utiliser |
|---|---|---|
3 | Segmentation automatique complète de la page (par défaut) | Pages simples avec un seul bloc de texte et une mise en page claire. Fonctionne pour les lettres, les articles et les documents simples. |
4 | Suppose une seule colonne de texte de tailles variables | Idéal pour les factures et les formulaires. Les factures ont généralement une seule colonne de données avec des tailles de police variables pour les en-têtes et les lignes d'article. Le PSM 4 maintient les lignes ensemble. |
6 | Suppose un bloc de texte uniforme unique | Lorsque l'image entière est un paragraphe continu. Le PSM 6 est plus strict que le 4 — il suppose une police et un espacement des lignes uniformes sur toute la page. |
7 | Traite l'image comme une seule ligne de texte | Plaques d'immatriculation, numéros de codes-barres, champs de document sur une seule ligne. Le PSM 7 indique à Tesseract « il y a exactement une ligne de texte — lis-la ». |
11 | Texte épars — trouver le plus de texte possible, sans ordre | Documents avec du texte dispersé sur la page — panneaux, captures d'écran avec texte superposé, images à contenu mixte où la mise en page n'est pas importante. |
La façon la plus simple de développer une intuition pour les modes PSM est de prendre une image et de la passer dans chaque mode, en comparant les résultats. Un reçu qui renvoie des données inutilisables avec le PSM 3 renvoie souvent une sortie propre et lisible avec le PSM 4. Le mauvais mode PSM est la raison la plus courante pour laquelle les débutants concluent que « Tesseract ne fonctionne pas » alors qu'il fonctionne parfaitement — il utilise simplement une mauvaise hypothèse de mise en page.
Pour un guide plus approfondi sur le prétraitement d'images qui améliore la sortie Tesseract, consultez notre article sur comment améliorer la précision de l'OCR.
Packs linguistiques : ajouter la prise en charge d'autres langues
Tesseract prend en charge plus de 100 langues, mais l'anglais est la seule langue incluse par défaut dans l'installation de base. Les langues supplémentaires sont distribuées sous forme de fichiers .traineddata que vous placez dans le répertoire tessdata de Tesseract.
Il existe trois dépôts officiels de fichiers traineddata, et choisir le bon est important :
tessdata_fast— Modèles basés sur LSTM optimisés pour la vitesse. Environ 2 à 3 fois plus rapides quetessdata_bestavec une perte de précision minime. Recommandé pour la plupart des utilisateurs.tessdata_best— Les modèles LSTM les plus précis. Environ 2 à 3 fois plus lents. À utiliser lorsque la précision est cruciale et que la vitesse de traitement n'est pas une contrainte.tessdata(ancien) — Inclut à la fois les modèles de l'ancien moteur et les modèles LSTM. Nécessaire si vous souhaitez utiliser les modes OEM 0 ou 2 (ancien moteur).
Pour ajouter une langue manuellement, téléchargez le fichier .traineddata depuis le dépôt tessdata_fast et placez-le dans votre répertoire tessdata :
# Emplacement tessdata par défaut sous Linux
sudo cp ~/Downloads/deu.traineddata /usr/share/tesseract-ocr/5/tessdata/
# macOS (Homebrew par défaut)
cp ~/Downloads/deu.traineddata /opt/homebrew/share/tessdata/
# Windows
# Copier dans C:\Program Files\Tesseract-OCR\tessdata\Sous Ubuntu/Debian, la méthode la plus simple est d'installer directement le paquet linguistique : sudo apt install tesseract-ocr-deu pour l'allemand, tesseract-ocr-fra pour le français, etc. Sous macOS, brew install tesseract-lang installe tous les packs linguistiques disponibles en une seule fois.
Les 3 pièges les plus courants (et comment les résoudre)
Après avoir configuré Tesseract dans divers environnements, ces trois problèmes représentent environ 80 % des difficultés des débutants.
TesseractNotFoundError / « tesseract is not in your PATH »
C'est l'erreur Tesseract la plus recherchée sur Google pour une bonne raison. Le binaire Tesseract (le moteur installé) n'est soit pas installé, soit introuvable par votre système.
Diagnostic : Ouvrez un terminal et exécutez tesseract --version. Si vous obtenez « command not found », Tesseract n'est pas dans votre PATH.
Correctif (Linux/macOS) : Le gestionnaire de paquets installe dans un chemin standard qui est généralement déjà dans votre PATH. Sinon, export PATH=$PATH:/usr/bin/tesseract ou réinstallez via le gestionnaire de paquets.
Correctif (Windows) : Ajoutez le répertoire d'installation de Tesseract à votre PATH système (Propriétés système → Variables d'environnement → modifier PATH → ajouter C:\Program Files\Tesseract-OCR). Vous pouvez aussi le définir dans votre script Python : pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'.
« Page vide » ou sortie inexploitable — mauvais mode PSM
Vous exécutez Tesseract sur un reçu ou une facture, et la sortie est un mur de caractères fusionnés, ou pire — « Empty page!! »
Diagnostic : Le PSM 3 par défaut suppose une mise en page de texte pleine page. Un reçu est généralement une colonne unique étroite. Tesseract essaie de détecter les colonnes et les lignes, se perd, et soit fusionne tout, soit abandonne.
Correctif : Essayez le PSM 4 (--psm 4) pour les documents à une colonne, le PSM 6 pour les blocs uniformes, ou le PSM 7 pour les lignes uniques. Si vous extrayez une région spécifique, recadrez d'abord l'image sur cette région, puis essayez le PSM 6 ou 7.
Un utilisateur de Reddit sur r/learnpython l'a dit sans détour : « La plupart des gens sautent l'étape de prétraitement et se demandent ensuite pourquoi leur précision est mauvaise. » Sur les photos prises au téléphone, ajouter une étape de seuillage (conversion en noir et blanc pur) fait souvent la différence entre une sortie inutile et un texte exploitable.
Aucun prétraitement d'image — les photos brutes de téléphone donnent de mauvais résultats
Tesseract OCR a été conçu pour les documents scannés — plats, avec un éclairage uniforme, 300 DPI, et un alignement droit. Une photo de téléphone introduit des distorsions de perspective, des ombres, un éclairage inégal et une courbure de page. Tesseract OCR ne gère aucun de ces problèmes correctement.
Diagnostic : Si votre texte contient des caractères manquants, des symboles aléatoires ou des mots collés sur une photo de téléphone, mais fonctionne correctement sur un scan, votre image nécessite un prétraitement.
Correctif : Ajoutez une étape de prétraitement avec OpenCV ou Pillow : convertissez en niveaux de gris, appliquez un seuillage (Otsu ou adaptatif), et redressez si la page est inclinée. Voici le pipeline de prétraitement minimal viable :
from PIL import Image, ImageEnhance, ImageFilter
import pytesseract
img = Image.open('sample.jpg')
# Convertir en niveaux de gris et améliorer le contraste
img = img.convert('L')
enhancer = ImageEnhance.Contrast(img)
img = enhancer.enhance(2.0)
# Appliquer le seuillage
img = img.point(lambda x: 0 if x < 140 else 255)
text = pytesseract.image_to_string(img, config='--psm 4')Ce bloc de prétraitement de trois lignes résout la majorité des plaintes de « mauvaise OCR » sur des documents réels. Pour aller plus loin, le guide officiel ImproveQuality couvre des techniques supplémentaires comme la suppression des bordures, le débruitage et la correction de rotation.
Quand Tesseract ne suffit pas
Tesseract excelle dans ce qu'il fait : convertir des images de texte imprimé en caractères lisibles par machine à coût marginal nul. Mais si votre flux de travail exige des données structurées — extraire le numéro de facture, la date, le total et les lignes d'articles comme champs nommés dans une feuille de calcul — Tesseract cesse d'être le bon outil au moment où le texte sort du moteur.
Chaque utilisateur de Tesseract finit par se heurter à ce mur : vous avez le texte, mais vous devez encore l'analyser, l'étiqueter et le structurer. Un tableau issu d'une facture ressort comme un mur séquentiel de caractères sans relation ligne-colonne. Les lignes d'articles et les prix sont là, mais ils sont impossibles à distinguer du texte d'en-tête et de pied de page. Transformer cette sortie de texte plat en données structurées nécessite soit un post-traitement approfondi (expressions régulières, correspondance floue, reconstruction de mise en page), soit une approche entièrement différente.
Les outils modernes d'extraction de documents basée sur l'IA résolvent ce problème à un niveau différent : au lieu de lire des caractères, ils lisent la sémantique du document. Ils peuvent faire la différence entre un numéro de facture et une date d'échéance parce qu'ils comprennent ce que ces champs signifient, pas seulement à quoi ils ressemblent. Ils gèrent les tableaux, les mises en page multi-colonnes et les variations de format sans configuration par fournisseur. Lorsque votre mix de documents inclut des tableaux, de l'écriture manuscrite, des photos prises au téléphone, ou la nécessité d'extraire des données structurées plutôt que du texte brut, l'extraction par IA est la couche au-dessus de Tesseract qui comble le vide que Tesseract n'a jamais été conçu pour couvrir.
FAQ
Lequel est le meilleur pour un débutant — Tesseract ou EasyOCR ?
Tesseract est plus rapide (environ 25 pages par minute sur CPU contre 8 pour EasyOCR) et a une empreinte bien plus légère (~10 Mo contre ~500 Mo). EasyOCR gère mieux le texte incurvé et rotatif et nécessite moins de prétraitement. Si vos documents sont du texte imprimé propre, commencez avec Tesseract. Si vous travaillez avec des photos contenant du texte incurvé ou des scripts mixtes, EasyOCR peut donner de meilleurs résultats dès le départ. Les deux produisent une sortie de texte plat — aucun ne fournit d'extraction de données structurées.
Tesseract peut-il lire l'écriture manuscrite ?
Mal. Tesseract a été conçu pour la reconnaissance de caractères imprimés et son moteur LSTM atteint environ 45 % de précision sur l'écriture cursive — ce qui signifie que plus de la moitié des mots seront mal lus. Pour le traitement de documents manuscrits, les modèles de vision IA qui lisent les documents de manière sémantique (abordés dans notre guide de précision) sont l'alternative pratique.
Tesseract fonctionne-t-il directement sur les PDF ?
Pas directement. Tesseract opère sur des fichiers image (PNG, JPEG, TIFF). Pour effectuer l'OCR d'un PDF, vous devez d'abord convertir chaque page en image — soit en utilisant un outil comme pdftoppm (Linux/macOS), soit en utilisant pdf2image en Python, qui appelle en interne pdftoppm ou poppler. Alternativement, OCRmyPDF encapsule tout ce flux de travail en une seule commande : ocrmypdf input.pdf output.pdf.
Tesseract est-il toujours pertinent en 2026 avec autant d'API OCR cloud disponibles ?
Pour le cas d'usage spécifique de la numérisation en masse de textes imprimés où la structure n'est pas requise — oui. Le fonctionnement sans coût et uniquement sur CPU de Tesseract reste inégalé pour les scénarios à volume élevé comme l'archivage en bibliothèque ou l'indexation de recherche de millions de documents. Pour tout scénario nécessitant une sortie structurée (champs nommés, tableaux, lignes de feuille de calcul), les API IA cloud ou des outils comme ImageToTable.ai qui extraient de manière sémantique sont plus pratiques, car ils éliminent le temps d'ingénierie de post-traitement qui domine le coût total d'un pipeline basé sur Tesseract.
Puis-je entraîner Tesseract sur mes propres données ?
Oui, mais le processus est complexe. Tesseract prend en charge le réglage fin LSTM, ce qui nécessite de générer des fichiers .box pour chaque image d'entraînement (une étape d'annotation de vérité terrain), d'exécuter le pipeline d'entraînement et de produire un fichier .traineddata personnalisé. Pour la plupart des scénarios pratiques, le réglage fin d'un modèle de vision IA à usage général ou l'utilisation d'un outil prenant en charge l'extraction adaptative au format sans entraînement est une voie plus efficace.
Du texte brut aux données structurées
Tesseract vous donne le texte. ImageToTable.ai vous donne les données structurées — numéros de facture, dates, totaux et lignes d'articles dans des colonnes nommées, prêtes pour votre feuille de calcul. Téléversez un document et constatez la différence.
Voir la différence sur votre propre document