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

Traitement d'images Discussion :

Extraction d'une chaine à partir d'une photo


Sujet :

Traitement d'images

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 65
    Points : 26
    Points
    26
    Par défaut Extraction d'une chaine à partir d'une photo
    Bonjour,

    Dans le cadre d'un projet j'aurai besoin d'extraire un nom de rue à partir d'une photo de plaque de rue dont voici un exemple :


    Au niveau de mes compétences j'ai juste fait un introduction au traitement des données visuelles avec transformée en ondelettes ou filtrage, donc on peut considérer que je suis débutante. En fait j'ai testé les OCR commerciaux sur ce genre de photos selon la photo on obtient plus ou moins de bon résultats. Pour améliorer ces résultats j'aimerai pouvoir faire une segmentation de l'image pour ne garder que la plaque.
    Quel type de traitements me conseillez vous ? Avez vous des liens pour que j'en apprenne plus sur ce type de problèmes ?

    Merci d'avance,

    Julie.

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    En fait, il faut que tu réussisses à récupérer le parallélogramme bleu foncé dans ce cas, non ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 65
    Points : 26
    Points
    26
    Par défaut
    Oui exactement
    Mais parfois les plaques ne sont pas bleues ...

    Julie.

  4. #4
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Salut.

    Il faudrait faire du pattern matching sur les clous qui fixent la plaque .

    Détecter les lignes (je suis sur qu'il y en a qui vont te sortir Hough ) ça va être délicat parce que sur un mur, c'est pas ce qui manque les lignes ... ou alors en changeant d'espace couleur pour segmenter sur la couleur de la plaque ...

    Mais le pattern matching sur les clous, ça serait sympa :

    - tu fais une sélection de la zone contenant un clou
    - tu recherches les zones identiques
    - ensuite tu détectes les 4 clous coins de ta plaque (pour éliminer le 5eme sur ton exemple)
    - tu relies ces 4 points

    ===> tu obtiens la zone de la plaque

    En plus, le pattern matching est quelque chose de très interessant (faudra que je m'y mette un jour ).

    Le problème risque de se poser si tu dois faire un traitement en lots (c'est ton cas ?) ... Faut voir s'ils utilisent tous les mêmes clous pour toutes les plaques ... ou alors te constituer une bibliothèques de clous pour l'opération de pattern matching . Dans ce cas tu pourrais faire du pattern matching en lot. Faut voir aussi si ya toujours des clous !!!!! . Faut connaitre le métier de poseur de plaques ... (ce sont de gentilles moqueries bien entendu ... )

    A+

    Flo.

    PS : si la méthode t'intéresse mais que tu ne trouves rien pour t'aider sur le pattern matching, je veux bien essayer de m'y mettre pour t'aider si tu veux.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 65
    Points : 26
    Points
    26
    Par défaut
    L'idée des clous est pas mal mais non applicable car toutes les plaques ne sont pas fixé avec des clous ... Exemple :


    J'avais pensé à la detection des lignes mais il est clair que ça n'est pas assez pertinent
    Pas d'autres solutions en vue ?
    Merci pour ta reponse

    Julie.

  6. #6
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Salut,

    je parle des clous mais tu peux étendre ça à autre chose. Si t'as des clous fais le sur les clous.

    Tu peux faire du pattern matching sur les coins de tes plaques : on voit que les coins des plaques sont bien spécifiques en terme de couleurs (bleu, blanc ou autres duos) et de géométrie avec un liseré bleu, etc ...

    Donc, modulo une rotation de 90 degré tu peux faire du pattern matching sur les coins de tes plaques. C'est moins précis que des clous mais je pense que c'est réalisable.

    Du coup ta bibliothèque contiendrait des clous et des coins de plaques. Tu affectes un ordre de priorité aux patterns les plus spécifiques (les clous à mon avis) et si tu trouves pas les clous, tu passes aux coins ... ou à autre chose si autre chose peut caractériser le coin d'une plaque.

    Si j'étais en stage ou quelque chose du genre sur un projet de ce type, c'est un truc que je testerais ... C'est pas idiot de penser que c'est réalisable et acquérir des connaissances sur le pattern matching ne peut être que très profitable pour l'avenir.

    A+

    Flo.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 65
    Points : 26
    Points
    26
    Par défaut
    OK je comprend le principe mais de la à l'appliquer y a un monde

    Julie.

  8. #8
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Points : 451
    Points
    451
    Par défaut
    Salut !

    Dans ce cas, tu peux essayer de chercher les formes qui sont rectangulaires, car je suppose que toutes tes plaques le sont, non ?

    Pour faire ça, tu as la transformée de Hough je crois qui te permet d'extraire les lignes... Ensuite tu cherches les lignes qui forment un rectangle (par exemple par le calcul de ce que l'on appelle la compacité, tu peux savoir si une forme est rectangulaire), et hop !!

    Ensuite pour la reconnaissance de caractères, ici les lettres sont très nettes et régulières (c'est pas une écriture manuelle), donc une simple comparaison avec toutes les lettres de l'alphabet devrait suffire...

    [Edit] Oups ! J'arrive après la bataille, j'avais oublié de valider ce post il y a 1h30...
    "Cultiver les sciences et ne pas aimer les hommes, c'est allumer un flambeau et fermer les yeux." Proverbe chinois

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 65
    Points : 26
    Points
    26
    Par défaut
    La solution du rectangle me semble être la plus accessible vu mon niveau dans ce domaine. Vous auriez des petits exemples de mis en oeuvre de ce type de solution ? Quels pré traitement dois je faire ? Une binarisation ?

    Comment procède t on pour découper une lettre puis la reconnaitre ?
    Pour la reconnaitre il faut une base ?

    Merci

    Julie.

  10. #10
    Membre actif Avatar de ronan99999
    Inscrit en
    Juillet 2003
    Messages
    279
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 279
    Points : 299
    Points
    299
    Par défaut
    Hello,
    tu peux regarder sur ce qui est fait dans l'anpr (reconnaissance de plaque)
    il y'a un lien interessant sur wikipedia us

    http://en.wikipedia.org/wiki/ANPR

    Tu cherche à localiser une zone rectangulaire de l'image qui maximise le contraste.

    Tu peux passer un gradient (c'est déja un debut) ensuite tu projettes (la somme des gradient par ligne pour l'axe des Y et par colonne pour l'axe des X) sur les axes X et Y les valeurs de tes gradients, tu cherches apres la zone max de tes projetés en X et Y.
    Si tu ne te plantes pas, comment veux tu pousser?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 65
    Points : 26
    Points
    26
    Par défaut
    Oui c'est exactement le meme problème que pour les plaques d'immatriculation.

    J'ai lu à plusieurs reprises la technique du gradient que tu m'indique je vais essayer d'en apprendre plus la dessus.

    Merci

    Julie.

  12. #12
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut
    Salut.

    Euh le seuillage par entropy? est ce que vous pensez que ca pourrait lui suffire?? Moi je pense que oui.
    Apres je n'ai pas l'experience que certain ont.

    Peut tu nous donner en quel language fais tu ca? parcque je comptais faire le seuillage par entropy. Donc ca pourait etre un bon exemple.

    Je vais essayer de programmer ca.

    Sinon il reste la methode des textons, ou essayer le methode d'HARALICK

    Merci
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  13. #13
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut Resultat d'un seuillage par entropie.
    Salut a toutes et tous.
    j'ai regardé le resultat d'un seuillage entropique sur les images des plaques.

    Je les ai mise en niveaux de gris pour commencer,j"appliquer le seuillage entropique sur chacune d'entre elle.

    Apres c'est du nettoyage ,ouverture, fermeture, borderkill ... le train train quoi.

    Comment tu arrive a sortir la chaine de caractere correspondante:

    - tu utilise un reseau de neurones?
    - ou a tu une banque d'images avec toutes les polices et tout les caractere?

    leger probleme au niveau de plaque.gif (rue des barres)
    car il y a un uniformité de texture au niveau du mur. Il aurait put faire un crepis... lol

    Voila. Bonne continuation.
    Images attachées Images attachées   
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 65
    Points : 26
    Points
    26
    Par défaut
    Salut,

    Merci pour ton aide à vrai dire je ne connais pas les techniques dont tu parle donc je vais m'informer la dessus.

    En fait pour l'instant je fais des tests en Java avec l'API JAI.

    Pour la reconnaissance pour gagner du temps je souhaite le faire avec un OCR commercial celui ci donne des résultats variables selon la photo c'est pour cela que je souhaite lui fournir en entrée la zone contenant le texte afin de limiter le bruit qui prête à confusion.

    Le problème des textures en arrière plan se pose souvent j en ai d'autre qui sont apposé sur un grillage ...

    Je pourrais avoir des sources de le nettoyage ...(le "train-train" ) car je debute et toute application me permet de mieux comprendre le fonctionnement des techniques.

    Merci

    Julie.

    PS : J'ai lu pas mal de documents sur le reconnaissance de plaques de voitures qui ressemble fortement à mon problème. Cela a l'air assez compliqué pas mal de techniques ont été expérimentée je ne sais pas si je vais pouvoir obtenir des resultats corrects

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 65
    Points : 26
    Points
    26
    Par défaut
    J'ai fait quelques tests rapidement avec Java (il calcule lui même l'entropie...)

    J'obtiens à peu près le même résultat sauf que ...
    Quand je passe dans l'OCR l'image traité par parp1 j'ai une bonne réponse
    lorsque je passe la mienne il n'y a pas de reponse je vois pas la différence entre son image et la mienne
    Quelqu'un a une idée ?

    Merci

    Julie

    Mon image est la seconde
    Images attachées Images attachées   

  16. #16
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Points : 451
    Points
    451
    Par défaut
    Pas logique...

    La tienne est de meilleure qualité...

    Recommence, tu dois t'être trompé !
    "Cultiver les sciences et ne pas aimer les hommes, c'est allumer un flambeau et fermer les yeux." Proverbe chinois

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 65
    Points : 26
    Points
    26
    Par défaut
    Je sais c'est pour ca que je ne comprend pas !
    Peut etre un problème d'encodage ?
    Dans mon code pour passer en gris je passe en une bande peut etre qu'après je reconstruit mal mon image ?

    Julie.

  18. #18
    Membre éclairé
    Avatar de parp1
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    829
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Mai 2005
    Messages : 829
    Points : 872
    Points
    872
    Par défaut
    Salut vous savez moi jai rien fait...
    J'ai juste utiliser ImageJ (codé en java au passage) un logiciel gratuit disponible ICI

    J'ai Ajouté le plug in Max-entropyThreshold et je vous est donné les resultats...

    Sinon pour le train train du netoyage:

    C'est plutot du coté des morphologies mathématiques que ca se passe.

    Bouchage de trou;Pour boucher les trous present dans tes objets.
    Ouverture pour la suppression des petits objets.
    Fermeture Afin de joindre deux objet separé par une faible distance.
    Borderkill (suppression des objets touchants les bords);
    La plupart sont dans imageJ.


    Au passage je te conseil de boucher les trou apres seuillage entropique. Tu obtiens une nouvelle image. Tu soustrait a cette image l'image seuillé sans le bouchage de trou.

    Ca permet d'isoler les caractere en general. Ce n'est qu'une piste.
    Source Cours MORPHO MATH

    Bon courage.
    [SIZE="2"]Dis moi qui tu suis, je te dirais qui je Hais!
    Heureux est l'étudiant, qui comme la rivière suit son cours sans sortir de son lit

    Mon premier Tutoriel


    A 80% des cas je résouts mon problème en rédigeant une nouvelle discussion, du coup je ne poste que 20% de mes problèmes...

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 65
    Points : 26
    Points
    26
    Par défaut
    Salut

    Apparemment le seuillage par entropie est insuffisant il marche bien sur les images que j ai donné en exemple car les fonds ne presentent pas trop d'ambiguités. Malheureusement avec un jeu de tests plus complets les resultats ne sont pas bcp plus probants que sur les images initiales

    Je tenterai bien du pattern matching mais j ai aucune idée de comment on procède ...

    Merci pour votre aide

    Julie.

  20. #20
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Salut,

    et la méthode de ronan99999 ... tu l'as essayé ? La projection des gradients.

    Flo.

Discussions similaires

  1. extraction d'une chaine à partir d'une autre
    Par prince_bouja dans le forum Débuter
    Réponses: 7
    Dernier message: 15/06/2010, 15h41
  2. [Batch] Créer une chaine à partir d'une variable et d'une autre chaine
    Par mlle lain dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 10/11/2009, 16h26
  3. Extraction d'une sous-chaine à partir d'une chaine principale
    Par gazere dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 13/06/2007, 04h08
  4. Réponses: 2
    Dernier message: 24/04/2006, 14h48
  5. Réponses: 7
    Dernier message: 15/11/2005, 10h14

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