I am completing a final year project for hand gesture recognition using Hidden Markov Models

I have a fair understanding of Hidden Markov Models and how they work using simple examples such as the Unfair Casino and some Weather examples.

I am looking to implement multiple Hidden markov models where each model corresponds to a single gesture, similarly to this paper where the observed states are the angles between the coordinates of different points. This would create a sequence of numbers from 0 to 18 as seen in Figure 3 and Figure 4. .

What would the hidden states be in terms of this scenario?

The weather example has the observations 'Walk', 'Shop' and 'Clean' which would be the numbers 0-18 in the hand gesture case, however I do not know what the states 'Rainy' and 'Sunny' would correspond to in the hand gesture scenario.

Edit: I am generating a sequence of numbers that will correspond to a certain gesture using the method mentioned above. I will then use that sequence to train a HMM and will then test that HMM using another set of recorded numbers similar to the training set. Here is an example of my scenario:

Recorded data of observed states (theta) during a gesture:

observations = [0,1,4,15,4,3,1,0,19,18,17,16,15,15,16,3,1,1,0,18...]

Recorded data of test gesture:

test = [0,2,4,15,4,2,1,0]

My goal is to create a model from the first set of observations (which will be much longer as the gesture will be recorded many times) and determine the likelyhood of the test gesture to be from said model.

Will I need to generate a hidden state to create an accurate model of the gesture or can I just use unsupervised training for a model?

If i do have to use supervised training, should I create the hidden states using quadrants (i.e. 0-90 degrees = quadrant1, 90-180 degrees = quadrant2...)?

  • $\begingroup$ There might not be any simple interpretation of the states that you infer by constructing a HMM. $\endgroup$
    – D.W.
    Aug 24, 2020 at 16:41
  • $\begingroup$ @D.W. I was thinking of two solutions to work around this problem. Fist would be to just use unsupervised training as I would not have to assign hidden states to the obseved states however I am not sure how that would affect the forwards-backward algorithm when determining the probability of a sequence being from that model. The second solution would be to set the hidden states as the quadrants those angles are in (e.g. 0-90 = quadrant 1, 90-180 = quadrant 2, etc..). $\endgroup$ Aug 25, 2020 at 3:27
  • $\begingroup$ Can you edit your question to state the context and what you're trying to achieve? Presumably you want to be able to interpret the states for some reason; what are you going to do with that, and what do you want to accomplish? There might be multiple ways to accomplish it; and we'll need to know that to give you good suggestions for how to solve it. $\endgroup$
    – D.W.
    Aug 25, 2020 at 4:57
  • $\begingroup$ I have just updated my question to explain my goal. I hope it is enough to give a clearer understanding of the situation. $\endgroup$ Aug 25, 2020 at 5:43
  • $\begingroup$ Instead of appending "Edit:" and then more information, we prefer that you revise the question so that it reads well for someone who encounters it for the first time. See cs.meta.stackexchange.com/q/657/755 $\endgroup$
    – D.W.
    Aug 25, 2020 at 7:46

1 Answer 1


You say that your goal is to create a model and compute the likelihood of a test sample using that model. For that purposes, you do not need to find a way to interpret the hidden states, and you do not need to engineer the model so the hidden states have a meaning that you can understand. Instead, let the standard Baum-Welch algorithm compute a reasonable model that fits the training data, and don't worry about the meaning of the hidden states.

If you had a physics model where you knew what the hidden states "should" be, based on some domain knowledge (e.g., about the movement patterns of bones and joints), then you could incorporate that into your model in hopes of improving the model... but that's not required. Since you don't seem to start from such a place, there is no need to try to force the hidden states to take on any particular human-understandable meaning.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.