Biomedical Engineering Reference
In-Depth Information
by Rabiner [ 15 ] contains several uses of the model and is a well-known tutorial for
further details on HMM use. The basic Hidden Markov Model is composed of five
matrices (labels come from the tutorial):
N—Discrete set of hidden states the HMM is predicting.
M—Set of possible observation symbols (the data input that we know).
A—The state transition matrix, the probability of going from one state to another.
B—The observation matrix, the probability of seeing a specific observation while
in a specific state.
—The initial state matrix, which contains the probability of starting in a specific
state.
The HMMmatrices are then setup to represent a particular problem set and trained
on existing data (see [ 15 ] for a full discussion). Once complete, current observational
data can be fed into the HMM to provide the probability that the system is in each
state. From this, you determine how to use the outputs of an HMM for your system.
For example, if you have states representing different gestures, you might take the
highest state probability above a threshold to determine a gesture was completed such
as walking, jumping or ducking. In a well-trained system, gestures may be predicted
before the user has even finished the jump, giving the feel of real time locomotion.
There are complications to overcome when using an HMM with most modern
video game controllers. For example, all of the controllers we have discussed provide
you with continuous data and the traditionally designed HMM observation matrix
has a discrete set of symbols. Suggested in the HMM tutorial [ 15 ], you may consider
the simple solution of using codebooks to translate the continuous data to discrete
numbers, though this provides a loss in resolution of data. An example of a simple
codebook would be if you know your data can only go from 0 to 100, you may
have 100 discrete states, each being the whole number of the data (resolution of
floating point is lost). A better solution is to create an observation density function
to replace matrix B in the Hidden Markov Model. This means rather than having a B
matrix, you may have a B function that maps the continuous data to some probability
distribution (typically Gaussian). Once this is figured out and adapted the HMM
provides an excellent way to determine discrete gestures in real time as the Kalman
Filter is able to provide continuous data in real time. Furthermore it is a system
capable of adapting to the user with training data, and being updated as it is used.
Heuristic Recognizers . When the gesture set to be recognized is simple enough, a
viable approach is to use heuristics to differentiate between gestures. This is best when
the gesture set is small and clearly different enough from each other. In Williamson
et al. [ 28 ] a heuristic recognition method was used instead of a linear classifier
because it provided adequate accuracy with no training data required by the user.
This was only possible because the gesture set being recognized was only focused
on jumping, crouching and a turning gesture. An example heuristic recognizer for
jumping would be to assume a jump was made when the head is a certain height
above its normal position, explained as
H y H y >
J
=
C
 
Search WWH ::




Custom Search