Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tesseract-ocr [Le 06/05/2013, 11:22]
195.221.155.2 [Exemple]
tesseract-ocr [Le 04/08/2023, 19:43] (Version actuelle)
lyondif02 [Liens] mention outil OCRmyPDF basé sur Tesseract
Ligne 1: Ligne 1:
-{{tag> ​Hardy Intrepid Jaunty ​ocr}}+{{tag>Xenial Trusty ​ocr bureautique}}
  
 ---- ----
  
 +====== Tesseract OCR ======
  
-====== ​Tesseract ​======+**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<​sup>​®</​sup>​ 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).
  
-**Tesseract** est un moteur ​de reconnaissance optique de caractères (ROC, OCR) qui a été conçu par les ingénieurs de HP 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 GoogleLes premiers résultats sont prometteursEnfin un bon logiciel libre d'OCR sous 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é : Tesseract a pour vocation d'​être utilisé :
-  * soit directement,​ en ligne de commandes ​ou par l'​intermédiaire d'une interface graphique comme gscan2pdf ou xsane (+xsane2tess),​ pour reconnaitre ​du texte avec mise en page basique ; cet usage est déjà fonctionnel. +  * 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 version beta).+  * 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]]).
  
-Tesseract est distribué sous licence Apachec'est-à-dire en gros qu'il est Open Source mais pas [[wpfr>Copyleft|copyleft]].+===== 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).
  
-===== Installation sous Ubuntu 9.04 ===== +===== Utilisation ​===== 
-Il n'y a pas de différence notable avec les anciennes versions traitées plus bas.+<note important>​les scanners numérisent souvent avec une résolution suffisante pour la lecture à l'​écran mais insuffisante pour une reconnaissance efficace.
  
