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



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



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

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

681   2  

2 ответов:

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

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

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

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

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

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

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

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

  • каждый кластер центроид обычно ассоциируется с базовой единицей задачи. В распознавании речи, например, каждый центроид может быть связан с фонемой. Для задачи распознавания жестов каждый центроид VQ может быть связан с позой или конфигурацией руки.
3) вручную построить Гммс, переходы состояний которых захватывают последовательность различных поз в пределах жеста.
  • Распределение эмиссии этих состояний хм будет центрировано на векторе VQ из шага 2.

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

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

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

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

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

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

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

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

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

Comments

    Ничего не найдено.