[màj] Interface graphique pour Tesseract : gscan2pdf

ROC en français et autres langues... merci Sorbus ;)
samedi 19 janvier 2008
par  zarer (Christophe Gallaire)
popularité : 3%

Article mis à jour pour la ROC en français et autres langues.

Nécessité fait loi...

Il y a peu, je me suis mis à la recherche d’un bon programme d’OCR (ou ROC en français) : un logiciel de Reconnaissance Optique de Caractères afin de ne pas avoir à recopier plusieurs dizaines de pages pour le boulot. Du texte et rien que du texte, et en français, s’il vous plaît ! avec accents et signes de ponctuation.

Tournant à 100 % sous Linux, il s’agissait donc de trouver une solution native et libre ! 100 % Linux et 100 % libre !

Après avoir scanné mes belles petites feuilles, ni une ni deux, j’ai lancé kooka. Résulat : une vraie calamité ! Des signes cabalistiques en guise de texte !

Les accents sont-ils des agents perturbateurs, du fait que nombre de logiciels d’OCR sont programmés par des anglophones ? Certainement...

Toujours est-il que la solution OCR (ou ROC) pour du texte en français, traité sous Linux, semble être ailleurs. Les résultats obtenus par Tesseract 2.01 sont exemplaires !

Seulement, Tesseract en lignes de commandes n’est certainement pas la solution la plus attrayante !

La bonne surprise vient de gscan2pdf qui offre à Tesseract 2.01 sa belle interface ! Bon, tout n’est pas rose dans cette affaire mais le couple fait des merveilles !

Sous Debian Lenny (testing), Tesseract et gscan2pdf s’installent et cohabitent sans problème, nous le verrons.

Sous Ubuntu 7.10 et Debian Etch, les paquets disponibles dans les dépôts sont obsolètes. Pour obtenir ce que l’on cherche, il est nécessaire de passer aux versions supérieures. L’installation de notre couple Tesseract/gscan2pdf se complique alors quelque peu.

Grâce à la mobilisation des membres de mailing-list de Linux On The Root (b52, Dom, Dzef, Leonux... Merci à tous !), autour de ce qu’il est convenu d’appeler L’affaire OCR, une solution, à grands renforts de paquets .deb et de scripts, a été trouvée. En voici la procédure...

Quelques mots sur Tesseract, le meilleur moteur OCR Libre

Historiquement, Tesseract a été créé en 1985 par Hewlett Packard et abandonné 10 ans plus tard. Tesseract était pourtant l’un des meilleurs logiciels de Reconnaissance Optique de Caractères.

Resté longtemps sans évolution, Tesseract a été rendu public l’année dernière (licence Apache 2.0), après quelques débuggages de la part de Google qui s’occupe dorénavant de son développement.

Pour beaucoup, Tesseract représente une avancée majeure pour le libre dans le domaine de la Reconnaissance Optique de Caractères.

Certains tests ont montré une reconnaissance à 97,74% ! Tesseract-OCR devient donc de fait le meilleur moteur de reconnaissance de caractères libre.

Tesseract est un moteur de reconnaissance simple : il ne fournit pas d’interface graphique utilisateur (GUI), n’effectue pas d’analyse de la mise en page et ne formate pas les résultats qu’il produit.

OCRopus : l’avenir de Tesseract

Tesseract est un projet très prometteur. L’un de ses développements les plus en vue est le projet OCRopus : système d’analyse de document comprenant l’analyse de la mise en page modulaire et la reconnaissance optique de caractères modulaire, le tout en tenant compte de la langue.

Actuellement, le projet OCRopus se base sur le moteur Tesseract, sur RAST pour l’analyse de mise-en-page et sur aspell (ainsi que des outils de tests). Le format de sortie est en HTML. Son installation et son utilisation sont encore un peu "rudes" pour être présentées dans le cours de cet article mais les résultats sont très encourageants.

Sous peu, OCRopus sera en mesure d’apprendre à la volée, depuis une interface web comme celle que connaît déjà Tesseract, et la reconnaissance pourra se faire depuis le format PDF.

La Reconnaissance Optique de Caractères sous Linux semble devenir un domaine majeur de recherche. Les avancées pourraient bien projeter le Libre sur le devant de la scène.

Installation de tesseract-2.01 (Ubuntu 7.10 / Debian Etch)

Les sources

Il est possible d’installer de la version actuelle de Tesseract en récupérant les sources sur la page du projet tesseract-ocr.

La Mailing-List de Linux On The Root a beaucoup échangé au sujet de Tesseract et b52, développeur de XCFA, nous a été d’un très grand secours. Sur une idée de Leonux, b52 nous a fait un joli p’tit paquet qui facilite grandement son installation.