-Pensez toutefois ​à [[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] ​**[[apt://​imagemagick|ImageMagick]]** si vous voulez utiliser xsane2tess ​(utilitaire convert nécessaire).+Il faut donc numériser au moins à **300 voire 600 ppp** (Point Par Pouce ou DPI)
  
-<note important>​N.B. : Si vous voulez tester Ocropus en l'​installant par compilation depuis les sources, n'​installez pas Tesseract à partir des dépôts Ubuntu, ni à partir du deb de "​b52"​mais comme indiqué sur la page [[:ocropus]]. Par contresi vous installez Ocropus par les paquets deb, vous pouvez installer Tesseract à partir des dépôts Ubuntu.</​note>​+Quant au type de fichierle format ​[[wpfr>​Tagged_Image_File_Format|tiff]] est mieux reconnuainsi un document tiff en 300ppp est intégralement reconnu alors qu'au format JPEG, toujours en 300ppp, seules ​les lettres majuscules sont reconnues</​note>​
  
-===== Installation sous Ubuntu 8.04 LTS ===== +======= ​Erreur à l'​utilisation ​===== 
- +Si vous obtenez ​ce message ​:
- +
-==== Par le gestionnaire de paquets (32 et 64 bits) ==== +
- +
-[[:​tutoriel:​comment_installer_un_paquet|Installez les paquets]]**[[apt://​tesseract-ocr,​tesseract-ocr-fra|tesseract-ocr et tesseract-ocr-fra]]** ([[:​dépôts]] Universe). +
- +
-Il existe d'​autres fichiers de langues, comme par exemple : **tesseract-ocr-deu** (allemand), **tesseract-ocr-eng** (anglais), **tesseract-ocr-spa** (espagnol), ​ **tesseract-ocr-nld** (hollandais),​ **tesseract-ocr-ita** (italien), **tesseract-ocr-por** (portugais-brésilien), ​ **tesseract-ocr-deu-f** (vieil-allemand). Une autre langue pour l'​instant disponible pour la ROC avec tesseract, le vietnamien, n'est pas encore dans les dépôts Hardy (mais elle est dans les dépôts Intrepid : **tesseract-ocr-vie**). Pour Hardy, ​vous pouvez l'​installer facilement comme indiqué [[:​tesseract-ocr#​pour_architecture_i386_32_bits|ici]] (cf. "si vous souhaitez utiliser les autres langues"​). +
- +
-**Avantages** de l'​installation de tesseract par le dépôt universe : +
-  * tesseract fonctionne directement sur les fichiers tiff compressés (scan réalisé avec xsane par exemple). +
-  * vous pouvez installer séparément les langues de votre choix. +
- +
-**Inconvénients :** +
-  * la reconnaissance sur les fichiers tiff non compressés suppose un traitement préalable par unpaper (clean up), facile avec gscan2pdf. +
-  * sur un certain nombre de fichiers retravaillés avec Gimp, ou provenant de copies d'​écran,​ enregistrés sous divers formats, la ROC est boguée et donne un résultat très médiocre sans équivalent avec ce que peut produire normalement tesseract, même avec traitement préalable "​unpaper"​. +
- +
- +
- +
-==== Par les deb de « b52 » (32 et 64 bits) ==== +
- +
-"​b52",​ qui est par ailleurs développeur de [[http://​www.xcfa.tuxfamily.org/​index.php|XCFA]],​ a réalisé en avril 2008 des paquets deb de tesseract 2.01 incluant les neuf langues disponibles. Dès la sortie de tesseract 2.03, il a mis au point des paquets "​toutes langues"​ de cette nouvelle version :\\ +
--> [[http://​download.tuxfamily.org/​xcfaudio/​tesseract/​tesseract_2.03-3_i386.deb|tesseract 2.03 pour les architectures 32 bits]].\\ +
--> [[http://​download.tuxfamily.org/​xcfaudio/​tesseract/​tesseract_2.03-3_amd64.deb|tesseract 2.03 pour les architectures 64 bits]].\\ +
- +
-Depuis le 21 décembre 2009, **les paquets de tesseract 2.04 sont disponibles** :\\ +
--> [[http://​download.tuxfamily.org/​xcfaudio/​tesseract/​tesseract_2.04-1_i386.deb|tesseract 2.04 pour les architectures 32 bits]].\\ +
--> [[http://​download.tuxfamily.org/​xcfaudio/​tesseract/​tesseract_2.04-1_amd64.deb|tesseract 2.04 pour les architectures 64 bits]].\\ +
- +
- +
--> [[http://​download.tuxfamily.org/​xcfaudio/​tesseract/​|Le dossier complet]]. +
- +
- +
-**Avantages** de l'​installation par les deb de "​b52"​ :\\ +
-  * les paquets deb de "​b52"​ sont ceux qui permettent, de loin, le meilleur fonctionnement de tesseract.\\ +
-  * il s'agit (depuis le 1er juin 2008) de la version 2.03 de tesseract.\\ +
-  * tesseract fonctionne directement sur les fichiers tiff non compressés (image modifié via Gimp par exemple).\\ +
-  * toutes les langues disponibles sont installées par défaut.\\ +
-  * la ROC sur des fichiers de divers formats, retravaillés par exemple avec Gimp, ou provenant de copies d'​écran,​ donne un bon résultat (après traitement unpaper, et si besoin augmentation de la taille et de la résolution de l'​image via Gimp).\\ +
-  * une option supplémentaire "​-lwt"​ (voir la note ci-dessous) permet la reconnaissance sur les fichiers tiff compressés,​ si on utilise tesseract en ligne de commande. Avec gscan2pdf, la reconnaissance optique est aussi possible sur ces fichiers après traitement préalable par unpaper (clean up).\\ +
- +
-<note tip> +
-**L'​option supplémentaire "​-lwt"​.** Cette option est disponible uniquement si tesseract est installé avec un paquet réalisé par "​b52"​. Elle s'​utilise en remplacement de l'​option "​-l",​ lorsqu'​on veut activer la librairie libtiff. Ceci permet la reconnaissance directe sur des fichiers tiff compressés. Par défaut, gscan2pdf utilise l'​option "​-l"​ (= "sans libtiff"​ dans les paquets de "​b52"​) qui permet à tesseract de fonctionner correctement sur tous les types de fichiers image (après traitement unpaper si besoin).\\ +
-- lwt [lang] +
-l =  Lang +
-w = With +
-t = Tiff +
-Exemple : +
-  tesseract fichier.tif résultat -lwt fra +
-- l [lang]\\ +
-L'​option -l fonctionne donc SANS Tiff si tesseract est installé avec un  paquet de "​b52"​. +
-Exemple : +
-  tesseract fichier.tif résultat -l fra +
--> pour les utilisateurs de gscan2pdf, tesseract fonctionne mieux qu'​avec les paquets des dépôts Hardy.\\ +
- -> pour les utilisateurs de la ligne de commande, l'​option -lwt résout le problème des fichiers tif compressés (cependant, pour un bon fonctionnement de tesseract en ligne de commande, les fichiers "​*.tiff"​ doivent être renommés "​*.tif"​) +
-</​note>​ +
- +
-===== Utilisation =====+
  
 +Error opening data file /​home/<​repertoire personnel>/​snap/​tesseract/​common/​Error opening data file /​home/<​repertoire personnel>/​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/<​repertoire personnel>/​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 ==== ==== En ligne de commande ====
  
-Tesseract n'​accepte pour le moment que des fichiers au format tif et mdi. Après avoir converti votre fichier grâce à un logiciel //ad hoc//entrez ​la commande suivante :+Dans un [[:​terminal]]Entrez ​la [[:​commande_shell|commande]] suivante :  
 +<​code>​tesseract ~/<​nom_de_l_image.tif>​ <​nom_du_fichier_de_sortie_sans_l_extension>​ -l fra</​code>​ 
 +le fichier de sortie sera au format texte .txt … on perd donc la mise en page!
  
-  ​tesseract ​~/​nomdelimage.tif nom_du_fichier_de_sortie_sans_l_extension+Pour traiter plusieurs fichiers, vous pouvez faire : 
 +<​code>​for i in *.jpg ; do tesseract ​-l fra $i $i.txt;  done;</​code>​
  
-En cas d'​installation ​de la version 2.01, pour la reconnaissance de texte en français :+Pour traiter un pdf image de plusieurs pages : 
 +<​code>​pdftoppm -r 300 -tiff texte.pdf texte 
 +for f in *.tif;do tesseract $f $f -l fra;done 
 +cat *.txt > document.txt</​code>​
  
-  tesseract ~/​nomdelimage.tif nom_du_fichier_de_sortie_sans_l_extension -l fra 
- 
-<​note>​Par défaut, le fichier de sortie est placé dans /​home/​votre_identité (en fin de liste). Pour obtenir ce fichier de sortie sur votre bureau, il faut indiquer le chemin, comme suit : 
-  tesseract ​ ~/​nomdelimage.tif ​ /​home/​votre_identité/​Desktop/​nom_du_fichier_de_sortie_sans_l_extension -l fra 
-</​note>​ 
- 
-<note tip> 
- **Si vous avez installé tesseract au moyen d'un paquet deb de "​b52"​**,​ tesseract fonctionnera en ligne de commande sur les fichiers tif/tiff compressés si vous utilisez l'​option "​-lwt"​ à la place de l'​option "​-l"​. Vous pouvez aussi utiliser gscan2pdf, et effectuer un traitement unpaper (clean up) sur le document avant de lancer la ROC. 
- 
-**Si vous avez installé tesseract par synaptic, apt-get ou aptitude (dépôt universe de Hardy) ou par les deb "​guadausers"​**,​ ou si vous l'avez compilé vous-même, tesseract donnera de mauvais résultats en ligne de commande sur certains fichiers tif/tiff non compressés. Dans ce cas, utilisez gscan2pdf, et effectuez un traitement unpaper (clean up) sur le document avant de lancer la ROC. Si le résultat est médiocre malgré un traitement unpaper préalable, désinstallez tesseract... puis réinstallez-le au moyen d'un paquet de "​b52"​... et réessayez ;​-)</​note>​ 
  
 ==== Les options de langues ==== ==== 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**:
-Si vous avez installé les fichiers pour la reconnaissance de texte en d'​autres langues, vous ajoutez, au lieu de <​code>​-l fra</​code>​+
 <​code>​ <​code>​
 -l eng (pour l'​anglais) -l eng (pour l'​anglais)
 -l deu (pour l'​allemand) -l deu (pour l'​allemand)
 +-l epo (pour l'​espéranto)
 -l spa (pour l'​espagnol) -l spa (pour l'​espagnol)
 -l ita (pour l'​italien) -l ita (pour l'​italien)
Ligne 116: Ligne 75:
 </​code>​ </​code>​
  
 +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 » ==== ==== En mode graphique avec « gscan2pdf » ====
- +Les explications sont données sur [[:​gscan2pdf|la page gscan2pdf]].
- +
-Les explications sont données sur [[:​gscan2pdf|la page gscan2pdf ​de la documentation Ubuntu francophone]]. +
  
 ==== En mode graphique avec XSane ==== ==== En mode graphique avec XSane ====
 +Il est possible d'​utiliser directement tesseract avec l'​application de numérisation [[:XSane]] grâce à l'​adaptateur [[:​xsane2tess]].
  
 +<note tip>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.
  
-Il est possible d'​utiliser tesseract ​avec XSane grâce à l'​adaptateur ​[[xsane2tess]].+</​note>​ 
 +==== En mode graphique ​avec YAGF ==== 
 +Les explications sont données sur [[:yagf|la page YAGF]].
  
-<note tip>Pour réaliser de la ROC sur un document déjà numérisé, on utilise gscan2pdf. Pour réaliser de la ROC sur un document à numériser, on utilise plutôt XSane, dont la fonction de prévisualisation permet de sélectionner des zones de texte.</​note>​+==== En mode graphique avec gimagereader ==== 
 +Les explications sont données ​sur [[:​gimagereader|la page gimagereader]].
  
-==== Pour une reconnaissance optique directe dans Open Office ​Writer de fichiers PNG ou JPG ====+==== 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 lancer l'OCR sur un document PNG (ou JPG) présent sur le bureau ===
  
 == pour les documents PNG == == pour les documents PNG ==
- +  - [[:​tutoriel:​comment_modifier_un_fichier|Créez un fichier texte]] que vous nommez par exemple "​Tesseract-png2lofficewriter"​ : <file bash Tesseract-png2lofficewriter
-Code: +#​!/​bin/​bash 
-<code+cd ~/Bureau 
-  #​!/​bin/​bash +convert *.png sortie.tif ; 
-  cd ~/Bureau +# il est plus prudent de corriger le bpp maximum pour le fichier tiff de sortie (max 8 pour tesseract -> depth = 4) 
-  # ou cd ~/Desktop +# soit convert -depth 4 *.png sortie.tif ; 
-  ​convert *.png sortie.tif ; +tesseract sortie.tif sortie -fra ; 
-  # il est plus prudent de corriger le bpp maximum pour le fichier tiff de sortie (max 8 pour tesseract -> depth = 4) +rm sortie.tif 
-  # soit convert -depth 4 *.png sortie.tif ; +lowriter ​sortie.txt</​file
-  tesseract sortie.tif sortie -lwt fra > sortie.txt ​+  - [[:​tutoriel:​script_shell#​methode_graphique|Rendez ​exécutable]] ce fichier. Vous avez créé un script exécutable..
-  # ou tesseract ​sortie.tif ​sortie -l fra > sortie.txt ; +  ​- Placez-le dans le dossier des [[:​nautilus_scripts|scripts-Nautilus]] ​(ou dans tout autre dossier personnel de scripts, à votre convenance), 
-  ​oowriter ​sortie.txt +  ​- Créez ​un lanceur ou une entrée dans le menu comme indiqué ci-dessous.
-</code> +
- +
-  ​* recopiez ce code dans un fichier texte que vous nommez par exemple "​Tesseract-png2openofficewriter"​ +
-  * rendez ​exécutable ce fichier ​texte (clic droit sur le fichier > propriétés > cochez "​Autoriser l'​exécution du fichier comme un programme"​)... Vous avez créé un script exécutable. +
-  ​* placez-le dans /​home/​.gnome2/​nautilus-scripts ​(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 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"​.
  
-<note tip>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-jpg2openofficewriter"​.</​note>​+=== Créer un lanceur ​pour votre script ​===
  
-=== Créer ​un lanceur ou une entrée dans le menu === +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
-== pour créer un lanceur sur le bureau == +  ​- 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"​), 
-  ​* clic droit sur le bureau "​créer un lanceur"​ +  ​- 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". 
-  * donnez-lui un nom... par exemple : "​Tesseract-png2openofficewriter", ou plus court "​Tesseract-PNG2OOoW+  - Vous pouvez ajouter un commentaire,​ mais ce n'est pas indispensable.
-  ​* pointez ​vers le script en question, c'est à dire le fichier texte "​Tesseract-png2openofficewriter" rendu exéctuable ​(commande : allez chercher votre script par le bouton "​parcourir"​) +
-  ​* vous pouvez utiliser cette icône {{:​applications:​tesseract:​tesseract-ocr-png.jpg}} pour le script "​Tesseract-PNG2OOoW" et celle-ci {{:​applications:​tesseract:​tesseract-ocr-jpg.jpg}} pour le script "​Tesseract-JPG2OOoW". +
-  ​* vous pouvez ajouter un commentaire,​ mais ce n'est pas indispensable. +
- +
-== pour créer une entrée dans le menu == +
-  * clic droit sur "​Applications"​ > Editer les menus +
-  * dans "​Bureautique",​ cliquez sur "​nouvel élément"​. +
-  * donner-lui un nom... par exemple : Tesseract-png2openofficewriter,​ ou plus court "​Tesseract-PNG2OOoW"​ +
-  * pointez vers le script en question (commande : allez chercher votre script par le bouton "​parcourir"​) +
-  * vous pouvez utiliser les mêmes icônes que celles indiquées ci-dessus. +
-  * vous pouvez ajouter un commentaire,​ mais ce n'est pas indispensable.+
  
 === Utilisation === === Utilisation ===
-  ​* enlevez ​du bureau les fichiers PNG sur lesquels vous ne voulez pas faire de ROC/OCR+  ​- Enlevez ​du bureau les fichiers PNG sur lesquels vous ne voulez pas faire de ROC. 
-  ​* placez ​sur le bureau ​un scan de texte imprimé ​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),​ +  ​- 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 optiquemais 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 ​Open Office+  ​- Vous pouvez placer sur le bureau plusieurs fichiers PNG sur lesquels vous voulez procéder à la reconnaissance optiquemais 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 lanceur ​ou l'​entrée du menu... patientez un peu... ​Open Office ​s'​ouvrira avec affichage ​du texte tel qu'il a été reconnu. +  ​- 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 à mettre en page. +  ​- 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-jpg2openofficewriter"​. +
- +
-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 l'es effacer, ou ajouter à la fin du script les lignes : +
-  rm sortie.tif +
-  rm sortie.txt +
- +
-===== Amélioration de la reconnaissance ===== +
- +
- +
-<note important>​La suite est adaptée [[http://​code.google.com/​p/​tesseract-ocr/​wiki/​TrainingTesseract|des explications du site "​tesseract-ocr"​ (google)]] ​en anglais. Il est conseillé d'​aller aussi sur cette page si on peut.</​note>​ +
- +
- +
-==== Description des fichiers de langue ==== +
- +
-Les 4 fichiers //​inttemp,//​ //​normproto//,​ //​pfftable//​ et //​unicharset//​ sont indispensables à la création d'une langue, les autres sont facultatifs. Tous les fichiers devront être préfixés par l'​identifiant de leur langue.{{tesseractfichiers.png|tiré du pdf google dispo dans le répertoire google code}} +
- +
-=== inttemp === +
- +
-stocke les formes géométriques prototypales des différents caractères;​ se génère ​ par l'​exécutable ''​mftraininf'',​ cf plus bas la section apprentissage. +
- +
-=== pffttable === +
- +
-"​number of expected features for each character"​ ? FIXME +
-; se génère ​ par l'​exécutable ''​mftraininf'',​ cf plus bas la section apprentissage. +
-=== normproto === +
-"the character normalization sensitivity prototypes"​ FIXME +
-; se génère ​ par l'​exécutable ''​cftraininf'',​ cf plus bas la section apprentissage. +
-=== unicharset === +
-Ce fichier recense tous les caractères du prototype (1 ligne par caractère),​ainsi que 4 propriétés:​ nombre, majuscule, minuscule, lettre, représenté par 1 hexadécimal:​  +
-<​code>;​ 0 +
-b 3 +
-W 5 +
-7 8</​code>​ +
-par exemple, W est noté 5 (hexa), ce qui correspond à 0101 (binaire), ce qui veut dire: ce n'est pas un nombre, c'est une majuscule, ce n'est pas une minuscule, c'est une lettre. +
- Au lieu d'​être écrit à la main, il peut être généré par: ''​unicharset_extractor''​ (cf plus bas la section apprentissage). +
- +
-=== DangAmbigs === +
-Ce fichier texte sert à signaler les risques de confusion entre caractères:​ il est créé ou augmenté manuellement. +
- +
-<​code>​1 ​      ​m ​      ​2 ​      r n +
-3       i i i   ​1 ​      ​m</​code>​ +
- +
-Ici on signale que le m (1 caractère) peut être confondu avec rn (2 caractères),​ et que iii (3 caractères) peut être confondu avec m (1 caractère). Quelle conclusion en tire tesseract? FIXME +
-=== frequent_words_list === +
-Liste les mots de la langue les plus fréquents (en codage DAWG). On peut rentrer les mots dans un fichier texte UTF8 (1 par ligne), puis les mettre au bon format par: +
-<​code>​wordlist2dawg frequent_words_list freq-dawg</​code>​ +
-=== words_list === +
-Liste les mots moins fréquents. +
-Même principe que ci-dessus:​ +
-<​code>​wordlist2dawg words_list word-dawg</​code>​ +
- +
-=== User-words === +
-Ce fichier est usuellement vide. +
  
 +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 ====
  
-==== Apprentissage ====+ - [[:​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) :<file bash  ~/​.local/​share/​nautilus/​scripts/​OCR>​ 
 +#!/bin/sh
  
-<note important>​À noter qu'il existe pour le français des couples tif/box prêts à l'​emploi[[http://​tesseract-ocr.googlecode.com/​files/​boxtiff-2.01.fra.tar.gz|à télécharger au même endroit que les sources]]. Ils ont probablement été utilisés pour créer les fichiers pour la langue française, mais peuvent donner une idée du contenu de fichiers d'​entrainement (utile pour le point 1 ci-dessous).</note>+mypath="​`pwd`"​ 
 +for filename in "​$@"​ 
 +do 
 +if [ -n "$*,?" ];then 
 +    tesseract "​$mypath/$filename"​ "​${filename%%.*}" ​-fra 
 +fi 
 +done {} 
 +exit 0</file>
  
-On peut faire progresser tesseract en créant des fichiers de langue adaptés aux "​fichiers images"​ sur lesquels on doit réaliser la ROC le plus souvent. Pour cela, procédez comme suit : +- [[:tutoriel:script_shell#​methode_graphique|Rendez exécutable]] ce fichier.
-  ​**Créez un fichier box** : faire reconnaître par Tesseract une image-type avec l'​option box : <​code>​tesseract fontfile.tif fontfile batch.nochop makebox</​code>​ Cette image fontfile.tif (qu'il vous faut créer auparavant) doit contenir tous les signes de la langue sur laquelle vous voulez réaliser la ROC, les plus fréquents au moins 20 fois, les plus rares au moins 5 fois, les autres en moyenne 10 fois, dans le plus grand désordre (c'est à dire en mélangeant les symboles, les lettres, les chiffres et les signes de ponctuation). Renommer fontfile.txt en fontfile.box +
-  - **Corrigez les erreurs de reconnaissance dans le fichier box** : C'est la partie la plus difficile, mais l'​interface graphique tesseractTrainer-fra.py (voir quelques lignes plus loin) peut grandement aider; lorsqu'​on procède "à la main", il faut ouvrir le fichier fontfile.box qui ressemble à :<​code>​ +
-r 814 492 837 516  +
-o 839 483 862 516  +
-s 865 491 878 520  +
-i 101 452 122 483  +
-a 126 453 146 486 +
-</​code>​ Chaque ligne correspond à un caractère Unicode : sa représentation puis les coordonnées de ses extrémités (gauche, bas, droite, haut). On peut modifier les erreurs par remplacement d'une lettre par une autre ou, plus compliqué, quand plusieurs lettres on été prises pour une seule (ou vice versa), fusionner en modifiant les coordonnées,​ par exemple :<​code>,​ 197 496 205 507 +
-, 206 496 214 508</​code>​devient :<​code>​„ 197 496 214 508</​code>​ **Il existe une interface graphique "​tesseractTrainer-fra.py"​** permettant de réaliser ceci plus facilement. Il s'agit d'un programme en python. On peut le télécharger ​[[http://​download.tuxfamily.org/​polyglotte/​scripts/​tesseractTrainer-fra.py.zip|ici]] (sa version anglaise "​tesseractTrainer"​ est [[http://​download.tuxfamily.org/​polyglotte/​scripts/​tesseractTrainer.py.zip|ici]]). Le décompresser et le placer dans le dossier de votre choix... puis via un terminal, se placer dans ce dossier et lancer la commande :<​code>​python tesseractTrainer-fra.py</​code>​ Ne pas laisser une cellule vide (sinon vous ne pourrez plus ouvrir le fichier ​fontfile.box). Pour rapprocher deux lettres qui appartiennent au même mot, mais qui sont apparemment séparées dans l'​interface graphique, modifier leurs coordonnées (droite ou gauche) : la modification ne sera pas immédiatement visualisée,​ mais si vous sauvegardez le fichier box (= sauvegarder l'info box), vous constaterez la modification en chargeant de nouveau le fichier. Veillez à ce que les coordonnées des signes ne se chevauchent pas (surtout droite, gauche, le risque étant plus grand). N.B. : les raccourcis clavier aident beaucoup dès qu'on a bien repéré leur usage ! +
-  - **Réalisez l'​apprentissage** : une fois corrigé le fichier box (une fois celui-ci enregistré si vous utilisez l'​interface graphique "​tesseractTrainer-fra"​),​ passons à l'​apprentissage proprement dit :<​code>​tesseract fontfile.tif junk nobatch box.train</​code>​ qui propose en sortie un fichier fontfile.tr,​ qui décrit géométriquement les différents caractères du tif. **Important** : vérifiez les erreurs dans le terminal. S'il y a des erreurs "​FATALITY",​ alors il est inutile de poursuivre le processus d'​apprentissage tant que le fichier fontfile.box n'est pas corrigé. Une erreur "​FATALITY"​ indique généralement que cette étape a échoué à trouver tous les échantillons pour l'​apprentissange de l'un des caractères répertoriés dans votre fichier fontfile.box. Soit les coordonnées sont erronées, soit il y a quelque chose d'​incorrect dans votre fichier image d'​origine.  +
-  - **Créez votre prototype** : pour cela (pour créer les fichiers de langues destinés au dossier "​tessdata"​),​ rassemblez vos différents apprentissages tif/box (on peut le faire à partir d'un seul fichier, mais la ROC sera de meilleure qualité si on a créé des fichiers pour différentes polices... ce qui suppose d'​avoir répété les opérations **1** à **3** ci-dessus autant de fois que l'on a créé de fichiers "​fontfile.tif"​ pour les différentes polices) : <​code>​mftraining fontfile_1.tr fontfile_2.tr</​code>​ ... ce qui donne en sortie 2 fichiers, inttemp et pffmtable. <​code>​cntraining fontfile_1.tr fontfile_2.tr</​code>​ ... crée lui normproto. Enfin <​code>​unicharset_extractor fontfile_1.box fontfile_2.box</​code>​ ... crée le fichier unicharset. +
-  - **Attribuez un code à votre prototype** : renommez les fichiers inttemp, pfftable, normproto et unicharset en les faisant précéder du code de la langue voulue (pour une langue, on conseille d'​utiliser les normes ISO)... où, s'il s'agit pour vous du français, mais particulièrement adapté aux types de fichiers sur lesquels vous avez habituellement à travailler, vous pouvez utiliser un code comme "​mfra"​ (mon français !). Vous aurez donc renommé les 4 fichiers obtenus comme suit : mfra.inttemp,​ mfra.pfftable,​ mfra.normproto,​ mfra.unicharset. +
-  - **Placez vos fichiers dans tessdata** : copiez ces 4 fichiers mfra.inttemp,​ mfra.pfftable,​ mfra.normproto,​ mfra.unicharset dans le dossier tessdata (en l'​ouvrant si besoin via gksudo nautilus). Selon votre installation de Tesseract, le dossier tessdata se trouve dans /usr/share ou bien dans /​usr/​share/​tesseract-ocr. +
-  - **Complétez avec les autres fichiers nécessaires** : pour compléter, dupliquez dans ce même dossier les fichiers fra.DangAmbigs,​ fra.freq-dawg,​ fra.user-words et fra.word-dawg puis renommer les copies : mfra.DangAmbigs,​ mfra.freq-dawg,​ mfra.user-words et mfra.word-dawg (vous pouvez aussi recréer ces derniers fichiers vous-même, mais c'est un autre travail...). Vous disposerez ainsi dans le dossier tessdata des huit fichiers nécessaires au fonctionnement de votre langue (ou de l'​adaptation de votre langue à votre usage le plus habituel). +
-  - **Réalisez la ROC en utilisant vos nouveaux fichiers** de langue : pour lancer Tesseract en utilisant vos nouveaux fichiers de langue, vous utilisez la commande : <​code>​tesseract fichier.tif fichier -l mfra</​code>​ au lieu de : <​code>​tesseract fichier.tif fichier -l fra</​code>​+
  
 +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 =====
  
-===== Exemple =====+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"​]] .
  
-FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME FIXME+=====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.
  
-FIXME FIXME FIXME FIXME FIXME                                              FIXME FIXME FIXME 
-FIXME FIXME FIXME FIXME                                                                    FIXME 
-FIXME FIXME FIXME                                                                               FIXME FIXME 
 ===== Liens ===== ===== Liens =====
  
-  * [[http://code.google.com/p/​tesseract-ocr|Site officiel]]+  * [[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)]]   * [[http://​www.repairfaq.org/​filipg/​gnu/​tesseract/​html-102_03/​|Documentation pour contribuer au code (en anglais)]]
-  * [[http://​www.geocities.com/​thierryguy/​|Script de conversion et paquet pré-compilé pour Ubuntu]] +  * [[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... 
-  * [[http://​www.groklaw.net/​article.php?​story=20061210115516438|Tuto d'​installation clair en anglais]] +  * [[https://github.com/​tesseract-ocr/tesseract/​wiki/​TrainingTesseract|La page où on parle de l'​apprentissage avec tesseract (anglais)]] 
-  * [[http://​code.google.com/​p/​tesseract-ocr/​|Le site officiel Google code en anglais]] +  * [[:ocr|La page de la documentation francophone Ubuntu sur la reconnaissance optique de caractères]] 
-  * [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=78804|le fil de discussion du forum]] +  * [[https://gist.github.com/​stesie/​42dff3d14fbfac60524f381babb8f81d|script « scan2pdf+ocr.sh » sur le GITHUB]] 
-  * [[http://code.google.com/p/​tesseract-ocr/​wiki/​TrainingTesseract|La page où on parle de l'​apprentissage avec tesseract (anglais)]] +  * [[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.
-  * [[ocr|La page de la documentation francophone Ubuntu sur la reconnaissance optique de caractères]] +
-  * [[http://ubunteros.tuxfamily.org/spip.php?​article148 ​|Le duo scan2pdf ​et tesseract ​sur Linux on the Root (en français)]]+
  
 ---- ----
  
-//​Contributeurs : [[:​utilisateurs:​teolemon|Pierre S.]], [[:​utilisateurs:​Hector]] et [[:​utilisateurs:​Sorbus]].//​+//​Contributeurs : [[:​utilisateurs:​teolemon|Pierre S.]], [[:​utilisateurs:​Hector]] et [[:​utilisateurs:​Sorbus]], [[:​utilisateurs:​eagle08]] : liens.//
  • tesseract-ocr.1367832140.txt.gz
  • Dernière modification: Le 06/05/2013, 11:22
  • par 195.221.155.2