Reconnaissance de caractère sur Ticket de caisse //OCR

Reconnaissance de caractère sur Ticket de caisse //OCR - C++ - Programmation

Marsh Posté le 20-10-2014 à 16:53:24    

Bonjour,
 
Mon nouveau projet consiste a faire de la reconnaissance de caractère a partir d'une photo d'un ticket de caisse.
Je n'ai jamais travaillé dans le traitement d'image du coup je suis un peu perdu.
 
A la suite de mes recherches, je pense avoir trouvé la librairie qu'il me faut, Tesseract-ocr.
Cependant après quelques essai, je n'arrive pas a avoir de résultat correcte.  
 
Outre le manque d'exemple, je me demandais s'il fallait pas que je traite certaine opération a la main avant d'envoyer l'image a Tesseract comme par exemple supprimer le fond, mettre le ticket droit etc..
 
Du coup, j'aimerais votre avis concernant les taches post traitement, dois je le faire, ou tesseract le fait deja ? (ou c'est une config que je dois mettre)  
 
Merci d'avance,
PS : je prends tout retour d'expérience autour du domaine de reconnaissance de forme.
PS2: J'ai mis C++, mais je suis ouvert a d'autre langage ;) (python, java etc...)
 
torwood3


---------------
"La valeur d'un homme tient dans sa capacité à donner et non dans sa capacité à recevoir." Albert Einstein / "Dans la nature, tout a toujours une raison. Si tu comprends cette raison, tu n'as plus besoin de l'expérience." Léonard De Vinci
Reply

Marsh Posté le 20-10-2014 à 16:53:24   

Reply

Marsh Posté le 20-10-2014 à 23:52:11    

torwood3 a écrit :

Bonjour,
 
Mon nouveau projet consiste a faire de la reconnaissance de caractère a partir d'une photo d'un ticket de caisse.
Je n'ai jamais travaillé dans le traitement d'image du coup je suis un peu perdu.
 
A la suite de mes recherches, je pense avoir trouvé la librairie qu'il me faut, Tesseract-ocr.
Cependant après quelques essai, je n'arrive pas a avoir de résultat correcte.  
 
Outre le manque d'exemple, je me demandais s'il fallait pas que je traite certaine opération a la main avant d'envoyer l'image a Tesseract comme par exemple supprimer le fond, mettre le ticket droit etc..
 
Du coup, j'aimerais votre avis concernant les taches post traitement, dois je le faire, ou tesseract le fait deja ? (ou c'est une config que je dois mettre)  
 
Merci d'avance,
PS : je prends tout retour d'expérience autour du domaine de reconnaissance de forme.
PS2: J'ai mis C++, mais je suis ouvert a d'autre langage ;) (python, java etc...)
 
torwood3


 
Bonjour,
 
Je préviens, je n'ai aucune expérience en reconnaissance de caractère.
Ce que je ferais :

  • essayer de redresser le ticket ? : passer d'un trapèze à un rectangle ==> méthode = homographie je crois
  • pré-traitement ? : débruitage (ouverture, fermeture morphologique, ...), binarisation, lissage (filtre gaussien)
  • séparer les caractères pour faire la reconnaissance de chaque caractère ? détection de contour ?
  • regarder sur SO les questions sur Tesseract OCR : https://stackoverflow.com/search?q=ocr+tesseract


En librairie de traitement d'images : OpenCV
 
Je serais intéressé par des retours sur les méthodes utilisées si c'est possible.

Reply

Marsh Posté le 21-10-2014 à 12:39:57    

Ou alors, tu vas récupérer le code source de Scantailor, qui fait tout le traitement nécessaire avant OCR (redressement, élimination du bruit, etc) et tu t'en inspires.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed