Для редагування афінної інваріантності потрібна ця версія кривизни, очевидно.
http://en.wikipedia.org/wiki/Affine_curvature#Affine_curvature
Припустимо, що саме про це я і говорю. (Хоча нормальна кривизна, на мою думку, є інваріантною поворотами, які можуть бути досить хорошими).
Редагувати для масштабної інваріантної версії кривизни дивіться тут
/math/1329/what-is-the-form-of-curvature-that-is-invariant-under-rotations-and-uniform- скалі
Проблеми розпізнавання жестів є підкласом проблем розпізнавання, а проблеми розпізнавання - це в основному моделі порівняння.
Ваша спроба підходити ваш жест до якоїсь колекції жестів, найкращий жест виграє.
Я записав би ваш жест кілька разів і спробував би відповідати вашим тренувальним даним чимось на зразок b-сплайна (крива). Ви, мабуть, хочете, щоб ваші жести були інваріантними для афінних перетворень (обертання, масштабування, переклад), тому зберігайте криву як таблицю значень кривизни (навряд чи вона має гарну закриту форму), на відміну від декартових координат управління бали.
Це модель жесту. Скажімо, у вас є кілька.
Для їх порівняння почніть з підгонки вхідних даних, а потім оцініть кривизну x кількість разів, де x дає хороший компроміс між точністю та продуктивністю.
Тепер перегляньте моделі та відніміть значення кривизни (оцінені в одній точці вздовж відповідних кривих по довжині дуги) та відзначте різницю. Значення, яке виходить, називається залишковим. Підсумуйте всі залишки. Модель з найменшими залишками найкраще підходить, і це ваш найімовірніший жест.
Порівняйте мою відповідь з @ Olie's. Вони в основному однакові, хоча ми вибираємо різні моделі для жесту (побудова таблиці підписаної кривизни та фіксація зміни кута дотичної майже однакові, я припускаю, що дані генеруються гладкими крива зі шумом), головна відмінність @Olie - це швидкість.
Вибір параметрів, які слід включити у вашу модель, залежить від ситуації та вимог до продуктивності. Майте на увазі, що додавання параметрів до вашої моделі збільшує розмірність.