Стратегії розпізнавання жестів


12

Працюючи з Wii, я часто вважаю за потрібне розпізнавати прості жести, тому мені вдалося в основному дивитися на величину прискорення, щоб розпізнати жести, про які вимагали в наших ігрових документах, але я хотів би створити більш міцна система, яка дозволяє "записувати" приклади жестів і розпізнавати складні жести.

Які стратегії ви використовували в минулому? Чому вони працювали? Чому вони не працювали? Що б ти зробив інакше?

Відповіді:


5

Для редагування афінної інваріантності потрібна ця версія кривизни, очевидно.
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 - це швидкість.

Вибір параметрів, які слід включити у вашу модель, залежить від ситуації та вимог до продуктивності. Майте на увазі, що додавання параметрів до вашої моделі збільшує розмірність.


4

В дуже широкому розумінні ви, мабуть, хочете визначити жест як напрямок, за яким слідує [можливо дуже коротка] затримка з наступним іншим напрямком (і відносними кутами між напрямками тощо) до кінця.

Наприклад, зробити "т" вашою паличкою (і не забувайте, що деякі люди - ліві, тому ваші визначення не повинні залежати від руки!) - це вертикальний нахил, коротка затримка, вивертання, що вивертається, коротка затримка, розворот. голова горизонтальна, крута [біля] зупинка.

Читаючи жест, ви хочете побачити, наскільки тісно прочитаний зразок відповідає опису шаблону.

Загалом кажучи, ви можете спочатку скасувати словник визначення, усунувши явні невідповідність (ті, які навіть не починаються правильно, або занадто довгі або занадто короткі), а потім "забити" жест проти решти визначень. Оцініть жест, оцінюючи кожну частину щодо того, наскільки добре вона відповідає визначенню (0-100%) та RMS-ing, що (візьміть помилки, квадрати, підсумуйте їх, а потім візьміть квадратний корінь цієї суми.)

Використання RMS підкреслює великі відмінності (що призводить до зниження балів), при цьому, як правило, змальовує невеликі відмінності (що призводить до кращої відповідності.)

Є багато матеріалів про цей матеріал - розпізнавання жестів Google. Не хвилюйтесь, якщо це стосується стилуса чи іншої речі, що не стосується Wii, принципи добре адаптуються.


0

Я робив це лише мишкою, але моє рішення спрацювало дуже добре. Я створив шаблон з'єднання точок точок, щоб зобразити жест - це форма для малювання. Потім я зберігав шлях курсора, коли він рухався. Далі я масштабував цю доріжку миші, щоб вона мала ту саму ширину і висоту, що і цільовий малюнок. Кожне оновлення я перебирав усі точки мого шляху курсору, переконуючись, що вони розташовані на певній відстані від вузла шляху жесту, дивлячись на кожну точку шляху жесту в порядку.


0

Мене навчав Game AI одним із провідних розробників AiLive (він є в деяких відео), і коротка відповідь полягає в тому, що намагатися виконувати ці розпізнавання жестів просто надто болісно, ​​щоб витратити своє життя. Я б запропонував пройти маршрут середнього програмного забезпечення та отримати пакет LiveMove AiLive.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.