La paquet a été fait à partir des trois archives nécessaires à la version 2.01 disponible sur la page de téléchargement du projet :

a) la version tesseract-2.01.tar.gz  ;

b) l’archive des fichiers de langue française : tesseract-2.00.fra.tar.gz ;

c) l’archive des fichiers de langue anglaise : tesseract-2.00.eng.tar.gz.

Installation du paquet .deb de tesseract_2.01

1. Installation par GDebi. Après récupération sur le bureau du paquet tesseract_2.02-1_i386.deb (version b52 pour linonroot-dev), il est naturellement possible de l’installer avec GDebi par un simple clic droit.

2. Installation via le Terminal.

a) Pour cette installation, ouvrez un Terminal (Applications —> Accessoires —> Terminal).

b) Récupération et installation du paquet tesseract_2.02-1_i386.deb (version b52). Dans le Terminal, tapez les commandes suivantes :

Ubuntu 7.10

wget http://download.tuxfamily.org/xcfau...
dpkg --unpack tesseract_2.02-1_i386.deb
sudo apt-get install -f
[sudo] password for user :

Debian Etch

wget http://download.tuxfamily.org/xcfau...
dpkg --unpack tesseract_2.02-1_i386.deb
su
Mot de passe :
apt-get install -f
exit

Si tout s’est déroulé correctement, tesseract-2.01 est installé sur votre machine avec la reconnaissance des langues de Molière et de Shakespear !

Test de Tesseract 2.01

Bien qu’il soit parfaitement possible de faire une reconnaissance de caractères sur une image aux formats .png, .jpg, .pnm, .gif, .tif et .tiff graphiquement avec gscan2pdf ― en installant une dépendance omise par le développeur et en copiant par ailleurs certains fichiers, nous y reviendrons ―, en lignes de commandes, Tesseract n’accepte que les formats .tiff et .mdi.

Attention ! Dans la commande ci-dessous, il n’y a pas deux lignes mais une seule : les "arguments" sont juste séparés d’un espace.

tesseract chemin/de/votre/image.tif nom_du_fichier_de_sortie_sans_extension -l fra

Conversion et optimisation d’une image

Pour la conversion et l’optimisation des images à traiter en ROC par Tesseract, The Gimp (qu’on ne présente plus !) et ImageMagick font très bien l’affaire !

Reportez-vous à cet excellent howto "ocr with tesseract" (en anglais), aux parties 4 "Prepare Images" & 5 "Convert To Tiff".

Pour comprendre la syntaxe des commandes d’ImageMagick, reportez-vous au manuel (en anglais...très clair !).

Installation de gscan2pdf 0.9.19 (Ubuntu 7.10 / Debian Etch)

gscan2pdf, dans sa version actuelle (0.9.19), offre une belle interface à Tesseract 2.0.1 (version multilingue), bien plus conviviale que la ligne de commandes et extrêmement efficace. Voyez plutôt :

JPEG - 39.4 ko

Jeffrey Ratcliffe, le développeur de gscan2pdf a prévu un paquet .deb pour les version 0.9.19.

L’installation du paquet gscan2pdf_0.9.19_all.deb, sur Ubuntu 7.10 et Debian Etch peut se faire avec l’une ou l’autre des méthodes utilisées pour Tesseract ci-dessus.

Installation de Tessreract et gscan2pdf : le script de Leonux

Leonux, par paresse dit-il (je le crois plutôt plongé à corps perdu dans le bash), a proposé ce petit script d’installation de gscan2pdf 0.9.19 et Tesseract 2.01 pour Ubuntu 7.10 :

# !/bin/sh
## Script d’installation pour la M.-L. linonroot-dev ## par Leonux
## Téléchargement des paquets
wget http://download.tuxfamily.org/xcfau...
wget http://downloads.sourceforge.net/gs...
## Installation de tesseract_2.02-1_i386.deb (b52) et de gscan2pdf
sudo dpkg --unpack tesseract_2.02-1_i386.deb
sudo apt-get install -f
sudo dpkg --unpack gscan2pdf_0.9.19_all.deb
sudo apt-get install -f

Il suffit de copier ce script dans un fichier texte (clic droit sur le bureau : Créer un document —> Fichier vierge) et de le rendre exécutable par un clic droit sur le nouveau fichier (Permissions —> Autoriser l’exécution du fichier comme un programme).

Bugs rencontrés

Après installation des deux programmes, Tesseract et gscan2pdf, faites des tests de ROC avec des images dans différents formats en lançant gscan2pdf depuis le Terminal, en tapant tout simplement : gscan2pdf.

Vous obtiendrez de cette manière de précieuses informations pour la résolution des erreurs.

Images .png, .jpg, ... non traitées en ROC : format invalide

