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.
Voici un petit guide des différentes solutions possibles avec leurs avantages, leurs inconvénients et des liens pour vous en servir.
Voir également :
- Les solutions de Gestion Électronique des Documents (GED)
Logiciels d'OCR pour GNU/Linux (utilisables en ligne de commande)
Cuneiform
cuneiform est un OCR multi-plateforme, 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 très satisfaisants avec une marge d'erreur entre 2 et 3 %. De plus, il semble être le seul à 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, jpg, png, tiff, Il peut exporter en format texte, html, rtf, et d'autres.
Le projet est en attente de nouveaux développeurs depuis mai 2011 1). Il dispose toujours d'une page Launchpad qui héberge le code et est maintenue.
Une application avec une interface graphique a également été développée : cuneiform-qt.
Voir la documentation en allemand où on trouve un fichier de commande pour xsane du genre de celui de tesseract.
Pour l'utiliser installez le paquet cuneiform.
Il est aussi possible de lancer cuneiform sur un fichier image par l'intermédiaire d'un script nautilus tel que celui-ci :
#!/bin/sh printf %s "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read -r arg do convert -colorspace GRAY "$arg" tmp.tiff cuneiform -l fra -f rtf -o "$arg".rtf tmp.tiff rm tmp.tiff done
Il peut être utilisé dans l'interface graphique XSane.
OCRopus
OCRopus (page détaillée) : ROC avec prise en compte de la mise en page (en développement). Très utile pour les vieux manuscrits.
Tesseract-ocr
Voir la page tesseract-ocr pour plus d'informations sur l'installation et l'utilisation.
Pour l'utiliser installer le paquet tesseract-ocr.
Donne de très bons résultats si l'image est bonne, bons dans tous les cas. Ce qu'il peut faire :
- Accepte beaucoup de format d'images (Utilise Leptonica) ;
- Gère plusieurs langues dont le français (avec les accents) ;
- Possibilité de lui apprendre un nouveau jeu de caractères dans sa dernière version ;
- Gestion de plusieurs jeux de caractères simultanés ;
- Peut être utilisé dans les interfaces graphiques XSane (via les adaptateurs xsane2tess ou ocube) et gscan2pdf.
Gocr
Logiciel qui donne des résultats de qualité médiocre, entre 7 et 8 % d'erreur par document.
Installez le paquet gocr et gocr-tk pour avoir une interface graphique. Ce qu'il sait faire :
- Reconnaît les fichiers png ;
- Aide correcte.
Ocrad
Ocrad est un élément du projet GNU. Son développement semble arrêté (ou très ralenti) depuis 2011.
Pour l'utiliser installer le paquet ocrad.
Cependant, les résultat sont médiocres par rapport aux autres moteurs. Peut s'utiliser en ligne de commande ou avec Skanlite et OCRFeeder.
Interfaces graphiques
OCRthyPDF-Essentials
(en) OCRthyPDF-Essentials est une application directement installable depuis le centre d'applications.
Xsane
Xsane (page détaillée) est une application graphique très complète pour scanner, qui utilise gocr, tesseract ou cuneiform.
Pour utiliser la ROC il faudra avoir installé l'un des paquets gocr ou cuneiform ou bien le moteur tesseract-ocr avec XSane, dont les indications se trouvent sur la page xsane2tess.
Pour faire de la ROC avec Xsane il faut :
- Choisir son moteur d'OCR : ouvrir Xsane et dans Préférence → Configuration → OCR il faut, dans la commande OCR, remplacer gocr par :
- pour gocr avec la reconnaissance des caractères accentués
gocr -f UTF8
- pour tesseract
xsane2tess -l fra
- pour cuneiform
cuneiform -l fra
- 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 dpi.
Ensuite :
- dans la fenêtre Aperçu, cliquer sur Acquisition de l'aperçu ;
- recadrer sur la zone de texte à scanner ;
- XSane va enregistrer le résultat dans un fichier texte, par défaut sur votre bureau ou dans votre Dossier personnel (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 par /home/votre_identité/essai_ocr_1.txt ;
- cliquer sur "Numériser" et attendre le "transfert de l'image" ;
- copier-coller le contenu du fichier texte dans un fichier ouvert avec un traitement de texte ;
- 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
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.
Voir chapitre utilisation de la page détaillée gscan2pdf.
OCRFeeder
OCRFeeder est une interface graphique simple, permettant de choisir entre plusieurs moteurs : par défaut installe tesseract, fonctionne aussi avec gocr, ocrad et cuneiform.
Attention, le paquet tesseract est installé pour la reconnaissance de l'anglais uniquement. Voir les paquet langues supplémentaires sur tesseract-ocr.
sudo sed -i 's/ocrfeeder -i %f/ocrfeeder/' /usr/share/applications/ocrfeeder.desktop
Traite les images, les fichiers PDF et les sorties de scanner. On peut ajouter le contenu d'un dossier (plusieurs fichiers à la fois).
Installez le paquet ocrfeeder.
Ce qu'il sait faire :
- Sélectionner les zones à traiter,
- Voir côte à côte l'image traitée et le résultat,
- Détecte automatiquement les colonnes et les images,
- Dispose d'un filtre de bruit et de gris paramétrable (unpaper, non testé),
- Supprime les sauts de ligne (option),
- Export en différents formats, en essayant de conserver la mise en page : ODT, PDF, HTML et texte brut.
Ce qu'il ne sait pas faire :
- La rotation de l'image obtenue via le scanner (gênant quand on scanne un livre au format A5 où deux pages = A4 paysage ⇒ il faut faire deux scans au lieu d'un)
Skanlite
Voir la page dédiée : skanlite.
xsane2tess
xsane2tess: un adaptateur tesseract pour XSane.
gImageReader
gImageReader est une interface graphique très simple d'emploi pour tesseract-ocr.
YAGF
YAGF est une interface graphique pour cuneiform (donc une bonne capacité de reconnaissance comme indiqué plus haut) et tesseract.
LIOS
Lios est une interface graphique pour cuneiform et tesseract. Pour l'utiliser installez le paquet lios. Si vous souhaitez avoir la dernière version en français :
- Ajouter le PPA ppa:nalin-x-linux/lios2) dans vos sources de logiciels;
- puis installez le paquet lios.
OCR en ligne
Voir les solutions de Gestion Électronique des Documents (GED)
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 ).
Programmes Windows utilisables sous GNU/Linux via Wine
SimpleOCR
Non libre mais gratuit. Basé sur WOCAR , image non PDF
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
Certaines versions anciennes de FineReader fonctionnent plus ou moins sous Wine.
Reconnaissance de l'écriture manuscrite
Cellwriter (GNU/Linux)
Myscript (GNU/Linux et win)
- Fiche de Myscript Stylus (logiciel interactif) sur WineHQ.org (existe pour GNU/Linux ), reconnaît l'écriture attachée
Non libre, versions d'évaluation 30 jours des logiciels sur le site officiel.