Search code examples
matlabimage-recognitionhidden-markov-modelstraining-data

how to define emission matrix in HMM matlab statistical toolbox


I am new to image processing in Matlab, Now I am working on character recognition using HMM with Matlab Statistical toolbox.

I have an input image width : 400, height : 100 and the image is binary image. I divided each input image into 10 horizontal blocks. In each block, I calculate the density of the image. Therefore in each image I can obtain 10 feature vectors.

Suppose F is feature vectors of an image

F=[26 55 74 123 186 260 258 75 43 21]

My question is how to convert feature vectors to hmm sequence, so that I can use it using hmmtrain command. what is the emission matrix in my case ?

before asking this question I have seen similar example by Omid Sakhi. However, I still do not understand.


Solution

  • I would recommend this paper "Recognizing human action in time-sequential images using hidden Markov model" by Yamato et al. In this work, they perform a vector quantization using the k-means algorithm to convert feature vector into symbols, which I think it is similar to your problem.

    So, basically you cluster the feature vectors and save the cluster centers as a codebook. After that, you can map each feature vector to the nearest cluster center then replace it by the corresponding cluster ID. As a result, you can represent your sequence of blocks as a sequence of cluster IDs.

    The emission could be the cluster IDs.