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 :

Distances entre série de vecteurs


Sujet :

Algorithmes et structures de données

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2007
    Messages : 94
    Points : 72
    Points
    72
    Par défaut Distances entre série de vecteurs
    Bonsoir,

    mon problème se situe dans un contexte de reconnaissance de gestes. Une fois analysé, les gestes sont stockés sont forme de vecteurs (dès qu'une amplitude suffisamment grande est détecté, on rajoute un vecteur).
    Maintenant mon problème est qu'on ne peut pas faire à chaque fois exactement le même geste, et donc même si le geste est le même, les vecteurs ne le sont pas, même s'ils sont proches.

    Quelle méthode puis-je utiliser afin de calculer une distance entre ces vecteurs ?

    Merci de votre aide.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Bonjour,

    tu peux commencer simplement avec la "cross-correlation" (= produit scalaire normalisé). Si ca ne suffit pas, tu peux passer a des choses plus exotiques comme le "Dynamic time warping" (si tes données dépendent du temps).
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2007
    Messages : 94
    Points : 72
    Points
    72
    Par défaut
    Désolé pour le temps de réponse, je travaille sur l'acquisition des images afin d'obtenir les séries de vecteurs.
    J'ai regardé le "cross-correlation" mais au final, ca revient a faire un produit scalaire. Or, avec ca, on peut comparer les vecteurs que 2 à 2. Ce que je voulais, c'est une méthode qui permette de comparer tous les vecteurs d'un coup. Mais je ne sais pas si ca existe.
    Sinon, pour le moment, je ne prend pas en compte la notion de temps.

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Renaud-62 Voir le message
    Ce que je voulais, c'est une méthode qui permette de comparer tous les vecteurs d'un coup. Mais je ne sais pas si ca existe.
    Tu cherches une méthode de recherche du plus proche voisin (nearest neighbor search) ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 46
    Points
    46
    Par défaut
    Peux-tu préciser un peu tes données ? Tes vecteurs sont-ils tous de même taille et quelle taille font-ils ?
    Comment se passe ton process au final ? tu commence par te créer une base de geste composée d'une série de vecteurs pour chacun des gestes, puis tu veux à partir d'une autre série de vecteurs trouver le geste correspondant ?

    Enfin tout ce qui pourrait aider à mieux comprendre ton besoin.

  6. #6
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2007
    Messages : 94
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par vincent69 Voir le message
    Peux-tu préciser un peu tes données ? Tes vecteurs sont-ils tous de même taille et quelle taille font-ils ?
    Comment se passe ton process au final ? tu commence par te créer une base de geste composée d'une série de vecteurs pour chacun des gestes, puis tu veux à partir d'une autre série de vecteurs trouver le geste correspondant ?

    Enfin tout ce qui pourrait aider à mieux comprendre ton besoin.
    Bien sur que je peux préciser. Ce sera des vecteurs simples, de type (x,y). L'idée est bien cele-ci : j'ai une base de donnée de geste, chaque geste étant représenté par une série de vecteurs. Je compare le geste qui vient d'être effectué avec chacun des gestes de la base de données, et je choisis le plus proche (si assez proche).
    Donc si je comprend bien, oui ce serait une méthode de recherche du plus proche voisin.

  7. #7
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Renaud-62 Voir le message
    Donc si je comprend bien, oui ce serait une méthode de recherche du plus proche voisin.
    Dans ce cas, l'approche habituelle est le partitionnement de l'espace (avec des structures comme le kd-tree).

    Sinon, pour un résultat approché, tu peux utiliser les fonctions de hash locales (Locality sensitive hashing). Cela se rapproche assez des méthodes de classification.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #8
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 46
    Points
    46
    Par défaut
    As-tu toujours le même nombre de vecteurs par geste et combien de vecteurs as-tu ?

  9. #9
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2007
    Messages : 94
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par vincent69 Voir le message
    As-tu toujours le même nombre de vecteurs par geste et combien de vecteurs as-tu ?
    En fait, pour le moment, j'en suis à l'étude bibliographique, afin de voir les différentes méthodes possibles. Donc je ne sais pas vraiment. Mais je ne pense pas qu'au final il y aura toujours autant de vecteurs : un geste peut être plus long qu'un autre.
    La distance de Mahalanobis pourrait-elle faire l'affaire ?

    Sinon, au lieu d'utiliser des vecteurs je pourrais simplement représenter le geste par une forme, et essayer de reconnaitre cette forme un peu à la manière de la reconnaissance d'une lettre. Je sais qu'il existe des algorithmes pour ca. Bien sur, cela signifiera que la façon d'effectuer le geste sera plus souple (on peut faire un cercle dans les deux sens par exemple).

    Sinon je viens de penser : pour comparer deux vecteurs de dimensions n, on peut utiliser la similarité cosinus, ce qui revient à faire le produit scalaire en utilisant la norme des vecteurs.

    Soit le geste A : ((a,b),(c,d),(e,f)) et le geste B : ((g,h),(i,j),(k,l)).
    Si on considère que A est un vecteur de vecteurs, de même avec B, est-ce qu'il serait possible d'imaginer une sorte de cosinus pour des vecteurs sous cette forme ?
    Un genre de cosinus de matrice ?

  10. #10
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 46
    Points
    46
    Par défaut
    écris tes vecteurs comme cela : (a,b,c,d,e,f) et (g,h,i,j,k,l)

  11. #11
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2007
    Messages : 94
    Points : 72
    Points
    72
    Par défaut
    Hum... je sais pas pourquoi mais j'ai l'impression que je vais perdre des informations comme ca. Je vais faire des tests dans les prochaines jours, et je vous tiens au courant.

Discussions similaires

  1. distance entre les vecteurs d'une matrice
    Par sonialand dans le forum MATLAB
    Réponses: 3
    Dernier message: 25/10/2010, 17h45
  2. Distance entre vecteurs
    Par DELAYMEN1 dans le forum Mathématiques
    Réponses: 18
    Dernier message: 26/07/2010, 15h37
  3. Distance entre deux vecteurs
    Par fraisa1985 dans le forum MATLAB
    Réponses: 3
    Dernier message: 16/05/2010, 09h36
  4. Aucune distance entre les colones d'un tableau
    Par FrankOVD dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 29/06/2005, 12h05
  5. Mesure distance entre 2 points d'une image
    Par vexal dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/05/2005, 14h29

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