1. Passez un traitement "unpaper" sur l’image et relancez la ROC. unpaper doit certainement repasser l’image au format .tif... Merci Dzef pour cette astuce !

2. Installez toute la série de libtiff depuis Synaptic (Système —> Administration —> Gestionnaire de paquets Synaptic).

Jeffrey Ratcliffe (nous ne lui en tenons aucunement rigueur) a oublié de mettre, parmi les dépendances, libtiff :

I forgot to add the libtiff dependency. That means that if you do not have libtiff installed, you will get garbage. I will fix this soon.

Image non traitée ou seulement en anglais :

Le sujet ouvert sur le forum Ubuntu-FR à propos de l’OCR a permis de régler le bug concernant la reconnaisance du français (et autres langues).

En effet, Sorbus et moi-même avons fait des tests (voir les tests en commentaire) qui ont abouti aux mêmes résultats : en l’état, l’installation ne reconnaît pas réellement le français.

Sorbus a su lire correctement la réponse que Jeffrey Ratcliffe m’avait adressée et a trouvé la parade qui permet de rendre le couple Tesseract/gscan2pdf pleinement efficace en français.

Merci grandement Sorbus !

If tesseract 2.01 is compiled from source, it puts the language files by default in /usr/share/tessdata. When I did the Debian/Ubuntu packaging, I put them in /usr/share/tesseract-ocr/tessdata, and that is where gscan2pdf v0.9.19 looks to see which languages are installed. In the upcoming release, gscan2pdf will look in both paths.

Voici la traduction de Sorbus :

Si tesseract 2.01 est compilé de la source, il met les fichiers de langue par défaut dans /usr/share/tessdata. Quand j’ai fait l’emballage Debian/Ubuntu, je les ai mis dans /usr/share/tesseract-ocr/tessdata et c’est où gscan2pdf v0.9.19 regarde pour voir quelles langues sont installées. Dans la sortie prochaine, gscan2pdf regardera dans les deux chemins.

Autrement dit, si vous obtenez le message d’erreur suivant :

Unable to load unicharset file /usr/share/tessdata/fra.unicharset

Unable to load unicharset file /usr/share/tessdata/eng.unicharset

ou le message d’erreur suivant :

Unable to load unicharset file /usr/local/share/tessdata/eng.unicharset

Unable to load unicharset file /usr/local/share/tessdata/fra.unicharset

A. Vous n’avez pas installé Tesseract avec le paquet de b52 (proposé ici)

Alors, dans ce cas, il suffit de télécharger les fichiers de langue et de les placer dans /usr/share/tessdata comme suit :

wget http://tesseract-ocr.googlecode.com...
tar -zxvf tesseract-2.00.eng.tar.gz
cd tessdata
sudo cp * /usr/share/tessdata (ou /usr/local/share/tessdata selon l’erreur)
sudo rm -r tessdata
sudo rm tesseract-2.00.eng.tar.gz

Répétez la même procédure avec tesseract-2.00.fra.tar.gz

wget http://tesseract-ocr.googlecode.com...
...

Pour Debian Etch : Après la commande ’cd’ identifiez-vous en tant que ’root’ avec ’su’ puis enchaîner les commandes sans ’sudo’.

Merci Dom !

B. Vous avez installé Tesseract avec le paquet de b52 (proposé ici)

Si vous avez installé Tesseract avec le paquet de b52, il suffit de créer deux liens symboliques [solution très élégante suggérée par gldx] pour résoudre le problème de la reconnaissance de la langue française :

1. le premier avec les fichiers du répertoire /usr/local/share/tessdata vers /usr/share ou inversement selon le message d’erreur que vous obtenez ;

2. le deuxième vers le répertoire /usr/share/tesseract-ocr (qu’il faut créer) dans lequel gscan2pdf cherche les fichiers de langue :

Pour Ubuntu

sudo ln -s /usr/share/tessdata /usr/local/share (ou inversement)
sudo mkdir /usr/share/tesseract-ocr
sudo ln -s /usr/share/tessdata /usr/share/tesseract-ocr

Pour Debian Etch

su
Mot de passe :
ln -s /usr/share/tessdata /usr/local/share (ou inversement)
mkdir /usr/share/tesseract-ocr
ln -s /usr/share/tessdata /usr/share/tesseract-ocr
exit

Normalement, la création de ces deux liens symboliques avec le répertoire /tessdata contenant les fichiers de langue devrait régler les problèmes de ROC.

Et voilà le résultat :

PNG - 16.4 ko

Merci Sorbus !

Bug d’affichage : langue anglaise séléctionnée

Contrairement à ce que nous pensions, sur Ubuntu 7.10 et Debian Etch, la reconnaissance de la langue française n’est pas active s’il ne vous est pas possible de la sélectionner.

