L’OCR sous les distributions GNU/Linux ? Merci xsane2tess et tesseract :)

Si vous avez besoin de récupérer un texte dactylographié, il existe des logiciels dit d’OCR (Optical Character Recognition) ou Reconnaissance Optique de Caractère, il existe un excellent moteur libre qui s’appelle Tesseract.

Il m’arrive d’utiliser un script pour automatiser le lancement de tesseract, histoire d’éviter la ligne de commande. C’est XSane2tess dont j’ai jadis parlé en… octobre 2011 🙂

Je maintiens toujours le script sur AUR, trouvé via une page sur le wiki d’ubuntu-fr.org. Un simple script qu’il est très simple d’installer dans Xsane. Je vous renvoie à l’article d’octobre 2011 pour les détails techniques.

Continuer la lecture de « L’OCR sous les distributions GNU/Linux ? Merci xsane2tess et tesseract 🙂 »

XSane2Tess : ou comment marier Tesseract et XSane.

Il y a plus d’un an, je parlais du logiciel « gImageReader », bien pratique pour avoir une interface « sociale » pour l’outil d’OCR Tesseract.

Cependant, le logiciel est depuis quelques temps au point mort (la dernière modification datant d’août dernier).

Et comme je suis le mainteneur du paquet sur AUR, j’ai reçu récemment un message m’informant que le logiciel ne se lançait plus du tout.

Could not load GTK modules: /usr/lib/python2.7/site-packages/poppler.so: undefined symbol: poppler_page_render_to_pixbuf_for_printing

Après quelques recherches, le bug se trouvant lié à poppler, j’ai rapporté l’information au développeur de gImageReader pour qu’un correctif soit appliqué.

Cependant, ayant parfois besoin de récupérer des textes via l’OCR (et tesseract effectuant un travail extraordinaire dans ce domaine), j’ai décidé d’adopter le paquet xsane2tess tout en le mettant à jour.

XSane2tess, c’est un petit script qui est bien pratique, et dont un guide bien pratique se trouve sur la documentation d’ubuntu-fr.

Voici les réglages à appliquer pour utiliser xsane2tess. Les captures d’écran qui suivent sont basées sur XSane 0.998.

Première étape, après avoir installé le paquet et lancé Xsane, on va dans Préférences / Configuration / OCR.

Et dans la ligne « Commande OCR », on insère :


xsane2tess -l fra

xsane2tess 01

fra étant pour le français, eng pour l’anglais, deu pour l’allemand, etc… La liste des langues supportées se trouve dans /usr/share/tessdata/.

On ferme le panneau de configuration. Ensuite, pour lancer une OCR, on choisit les options suivante : pour le type, on choisit « TEXT », on prend une numérisation en « gris » et pour la résolution, on choisit 300.

xsane2tess 02

Ensuite, on acquiert l’aperçu, on sélectionne la partie à travailler, et on clique sur Numériser. Le résultat est disponible dans le nom du fichier indiqué à coté de l’icone en forme de disquette.

C’est moins « facile » qu’avec gImageReader, mais au moins, cela fonctionne encore 😉

gImageReader : une interface légère pour Tesseract.

Il est parfois utile d’avoir un outil d’OCR. Il existe le très bon et très puissant moteur tesseract.

Cependant, toute sa puissance est exploitable uniquement en ligne de commande :(. Il y a bien un outil comme gscan2pdf, mais il demande un nombre assez important de dépendances lié à Perl.

Même si à une époque lointaine, je l’avais encensé 🙂

En faisant quelques recherches, je suis tombé sur gImageReader, un outil en python, n’ayant que peu de dépendances, en dehors de python et de tesseract :

imagemagick pycairo pygtk python-gtkspell

En m’inspirant de PKGBUILDs déjà existants pour contourner un problème de compilation, j’ai créé un paquet disponible sur AUR : gimagereader.

Le seul hic, c’est qu’il faut définir le chemin pour accéder aux dictionnaires de tesseract. Sur mon archlinux, ces derniers sont à l’endroit suivant :

/usr/share/tessdata

Configuration de gImageReader 0.6

Bien que ce ne soit qu’une version 0.6, l’interaction avec le moteur de tesseract est simple et le résultat (pour peu qu’on ait une image numérisée de qualité – minimum 300 ppp) donne de très bons résultats.

gImageReader 0.6 en action

Un bug cosmétique, c’est que le logiciel ne semble pas apprécier un système en UTF-8 🙂

En tout cas, c’est un logiciel sympa, le genre d’outil dont on a besoin de temps à autres et dont on est content d’avoir sous la souris 😉

Petit message pour Devil505 : libre à toi de t’inspirer de mon PKGBUILD pour faire un Frugalbuild 😉

Comment avoir toutes les langues dans l’OCR Tesseract.

Dans un précédent article, j’avais parlé de l’excellentissime Tesseract et d’une interface qui est bien pratique, gscan2pdf.

Cependant, la reconnaissance ne se faisait que pour l’anglais.

Voici donc les commandes à appliquer (en root ou avec sudo) pour avoir le choix des langues dans gscan2pdf :

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

Et maintenant, c’est magique 😉