У меня концептуальная проблема. Я создаю программу, которая использует Kinect для распознавания жестов. У меня есть некоторые данные о жестах, разделенные на категории (круги, свайпы и т. д.). Пока анализирую только одну руку. Записываю все кадры (30fps).
(*) Чтобы сделать мои данные дискретными и независимыми от положения, я вычисляю углы между последовательными точками.
Теперь я хочу создать 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?).
Я прочитал ЭТУ статью, но не совсем как решить мою проблему...