Tesseract est un moteur de reconnaissance optique de caractères (ROC, OCR) qui a été conçu par les ingénieurs de Hewlett Packard® de 1984 à 1995, avant d'être abandonné. Après 10 ans de purgatoire, son code est ouvert en 2005, et le développement est repris sous la houlette de Google. Les premiers résultats sont prometteurs. Enfin un bon logiciel libre d'OCR sous GNU/Linux? L'avenir nous le dira… Il permet déjà d'obtenir une reconnaissance optique de qualité sur un certain nombre de documents (sans mise en page complexe).
Tesseract a pour vocation d'être utilisé :
Tesseract est distribué sous licence Apache, c'est-à-dire en gros qu'il est Open Source mais pas copyleft.
Installez les paquets tesseract-ocr et pour reconnaître la langue française, tesseract-ocr-fra.
Il existe d'autres fichiers de langues, comme par exemple :
Il faut donc numériser au moins à 300 voir 600 ppp (Point Par Pource ou DPI)
Dans un terminal, Entrez la commande suivante :
tesseract ~/<nom_de_l_image.tif> <nom_du_fichier_de_sortie_sans_l_extension> -l fra
le fichier de sortie sera au format texte .txt … on perd donc la mise en page!
Pour traiter plusieurs fichiers, vous pouvez faire :
for i in *.jpg ; do tesseract -l fra $i $i.txt; done;
Si vous avez installé les fichiers pour la reconnaissance de texte en d'autres langues, vous ajoutez à la fin, au lieu de -l fra:
-l eng (pour l'anglais) -l deu (pour l'allemand) -l epo (pour l'espéranto) -l spa (pour l'espagnol) -l ita (pour l'italien) -l nld (pour le néerlandais) -l por (pour le portugais) -l vie (pour le vietnamien) -l deu-f (pour le vieil-allemand)
La liste des langues est disponible sur la documentation du logiciel sur github
Vous pouvez aussi indiquer que les pages contiennent plusieurs langues différentes en indiquant -l fra+epo par exemple pour des images qui contiennent du texte en français et du texte en espéranto.
Les explications sont données sur la page gscan2pdf.
Il est possible d'utiliser directement tesseract avec l'application de numérisation XSane grâce à l'adaptateur xsane2tess.
#!/bin/bash cd ~/Bureau convert *.png sortie.tif ; # il est plus prudent de corriger le bpp maximum pour le fichier tiff de sortie (max 8 pour tesseract -> depth = 4) # soit convert -depth 4 *.png sortie.tif ; tesseract sortie.tif sortie -l fra ; rm sortie.tif lowriter sortie.txt
Pour faire de même avec les fichiers images JPG (comportant du texte à reconnaître bien sûr), vous pouvez remplacer "png" par "jpg" dans le script, pour créer un autre script nommé "Tesseract-jpg2lofficewriter".
Pour créer un raccourci de votre script, reportez-vous à la page de création de lanceurs ou à celle-ci pour Unity, puis complétez comme suit:
Même méthode pour les fichiers au format JPG, en utilisant l'outil "Tesseract-jpg2lofficewriter".
N.B. : au passage, un document sortie.tif et un document sortie.txt sont placés sur le bureau; ce sont des documents transitoires créés par le script. On peut les effacer en ayant au préalable enregistré le document texte dans un autre dossier.
- Créez un fichier texte que vous nommez par exemple "OCR" dans le dossier des scripts-Nautilus (normalement : ~/.local/share/nautilus/scripts) :
#!/bin/sh mypath="`pwd`" for filename in "$@" do if [ -n "$*,?" ];then tesseract "$mypath/$filename" "${filename%%.*}" -l fra fi done {} exit 0
- Rendez exécutable ce fichier.
Dans Nautilus vous pouvez désormais sélectionner un ou plusieurs fichiers PNG et/ou JPG, faites un clic droit et exécutez le script "OCR". Chaque fichier txt extrait de tesseract aura le nom du fichier d'origine avec l'extension .txt
Si vous souhaitez améliorer la ROC vous trouverez des explications sur le site "tesseract-ocr" (en).
Pour supprimer cette application, il suffit de supprimer son paquet et les paquets de langues installées. Selon la méthode choisie, la configuration globale des applications sont conservées ou supprimées. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.