Autrement dit, si la seule langue disponible est l’anglais, comme sur la capture ci-dessous, cela signifie tout bonnement que la ROC en français ou dans d’autres langues que l’anglais n’est pas active !

PNG - 16.5 ko

Installation sous Debian Lenny

Ben... il n’y a rien à faire ! Pour l’installation, utilisez vos outils habituels, apt-get, Synaptic, ... Et admirez le résultat :

JPEG - 42.9 ko

Certains tests (en anglais) ont montré qu’une image de 400 dpi donnait des résultats plus que décents !

Installation & ROC sous ArchLinux

Frédéric Bezies a adapté l’article ci-dessus pour installer le duo de choc gscan2pdf+Tesseract sous ArchLinux. Reportez-vous à son billet pour plus de précisions.

Pour la reconnaissance du français (et autres langues) sous ArchLinux, voir le commentaire de FredBezies ci-dessous ou son billet sur la gestion des langues.

Merci Fred pour les tests et les infos !

Installation & ROC sous Fedora Core 8

C’est à Leonux que l’on doit cette installation et les tests.

Installez les paquets suivants

  • tesseract 2.01-1.fc8
  • tesseract-langpack-fr.noarch 2.00-2.fc8
  • gscan2pdf.noarch 0.9.19-1.fc8

Gestion des langues

Il faut créer le répertoire /usr/share/tesseract-ocr puis le lien symbolique :

# mkdir /usr/share/tesseract-ocr
# ln -s /usr/share/tesseract/tessdata /usr/share/tesseract-ocr/

Installation & ROC sous Mandriva 2008

L’installation et les tests effectués par Ulhume sont tout aussi concluants.

L’installation est assez simple :

# urpmi tesseract gscan2pdf

Pour les détails de l’installation et des tests reportez-vous à l’excellent billet d’Ulhume.

Merci Ulhume pour ce retour et pour ces tests rondement menés.

En conclusion...

Comme l’indique le premier message d’erreur, les fichiers du répertoire /tessdata devraient se trouver dans /usr/local/share.

Basiquement, si l’on reprend ce que dit Jeffrey Ratcliffe, les fichiers du répertoire /tessdata sont bien là où ils devraient être (lol) :

If tesseract 2.01 is compiled from source, it puts the language files by default in /usr/share/tessdata.

Pourtant, ils sont réclamés en /usr/local/share... Et c’est de là que vient tout le problème.

Le développeur de gscan2pdf les a placés quant à lui dans /usr/share/tesseract-ocr...

En résumé, trois localisations différentes de /tessdata :

1. par défaut : /usr/share.

2. celle que l’on trouve sur Ubuntu (voir les commentaires de Sorbus, entre autres) : /usr/local/share.

3. celle de gscan2pdf développée par Jeffrey Ratcliffe : /usr/share/tesseract-ocr.

Pour simplifier l’installation, c’est cela qu’il faudrait changer, unifier.

Merci à tous pour vos commentaires, vos tests, vos suggestions...


Edit : Un sujet est ouvert à propos de l’OCR sous Linux sur le forum Ubuntu-Fr.

De nombreuses solutions ont été testées et les résultats obtenus vont dans le même sens : Tesseract !

Sorbus a rencontré quelques difficultés avec son scanner. L’installation de certaines dépendances (djvulibre-bin, unpaper, ...) semble les avoir toutes réglées.

Comme le dit très justement Sorbus : "il reste à trouver quelles sont les meilleurs options pour une reconnaissance optimale. Puis à travailler sur l’amélioration/l’apprentissage..."


Commentaires  forum ferme

Logo de wep
samedi 4 octobre 2008 à 14h44 - par  wep

D’abord un commentaire : merci pour cette page ; j’avais renoncé à faire de l’OCR sous Linux...


Ce message est juste mon retour d’expérience en utilisant les infos de cette page mais sous Kubuntu Hardy 8.04.1, pour ceux qui seraient tentés.

1-) Installation :
via synaptic, installation de ces 2 paquets :

- tesseract-ocr

à noter : synaptic propose d’installer en même temps tesseract-ocr-de
j’ai validé, puis j’ai ajouté le paquet :
tesseract-ocr-fr
et ’dévalidé’ le paquet tesseract-ocr-de

- gscan2pdf (synaptic associe à ce paquet un lot important de paquets secondaires ;
j’ai bien sûr validé le tout)

les installations ne durent que quelques dizaines de secondes

2-) Test en ligne de commande :
je suis parti d’une image scannée en jpeg de 1600x2200 pixels mais de qualité très moyenne (vieux bouquin)
tesseract ne traitant que du tiff, j’ai donc préalabklement converti mon image jpeg en tiff (gimp)

