[comp.cog-eng] Handwriting Recognition

garye@hp-ptp.HP.COM (Gary_Ericson) (10/28/89)

I've asked questions from time-to-time about handwriting recognition, and I
thought I'd jump in here and do it one more time.  In scanning through the 
research in this area (most of the references I've found are, unfortunately, 
fairly old), I've learned that there are two camps: trained systems and 
un-trained systems.  (I'm thinking in terms of real-time handwriting
recognition, not static recognition such as scanning a pre-printed page.)

A trained system is one which learns the handwriting of a particular user by 
having the user write characters over and over.  The system draws some 
conclusions from the similarities between different instances of the same 
letter and creates a description of that letter for the user.  The user is
required to write each letter (or symbol) repeatedly a certain number of times
until the system is sufficiently trained.

An un-trained system uses (typically AI) techniques to decipher the handwriting
of (hopefully) any user by examining the character written.

As I understand, the trained system, once it's trained, interprets characters
faster than the un-trained system.  But the un-trained system can be used
immediately by anyone without going through the tedious training process.

I'm wondering this: has anyone successfully put the two systems together?
Here's my simplistic view of such a merging.  

  - The user writes a character.  
  - The system uses its AI techniques to determine that this character is
    the letter "A".  
  - The system stores the strokes and other info for this character into its 
    training database as the first training instance of "A".
  - Sometime later, the user enters another character which the system
    interprets as an "A", using its AI techniques.
  - The info for this gets stored as the second training instance of "A".
  - These instances of "A" continue to be stored until the system feels
    it is sufficiently trained on "A".
  - The user writes a character.
  - This time, the system compares the character against its database 
    for "A" before trying its AI techniques.  If it matches, then it
    knows it has an "A".  If it doesn't, then it proceeds to interpret
    using the regular AI techniques.

If a trained system is really faster, then it seems to me that the result of a
system like this (if it were possible) would be that the system would respond
slowly the first few times a particular character was encountered, but it would
eventually get faster at interpreting as the system got trained.  The system
could be used immediately by a new user, although it would initially be slow,
but after a period of use, it would begin to act with the speed of a trained 
system and the user wouldn't have had to go through the tedious training 
process.  

Question is, has anyone developed something like this?

Gary Ericson - Hewlett-Packard, Workstation Systems Division
               phone: (408)746-5098  mailstop: 101N  email: gary@hpdsla9.hp.com