Question

hi i'm studing machine learning, and i want to write a simple handwriting recognition software with python and opencv.

for simplicity now i'm going to recognize only capital words of same size. i think a good way to recognize letters is use expectation-maximization algorithm for learning parameters of a gaussian mixture model, use a training set and compare the new letters gaussian-mixture with the trained ones. but i don't understand how to select how many gaussian in the mixture.

the second problem is how to understand how many words are in a page and how many letters there are in a word. i don't think that em-algorithm or similar (k-means for example) could be the solution but there are some segmentation issues for sure

some advice?

Was it helpful?

Solution

First you need the align the letters. If you you assume its upright then fine. After that you can use kmeans segmentation with 2 clusters to cluster the writings from background ( assuming background is plain ). Once you are done with it you basically get a binary image of 1 as the fore ground and zero as back ground. After that you can do a connected component analysis to segment each letter.

I am thinking instead of a GMM you could use a Neural network to classify the letters. Like You can normalize the letter image and send pixels to a neural network with 26 outputs for 26 alphabets.

This is one way to tackle the problem. If you want more information or material to implement or reference papers you can ask for it.

Thanks, Krishna

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top