Ceci est une ancienne révision du document !



Reconnaissance optique de caractères (ROC)

La reconnaissance optique de caractères (ROC), ou encore appelé vidéo-codage (traitement postal, chèque bancaire) désigne les procédés informatiques pour la traduction d'images de textes imprimés ou dactylographiés en fichiers de texte.

Il existe plusieurs logiciels sous GNU/Linux spécialement dédiés, et il est aussi possible d'employer les logiciels existants sous Windows via Wine.

Pour le moment, la ROC (ou OCR) n'est pas un des domaines les plus avancés sous GNU/Linux : jusqu'en 2006, les résultats étaient même en général totalement inutilisables. Cependant, les choses ont évolué rapidement en 2007 et 2008 avec tesseract et le projet Ocropus. Voici un petit guide des différentes solutions possibles avec leurs avantages, leurs inconvénients et des liens pour vous en servir.

Voir également :

gocr

http://jocr.sourceforge.net/

  • les plus :
    1. empaqueté pour ubuntu (installation de gocr); (gocr 0.49 dans Ubuntu 12.04)
    2. reconnaît les png ;
    3. aide correcte ;
    4. facile à utiliser ;
    5. interface graphique: gocr-gtk.
    6. la reconnaissance optique est fonctionnelle sur des fichiers images pour lesquelles tesseract ne donne aucun résultat. Par exemple une capture d'écran en mode console réalisée avec fbgrab.
  • les moins :
    1. le résultat est loin d'être idéal.
À noter que la version fournie par ubuntu 10.04 est la 0.46 (2008), alors que la dernière version (0.49) incluse dans ubuntu 12.04 date de septembre 2010.
Gocr est utilisé par subtitleripper (installer le paquet :subtitleripper), logiciel qui transforme les formats images de sous-titres (utilisés par les DVD) en format texte.

cuneiform

