Question

I'm looking for handwriting recognition solution. I've found one here, which is a flash application. What's the principle of how it works? Does it make any queries to db to find the character?

Was it helpful?

Solution

Have done this once for japanese (includes chinese character set). I had divided the operation in 4 steps, repeated at each stroke:

  1. Count the number of total strokes

  2. Determine Stroke order (the order of each stroke is important)

  3. Determine stroke start and end radian (notice the drawing space is divided in radians)

  4. Narrow down database matches, based on the above results.

OTHER TIPS

You could use various pieces of information, such as number of strokes, starting and ending angle of strokes, number of intersections in each stroke, etc. to help narrow things down (your example app only seems to narrow the results down), given a database, of course. Handwriting recognition is not a very easy thing to do however.

There are a few different solutions to handwriting/gesture recognition. The one that I have learnt about is with artifcial neural networks, in particular multilayer perceptron network. In a nutshell you feed in some test samples thats are correct, you then train this network and then use it to test on the new input. Similar things in flash that also use this network are those 20 question games.

There are a few other ways to do it, some simpler and some probably more complicated but my knowledge on them is poor.

Here's an open-source library in Javascript. The algorithm is pretty straightforward, and in fact very close to what sthg's answer describes. It comes with two character datasets. https://github.com/gugray/HanziLookupJS

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