Commentaires 2009-11-20 Comment je pratique l'OCR sous Linux

Différence entre les versions 104 et version actuelle

Résumé : Retour à 2010-02-05 19:23 UTC

Pas de diff disponible.

En fait il y a bien un moyen de faire fonctionner Tesseract avec l'interface graphique de XSane (qui sert à scanner), en utilisant le paquet xsane2tess (voir la doc d'Ubuntu: http://doc.ubuntu-fr.org/xsane2tess)

-- reprocessed 2009-11-20 15:13 UTC


Il y a déjà un p'tit bout de temps que Tesseract est utilisable avec une interface graphique : http://ubunteros.tuxfamily.org/spip.php?article148

L'explication sur l'utilisation du paquet "b52" pour Tesseract + gscan2pdf : http://ubunteros.tuxfamily.org/spip.php?article160

Pour un très bon complément, voir l'article sur gscan2pdf de Sorbus sur le wiki d'Ubuntu : http://doc.ubuntu-fr.org/gscan2pdf

En ce moment, j'utilise une nouvelle version du "paquet b52" de tesseract, compilation assurée par Claude Bulin, le développeur de XCFA. Voir l'article de Sorbus pour comprendre la raison d'être de ce paquet : http://doc.ubuntu-fr.org/tesseract-ocr

La dernière version du "paquet b52" est disponible ici : http://download.tuxfamily.org/xcfaudio/tesseract/All%20languages/i386/tesseract_2.03-4_i386.deb

-- Christophe 2009-11-20 15:36 UTC


J'avais bien vu ces pages sur le paquet "b52", mais je les trouvais assez confuses et je me demandais si elles étaient toujours d'actualité; sur la Debian Lenny, tesseract (version 2.03 également) accepte par défaut les tiffs, compressés ou non, donc je ne comprenais pas vraiment l'intérêt.

gscan2pdf, je l'installerai quand j'aurais fait un peu de ménage, ma partition /usr est pleine... :-)

Par contre, quelqu'un a-t-il tenté l'expérience de l'«entraînement» de tesseract ?

-- Desidia 2009-11-20 18:47 UTC


«Il fonctionne en ligne de commande» Moi je trouve que c'est un avantage.

-- erdnaxeli 2009-11-20 21:12 UTC


Le monde du libre a pris beaucoup de retard dans le domaine des OCR. C'est d'ailleurs très étonnant de voir que les solutions libres de GED sont performantes, mais incomplètes du fait de l'absence d'un serveur d'OCR.

-- Petit Scarabée 2009-11-20 23:58 UTC


@erdnaxeli

«Il fonctionne en ligne de commande» Moi je trouve que c'est un avantage.

Bien sûr, c'est pour ça que j'avais ajouté les smilies. Même pour scanner le document, s'il s'agit d'une feuille A4 et que je dois en saisir la totalité, je préfère taper "scanimage" dans mon terminal plutôt que d'ouvrir xscan.

-- Desidia 2009-11-21 08:39 UTC


Malheureusement les pages mentionnées sont encore et toujours d'actualité, tant sur Ubuntu que sous Debian. Je suis en Testing/Sid et j'ai les mêmes problèmes que sur les gens d'Ubuntu.

Je ne vois tu vois de la confusion dans les pages citées ! Normal, je suis l'auteur des deux premières et Sorbus intervient régulièrement sur la liste Linux On The Root.

Le paquet "tesseract" des dépôts et celui de gscan2pdf pose toujours le même problème. Voici ce qu'en dit le développeur de gscan2pdf :

« Si tesseract 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 regarde pour voir quelles langues sont installées. »

-- Christophe 2009-11-22 02:18 UTC


Désolé... mon message précédent est incompréhensible ! Je n'ai pas les yeux en face des trous à cette heure (c'est déjà le matin dans l'hémisphère sud). Je le corrige ci-dessous :

Malheureusement les pages mentionnées sont encore et toujours d'actualité, tant sur Ubuntu que sous Debian. Je suis en Testing/Sid et j'ai les mêmes problèmes que les gens d'Ubuntu.

Je ne vois pas où tu vois de la confusion dans les pages citées ! Normal en même temps, je suis l'auteur des deux premières (Linux On The Root) et Sorbus intervient régulièrement sur la liste Linux On The Root.

Le paquet "tesseract" des dépôts et celui de gscan2pdf posent toujours les mêmes problèmes. Voici ce qu'en disait le développeur de gscan2pdf quand je l'avais contacté :

« Si tesseract est compilé depuis 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 regarde pour voir quelles langues sont installées. »

-- Christophe 2009-11-22 02:24 UTC


L'intérêt du paquet b52 ? Il faut lire les pages mentionnées... Je résume. Si tu utilises gscan2pdf, tu auras de très mauvais résultats. Fais l'essai.

Le paquet "b52" est celui qui permet, et de loin, le meilleur fonctionnement de tesseract.

Il propose la version 2.04 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" 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).

-- Christophe 2009-11-22 02:29 UTC


Je viens de refaire l'essai, près deux ans après mes premiers tests. Avec le paquet des dépôts, sous Debian, la ROC ne donne rien (aucun résultat) sur mon fichier .tif compressé. Le problème de format est le même en ligne de commande et depuis gscan2pdf : read_tif_image:Error:Illegal image format:Filetype.

Sur le même fichier, exactement le même, si tu utilises gscan2pdf, avec le traitement "unpaper" (Nettoyer/Clean up), la ROC devient possible ! L'intérêt de gscan2pdf est ici : tu n'as plus à te soucier du format de ton image. Un simple traitement "unpaper" et la ROC devient possible.

