Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can HMMs be used for handwriting recognition?

The problem is a bit different than traditional handwriting recognition. I have a dataset that are thousands of the following. For one drawn character, I have several sequential (x, y) coordinates where the pen was pressed down. So, this is a sequential (temporal) problem.

I want to be able to classify handwritten characters based on this data, and would love to implement HMMs for learning purposes. But, is this the right approach? How can they be used to do this?

like image 394
zebra Avatar asked Feb 21 '12 22:02

zebra


1 Answers

I think HMM can be used in both problems mentioned by @jens. I'm working on online handwriting too, and HMM is used in many articles. The simplest approach is like this:

  1. Select a feature.
  2. If selected feature is continuous convert it to discrete.
  3. Choose HMM parameters: Topology and # of states.
  4. Train character models using HMM. one model for each class.
  5. Test using test set.

for each item:

  1. the simplest feature is angle of vector which connects consecutive points. You can use more complicated features like angles of vectors obtained by Douglas & Peucker algorithm.
  2. the simplest way for discretization is using Freeman codes, but clustering algorithms like k-means and GMM can be used too.
  3. HMM topologies: Ergodic, Left-Right, Bakis and Linear. # of states can be obtained by trial & error. HMM parameters can be variable for each model. # of observations is determined by discretization. observation samples can be have variable length.
  4. I recommend Kevin Murphy HMM toolbox.
  5. Good luck.
like image 137
Hadi Avatar answered Oct 11 '22 16:10

Hadi