Temps écoulé pour l’OCR : 4 secondes ; le fichier texte fait environ : 2000 caractères
l’image d’origine fait environ 40 lignes de 60 signes, plus des lignes blanches,...
ce qui est une image de page moyenne de livre moyen.

La mise en page est perdue, mais le texte est reconnu à 99% (une vingtaine de corrections à faire) ;
je n’avais jamais obtenu de tels résultats avec d’autres logiciels.
Chaque ligne ’écran’ correspond à une ligne physique papier (donc avec une fin de ligne)
Les caractères accentués sont particulièrement bien traités.

3) Essai de gscan2pdf sur image au format tiff :
j’obtiens le message : "Attention, il manque des packages : le frontend scanadf n’est pas disponible. L’enregistrement au format DjVu requiert djvulibre-bin, l’outil unpaper est manquant"
mais le prog se lance (en français) (**)
résultats identiques au test en ligne.

(**) via synaptic, j’ai finalement installé ces 2 paquetages [unpaper et djvulibre-bin] ;
je ne sais pas s’ils ont réellement un intérêt ici...

4-) Essai de gscan2pdf en scannage direct à partir du logiciel lui-même :
faire des réglages pour scanner en 200 dpi (ou >) pour avoir un bon compromis entre vitesse/qualité OCR.

Encore merci,

Logo de Laurent
dimanche 24 février 2008 à 15h57 - par  Laurent

Merci Zazer de ta réponse, je réponds moi-même un peu tard j’ai été pris par mon job.

En fait je suis sous Mac Os 10.4 très souvent, mais après être passé par Linux il y a quelques années (Suse principalement, en raison de mon matériel à l’époque). Certains soft linux me manquent et le fonctionnement global présentent certains avantages que Tiger n’a pas malgré toutes les qualités que je lui trouve.
J’ai récemment installé KDE par dessus OsX et je passe de temps en temps vers cet autre bureau, mais je suis fondamentalement à la recherche d’une distrib que je pourrais installer en double boot et utiliser régulièrement.

Je fonctionne également sous Xandros (qui est un dérivé Debian), du fait de mon acquisition récente d’un eeepc mais je ne pense pas que l’installation de Tesseract sur cette machine soit intéressante du fait de la faible puissance de l’engin. As-tu une idée justement de la consommation de ressources lors de reconnaissances comme celles que tu donnes en exemple ? Rien que le maniement d’une image en 400ppi ça doit déjà engager quelques billes ?

Pour ppi/dpi j’essaie moi-même de m’y retrouver, je n’arrive pas à choper un apn sur lequel on puisse régler ce facteur qui est calé à 72ppi. Mais bon je continue, je suis potentiellement un très gros utilisateur du couple scan/ocr donc ça vaut le coup d’y passer un peu de temps.

Logo de zarer (Christophe Gallaire)
lundi 18 février 2008 à 19h32 - par  zarer (Christophe Gallaire)

Salut Laurent,

installer Lenny. Si j’ai bien compris c’est la voie la plus simple pour procéder à l’installation de Tesseract/gscan2pdf.

Ben... je ne sais pas trop quoi te répondre. Je suis sous Lenny et il est bien vrai qu’aujourd’hui c’est la solution la plus directe (via les dépôts). Reste que l’installation de notre dernier paquet debian pour Tesseract ne complique pas grandement l’installation. Pour ceux qui tournent sur Debian et Debian-like.

Merci pour tes éclaircissement sur "ppi/dpi". N’hésite pas à venir poster si tu as des précisions à apporter sur le sujet...

Tiens-nous au courant de ton installation, si tu migres pour Lenny (ou autre d’ailleurs). Au fait, tu es sous quoi en ce moment ?

@+

Logo de Laurent
dimanche 17 février 2008 à 15h54 - par  Laurent

Merci beaucoup pour ces indications, je suis moi-même à la recherche d’une solution ocr sous linux depuis quelques temps et tout cela me convainc d’installer Lenny. Si j’ai bien compris c’est la voie la plus simple pour procéder à l’installation de Tesseract/gscan2pdf.

J’ai remarqué qu’il est souvent question de dpi lorsque la qualité des images scannées est évoquée. Il me semble qu’il s’agit plutôt de ppi, pixel par pouce en français, alors que dpi, points par pouce, réfère à la finesse d’impression des imprimantes.

Je vous signale cela car je suis entrain d’essayer d’établir à peu près quel type de prise avec un appareil photo numérique et de traitement complémentaire pourraient convenir pour fournir du 400ppi à Tesseract.

Logo de zarer (Christophe Gallaire)
mercredi 6 février 2008 à 14h33 - par  zarer (Christophe Gallaire)

Bonjour Pierre,

