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

Algorithmes et structures de données Discussion :

Algos pour reconnaissance de formes


Sujet :

Algorithmes et structures de données

  1. #1
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut Algos pour reconnaissance de formes
    Salut

    Tout d'abord je tiens à préciser que ce problème ne me concerne qu'indirectement, donc s'il manque certaines précisions je m'en excuse.

    Le but est de faire de la reconnaissance de formes, ou plutôt de la comparaison. L'utilisateur trace une forme (une suite de segments) dans une grille en coordonnées 2D réelles, et le but est de déterminer si celle-ci correspond à une forme simple prédéfinie : cercle, carré, segment, ...

    J'avais tout d'abord pensé aux réseaux de neurones, mais en réflechissant à la structure de celui-ci ainsi qu'à ses entrées / sorties, je me suis dit que ce n'était peut-être pas adapté à ce problème particulier.

    Donc, est-ce tout de même la bonne piste ? Si oui, comment procéder ? Sinon, quels sont les pistes à suivre ?


  2. #2
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    J'ai pas mal de solutions pour cela pour avoir développé de la reconnaissance de caractères RT.
    A-t-on l'historique des points?

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Qu'est-ce que tu entends par l'historique des points ?

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Le probleme est TRES différent si on a une image avec un tracé ou si on acquiere les points a une fréquence donnée et que l'on stokes les couples (X,Y) (t) pour t= n*dt

    voir notre brevet

    Procédé de reconnaissance de caractères tracés manuellement sur une zone de saisie et dispositif électronique permettant de mettre en oeuvre ce procédé

  5. #5
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut Re: Algos pour reconnaissance de formes
    Salut,

    Citation Envoyé par Loulou24
    J'avais tout d'abord pensé aux réseaux de neurones, mais en réflechissant à la structure de celui-ci ainsi qu'à ses entrées / sorties, je me suis dit que ce n'était peut-être pas adapté à ce problème particulier.
    Qu'est-ce qui te fait les exclure ? C'est pourtant un domaine où ils ont fait leurs preuves...

  6. #6
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Je suis assez d'accord si on traite des bitmap mais cela requière pas mal de ressources. Si on à du Real Time sur des processur embarqués de faible performance- mémoire, il existe des moyens nettements plus efficaces.
    Nous avons pu obtenir environ 97 à 99% de tau de reconnaissance sur un palette d'environ 60 caractères ( alpha numnérique + ponctuation + caractères standards + - ! ? # * & & @ ...)
    ceci temps réel sur um proc à 4MHz et 64k de mémoire totale (soft + data + stack + FS )

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Le probleme est TRES différent si on a une image avec un tracé ou si on acquiere les points a une fréquence donnée et que l'on stokes les couples (X,Y) (t) pour t= n*dt
    L'utilisateur entrant les segments au fur et à mesure (il me semble), on peut donc partir sur le second cas.

    Qu'est-ce qui te fait les exclure ? C'est pourtant un domaine où ils ont fait leurs preuves...
    Je ne suis pas très calé en réseaux neuronaux, mais il me semblait qu'ils étaient très performant pour détecter une ressemblance entre deux images bien définies, pas pour dire si telle forme a plutôt une allure de cercle ou de carré. Mais comme je l'ai dit, peut-être que je me trompe.

  8. #8
    Membre averti Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Points : 352
    Points
    352
    Par défaut
    Salut,

    il y a plusieurs moyens de traiter ceci, le premier comme tu l'as dis est le reseau de neurone mais qui sera plus adapté pour reconnaitre un type de forme particulier dans une serie d'image

    et tu as la base de données qui contient une certaine quantité de formes connues. Ensuite tu peux definir une distance de similarité et comparer avec ta base de données sur quelle formes la distance est la plus faible.

    si tu cherches sur le net sur les mots clefs data mining et image mining tu trouveras aussi des articles qui traitent de ce sujet.

    XXiemeciel

  9. #9
    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 !

    Il y a une solution simple et efficace quand on connaît les segements de la forme : ce sont les descripteurs de Fourier.

    En gros cela consiste à décomposer la forme en série de Fourier (ou transformée il faut que je potasse un peu...). Plus on donne de coefficients, plus la forme est précise, ce qui veut dire que les premiers correspondent aux basses fréquences de la forme (cad la forme globale), les "derniers" (enfin comme il y en a une infinité...) correspondent aux hautes fréquences...

    La comparaison est donc faite sur les N premiers coefficients de Fourier, ce qui bien sûr diminue les calculs... (N est choisi selon ton appréciation)

    C'est pas mal utilisé dans le genre exact de cas que tu décris (cad on dispose des segments de la forme, donc en quelque sorte elle est déjà segmentée)...

    A+

    [EDIT] Quant au réseau de neurones, il faudrait quand même un long apprentissage je pense, ce qui est souvent pénible... enfin je crois...

  10. #10
    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
    Voici un cours sur les descripteurs de Fourier et autres méthodes : http://www.tsi.enst.fr/~tupin/cours/...urs_formes.pdf...

    A+

  11. #11
    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
    Exact, et c'est indépendant de l'échelle, de la translation ou d'une rotation.

  12. #12
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par Loulou24
    Je ne suis pas très calé en réseaux neuronaux, mais il me semblait qu'ils étaient très performant pour détecter une ressemblance entre deux images bien définies, pas pour dire si telle forme a plutôt une allure de cercle ou de carré. Mais comme je l'ai dit, peut-être que je me trompe.
    Dans ce cas, il s'agit plus d'une tâche de classification que d'association entre deux formes. Mais c'est également du ressort des réseaux neuronaux.
    Citation Envoyé par Miles
    [EDIT] Quant au réseau de neurones, il faudrait quand même un long apprentissage je pense, ce qui est souvent pénible... enfin je crois...
    Certes, le temps d'apprentissage du réseau peut être important, et les choix de type, de dimensionnement du réseau et des jeux d'apprentissage et de test peuvent être assez délicats, mais une fois que ton réseau marche, il sera beaucoup plus rapide que des calculs de transformées de fourrier pour chaque forme soumise.

  13. #13
    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
    Citation Envoyé par GrandFather
    Citation Envoyé par Miles
    [EDIT] Quant au réseau de neurones, il faudrait quand même un long apprentissage je pense, ce qui est souvent pénible... enfin je crois...
    Certes, le temps d'apprentissage du réseau peut être important, et les choix de type, de dimensionnement du réseau et des jeux d'apprentissage et de test peuvent être assez délicats, mais une fois que ton réseau marche, il sera beaucoup plus rapide que des calculs de transformées de fourrier pour chaque forme soumise.
    C'est justement tout le problème : l'apprentissage doit être très long, et on ne sait jamais vraiment pourquoi ça marche : ça fait vraiment boîte noire qui sort un résultat, donc il faut être vraiment très prudent, non ? En fait je nesuis pas familier des réseaux neurones, mais c'est un peu l'opinion qu'ont les gens qui s'y connaissent dans mon entourage...

    A+

  14. #14
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par mathieu_t
    C'est justement tout le problème : l'apprentissage doit être très long, et on ne sait jamais vraiment pourquoi ça marche : ça fait vraiment boîte noire qui sort un résultat, donc il faut être vraiment très prudent, non ? En fait je nesuis pas familier des réseaux neurones, mais c'est un peu l'opinion qu'ont les gens qui s'y connaissent dans mon entourage...
    Je suis assez d'accord avec eux : une fois l'apprentissage terminé, on ne sait jamais vraiment ce que le réseau a appris !
    C'est pour cela que le jeu de test doit être le plus complet et pertinent possible, il faut essayer de prendre l'apprentissage en défaut, et vérifier que le réseau est capable de généraliser.

    Quant à la durée de l'apprentissage, elle peut être certes longue, mais il n'a lieu qu'une fois.

  15. #15
    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
    C'est pour ça que je préfère les SVMs, c'est adapté à toute classification en n classes, avec frontières non-linéaires, pas de sur-fitting, complexité du calcul résiduel très faible car on ne prend en compte qu'un nombre de vecteurs défini à l'avance.

    Le pb, c'est que pour tous ces algos, il vaut mieux utiliser un descripteur de forme invariant par rotation/translation/homothétie, sans quoi je ne suis même pas sûr qu'un réseau de neurones puisse être entraîné correctement - il y a un // entre RN et SVM qui existe -

Discussions similaires

  1. Quel langage pour la reconnaissance de forme dans les bitmaps
    Par zulad dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 17/03/2013, 07h46
  2. Réponses: 1
    Dernier message: 05/10/2012, 11h04
  3. Réponses: 2
    Dernier message: 10/02/2009, 10h11
  4. Réponses: 20
    Dernier message: 11/09/2008, 14h20
  5. Algo pour écrire un chiffre
    Par Skyw4lKR dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 11/08/2004, 13h32

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