Alors voilà, je vois propose un second TP sur la reconnaissance de caractères avec tesseract-ocr. Il fait écho à une situation rencontrée dans « la vraie vie ». Lors de notre dernier trek, le guide nous à lu un joli texte sur l’alpinisme issu d’un vieux magazine Petzl. Il nous a laissé prendre en photo sa photocopie du texte, qu’il traîne avec lui depuis dieu seul sait combien de temps. Autant vous dire que niveau qualité de la source on est pas au top.
Un peu comme la chronique de Raphaël Enthoven sur l’alpinisme je voulais partager ce texte avec vous. Bon, je pourrais me contenter de vous claquer la photo du texte ci dessous, mais je me suis dis que c’était l’occasion de ressortir tesseract-ocr pour un TP en conditions réelles.
Voici l’image source en question :
Autant vous dire que c’est pas gagné d’avance pour la reconnaissance de caractères avec tesseract-ocr.
Préparation
Alors deux trucs que j’ai fait à la main (dans paint.net) avant de commencer :
- Empiler les colonnes pour avoir un texte d’une seul colonne dans le bon ordre ; et
- appliquer un seuil en passant en noir et blanc (comme proposé à la fin du TP précédent).
Ça m’a permis d’obtenir l’image ci contre qui parait déjà un peu plus exploitable.
Pré-Traitement :
Dans un commentaire sur le premier article, Quelqu’un a proposé d’utiliser
Scantailor : taillez un costard à vos images !
Bon alors pas besoin de compiler depuis les sources, ça s’installe bien sur une Debian 8 depuis les repos :
apt-get install scantailor
Sous Windows il suffit d’utiliser l’installeur.
Et après ça se passe bien ! le logiciel est bien fait, tous les traitements s’enchaînent logiquement. J’ai fait un premier essai sous linux, puis pour rédiger l’article je l’ai utilisé sur Windows. Je n’ai pas noté de différences importantes entre les 2.
Le traitement de scantailor se fait en 5 étape :
- Orientation : portrait vs paysage ;
- Scinder les pages : gauche, droite en 2 image distincte ;
La j’ai eu un problème, il ne supporte que 2 colonnes, j’ai donc été obligé de passer sur une seul colonne à la main avant. - Redresser si votre image n’est pas droite
- Gestion des marges
- Sortie, incluant : passage en noir et blanc, dewarping, suppression du bruit
Que dire de Scantailor ? C’est très bien, mais c’est prévu pour traiter des scans de bouquins. Pas des captchas ou des photos d’articles prises à l’arrache sur le bord du chemin pendant un trek. Même s’il s’en ai bien sortie, dans un contexte d’attaque de captchas décrit dans mon articile précédent : le plus simple est encore d’automatiser quelques traitements de bases sur votre image.
Reconnaissance de caractères avec tesseract-ocr
Bon alors on a déjà fait le tour de tesseract dans l’article précédent. Il manque néanmoins un trucs pour que ça fonctionne bien sur un texte en français : Les données d’apprentissages. Bein oui, pour les captchas on s’en moquait que tesseract connaisse le français ou l’anglais.
Pour ce texte, il est préférable d’installer les données de la langue française :
apt-get install tesseract-ocr-fra
Puis on fait tourner tesseract sur notre image en sortie de scantailor
tesseract vivre-1-colonne.png stdout -psm 1 -l fra
Et on récupère ça :
Vivlre ntre la temérité et la renonc:ation passe l'etroii, lincertam chemin de crete de l’aventure. Et cel… qui, au moms une fois, a dû lutter pour se ‘|nten|r dans le courant d'un véritable voyage, ceiurlà sait que sur ce chemin- |l pourra toujours aller prendre la 'ii€Si. re de ses forces et connaître l… acte valeur de la we sauve. 3: ncôte se dresse le raide versant de ..À’ mconsc1ence, q… conduit au risque de l‘ :Ui. & côté s 'étend le % ::n -r5v |4N‘ au pas duquei de: .'vo|'x doucereuse< ;ppé||ent a vivre de simulacres. &», Sur ce haut sentier, [...]
Je vous épargne tout le texte , mais globalement c’est pas trop mal. C’est pas parfait mais on a quelque chose. A ce moment, j’ai considéré que c’était suffisant pour finir à la main et que je ne pourrait pas avoir mieux. Pourquoi ? simplement parce que les blocs de texte manquant correspondent pour la majorité aux zones déchirées, froissées, illisibles dans la photo. Aussi bon qu’il soit, tesseract ne pourra jamais inventer les informations manquantes.
Conclusion
Pour conclure, j’espère vous avoir fait comprendre que scantailor est un super outil si vous voulez scanner un roman entier. Un peu moins bon si vous avez juste 3 colonnes de texte. Que tesseract peu aussi et surtout vous servir en dehors de la sécurité informatique et que c’est un outil qui vous fera gagner du temps dans des cas comme celui là.
Pour finir vous trouverez le texte complet dans ce post sur le blog. Si quelqu’un connait la référence du texte, laissez la moi en commentaire !