La perfection n’est pas de ce monde, entend-on dire çà et là... POurtant, à lire les résultats obtenus par les uns et les autres, on en approche avec Tesseract ! Les tiens paraissent bien ternes... Es-tu certain d’avoir bien installé les fichiers de langue ? Un lien symbolique est nécessaire si tu passes par les sources. Et la qualité de ton image, quelle est-elle ?

Merci pour le retour.

Logo de Pierre
mercredi 6 février 2008 à 14h27 - par  Pierre

Merci pour cet article très instructif. J’ai essayé l’installation sur une Fedora core 7 avec yum (tesseract + gscan2pdf), ça marche aussi. J’ai testé le résultat avec une image composée de deux textes assemblés. C’est loin d’être parfait < 50% de reconnaissance, mais bon c’est un début.

Logo de zarer
mercredi 30 janvier 2008 à 17h36 - par  zarer

Merci b52 pour ce nouveau paquet...

Je suis en train de faire un nouvel article sur Tesseract mais je suis un peu "charrette" en ce moment ! Trop de boulot ! Je vais me dépêcher...

@+

Logo de b52 (Claude)
mercredi 30 janvier 2008 à 16h07 - par  b52 (Claude)

Salut les gars,

Un paquet récent inclus le lien dès l’installation :

http://download.tuxfamily.org/xcfau...

pour le petit dernier :

tesseract_2.02-3_i386.deb

Logo de zarer (Christophe Gallaire)
lundi 21 janvier 2008 à 07h58 - par  zarer (Christophe Gallaire)

Salut Sorbus,

Dans son paquet .deb, b52 n’a ajouté que les fichiers pour le français.

Bon bah voilà, je crois que l’installation et la ROC en français (et autres langues) avec ce duo de choc est à peu près efficace.

J’ai modifié l’article avec nos dernières "découvertes".

Tu sais, pour ta participation sur la mailing-list... une inscription n’oblige à rien, tu réponds à ce que tu veux ou peux...

@+

Logo de Sorbus
dimanche 20 janvier 2008 à 21h55 - par  Sorbus

Avec ton installation de tesseract, tu n’as qu’un seul répertoire /tessdata. Lequel ne contient pas les fichiers de langue française, n’est-ce pas ?

C’est exact. Il faut que je les ajoute. Pour le français. Et de même pour les autres langues. Ce qui est assez simple comme suit :

tar -zxvf tesseract-2.00.fra.tar.gz

cd tessdata

sudo cp * /usr/local/share/tessdata

Et dans ce cas, un seul lien symbolique suffit.
(pas de /usr/share/tessdata)

Et avec le paquet de b52... pas besoin d’installer les fichiers de langue française (est-ce qu’il inclut aussi les autres langues pour ceux que ça intéresse ?)... et deux liens symboliques à créer.

C’est clair... Et bien d’accord avec tes conclusions de l’avant dernier message... Pour simplifier les affaires, il faudrait que soit unifiée la localisation de tessdata.

Logo de zarer (Christophe Gallaire)
dimanche 20 janvier 2008 à 20h26 - par  zarer (Christophe Gallaire)

@ Sorbus,

Avec ton installation de tesseract, tu n’as qu’un seul répertoire /tessdata. Lequel ne contient pas les fichiers de langue française, n’est-ce pas ? Par défaut, Tesseract 2.01 ne contient pas le français...

Dans ce cas, pour tous les utilisateurs qui auront installé comme toi, il n’y a rien à modifier dans cet article.

Par contre, par le paquet de b52, il n’est pas nécessaire de reprendre le paquet de langue française. Dans ce cas, seuls deux liens suffisent.

Tu me suis ?

@+

Logo de zarer (Christophe Gallaire)
dimanche 20 janvier 2008 à 20h14 - par  zarer (Christophe Gallaire)

Salut Sorbus et yodagoo,

@yodagoo : merci pour ta confimation.

@Sorbus,

À l’installation, je n’ai qu’un répertoire /usr/share/tessdata. Ce que montre la commande ’locate’ dans mon commentaire précédent.

Comme l’indique le premier message d’erreur, ces fichiers devraient se trouver dans /usr/local/share.

Et basiquement, si l’on reprend ce que dit Jeffrey, c’est là où ils sont qu’ils devraient être (lol) : "If tesseract 2.01 is compiled from source, it puts the language files by default in /usr/share/tessdata."

Pourtant, ils sont réclamés en /usr/local/share, c’est là qu’est le problème, non ?

Donc, premier lien :

ln -s /usr/share/tessdata /usr/local/share/

Le second lien, c’est celui que tous nous avons fait, après création du /tesseract-ocr :

ln -s /usr/share/tessdata/ /usr/share/tesseract-ocr/

Cela parce que Jeffrey Ratcliffe les a placés là...

Voili voilou...

Donc, en résumé, trois localisations de /tessdata :

1. par défaut : /usr/share/.

2. celle que tu as (et d’autres aussi) : /usr/local/share/.

3. celle de Jeffrey Ratcliffe : /usr/share/tesseract-ocr/

C’est cela qu’il faudra changer, unifier.

@+

Logo de Sorbus
dimanche 20 janvier 2008 à 18h38 - par  Sorbus

Salut,
J’essaye d’apporter quelques éléments.
Nous avons en fait deux modes d’installation de tesseract 2.01

1°) Le paquet de b52

2°) Celui qui est indiqué dans la doc Ubuntu (et que j’ai suivi, il y a plus de deux mois) :

cd //répertoire où se trouve l’archive//

tar -zxvf tesseract-2.01.tar.gz

cd tesseract-2.01

./configure

make

sudo make install

Je note qu’avec cette méthode, il y a sous Ubuntu 7.10 un dossier /usr/local/share/tessdata qui contient non seulement les fichiers de langues que j’ai installé par la suite avec les "tesseract-2.00.fra.tar.gz", (idem pour l’allemand et l’anglais que j’ai aussi installés ainsi)... mais d’autres fichiers de langues (d’une autre nature, qui n’ont pas le même type de noms) pour des langues dont je n’ai pas installé les "tesseract-2.00.xxx.tar.gz", comme l’italien ou l’espagnol.

Je pense donc que les langues fonctionnent lorsque tesseract a accès à la fois aux fichiers de langues "basiques" installés par défaut dans /usr/local/share/tessdata
et aux fichiers complémentaires installés par les "tesseract-2.00.xxx.tar.gz"

Si on place ces derniers dans un autre dossier tessdata /usr/share/tessdata... (paquet de b52),

il faut qu’il y ait un double lien symbolique pour que depuis /usr/share/tesseract-ocr/tessdata, tesseract puisse voir aussi bien les fichiers de base qui sont dans /usr/local/share/tessdata et les compléments "tesseract-2.00.xxx.tar.gz" qui sont dans /usr/share/tessdata

Je dis peut-être des bêtises... et je suis imprécis, car j’écris là depuis mon pc portable (et je suis loin de mon fixe où tout ceci est installé).

Mais zarer et yodagoo, vous pouvez le vérifier. N’avez vous pas deux dossiers tessdata (en durs... non seulement liens symboliques) :

- l’un dans /usr/share

- l’autre dans /usr/local/share

 ?

Si oui, que contiennent-ils

Logo de yodagoo
dimanche 20 janvier 2008 à 18h14 - par  yodagoo

Bonjour

je reviens vers vous pour confirmer ce que dit zarer
J’ai dû moi aussi créer tesseract-ocr dans les 2 répertoires /usr/local/share et /usr/share pour que ce la fonctionne.
J’avais commencé par le /usr/local/share et là toujours le bug "anglais"
J’ai fait la même manoeuvre avec l’autre chemin et cela fonctionne bien et même plus que bien, puisqu’avant cela fonctionnait, mais seulement après avoir passé le fichier à unpaper, et les lettres mal formées étaient mal reconnues (exemple un e à la boucle mal fermée était reconnu comme un c).
Maintenant c’est impeccable, tout est reconnu comme il faut !

Logo de zarer (Christophe Gallaire)
dimanche 20 janvier 2008 à 17h11 - par  zarer (Christophe Gallaire)

Salut Sorbus,

Je viens de refaire complètement l’installation. Comme on peut s’y attendre : pas de reconnaissance possible. Les fichiers de langue ne sont pas trouvés.

Je lance une recherche de /tessdata :

locate tessdata

/usr/share/tessdata

Je lance gscan2pdf via le Terminal pour une reconnaissance :

gscan2pdf

Unable to load unicharset file /usr/local/share/tessdata/fra.unicharset
Process 13430 exited.
*** unhandled exception in callback :
*** Error : cannot open /tmp/s5rtfgqCfn/yTcjsGuF7a.txt
*** ignoring at /usr/bin/gscan2pdf line 1030.

Je fais donc des liens symboliques pour /tessdata sagement comme il me le demande dans /usr/local/share/tessdata :

ln -s /usr/share/tessdata /usr/local/share/

J’ai maintenant la reconnaissance en anglais.

Pour le français,

mkdir /usr/share/tesseract-ocr

ln -s /usr/share/tessdata/ /usr/share/tesseract-ocr/

Cette nouvelle installation a été faite à partir du paquet de b52 qui contient les fichiers de langue française... Sur mon Ubuntu Studio, il n’est donc pas nécessaire de récupérer d’autres fichiers.

Par contre, par deux fois je dois créer des liens symboliques, à deux endroits distincts : /usr/local/share et /usr/share/tesseract-ocr.

