Connexion

Forum

Logiciels » Graphisme photo et vidéo OCR état de l'art sous linux Où en est-on avec les logiciels d'Optical Character Recognition ?

bermisch Membre non connecté

Rang

Avatar

Inscrit le : 18/05/2013 à 10h41

Localisation : ardèche

Messages: 111

Le 10/02/2017 à 15h13
Bonjour,

je serais très intéressé par l'OCR vu que ma vue baisse depuis un moment (j'ai plus de 70 ans) et que combiné à un logiciel de vocalisation, on peut alors lire sans se casser la vue des papiers imprimés. (Un de mes amis aveugle complet utilise des logiciels proprios sous windoze, mais j'aimerais bien travailler avec linux et mageia).

Il semble bien que" tesseract" soit la vedette mais mes essais ont été décevants pour du journal scanné à 900 pixels/inch en noir et blanc avec la version disponible sous mageia 5. Il faut aussi utiliser une base "fra" pour le français, mais je me demande si ce n'est pas que la liste des caractères sans recherche de vraisemblance sur les mots.

Existe-t-il un OCR plus ad-hoc compatible mageia, que tesseract qui ne fonctionne d'ailleurs qu'en ligne de commande ? Et qui donne quelque chose de lisible pour le français au moins ? Ou bien y-a-t-il une façon de faire avec tesseract qui m'échappe,pour avoir un bon résultat. Quelqu'un a l'expérience OCR sur MLO ?

Marci de l'aide éventuelle.
BM


2 PC intel X86 sous Mageia - 64 bits - 8G bits mémoire, KDE dont un avec serveur LDAP "wake-on-waned "
. + portable amilo (mageia 32 ) livebox orange ADSL avec. Wifi ..
Lien pour l'allumage : du pc avec serveur LDAP :
https://www.depicus.com/wake-on-lan/woli?m=BCAEC58C7279&i=bermisch.ddns.net&s=255.255.255.255&p=9
Lien pour le site lui-même : http://bermisch.ddns.net
(erreur 403 à ce niveau mais .../cpg15x donne accès à coppermine avec id et passwd ...) sur ip dynamique (ddns)
Site web    
Papoteur Membre non connecté

Rang

Avatar

Modérateur Équipe Mageia

Inscrit le : 03/10/2011 à 22h16

Localisation : Metz

Messages: 6822

Le 10/02/2017 à 22h59
Bonjour,
Je n'utilise pas régulièrement, j'ai juste fait quelques essais. Dans mon souvenir, ce n'était pas parfait, mais quand même correct.
Je crois par contre que çà dépend pas mal des réglages. La très haute définition n'est pas nécessaire, à 300 px/pouces, c'est correct.
Il me semble que les résultats sont meilleurs en gris plutôt que noir et blanc.
Tu fais de la lecture vocale derrière ?


Yves
   
Antoniop Membre non connecté

Rang

Avatar

Inscrit le : 21/12/2011 à 23h51

Localisation : France

Messages: 201

Le 27/04/2017 à 23h41
Bonjour,
Je me suis intéressé à l'OCR pour une raison simple : lorsque je scanne un document en PDF, je veux pouvoir faire une recherche textuelle dans ce PDF, car par défaut un scan produit simplement une image compressée.
Je me suis aperçu que l'imprimante scanner du boulot produisait un PDF avec du texte que l'on pouvait rechercher et sélectionner, alors que mon scanner à la maison ne produisait qu'une image
J'ai alors découvert que les fichiers PDF "avec texte" comporte en réalité 2 couches : une couche image et une couche texte.
Pour obtenir la couche texte, il faut un OCR et un logiciel qui sache réunir les 2 couches sur un même fichier.

Tesseract fait cela plutôt bien, mais j'ai dû repartir des sources pour que ça marche.
J'ai un peu galéré pour trouver toutes les astuces, alors je vais les décrire ici.
Si tu ne t'intéresses qu'à l'OCR et pas à son inclusion dans le PDF, il ne faudra faire qu'une partie des manips

Tout d'abord, tesseract ne supportant les PDF avec texte qu'à partir de la version 3.03 et mageia n'ayant que la version 3.02, j'ai téléchargé les sources

Le wiki
https://github.com/tesseract-ocr/tesseract/wiki

Téléchargement des sources
Télécharger le fichier tar du code source
https://github.com/tesseract-ocr/tesseract/wiki/Downloads
il faut décompresser le tar en ligne de commande :
Code BASH :
tar -tzf tesseract-xx.tar.gz

cela créé un sous répertoire tesseract-xxx
aller dans ce répertoire
Code BASH :
cd tesseract-xx


Compilation et installation
Leptonica doit être installé au préalable, mais pour cela tu peux installer les rpm mageia.
J'ai installé :
Code TEXT :
$ rpm -qa|grep leptonica
lib64leptonica-devel-1.71-3.mga5
lib64leptonica4-1.71-3.mga5
 

Il faut lancer la configuration et l'installation
Code BASH :
./autogen.sh
./configure
make
sudo make install
sudo ldconfig
 

Sudo installe les executables produits en mode root.
Si tu n'as pas configuré sudo, tu peux te logger root en tapant :
$ su
puis taper :
Code BASH :
make install
ldconfig
 

sortir ensuite du login root en faisant CTRL-D

Récupérer les langages
Télécharger les fichiers <lang>.traineddata
de https://github.com/tesseract-ocr/tessdata

Il faut récupérer obligatoirement :
eng.traineddata
pour le français :
fra.traineddata
pour produire des outputs en pdf :
osd.traineddata

Attention de prendre les fichiers qui correspondent à la version de tesseract.

Il faut dézipper les fichiers et les placer dans le répertoire tessdata, ce qui donne :
Code TEXT :
/usr/local/share/tessdata/osd.traineddata
/usr/local/share/tessdata/eng.traineddata
/usr/local/share/tessdata/fra.traineddata
 


Lancer une reconnaissance simple en français
Code BASH :
tesseract -l fra <fichier image input(tiff ou pnm)> <fichier sortie>

Le fichier de sortie est un fichier texte

Créer un fichier PDF avec texte
Code BASH :
tesseract -psm 1 -l <lang> <fichier image input(tiff ou pnm)> <fichier sortie> pdf

exemple :
Code BASH :
tesseract -psm 1 -l fra fic1.tiff fic2 pdf

NB : le fichier de sortie ne comporte pas d'extension

A savoir : la résolution optimale est généralement de 300 dpi pour avoir un bon scan. La qualité du scanner et de l'original entre en jeu, car si on augmente la résolution la reconnaissance peut être meilleure ou pire, car des imperfections sont alors détectées et peuvent fausser la reconnaissance .

Pour optimiser la reconnaissance, il est conseillé de "nettoyer le fichier image", de le redresser un peu s'il est de travers, bref voila les manips que je faits :

d'abord je scanne avec scanimage :
Code BASH :
scanimage --device-name "device" --resolution 300 >output_file1

(remplacer "device" par le nom de ton scanner)
le fichier produit est au format ppm

ensuite je nettoie le fichier avec unpaper, qui enlève les bordures noires, pivote l'image si elle est de travers, etc :
Code BASH :
unpaper -l single --dpi 300 -dn left,right,top,bottom --type ppm output_file1 output_file2.ppm


tesseract ne prend pas les fichiers ppm pour l'OCR, donc je convertis ce fichier en tiff :
Code BASH :
convert -density "300x300" -units PixelsPerInch output_file2.ppm output_file2.tiff


ensuite, ouf, je lance tesseract pour produire le fichier PDF final :
Code BASH :
tesseract -psm 1 -l fra output_file2.tiff output_file pdf


(bien évidemment, l'idéal est de faire un petit script qui enchaine les différentes étapes)

si cela ne t'intéresse pas d'avoir un PDF, tu peux lancer plutôt la commande suivante à la place :
Code BASH :
tesseract -l fra output_file2.tiff output_file

output_file sera un fichier texte tout simple


Je ne connais pas d'interface graphique pour tesseract, par contre il y a gscan2pdf (disponible sur Mageia) qui est un outil graphique qui sait scanner avec OCR tesseract et et enregistrer en PDF. Edité par Antoniop Le 27/04/2017 à 23h46
   
m@rco123 Membre non connecté

Rang

Avatar

Inscrit le : 15/05/2009 à 08h07

Localisation : Val d'Oise

Messages: 2892

Le 28/04/2017 à 05h39
Salut !
Il fut un temps ou Papajac avait développé un logiciel graphique qui marchait bien :

solidroc

A voir si celui ci est toujours d’actualité


Lenovo g70-70
cg intel 810 / ssd SanDisk 250Go
Mageia 7 plasma 64b

Packard Bell ls11hr
cg intel 810 / ssd SanDisk 128Go
Mageia 6 plasma 64b
   
lebarhon Membre non connecté

Rang

Avatar

Équipe Mageia Membre d'Honneur

Inscrit le : 09/10/2010 à 14h18

Localisation : Normandie

Messages: 4092

Le 28/04/2017 à 10h24
Bonjour,

Encore une page qui mériterait d'être dans un wiki.
Tesseract 3.04 est dans Mageia 6.


CM Asus Z77-A+i5-2500K+GeForceGT520+RAM8Go
SSD Crucial M4+SSD Samsung EVO
Mageia 6 64 bits
   
Antoniop Membre non connecté

Rang

Avatar

Inscrit le : 21/12/2011 à 23h51

Localisation : France

Messages: 201

Le 28/04/2017 à 11h15
lebarhon:
Encore une page qui mériterait d'être dans un wiki.

J'essaierai de le mettre dans le wiki, quand il sera revenu ;) !
lebarhon:
Tesseract 3.04 est dans Mageia 6.

C'est une bonne nouvelle. Je ne recompile les sources que lorsque j'y suis obligé !
Un des problèmes sur lequel je suis tombé dans mes premiers essais est que j'essayais d'utiliser tesseract sans préciser le langage (français), ce qui fait une grosse différence, car il va essayer de reconnaitre des mots anglais par défaut.
De même les logiciels qui utilisent tesseract sans pouvoir préciser la langue ne sont pas efficaces. Ce n'est pas le cas avec gscan2pdf.
   
Papoteur Membre non connecté

Rang

Avatar

Modérateur Équipe Mageia

Inscrit le : 03/10/2011 à 22h16

Localisation : Metz

Messages: 6822

Le 28/04/2017 à 13h36
+1 pour mettre dans le wiki.
J'ai utilisé tesseract récemment pour reconnaître un texte en allemand. J'ai d'abord galéré pour trouver comment éclater les douze pages du PDF en douze fichiers. J'ai utilisé ghostscript.
En principe gscan2pdf pouvait le faire, mais en Mageia 5, la sortie texte est toujours vide :(
Le résultat est vraiment satisfaisant. Mais il m'a fallu des images en couleur. La conversion en gris introduisait trop d'imperfections nuisibles.

Pour générer les fichiers d'images :
Code BASH :
gs -q -dBATCH -dMaxBitmap=300000000 -dNOPAUSE -dSAFER -sDEVICE=tiff24nc -g4800x7200 -r600x600 -dFirstPage=8 -dLastPage=21 -sOutputFile=monfichier%d.tif source.pdf -c quit
 

Pour le traitement de multiples images :
Code BASH :
for i in *.tif ; do tesseract $i sortie -l deu; cat sortie.txt >> monfichier.txt; done;


Yves
   
Antoniop Membre non connecté

Rang

Avatar

Inscrit le : 21/12/2011 à 23h51

Localisation : France

Messages: 201

Le 28/04/2017 à 14h01
C'est pas mal cette manip avec ghostscript, je vais la noter !
pdftk peut faire l'affaire également, il peut concaténer les PDF ou les découper. C'est ce dont je me sers pour assembler les pdf multipages.
Tu peux essayer d'améliorer les fichiers source avec unpaper, il augmente les contrastes et supprime les effets de couleur de fond parasites, c'est recommandé par tesseract. Cela marche assez bien avec les images produites par mon scanner brother.
Par contre parfois il tronque les bords de l'image !
   
Troumad Membre non connecté

Rang

Avatar

Inscrit le : 16/10/2010 à 10h07

Localisation : Genas (69)

Messages: 2396

Le 27/06/2018 à 07h56
Pour avoir le français :
Code :
urpmi tesseract-fra

Pour moi, l'essai semble assez catastrophique....


Amicalement Votre
Bernard SIAUD Alias Troumad
Site web    
Papoteur Membre non connecté

Rang

Avatar

Modérateur Équipe Mageia

Inscrit le : 03/10/2011 à 22h16

Localisation : Metz

Messages: 6822

Le 27/06/2018 à 19h27
il faut revoir tes paramètres :
résolution de l'image, couleur...


Yves
   
funix Membre non connecté

Rang

Avatar

Inscrit le : 17/12/2012 à 21h03

Messages: 546

Le 27/06/2018 à 21h12
tesseract une fois bien configuré marche très bien et donne d'excellents résultats, je m'en sers très régulièrement.


FUNIX - http://www.funix.org
Mettez un pingouin dans votre PC
Blog - http://olivier.hoarau.org
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie