Programming Hand Writing Recognition

I have not had to work with the part of the tabletpc api that deals with hand writing recognition. I only have used the results of other’s labor – in other applications.

As I am digging deeper into this part of the sdk in preparation for my upcoming DevTeach presentation I am amazed at how complex the API is and how far one can go with the tools and some creativity. I am looking forward to talking further with Arin Goldberg to understand some more of what’s going on in the background here.

Here is a link to the recognitionresult object which is just part of the puzzle. If you can imagine what must be going on when the reco is doing it’s thing. It has to look at so many possible combinations of what your ink can represent and it goes through and readjusts for every stroke. If you are drawing and H and not using cursive, then you are picking your pen up after each of the 3 strokes it takes to write that “H”. The machinations that the engine has to go through just to get that you are working on an H is amazing. It’s first best guess is a “1” and then it has a whole bunch of alternates. Then my next stroke is the other vertical so it’s next best guess is the number 11 (with alternates). FInally I draw the horizontal line and it’s guess is now an H. And that’s just the first letter of a word. So as you build the word, upon each stroke it reanalyzes the entire combination and tries to guess what the word is. It doesn’t even wait until you say “ok, now that was the whole word…go for it”.

So add to that the fact that there is a pool of guesses somewhere that it is drawing from. An entire dictionary? I guess it goes for the letters first than based on the letters it goes for the words. So it’s not guessing at words from your strokes, just at the letters. Or something like that. Whatever the case may be it’s mind-boggling. Especially when you realize that the reco works for quite a few languages including some asian ones which means not just different words but different characters! Wow.

  Sign up for my newsletter so you don't miss my conference & Pluralsight course announcements!  

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.