Comme indiqué dans ce billet précédent, j’avais un souci pour extraire des données d’un site car certaines de ces données n’étaient plus en forme de texte mais d’image. Pour nous, les humains, aucun problème de reconnaitre les caractères ou les chiffres dans une image mais pour un ordinateur c’est beaucoup moins simple.
J’ai donc cherché des solutions d’OCR (Reconnaissance Optique de Caractères) en PERL (langage de programmation) qui permettent d’extraire le texte affiché dans une image. En fouinant un peu, je suis tombé sur le module PERL PerfectCR. Je me suis bien sûr empressé de le tester ce week-end. J’ai du le modifier pour qu’il fonctionne correctement avec les images issues du site en question.
Le principe de ce module est relativement simple ce qui explique qu’il ne fonctionne avec du texte avec des caractères toujours rigoureusement identiques. Il se charge d’abord de repérer la position des différents caractères dans l’image. Il extrait ensuite l’image de chaque caractère. Il réalise une table de hashage MD5 à partir des couleurs de l’image et il stocke cette valeur dans un fichier à plat. Pour chaque caractère, il vérifie si ce caractère a déjà été lu et donc à la même valeur sinon, il enregistre l’image du caractère avec la valeur de hashage MD5 pour que vous puissiez valoriser le caractère correspondant. Une fois que tous les caractères sont ainsi identifiés ce module peut lire les images et donner la valeur textuelle.
Après intégration, dans mon programme d’extraction, le tout semble fonctionner à merveille. Le traitement tourne en ce moment même.
En tout cas, c’est parfois utile d’être tenace et persévérant.

20 mars 2007 à 09:13
Bravo HUBERT
Papyli
20 mars 2007 à 09:30
Merci pour tes encouragements
20 mars 2007 à 13:34
Ne jamais rien lâcher. Jamais!
21 mars 2007 à 18:27
Décidément ton système de commentaires ne m’aime pas…
Je voulais juste attirer ton attention sur GOCR (http://jocr.sourceforge.net/) même si apparemment j’arrive après la bataille
21 mars 2007 à 18:27
Alleluia !!!
21 mars 2007 à 18:35
Effectivement, c’est réglé même si j’ai encore quelques coups de tournevis à donner. Mais merci pour le lien, cela peut être intéressant.
21 juin 2007 à 12:23
Bonjour,
Connaissez vous une solution pour faire une reconnaissance ORC à l’upload d’un fichier type scanne, exemple article de journaux…
L’idée et de récupérer le texte de l’article en l’uploadant sur un serveur par une page ASP par exemple.