У меня есть концептуальная проблема. Я создаю программу, которая использует Kinect для распознавания жестов. У меня есть некоторые данные жестов, разделенные на категории (круги, звуки и т. Д.). Пока я анализирую только одну руку. Я записываю все кадры (30 кадров в секунду).Building HMM для распознавания жестов на основе Kinect
(*) Для того чтобы мои данные были дискретными и независимыми от положения, я вычисляю углы между последовательными точками.
Теперь я хочу создать hidden Markov models
для каждого типа жестов.
Теперь мне нужно определить несколько состояний для моего HMM
. Как это сделать? Я подумал о том, чтобы найти самый длинный жест (вовремя). Например. У меня 3 жеста, сначала 1,2s
, второй 1,4s
и третий 1,5s
. Таким образом, 1,5s
является самым длинным. Теперь я хочу применять (*) для каждого кадра каждые 250 миллисекунд (4 образца в секунду). Потому что мой самый длинный жест 1,5s
длинный, так NumberOfStatesForHMM = 1500ms/250ms = 6 states
- и это должно быть довольно оптимально?
Я не знаю, как я должен определить состояния для HMM
:/Если выше моя идея верна, как подсчитать вероятности перехода, когда существуют (например) 6 штатов и один жест заканчивается после того, как 1s
, поэтому я анализирую 4 состояния (вероятности переходов из состояний 4-5 и 5-6 равны 0?).
Я читал THIS бумагу, но я не совсем уверен, как решить мою проблему ...
Спасибо за ваш ответ. Я думал об изменении количества состояний независимо для каждого HMM, потому что, например, У меня примерно 15-20 наблюдений за моими волнами, но только 5-8 для моих Swipes. Поэтому, если мне нужно было выбрать max 4 состояния, потому что когда я хочу инициализировать мою матрицу A (матрица переходов) для модели LR, я рассчитываю вероятности с помощью формулы 'a_ii = 1 - N/T', где' N' - число состояний и 'T' - длина жестов (поэтому, когда я выбираю большое значение« N », я получаю вероятность меньше 0 для диагоналей и более 1 для диагоналей + 1. – Nickon
Я внедрил« Forward-Backward Baum-Welch » Изучение' для оценки матриц и начального вектора. Кажется, это работает плохо. Я получаю вероятность 0 для абсолютно плохих случаев для указанного HMM (это должно быть так), но когда я изучаю HMM с 3 образцами, а затем я использую один образец для Оцените вероятность, я получаю вероятность, как 3e-5. И это должно быть примерно ~ 1. Я делаю что-то неправильно, возможно, где-то есть ошибка или мне нужно больше данных для обучения. Мне нужно проверить его эмпирически. – Nickon
КПП.Сейчас я нахожусь на работе, поэтому я посмотрю вашу статью позже, но теперь я вижу, что это действительно ясно описано. Ppl в своих газетах пишут такие вещи, о которых вам нужно подумать полдня. Признание жеста должно быть приятным, а не войной с математикой ... – Nickon