Et tout marche nickel...

Donc, il est utile de laisser tout ce qui est après :

Autrement dit, si le message d’erreur est du type :

Au cas où l’installation n’a pas été faite à partir du paquet de b52.

Par contre, j’ai besoin d’une confirmation pour la création à deux endroits des liens symboliques à partir du paquet de b52.

Logo de Sorbus
dimanche 20 janvier 2008 à 15h46 - par  Sorbus

@zarer...
Non, j’ai relu le didacticiel... C’est bon. C’est juste une question de transition ou d’emplacement des différentes infos sur les langues.
En gros :

1°) Les éléments utiles pour que les fichiers langues soient bien installés.

2°) Le lien symbolique pour que gscan2pdf les trouve là où ils sont (variable selon les distributions).

Logo de Sorbus
dimanche 20 janvier 2008 à 15h33 - par  Sorbus

Salut les amis.

Sympa cette collaboration : Debian Lenny, Debian Etch, Ubuntu Gutsy (7.10), Archlinux, Fedora Core 8, Mandriva 2008... Continuons ;-)

Merci à gldx : le lien symbolique est en effet bien plus judicieux (question de place, mais aussi en cas d’ajout postérieur de fichiers de langues).

@Ulhume
Sous Mandriva, pour les langues, c’est bon ? Ou faut-il aussi créer un lien symbolique ?

@leonux

ça te dirait de nous rejoindre dans la M-L linonroot-dev ? prévoir un grand nombre de courriels à réceptionner ;)

Je crains un peu ça en effet... Question d’équilibre entre le temps passé à guider de nouveaux venus sous Linux... les contributions à la doc. Ubuntu... Et puis je fonctionne ponctuellement sur des questions qui m’intéressent davantage comme celle qui est l’objet de ce didacticiel.

Mais je viens de relire la page de présentation. J’apprécie cet esprit. Si vous acceptez que mes contributions ne soient que ponctuelles et épisodiques (et que je ne lise pas tout l’abondant courriel), je veux bien vous rejoindre... Mais si cette contribution trop épisodique perturbe la cohésion et le fonctionnement de votre équipe, ne m’intégrez pas... Je resterai quoi qu’il en soit un heureux sympathisant ;-)

Dernière chose pour zarer et la mise à jour "langues" de ce didacticiel... Il me semble qu’il faudrait revoir un peu ce qui est dit après le message de Jeffrey Radcliffe et sa traduction (qui soit dit en passant est le produit relativement correct d’un traducteur en ligne), c’est à dire à partir de là :

Autrement dit, si le message d’erreur est du type :

Il me semble (j’avais bien essayé de lancer gscan2pdf dans un terminal pour voir) que je n’avais pas de message d’erreur dans le terminal. Il manquait cependant le lien symbolique pour que gscan2pdf trouve bien les fichiers langues...

Les messages qui précèdent donnent les indications de façon simple (avec les petites variantes selon les distributions.) Les éléments utiles issus de ces messages auraient leur place à l’emplacement indiqué du didacticiel.

Désolé pour ce message un peu long.

Logo de dzef
dimanche 20 janvier 2008 à 14h51 - par  dzef

Salut zarer,

Super article ! Un modèle d’école ! Bravo.

Logo de Ulhume
dimanche 20 janvier 2008 à 12h42 - par  Ulhume

Salutations :)

Bon, test effectué sous Mandriva 2008.0, le tout s’installe sans grand problème via :
# urpmi tesseract gscan2pdf

Ca gscan a quelques soucis dans son IHM avec les accents (on dirait qu’il est compilé en ISO...) mais pour le fonctionnel, ça passe.

Je confirme que 400dpi produit d’excellents résultats mais il faut tout de même bien retravailler les images (découper les multi-colonnes et les images). J’attends avec impatience l’aboutissement du nouveau projet pour ne plus avoir à jouer du gimp avant numérisation.

En tout cas merci pour cet article et cet outil que je ne connaissais pas mais que je ne vais plus cesser d’utiliser !!

Logo de leonux
dimanche 20 janvier 2008 à 09h08 - par  leonux

Salut les ami(e)s ;)

Bon, on va continuer à faire le tour du test de ce tuto ;)

Voilà ce que ça donne sous Fedora Core 8

les paquets :

tesseract 2.01-1.fc8
tesseract-langpack-fr.noarch 2.00-2.fc8
gscan2pdf.noarch 0.9.19-1.fc8

le lien symbolique :

créer le répertoire comme les copains :

# mkdir /usr/share/tesseract-ocr

créer le lien symbolique :

# ln -s /usr/share/tesseract/tessdata /usr/share/tesseract-ocr/

Navigation

Articles de la rubrique