cuneiform (en russe, ou en anglais) est un ocr multiplateforme, qui supporte 20 langues, dont le français. Pour les textes en français et les images propres et lisibles, il donne des résultats corrects. De plus, c'est le seul (du moins le seul que j'ai trouvé) à supporter (de façon basique) la mise en forme du texte. Ainsi, il reconnaît les textes soulignés, gras, en italique, et les images. Le texte qu'il ne réussit pas à traiter est également importé sous forme d'image. Il supporte les fichiers images en bmp, png, tiff, Il peut exporter en format texte, html, rtf (mais j'ai obtenu de piètres résultats pour ce format), et d'autres.

Voir la documentation en allemand où on trouve un fichier de commande pour xsane du genre de celui de tesseract.

  • les plus :
    1. empaqueté pour ubuntu (installation de cuneiform); (cuneiform 1.1 dans Ubuntu 12.04)
  • les moins :
    1. ?

GNU ocrad

http://www.gnu.org/software/ocrad/ocrad.html

  • les plus :
    1. empaqueté pour ubuntu (installation de ocrad); (ocrad 0.21 dans Ubuntu 12.04)
    2. présence d'une aide.
  • les moins :
    1. résultat très médiocre et non utilisable.
      (à vérifier, car on obtient de bons résultats avec Kooka utilisant ocrad : voir ci-dessous)

tesseract-ocr

Voir la page tesseract-ocr pour plus d'informations sur l'installation et l'utilisation

  • les plus :
    1. empaqueté pour ubuntu (installation de tesseract-ocr); (tesseract-ocr 3.02 dans Ubuntu 12.04)
    2. très bonne performance si l'image est bonne ;
    3. gère plusieurs langues dont le français (avec les accents) dans les versions 2 ou postérieures (paquets disponibles dans Universe) ;
    4. possibilité de lui apprendre un nouveau jeu de caractères dans sa dernière version ;
    5. gestion de plusieurs jeux de caractères simultanés ;
    6. peut être utilisé dans les interfaces graphiques XSane (via les adaptateurs xsane2tess ou ocube) et gscan2pdf, disponibles sous Hardy et suivants.
  • les moins :
    1. ne gère pas les colonnes multiples ; (à vérifier : information obsolète ?)
    2. problème de compilation sur certaines plateformes (fedora core 6) ;
    3. n'accepte pas beaucoup de formats d'images (il existe un script de conversion, voir plus bas) ;
    4. piètres performances sur les documents en échelles de gris et en couleur.
Tesseract est utilisé pour la transformation des sous-titres de DVD en texte par le logiciel ogmrip

xsane

xsane est une interface graphique qui utilise gocr ou tesseract ou cuneiform.

xsane mode d'emploi

Testé sous Hardy, Intrepid, Jaunty, Lucid (avec cunéiform), Oneiric

Pré-requis
Méthode
  • Ouvrir Xsane et dans Préférence → Configuration → OCR il faut, dans la commande OCR, remplacer gocr par :
    gocr -f UTF8

    Il y aura ainsi reconnaissance des caractères accentués.

  • on peut aussi remplacer gocr par xsane2tess -l fra pour utiliser tesseract, aussi cuneiform -l fra pour utiliser cuneiform
  • dans XSane : Applications → Images → Scanneur d'images XSane ;
  • dans la zone à droite de la cible, sélectionner "Enregistrer" ;
  • dans "Type", sélectionner "TEXT" ;
  • dans le sélecteur couleur ou N/B, sélectionner "Gris" ou "Noir/Blanc ou Trait" (à tester selon le document à scanner).

et en-dessous, sélectionner la résolution qui convient (pour obtenir les meilleurs résultats, les avis divergent entre 300 et 600 ppi ; un test fait sur des textes écrits en polices 10 et 12 Arial, Times New Roman et Courier 10 Pitch donne les meilleurs résultats en 300 ppi).

Captures d'écran réalisées avec Xsane 0.97 sous Dapper. La disposition des divers éléments diffère légèrement avec les versions suivantes de Xsane sous Hardy, Intrepid et Jaunty, mais le principe est le même.

Ensuite :

  1. dans la fenêtre "Aperçu", cliquer sur "Acquisition de l'aperçu" ;
  2. recadrer sur la zone de texte à scanner ;
  3. XSane va enregistrer le résultat dans un fichier texte, par défaut sur votre bureau ou dans "home/votre_identité" (selon les versions de Xsane). Il est possible de choisir le dossier d'enregistrement du fichier texte en indiquant le chemin dans la zone de saisie située à côté de l'icône "disquette". On peut aussi nommer le fichier. Par exemple en remplaçant "out.txt" des captures d'écran ci-dessus par "/home/votre_identité/essai_ocr_1.txt" ;
  4. cliquer sur "numériser" et attendre le "transfert de l'image" ;
  5. copier-coller le contenu du fichier texte dans un fichier ouvert avec un traitement de texte (OOo Writer ou autre) ;
  6. terminer le traitement "à la main" en utilisant le correcteur orthographique du logiciel de traitement de texte.

cuneiform est le moteur (voir plus haut), paramétré sous xsane qui a donné les meilleurs résultats, reconnaissance optique presque parfaite, avec une détection excellente des colonnes.

gscan2pdf

gscan2pdf est une interface graphique permettant notamment de réaliser de la Reconnaissance Optique de Caractères avec les moteurs GOCR et Tesseract. Son développement dynamique lui permet d'intégrer les outils les plus performants sous GNU/Linux, dont bientôt OCRopus.

ocrgui

ocrgui est une interface graphique pour, soit tesseract, soit gocr.

kooka

Note importante : Kooka n'est plus développé. Cette interface qui fut prometteuse n'est plus présente dans les dépôts Ubuntu depuis Hardy ou Intrepid.

http://kooka.kde.org/

Kooka est une interface graphique qui utilise au choix ocrad ou gocr. Le choix s'effectue ainsi dans la fenêtre d'ouverture de Kooka : Configuration → Configurer Kooka → ROC → Moteur ROC à utiliser… On sélectionne ici le moteur ROC : ocrad ou gocr.

  • les plus :
    1. donne de bons résultats en utilisant ocrad
    2. dispose d'une option permettant de détecter la mise en forme des documents à scanner (détection des colonnes ou détection complète de la disposition du texte).
  • les moins :
    1. n'est plus empaqueté pour ubuntu,
    2. demande une ou deux manipulations supplémentaires par rapport à XSane car le scan n'est pas immédiatement enregistré au format texte, mais la ROC est effectuée dans un second temps sur le fichier image déjà enregistré.

Kooka mode d'emploi

Pré-requis
Méthode
  1. ouvrir Kooka : Applications –> Images –> Kooka ;
  2. sélectionner le moteur ocrad (et non gocr) comme indiqué ci-dessus, puis redémarrer Kooka ;
  3. dans la fenêtre en bas à droite "Configuration du périphérique", sélectionner "Binary" pour "Scan Mode" ;
  4. dans la même fenêtre, sélectionner la résolution "300 ppi" ;
  5. cliquer sur "Aperçu" ;
  6. recadrer le texte à numériser dans la fenêtre "Aperçu" ;
  7. cliquer sur "Numérisation finale" ;
  8. dans la fenêtre "Assistant d'enregistrement", sélectionner le format PNG et clic sur "OK" ;
  9. le fichier PNG est enregistré et il apparaît dans la fenêtre en haut à gauche : sélectionner ce fichier, puis cliquer sur l'icône "ROC sur l'image" (2ème icône à droite de l'icône "Imprimer") ;
  10. dans la fenêtre "Reconnaissance Optique de Caractères", cliquer sur "Démarrer la ROC". On peut auparavant sélectionner (en bas de la fenêtre) un "mode d'analyse de la disposition" adapté au document à scanner : par exemple "Détection des colonnes" ;
  11. copier-coller le "Résultat de la ROC" dans un fichier ouvert avec un traitement de texte (OOo Writer ou autre) ;
  12. terminer le traitement "à la main" en utilisant le correcteur orthographique du logiciel de traitement de texte.
À l'étape 10, on peut activer la vérification orthographique avant de démarrer la ROC ; il faut ouvrir l'onglet "Vérification de l'orthographe", cocher "Activer la vérification de l'orthographe" et sélectionner :
  • Client : Aspell (ce qui sélectionne automatiquement le dictionnaire français) ;
  • Encodage : ISO 8859-1.

Cette vérification orthographique permet de traiter immédiatement les mots non reconnus sans avoir à utiliser ensuite le correcteur orthographique d'un logiciel de traitement de texte. Mais c'est une correction que certains trouvent laborieuse…

  • Où sont enregistrés les fichiers images obtenus avec Kooka ?
    • Ils sont automatiquement enregistrés dans /home/votre_identité/.kde/share/apps/ScanImages/ (même si on est sous gnome). Pour accéder à ce fichier, il faut afficher les fichiers cachés. S'il s'agit de fichiers que l'on souhaite conserver, on peut les enregistrer dans le répertoire de son choix… Mais il est habituellement inutile de conserver des fichiers images générés pour une Reconnaissance Optique de Caractères. On les aura donc supprimés dans Kooka après avoir effectué la ROC/OCR : cliquer droit sur le fichier, puis "Supprimer l'image".
  • Tests
    • Premier test fait avec Kooka utilisant GOCR : beaucoup de caractères non reconnus remplacés par des rectangles (peut-être un détail de configuration à corriger ?).
    • Second test fait avec Kooka utilisant OCRAD : le résultat obtenu (avant traitement manuel avec OOo Writer) est très correct; meilleur que celui obtenu avec XSane pour le même texte en polices 10 et 12 Arial, Time New Roman et Courier 10 Pitch.

clara

Clara n'a été dans les dépôts Ubuntu que pour dapper et hardy

  • les plus :
    1. empaqueté pour Ubuntu.
  • les moins :
    1. n'accepte que le format pgm ou pbm ;
    2. interface peu conviviale.

xsane2tess

testé sous Hardy, Intrepid et Jaunty.

gImageReader

Une interface graphique à tesseract-ocr pour gnome

http://sourceforge.net/projects/gimagereader/

pratique et prometteur… (version béta et en anglais en janvier 2011)

OCRopus

  • OCRopus: pour une ROC avec prise en compte de la mise en page. (en développement)

YAGF

  • YAGF est une interface graphique pour cuneiform (donc une bonne capacité de reconnaissance comme indiqué plus haut) et tesseract

Le site Free OCR permet de faire de la reconnaissance de caractères en ligne. Il est gratuit et utilise tesseract pour la reconnaissance.

Points forts :

  • gratuit
  • performant
  • gère plusieurs langues
  • reconnait les textes en colonne

Points faibles :

  • nécessité d'entrer un captcha à chaque texte soumis
  • on ne peut faire reconnaître que dix pages ( 2 Mo maximum ). Au bout de dix, il faut attendre une heure avant de pouvoir recommencer

Voir également :

WatchOCR - Server PDF et OCR du contenu

  • WatchOCR : logiciel libre pour créer un serveur de PDF, capable de transcrire notamment les images en texte, ou les PDF d'image scanné en texte : le tout indexé et prêt pour la recherche ( ala google ).

SimpleOCR

Non libre mais gratuit. Basé sur WOCAR

WebOCR

Recognita

Racheté par ScanSoft software. Une fiche sans aucun commentaire est néanmoins disponible pour la version 5.Tout retour, ici ou sur WineHQ serait grandement apprécié.

ReadIris

ABBY FineReader 8.0 OCR

FineReader fonctionne très bien sous Wine.

Cellwriter (GNU/Linux)

Xstroke (GNU/Linux)

Myscript (GNU/Linux et win)

CalliGrapher (win)

Non libre, version d'évaluation du logiciel sur le site officiel.

  • ocr.1345386630.txt.gz
  • Dernière modification: Le 19/08/2012, 16:30
  • par mohican