IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenCV Discussion :

Détection de chiffres


Sujet :

OpenCV

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Par défaut Détection de chiffres
    Bonjour,

    J'essaye de détecter des chiffres [1->5] se trouvant sur des parties de pièces.
    Malheureusement mes images ne sont pas d'une super qualité. J'ai essayé SURF à partir de l’exemple fourni dans opencv. J'obtiens pas/peu de résultats voir des résultats erronés.

    Voici les images avec lesquelles je travaille. 3x l'extraction du chiffre 1 dans des positions différentes.




    Pourriez-vous m'aider/m'orienter dans les traitements qui pourraient mener à une détection correcte ?

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2011
    Messages : 147
    Par défaut
    Bonjour,

    Je n'arrive pas a voir tes images.

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2011
    Messages : 147
    Par défaut
    Ta question n'est pas tres claire pour moi.

    Le but est de detecter les chiffres dans ton image, c'est a dire leur position ???
    Ou bien tu veux lire le chiffre present dans l'image ???

    Les images que tu donnes sont entieres ou non ???

    Dans les exemples que tu donnes, un simple seuil suffit a isoler ton chiffre.
    Ensuite un algorithme OCR standard n'aura aucun mal a te sortir la reponse.

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Par défaut
    Le but est de lire le chiffre.
    Je vais partir sur ton idée d'un seuillage + ocr.
    Mais comment puis-je faire si je n'ai pas de certitude sur le niveau de seuil à adopter ?

    Tu parle d'algorithme d'ocr standard. Pourrais-tu m'en conseiller un ? Existe t'il des libraires qui peuvent me donner un pourcentage de certitude quant à la valeur lue ? Tout les algorithmes d'ocr sont-il insensibles à la rotation ?

    Les images que je donne proviennent d'une image plus grande où j'ai réussi à isoler au maximum le chiffre.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2011
    Messages : 147
    Par défaut
    Bonjour,

    Un calcul du seuil peut se faire de plusieurs facons.
    • Prendre le milieu entre le min et le max
    • Chercher la valeur moyene de la luminance.
    • ...


    Il existe des algorithmes de binarization qui calculent le seuil de maniere locale (Niblack, Sauvola,...). C'est une idee aussi, mais plus couteux d'un point de vue algorithmique.

    Je ne suis pas expert en OCR. Mais Je pense que ce qui marche le mieux sont les algorithmes bases sur le machine learning. Ils sont probablement invariant a la rotation.

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Par défaut
    Merci isangoma pour ta réponse.

    J'ai sur ton conseil appliqué un seuil sur les images. Mon seuil tourne autour de 120 de manière à avoir une forme respectant au mieux le chiffre. Je sais que suivant les conditions d'expérimentation (Variation d'éclairage et moyenne de luminance) celui-ci sera amené à varier légèrement.

    J'ai donc réessayé, après seuillage les technique que j'avais déjà trouvé à savoir: SURF (Détection de caractéristiques) & Tesseract (OCR).

    SURF ne me donne pas vraiment de résultats et les matchs sont plutôt rares alors que les erreurs sont fréquentes.

    Du coté de Tesseract, sous Visual Studio 2010 ça ne marche pas (= ça compile et ça plante à cause d'erreur de dll, inutile de me parler de les recompiler, j'y ai passé au mon we sans succès) J'ai essayé avec le binaire de tesseract qui malheureusement ne reconnait pas non plus les chiffres.

    Je suis ouvert à toutes pistes me permettant de récupérer la valeur des chiffres présents sur ces images.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2011
    Messages : 147
    Par défaut
    Comme dit plus haut. OCR, je connais un peu la theorie, mais je n'ai jamais pratique.

    Regarde cette lib : Par ici
    Cela pourra peut-etre t'aider.

    Bonne chance.

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2010
    Messages : 116
    Par défaut
    Salut a vous,

    J'ai exactement le même objectif.
    Je souhaiterais extraire des lettres et des chiffres d'une image.

    J'ai essayé plusieurs lib open source d'OCR mais il semblerait que celle-ci soit optimisées pour le traitement de document scannés et non pas d'image.

    J'ai utilisé GOCR et les résultats ne sont pas top sur une photo ou une image.
    Par contre tout ce qui est document numérisé c'est du quazi sans faute.

    J'ai également essayé de passer mon image en pbm, pnm, pgm, selon certain niveau de gris et je n'obtiens tjs pas de résultat exploitable.

    Si vous avez des pistes je suis également preneur...

    Cdlt,

    Une liste exhaustive de ce qui ce fait en open source ici : http://www.ocrgrid.org/ocrdev.html

    J'ai essayé également OCRAD et ça ne match pas suffisamment...

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2011
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2011
    Messages : 147
    Par défaut
    Salut,

    Des exemples de tes donnes serait utiles.
    Par donne j'entend entres et sorties

Discussions similaires

  1. Détection de chiffre sur une image
    Par JustEver_0049 dans le forum ImageJ
    Réponses: 9
    Dernier message: 21/04/2014, 10h09
  2. Détection de chiffres dans un String
    Par JaroBx dans le forum Langage
    Réponses: 4
    Dernier message: 30/09/2010, 13h32
  3. Détection de 2 touches appuyées
    Par cyrose dans le forum C++Builder
    Réponses: 2
    Dernier message: 26/07/2002, 16h25
  4. Chiffre a Virgule Fixe
    Par garybaldi dans le forum C
    Réponses: 3
    Dernier message: 21/06/2002, 10h41
  5. Recherche programme qui convertit les chiffres arabes en nb
    Par oli57 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/06/2002, 03h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo