Utilisation de Tesseract en ligne de commande

Tesseract est un moteur OCR (Optical Character Recognition : reconnaissance de caractères/texte dans une image) open source créé par HP et repris par Google (en gros, cela permet de reconnaître du texte à partir de l’image d’un document). Cet article est un petit guide sur son utilisation par ligne de commande sous Linux et Windows.

Voici le manuel utilisateur officiel https://tesseract-ocr.googlecode.com/svn/trunk/doc/tesseract.1.html .

Installation

Dans la plupart des nouvelles distributions linux, le paquet ‘tesseract’ ou ‘tesseract-ocr’ existe déjà donc pour l’installer sur Ubuntu/Debian, c’est :

sudo apt-get install tesseract-ocr

Pour l’installer sur Windows ou Mac ou une autre distribution linux, vous pouvez vous référer au Wiki https://github.com/tesseract-ocr/tesseract/wiki

Première utilisation

Après cela, c’est très simple. Il faut ouvrir la ligne de commmandes (en tant qu’admin sous Windows) et taper :


tesseract mon_image.jpg output_file

Tesseract sortira le résultat de la prédiction dans output_file.txt

Comment specifier explicitement le langage du texte a predire ?

Pour la langue française, par exemple :
tesseract mon_image.jpg output_file -l fra

Comment faire dans le cas où l’image contient plusieurs langages différents ?

Il suffit d’indiquer les langages séparés avec des « + ».
Par exemple, pour du texte en français et en allemand :
tesseract texte_francais_allemand.jpg output_file -l fra+deug

Si Tesseract vous donne une erreur quant à l’existence de données de prédiction pour un des langages, il se peut fortement qu’il vous faille télécharger les données d’entraînement disponibles ici https://github.com/tesseract-ocr/tessdata et les copier dans le dossier /usr/share/tesseract/tessdata/ 

Que représentent les méthodes de segmentation (psm) de Tesseract ?

Avant de reconnaître les caractères présents dans l’image, Tesseract performe du pré-traitement comme la segmentation de l’image.
La segmentation consiste à séparer l’image en blocs de texte. Il y a plusieurs modes de segmentation :  en colonnes, en lignes, en ilôts, etc.

Si vous êtes au courant du format du texte dans l’image, vous pouvez par exemple spécifier si l’image représente une ligne de texte, si l’image contient du texte parfaitement aligné ou du texte qui a besoin d’être aligné, si celle-ci contient plusieurs ou bien seulement une colonne etc.

Le mode par défaut est le mode 3 : segmentation automatique de la page sans détection d’orientation.

Voici l’explication de certains modes de segmentation disponibles :
Mode 0 : Détection de l’orientation du texte (OSD) seulement : cela détecte l’angle d’alignement du texte afin de le corriger ensuite

tesseract mon_image.jpg output_file -psm 0

Mode 1 : Segmentation automatique avec détection de l’orientation et du script :

tesseract texte_desaligne.jpeg output_file -psm 1

Mode 2 – Segmentation automatique de la page sans détection de l’orientation, ni détection de caractères : Cela servira seulemenet à détecter la segmentation

tesseract mon_texte_en_colonnes.jpeg output_file -psm 2

Mode 3 – Segmentation de pages sans détection de l’orientation du texte (mode par défaut)

tesseract mon_texte_en_colonnes_parfaitement_aligne.jpeg output_file -psm 3

Mode 4 – Assumer une colonne de texte avec des variations de tailles du texte

tesseract mon_texte_variant.jpeg output_file -psm 4

Mode 5 – Assumer un bloc de texte aligné verticalement : Je n’ai pas encore testé ce mode-là. Je ne pourrai pas en parler pour le moment
Mode 6 – Assumer un seul bloc de texte : Je n’ai pas encore testé ce dernier non plus.
Mode 7 – Traiter l’image comme une ligne de texte

tesseract ligne_de_texte.jpeg output_file -psm 7

Mode 8 – Traiter l’image comme un mot

tesseract mot.jpeg output_file -psm 8

Mode 9 – Traiter l’image comme étant un mot dans un cercle

tesseract mot_dans_cercle.jpeg output_file -psm 9

Mode 10 – Traiter l’image comme représentant un seul caractère

tesseract A.jpeg output_file -psm 1

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *