{{tag>Xenial Trusty ocr bureautique}}
----
====== Tesseract OCR ======
**Tesseract OCR** est un moteur de [[:ocr|reconnaissance optique de caractères ]] (acronymie : ROC ou OCR en Anglais) 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, distribué sous [[wpfr>Licence Apache]], 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).
La page de la documentation sur [[https://github.com/tesseract-ocr/tesseract/blob/master/README.md|Github]].
Tesseract a pour vocation d'être utilisé :
* soit directement, en ligne de commandes soit par l'intermédiaire d'une interface graphique comme [[gscan2pdf|gscan2pdf]] ou [[xsane|xsane]] (cf. aussi [[xsane2tess|xsane2tess]]), pour reconnaître du texte avec mise en page basique ; cet usage est déjà fonctionnel.
* soit avec des surcouches gérant les mises en page complexes, etc., comme [[:ocropus]] (encore en [[wpfr>Version_d'un_logiciel#Version_b.C3.AAta|Version Bêta ou β-test]]).
===== Installation =====
[[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **[[apt>tesseract-ocr]]** et pour reconnaître la langue française, **[[apt>tesseract-ocr-fra]]**. \\
Il existe d'autres fichiers de langues, comme par exemple :
* **[[apt>tesseract-ocr-deu]]** (allemand),
* **[[apt>tesseract-ocr-eng]]** (anglais),
* **[[apt>tesseract-ocr-spa]]** (espagnol),
* **[[apt>tesseract-ocr-nld]]** (hollandais),
* **[[apt>tesseract-ocr-ita]]** (italien),
* **[[apt>tesseract-ocr-por]]** (portugais-brésilien),
* **[[apt>tesseract-ocr-vie]]** (vietmamien),
* **[[apt>tesseract-ocr-deu-f]]** (vieil-allemand).
===== Utilisation =====
les scanners numérisent souvent avec une résolution suffisante pour la lecture à l'écran mais insuffisante pour une reconnaissance efficace.
Il faut donc numériser au moins à **300 voire 600 ppp** (Point Par Pouce ou DPI)
Quant au type de fichier, le format [[wpfr>Tagged_Image_File_Format|tiff]] est mieux reconnu, ainsi un document tiff en 300ppp est intégralement reconnu alors qu'au format JPEG, toujours en 300ppp, seules les lettres majuscules sont reconnues
======= Erreur à l'utilisation =====
Si vous obtenez ce message :
Error opening data file /home//snap/tesseract/common/Error opening data file /home//snap/tesseract/common/eng.traineddata.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory.
Failed loading language 'Error opening data file /home//snap/tesseract/common/eng.traineddata'
Tesseract couldn't load any languages!
Could not initialize tesseract.
Copier le répertoire « tesseract-ocr ». Depuis usr/share/ → vers usr/local/share/
Les fichiers de langues se trouve à cette emplacement :
usr/local/share/tesseract-ocr/4.00/tessdata
==== En ligne de commande ====
Dans un [[:terminal]], Entrez la [[:commande_shell|commande]] suivante :
tesseract ~/ -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;
Pour traiter un pdf image de plusieurs pages :
pdftoppm -r 300 -tiff texte.pdf texte
for f in *.tif;do tesseract $f $f -l fra;done
cat *.txt > document.txt
==== Les options de langues ====
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 [[https://github.com/tesseract-ocr/tesseract/wiki/Data-Files|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.
==== En mode graphique avec « gscan2pdf » ====
Les explications sont données sur [[:gscan2pdf|la page gscan2pdf]].
==== En mode graphique avec XSane ====
Il est possible d'utiliser directement tesseract avec l'application de numérisation [[:XSane]] grâce à l'adaptateur [[:xsane2tess]].
Pour réaliser de la Reconnaissance optique de caractères :
* sur un document déjà numérisé, on utilise [[gscan2pdf|gscan2pdf]].
* sur un document à numériser, on utilise plutôt [[xsane|XSane]], dont la fonction de prévisualisation permet de sélectionner des zones de texte.
==== En mode graphique avec YAGF ====
Les explications sont données sur [[:yagf|la page YAGF]].
==== En mode graphique avec gimagereader ====
Les explications sont données sur [[:gimagereader|la page gimagereader]].
==== Pour une reconnaissance optique directe dans LibreOffice Writer de fichiers PNG ou JPG ====
=== pour lancer l'OCR sur un document PNG (ou JPG) présent sur le bureau ===
== pour les documents PNG ==
- [[:tutoriel:comment_modifier_un_fichier|Créez un fichier texte]] que vous nommez par exemple "Tesseract-png2lofficewriter" :
#!/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
- [[:tutoriel:script_shell#methode_graphique|Rendez exécutable]] ce fichier. Vous avez créé un script exécutable...
- Placez-le dans le dossier des [[:nautilus_scripts|scripts-Nautilus]] (ou dans tout autre dossier personnel de scripts, à votre convenance),
- Créez un lanceur ou une entrée dans le menu comme indiqué ci-dessous.
== pour les documents JPG ==
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".
=== Créer un lanceur pour votre script ===
Pour créer un raccourci de votre script, reportez-vous à la page de création de [[:raccourci-lanceur|lanceurs]] ou à [[:unity_launcher|celle-ci]] pour Unity, puis complétez comme suit:
- Donnez-lui un nom par exemple : "Tesseract-png2lofficewriter", ou plus court "Tesseract-PNG2LOW"
- Pointez vers le script en question, c'est à dire le fichier texte "Tesseract-png2lofficewriter" rendu exécutable (commande : allez chercher votre script par le bouton "parcourir"),
- Vous pouvez utiliser cette icône {{:applications:tesseract:tesseract-ocr-png.jpg?100|icone Tesseract OCR PNG}} pour le script "Tesseract-PNG2LOW" et celle-ci {{:applications:tesseract:tesseract-ocr-jpg.jpg?100|icone Tesseract OCR JPG}} pour le script "Tesseract-JPG2LOW".
- Vous pouvez ajouter un commentaire, mais ce n'est pas indispensable.
=== Utilisation ===
- Enlevez du bureau les fichiers PNG sur lesquels vous ne voulez pas faire de ROC.
- Placez sur le bureau vos fichiers numérisés au format PNG (le mieux est un PNG en valeurs de gris et 300 dpi avec Xsane, mais vous pouvez essayer avec d'autres PNG déjà numérisés),
- Vous pouvez placer sur le bureau plusieurs fichiers PNG sur lesquels vous voulez procéder à la reconnaissance optique, mais ne dépassez pas 3-4 fichiers si vous voulez une opération relativement rapide. \\ Les contenus des différents fichiers seront placés les uns à la suite des autres dans un même document Libreoffice.
- Cliquez sur le raccourci précédemment créé ou directement sur le script... patientez un peu... Libreoffice s'ouvrira avec le contenu du texte tel qu'il a été reconnu
- Il vous reste a effectuer les corrections orthographiques et la mise en page.
Même méthode pour les fichiers au format JPG, en utilisant l'outil "Tesseract-jpg2lofficewriter" créé précédemment.
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.
==== Autre méthode : pour une reconnaissance optique directe d'un ou plusieurs fichiers PNG ou JPG dans Nautilus ====
- [[:tutoriel:comment_modifier_un_fichier|Créez un fichier texte]] que vous nommez par exemple "OCR" dans le dossier des [[:nautilus_scripts|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
- [[:tutoriel:script_shell#methode_graphique|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
=====Utilisation avancée : Amélioration de la reconnaissance =====
Si vous souhaitez améliorer la reconnaissance optique de caractères vous trouverez des explications sur le site **(en)** [[https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract|Wiki de "tesseract-OCR"]] .
=====Désinstallation=====
Pour supprimer cette application, il suffit de [[:tutoriel:comment_supprimer_un_paquet|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.
===== Liens =====
* [[https://github.com/tesseract-ocr/tesseract/wiki|Site officiel]]
* [[http://www.repairfaq.org/filipg/gnu/tesseract/html-102_03/|Documentation pour contribuer au code (en anglais)]]
* [[https://forum.ubuntu-fr.org/viewtopic.php?id=78804|le fil de discussion du forum]] Open Office, Reconnaissance de caractères, Xsane, Kooka et Cie...
* [[https://github.com/tesseract-ocr/tesseract/wiki/TrainingTesseract|La page où on parle de l'apprentissage avec tesseract (anglais)]]
* [[:ocr|La page de la documentation francophone Ubuntu sur la reconnaissance optique de caractères]]
* [[https://gist.github.com/stesie/42dff3d14fbfac60524f381babb8f81d|script « scan2pdf+ocr.sh » sur le GITHUB]]
* [[https://ocrmypdf.readthedocs.io/en/latest/introduction.html|OCRmyPDF]] : programme qui rend un fichier PDF indexable – à savoir, dont le contenu peut faire l’objet d’un recherche textuelle. Il est écrit en [[python|Python]], s’appuie sur le moteur ROC Tesseract et sur GhostScript, est disponible au [[snap|format Snap]] ou en [[apt|paquet APT]], et est utilisable en ligne de commande par défaut.
----
//Contributeurs : [[:utilisateurs:teolemon|Pierre S.]], [[:utilisateurs:Hector]] et [[:utilisateurs:Sorbus]], [[:utilisateurs:eagle08]] : liens.//