Mesures de similitude entre les courbes?

17

Je voudrais calculer la mesure de similitude entre deux ensembles ordonnés de points --- ceux sous Utilisateur comparés à ceux sous Professeur :

! [Exemple] (http://i50.tinypic.com/2uj0580.jpg)

Les points sont des courbes dans l'espace 3D, mais je pensais que le problème est simplifié si je les traçais en 2 dimensions comme sur la photo. Si les points se chevauchent, la similitude doit être de 100%.

Alex
la source
Avez-vous besoin de prendre en compte la mise à l'échelle, la rotation et / ou la traduction?
nico
Non, je n'ai pas besoin de les prendre en compte.
Alex
ce qui signifie que je vais appliquer prendre soin de cela.
Alex

Réponses:

11

Vous comparez des trajectoires ou des courbes . C'est un sujet étudié. L'analyse des procrustes et la déformation temporelle dynamique , comme le dit EMS, sont des outils du métier. Une fois que vous aurez aligné les courbes, vous voudrez mesurer la distance, disons la distance de Fréchet . Si vous souhaitez partager certaines de vos données, nous pourrions nous attaquer nous-mêmes.

Lecture pertinente:

Si vous ignorez la dimension temporelle:

Vous pouvez adapter l'utilisateur et l'enseignant à des densités gaussiennes multivariées et trouver le volume de leur produit - c'est assez facile. Si vous souhaitez plus de précision, vous pouvez utiliser une estimation de densité non paramétrique à la place.

Emre
la source
Merci Emre pour ta suggestion! J'ai mis à jour le problème - je pense qu'il peut être plus simple maintenant, alors jetez un œil.
Alex
Vous pouvez adapter l'utilisateur et l'enseignant à des densités gaussiennes multivariées et trouver le volume de leur produit - c'est assez facile. Pourriez-vous, s'il vous plaît, me montrer les bonnes ressources pour l'apprendre? Vraiment novice ici.
Sibbs Gambling
La distance euclidienne sera-t-elle suffisante pour des courbes alignées?
Vladimir Chupakhin
J'ai utilisé des coefficients de corrélation pour comparer les similitudes et fixer le résultat entre 0 et 1.
M.kazem Akhgary
3

Vous pouvez considérer la distance de Procrustes , ou une certaine distance basée sur la déformation temporelle dynamique (même si l'une de vos dimensions n'est pas le "temps" en soi, vous pouvez toujours utiliser cette idée de transformation). Voir ce travail récent sur Tracklets pour un cas d'utilisation illustratif de la déformation temporelle dynamique pour mesurer la similitude entre des courbes spatiales 3D taillées par des trajectoires ponctuelles dans des vidéos.

Il existe de nombreuses bibliothèques avec des calculs de distance Procrustes intégrés, comme Matlab ou la bibliothèque PyGeometry pour Python.

ely
la source
2

Le message d'origine demandait une métrique entre les points COMMANDÉS en 3D. La seule mesure de ce type est la distance de Frechet. Il n'y avait aucune mention du temps comme l'une des dimensions, donc je suppose que toutes les dimensions ont des unités de distance (c'est-à-dire que les unités ne sont pas mélangées). Cela peut être fait en modifiant une fonction récemment téléchargée sur l'échange de fichiers MathWorks (calcul de la distance Frechet: http://www.mathworks.com/matlabcentral/fileexchange/38714 ). Ces routines ont été écrites pour des points dans l'avion, mais l'extension aux points 3D est simple.

Rich Kenefic
la source
1
Êtes-vous sûr que la distance Frechet est entre les paires ordonnées? la page wikipedia indique qu'un point dans un chemin peut être mis en correspondance avec plusieurs points dans un autre. En outre, il existe certainement plus d'une mesure de ce type. Qu'en est-il de la somme des distances entre les paires ordonnées?
naught101
1

XYdH(X,Y)=max{supxXinfyY||xy||,supyYinfxX||xy||}

TenaliRaman
la source
supinfmaxmin
1
XY
Merci pour le lien, je n'avais vu que la distance de Hausdorff en vision par ordinateur dans le livre de Tony Chan. C'est cool de voir plus d'approches informatiques.
ely
1

La similitude est une quantité qui reflète la force de la relation entre deux objets ou deux caractéristiques. Cette quantité est généralement comprise entre -1 et +1 ou normalisée entre 0 et 1. Vous devez calculer la distance de deux entités selon l'une des méthodes ci-dessous:

  1. Distance de correspondance simple
  2. Distance de Jaccard
  3. Distance de Hamming
  4. Coefficient de Jaccard
  5. coefficient d'appariement simple

Pour la ligne ... vous pouvez le représenter par les propriétés d'angle (a) et de longueur (l) ou L1 = P1 (x1, y1), P2 (x2, y2) ci-dessous est la similitude avec a et l.

mesurer maintenant l'angle pour les angles et les longueurs

  • A_user = 20 et Length_User = 50
  • A_teacher30 et Length_Teacher = 55
  • Maintenant, normalisez les valeurs.

Utiliser la distance euclidienne

similitude = SquareRoot ((A_user - A_teacher30) ^ 2 + (Length_User - Length_Teacher) ^ 2)

donne la mesure de similitude. Vous pouvez également utiliser les méthodes mentionnées ci-dessus en fonction du problème et des fonctionnalités.

sso
la source