Алгоритм распознавания жестов HMM

Я хочу, чтобы разработать приложение для распознавания жестов с помощью Kinect и hidden Markov models. Я смотрел учебник здесь:лекции МДА

но я не знаю, с чего начать. Каково состояние набора и как нормализовать данные, чтобы иметь возможность реализовать HMM обучения? Я знаю (более или менее), как это нужно делать для сигналов и для простых случаев "слева направо", но 3D-пространство меня немного смущает. Может ли кто-нибудь описать, как это должно быть начато?

может ли кто-нибудь опишите шаги, как это сделать? Особенно мне нужно знать, как сделать модель и какие должны быть шаги .

2 ответов


одним из методов применения HMMs к распознаванию жестов было бы применение аналогичной архитектуры, обычно используемой для распознавания речи.

HMM будет не в пространстве, а во времени, и каждый видеокадр (или набор извлеченных функций из кадра) будет излучением из состояния HMM.

к сожалению, распознавание речи на основе хмм является довольно большой областью. Было написано много книг и тезисов, описывающих различные архитектуры. Я рекомендую начиная с "статистических методов распознавания речи" Елинека (http://books.google.ca/books?id=1C9dzcJTWowC&pg=PR5#v=onepage&q&f=false) затем, следуя ссылкам оттуда. Другим ресурсом является веб-страница CMU sphinx (http://cmusphinx.sourceforge.net).

еще одна вещь, которую нужно иметь в виду, что системы на основе HMM, вероятно, менее точны, чем дискриминационные подходы, такие как условные случайные поля или распознаватели max-margin (например, SVM-struct).

для распознавателя на основе HMM общий процесс обучения обычно выглядит следующим образом:

1) Выполните некоторую обработку сигнала на необработанных данных

  • для речи это будет включать преобразование необработанного звука в формат mel-cepstrum, в то время как для жестов это может включать извлечение функций изображения (SIFT, GIST и т. д.)

2) применить векторное квантование (VQ) (другие методы уменьшения размерности также можно использовать) для обработки данных

  • каждый центроид кластера обычно связан с базовой единицей задачи. Например, при распознавании речи каждый центроид может быть связан с фонемой. Для задачи распознавания жестов каждый центроид VQ может быть связан с конфигурацией позы или руки.

3) вручную построить HMMs, переходы состояния которых захватывают последовательность различных поз в жест.

  • распределения выбросов этих состояний HMM будут сосредоточены на векторе VQ с шага 2.

  • в распознавании речи эти HMMs построены из словарей фонем, которые дают последовательность фонем для каждого слова.

4) построить один хмм, который содержит переходы между каждым отдельным жестом хмм (или в случае распознавания речи, каждая фонема хмм). Затем обучите композит Хмм с видео жестов.

  • также возможно на этом этапе тренировать каждый жест хмм индивидуально перед совместным шагом тренировки. Этот дополнительный шаг обучения может привести к лучшему распознаванию.

для процесса распознавания примените шаг обработки сигнала, найдите ближайшую запись VQ для каждого кадра, затем найдите путь с высокой оценкой через HMM (либо путь Витерби, либо один из набора путей из поиска A*), учитывая квантованный векторные иллюстрации. Этот путь дает предсказанные жесты в видео.


я реализовал 2d-версию этого для класса Coursera PGM,который имеет жесты kinect в качестве конечной единицы.

https://www.coursera.org/course/pgm

в принципе, идея в том, что вы не можете использовать хмм, чтобы на самом деле решить позы очень хорошо. В нашем блоке я использовал некоторую вариацию K-средних для сегментации поз в вероятностные категории. Хмм был использован, чтобы на самом деле решить, какие последовательности поз были на самом деле жизнеспособны как жесты. Но любой алгоритм кластеризации, выполняемый на множестве поз, является хорошим кандидатом-даже если вы не знаете, какая это поза или что-то подобное.

оттуда вы можете создать модель, которая тренируется на агрегированных вероятностях каждой возможной позы для каждой точки данных kinect.

Я знаю, что это немного редкое интервью. Этот класс дает отличный обзор состояния искусства, но проблема в целом слишком сложна, чтобы быть сжатой в простой ответ. (Я бы рекомендовал принять его в апреле, если вы заинтересованы в этой области)