L'interface que tu appelles de tes vœux existe bel et bien et elle n'a jamais aussi bien tourné qu'avec le paquet "b52".

-- Christophe 2009-11-22 03:20 UTC


@Christophe

J'ai installé gscan2pdf, fait quelques tests... et c'est loin d'être concluant.

Je précise que j'ai d'abord conservé le paquet d'origine tesseract-ocr plutôt que celui de b52.

J'ai enregistré un fichier tif avec Gimp selon les 5 modes de compression proposés:

La version «packagée d'origine» de tesseract est parfaitement capable d'interprêter tous ces fichiers.

Au premier essai de gscan2pdf, la reconnaissance de caractère a fonctionné.

Par contre, dès qu'un recadrage est tenté, ça ne marche plus. Si gscan2pdf est lancé depuis un terminal, on peut y lire les messages suivants:

 Tesseract Open Source OCR Engine
 check_legal_image_size:Error:Only 1,2,4,5,6,8 bpp are supported:16
 *** unhandled exception in callback:
 ***   Error: cannot open /tmp/NLA9Ssq5aV/DWUea9s5Xc.txt
 ***  ignoring at /usr/bin/gscan2pdf line 1114.

Le problème ne provient donc pas du mode de compression, mais des Bits/Sample, qu'on peut traduire, je pense, par l'échantillonage (ne me demande pas ce que ça signifie :-) )

La même image recadrée, enregistrée à partir de gscan2pdf, est bien en 16bits:

 gv@fantasio:~$ tiffinfo texte3.tif 
  TIFF Directory at offset 0xec7f8 (968696)
  Image Width: 961 Image Length: 504
  Resolution: 300, 300 pixels/inch
  Position: 0.01, 1.04333
  Bits/Sample: 16
  Compression Scheme: None
  Photometric Interpretation: min-is-black
  FillOrder: msb-to-lsb
  Orientation: row 0 top, col 0 lhs
  Samples/Pixel: 1
  Rows/Strip: 4
  Planar Configuration: single image plane
  DocumentName: /tmp/NLA9Ssq5aV/8SVdkwLXUI.tif
  ImageDescription:  SANE data follows

Et une fois recadrée, la fonction de «nettoyage» (unpaper) ne fonctionne plus non plus:

 Avertissement : Format d'image non reconnu at /usr/bin/gscan2pdf line 1394.
 *** unhandled exception in callback:
 ***   `' is not of type Gtk2::Gdk::Pixbuf at /usr/share/perl5/Gtk2/Ex/Simple /TiedCommon.pm line 65.
 ***  ignoring at /usr/bin/gscan2pdf line 1114.

Bref, ça commence à faire beaucoup de désagréments pour une seule application.

J'ai ensuite désinstallé le paquet tesseract-ocr et installé le paquet de b52. Que ça soit à partir de gscan2pdf, ou en ligne de commande, tesseract est toujours incapable de traiter ces images:

  gv@fantasio:~$ tesseract texte3.tif texte -lwt fra
  
  Tesseract Open Source OCR Engine
         modif command line by b52
         imagename outputbase [ -l lang OR -lwt lang] [configfile [[+|-]varfile]...
        -l   = Lang Without Tiff
        -lwt = Lang With Tiff
  
  Tesseract Open Source OCR Engine
  check_legal_image_size:Error:Only 1,2,4,5,6,8 bpp are supported:16
  Erreur de segmentation

Sans doute utilises-tu une autre version de gscan2pdf que la mienne

 gv@fantasio:~$ dpkg -l gscan2pdf
 ||/ Nom            Version        Description
 +++-==============-==============-============================================
 ii  gscan2pdf      0.9.25-1       A GUI to produce PDFs from scanned documents

puisque tu es en testing, mais sous Lenny, ce bug consistant à enregistrer les images recadrées en 16bits le rend inutilisable pour l'OCR. Même l'enregistrement en djvu échoue à partir des images recadrées. C'est dommage, car ça semble une interface assez pratique pour d'autres usages.

Mais donc, si le bug provient de gscan2pdf, l'installation du paquet de b52, comme je le pensais, ne semble plus présenter d'intérêt. Un avis ?

-- Desidia 2009-11-22 16:20 UTC


@Desidia

Curieuse affaire... je n'ai pas la même version de gscan2pdf :

||/ Nom Version Description +++-==============-==============-============================================

ii gscan2pdf 0.9.29-1 A GUI to produce PDFs from scanned documents

Je n'ai pas plus d'idées sur la question dans l'immédiat... Mais si tu ne parviens pas non plus à avoir une reconnaissance avec Tesseract même en lignes de commande, le bug ne doit pas venir de gscan2pdf, a priori. Tu dis que sur ces mêmes fichiers, la version packagée d'origine ne pose aucun souci ?

-- Christophe 2009-11-22 16:57 UTC


Il n'y a pas de différence de comportement entre les versions de Tesseract packagée d'origine ou par b52: elles peuvent lire les tiffs quelque soit le mode de compression, mais ne peuvent lire les tiffs en 16bits.

Est-ce que tu as essayé de recadrer une image dans gscan2pdf, puis de faire un nettoyage, une OCR, ou de la sauvegarder, qu'on sache si elle passe alors en 16bits avec cette version ?

-- Desidia 2009-11-22 17:16 UTC


Vous devez répondre à cette question pour sauvegarder la page :

De quelle couleur est la souris qui courait dans l'herbe?