Modifier l' invariance affine nécessite apparemment cette version de courbure.
http://en.wikipedia.org/wiki/Affine_curvature#Affine_curvature
Supposons que c'est à cela que je fais référence. (Bien que la courbure normale, je pense, est invariante aux rotations qui pourraient être assez bonnes).
Modifier pour une version invariante à l'échelle de la courbure, regardez ici
/math/1329/what-is-the-form-of-curvature-that-is-invariant-under-rotations-and-uniform- scali
Les problèmes de reconnaissance des gestes sont une sous-classe des problèmes de reconnaissance, et les problèmes de reconnaissance sont essentiellement des problèmes de comparaison de modèles.
Vous essayez d'adapter votre geste à une collection de gestes, le meilleur geste gagne.
Je voudrais enregistrer votre geste plusieurs fois et essayer d'adapter vos données d'entraînement avec quelque chose comme une b-spline (une courbe). Vous voulez probablement que vos gestes soient invariants aux transformations affines (rotations, mise à l'échelle, translation), alors stockez la courbe sous forme de tableau de valeurs de courbure (il est peu probable qu'elle ait une belle forme fermée), contrairement aux coordonnées cartésiennes du contrôle points.
C'est un modèle de geste. Disons que vous en avez plusieurs.
Pour les comparer, commencez par ajuster vos données d'entrée, puis évaluez la courbure x nombre de fois, où x offre un bon compromis entre précision et performances.
Maintenant, parcourez les modèles et soustrayez les valeurs de courbure (évaluées au même point le long des courbes respectives en termes de longueur d'arc) et mettez la différence au carré. La valeur qui en résulte est appelée résiduelle. Résumez tous les résidus. Le modèle avec les plus petits résidus est le meilleur ajustement et c'est votre geste le plus probable.
Comparez ma réponse à @ Olie. Ils sont fondamentalement les mêmes, bien que nous choisissions différents modèles pour le geste (construire un tableau de la courbure signée et enregistrer le changement de l'angle de la tangente sont presque les mêmes, je suppose que les données sont générées par un lissage courbe avec bruit cependant), la principale différence est que @Olie inclut la vitesse.
Le choix des paramètres à inclure dans votre modèle dépend de la situation et des exigences de performances. Gardez à l'esprit que l'ajout de paramètres à votre modèle augmente la dimension.