Handwriting input apparatus using more than one sensing technique

Abstract: Handwriting recognition apparatus including handwriting input apparatus employing at least two different sensing techniques to sense handwriting and symbol identification apparatus receiving an output of the handwriting input apparatus for providing an output indication of symbols represented by the handwriting.

Description: FIELD OF THE INVENTION The present invention relates to computer input devices generally and more particularly to handwriting recognition computer input devices. BACKGROUND OF THE INVENTION There exists a significant amount of activity in the field of on-line handwriting recognition. The prior art current to 1990 is reviewed in "The State of the Art in On-Line Handwriting Recognition" by Charles C. Tappert et al, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 12, No. 8, August, 1990. Generally speaking, on-line handwriting analysis is currently employed for two distinct applications: identity verification and input of handwritten letters and numbers into a computer. These two applications have sharply contrasting operational requirements and goals. Handwriting analysis for identity verification senses features of handwriting which are distinct for each individual and thus can be used to unambiguously identify a given individual. In contrast, handwriting analysis for alphanumeric input to a computer seeks to minimize the effect of the very features which are important for identity verification and to concentrate on universal handwriting characteristics which can be associated with given symbols independently of the individual writer. Currently existing and proposed systems providing handwriting analysis for alphanumeric input to a computer are generally geared towards recognition of how a symbol looks rather than how it is created. Accordingly, such systems employ digitizers or graphic tablets. Signature verification systems, on the other hand, attempt to identify biometric characteristics of the writer and employ indications such as pressure and acceleration during writing. U.S. Patent 4,345,239 employs pen acceleration for use in a signature verification system. U.S. Patent 5,054,088 employs both acceleration and pressure data characteristics of handwriting for identity verification. As indicated by the above patents, pen acceleration is employed for signature verification because it is a personal feature, characteristic of each individual. Accordingly, pen acceleration has not been employed for alphanumeric input. U.S. Patent 4,751,741 describes pen-type character recognition apparatus which employs pen pressure data exclusively. U.S. Patent 4,695,741 describes a light-pen equipped with an accelerometer for detecting tapping of the pen on a computer screen. As indicated by the above patent, pen acceleration is not used more generally to determine contact between a pen and a surface. U.S. Patent 4,845,684 describes a hand-held ultrasonic apparatus for detecting contact between a pen and a writing surface. The above patent does not disclose use of acceleration data. US-A-4122435 describes an apparatus using accelerometers whic, when employed to write on a special surface, produces signals which can be used for handwriting analysis. Position digitization through ultrasonic position digitisation is well known in the prior art, as for example in U.S. Patents 3,731,273; 4,317,672; 4,578,674; 4,654,648; 4,758,691; 4,814,552; 4,862,152; 4,991,148; 5,142,506; 5,214,615; 5,239,139; and 5,280,457. Other publications describing ultrasonic position digitisation include "A sonic pen: a digital stylus system" by Brenner and DeBruyne, IEEE Transactions on Computers, vol. C-19, No. 6, June 1970, pp. 546-548; "Compact Large-Area Graphic Digitizer for PC" by DeBruyne, IEEE Computer Graphics and Application, December 1986, pp. 49-53; IBM Technical Disclosure Bulletin, vol. 12, No. 3, August 1969, p. 390; and "US cursor position detection", IBM Technical Disclosure Bulletin, vol. 27, No. 11, April 1985. In practice, digitized positions derived from ultrasonic measurement are not determined precisely enough to allow even minimally operative handwriting recognition, so that handwriting recognition from ultrasonic position detection is not known in the prior art. SU-A-1357986 discloses a graphical data read-out unit having acceleration sensors located in one plane symmetrical to a casing axis. A writing element has a pressure sensor in the tip thereof and perpendicular to the casing axis. In the Journal of the Institute of Electronics, Information and Communication Engineers D-I (Japan) 1993, there is disclosed a method of extraction of character information from a pen which uses two acceleration sensors to measure x and y component of the pen movement. A pen-touching signal is generated by a small high frequency acceleration signal caused by friction between the pen and the paper. The present invention seeks to provide an improved computer input device. Accordingly, the invention provides a handwriting recognition apparatus comprising handwriting input apparatus employs at least two different sensing techniques to sense handwriting and including at least one accelerometer located in said hand held writing implement other than at a tip thereof; and symbol identification apparatus receiving an output of the handwriting input apparatus for providing an output indication of symbols represented by the handwriting, and wherein said symbol identification apparatus includes a first identification channel for employing an input from said handwriting input apparatus to provide a first output representing identification of symbols, a second identification channel for employing an input from said at least one accelerometer to provide a second output representing identification of symbols, and symbol selection apparatus for selecting between the first and the second outputs based on predetermined criteria. The handwriting input apparatus may comprises a position digitizer. The at least one accelerometer may comprise a plurality of mutually orthoganally disposed accelerometers. The symbol identification apparatus may include combined position and acceleration processing apparatus, which combine the inputs from the digitizer and said at least one accelerator in identifying symbols. Handwriting recognition apparatus as claimed in claim 1, wherein said handwriting input apparatus comprises ultrasonic position determination apparatus operative in air. The handwriting input apparatus may be operative to write on a computer screen. The invention also provides a handwriting recognition method comprising employing at least one accelerometer located in a hand writing implement other than at the tip thereof and at least one additional different sensing technique to sense handwriting; and receiving an output indication of the handwriting and providing an output indication of symbols represented by the handwriting, wherein said step of providing an output indication of symbols employs input from a digitizer to provide a first output representing identification of symbols along a first identification channel and employs input from said at least one accelerometer to provide a second output representing identification of symbols along a second identification channel and selects between the first and second outputs based on predetermined criteria. The at least one additional sensing technique may comprises position digitizing. The method may further comprise identifying symbols by combining digitized position inputs and sensed acceleration information. The step of receiving may include, employing digitized position inputs to provide a first output representing identification symbols, employing acceleration information to provide a second output representing identification of symbols, and selecting between said first and second outputs. BRIEF DESCRIPTION OF THE DRAWINGS The present invention will be understood and appreciated from the following detailed description, taken in conjunction with the drawings in which: Fig. 1A is a simplified semi-pictorial semi-block diagram illustration of handwriting recognition apparatus constructed and operative in accordance with a preferred embodiment of the present invention; Fig. 1B is a simplified semi-pictorial semi-block diagram illustration of handwriting recognition apparatus constructed and operative in accordance with an alternative preferred embodiment of the present invention; Figs. 2A through 2H are schematic drawings of preferred structures of portions of the apparatus of Figs. 1A and 1B; Fig. 3 is a simplified block diagram of the handwriting recognition apparatus of Figs. 1A and 1B; Fig. 4A is a simplified flow chart illustrating the teaching process performed by the handwriting recognition apparatus of Figs. 1A and 1B; Fig. 4B is a simplified flow chart illustrating the recognition process performed by the handwriting recognition apparatus of Figs. 1A and 1B; Figs. 5A through 5D are graphical depictions of data illustrating a preferred method for a portion of the teaching and recognition processes performed by the handwriting recognition apparatus of Figs. 1A and 1B; Fig. 6A is a simplified illustration of a preferred mechanical structure of the digitizing pen/accelerometer of Fig. 1A; Fig. 6B is a simplified illustration of a preferred mechanical structure of the digitizing pen/accelerometer of Fig. 1B; Fig. 7 is a simplified semi-pictorial semi-block diagram of handwriting recognition apparatus constructed and operative in accordance with another alternative preferred embodiment of the present invention; Fig. 8 is a simplified block diagram of the handwriting recognition apparatus of Fig. 7; Fig. 9A is a simplified flow chart illustrating the teaching process performed by the handwriting recognition apparatus of Fig. 7; and Fig. 9B is a simplified flow chart illustrating the recognition process performed by the handwriting recognition apparatus of Fig. 7. DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS Reference is now made to Fig. 1A which is a simplified pictorial illustration of a handwriting recognition apparatus constructed and operated in accordance with the present invention. A digitizing pen/accelerometer 10 is employed to write on a graphic tablet 12. Pen 10 also comprises a built-in accelerometer 25, such as model ICS 3031-2 commercially available from IC Sensors, 1701 McCarthy Blvd., Milpitas, CA 95035. Alternatively, pen 10 may comprise a plurality of accelerometers, which accelerometers may or may not be orthogonally disposed. Pen 10 also comprises one or more amplifiers 30, associated with the one or more accelerometers 25. Fig. 2A is a schematic drawing of a preferred embodiment of amplifier 30 suitable for use in this application. Alternatively, pen 10 may be fitted with retrofittable apparatus comprising one or more accelerometers 25 as described above, and also comprising associated amplifiers 30, as described above. The apparatus may have the form of a cap fitting the end of pen 10, a ring encircling the pen, or any other suitable form. Graphic tablet 12 senses the position of the tip of pen 10 relative to tablet 12 and provides a digitized output of data describing the position. Graphic tablet 12 may be any suitable graphic tablet, such as a Wacom Tablet Processor model SD-510C available from WACOM Computer Systems GmbH, Hellersbergstrasse 4, W-4040 Neuss 1, Germany. The data from the one or more accelerometers in pen 10 is termed herein "accelerometer data". Accelerometer data and location data from graphic tablet 12 are each sent through separate cables to a control circuit 40. Alternatively, the accelerometer data and location data may be sent through a single cable. According to a still further alternative, the accelerometer data and location data may be sent through any kind of appropriate communication link, such as ultrasonic, infrared, or by any other suitable means. Control circuit 40 amplifies the acceleration signals from pen 10 and converts them to digital form, preferably using an analog to digital converter. Fig. 2B is a schematic drawing of a preferred embodiment of an analog to digital converter suitable for use in this application. Control circuit 40 then sends combined synchronized acceleration data and position data to an acceleration and position data processor 50. Data processor 50 may be any suitable computer, for example, an IBM PC compatible computer with an 80386 processor chip. Associated with data processor 50 are a symbol display 60 and an input device 70. Recognition occurs within data processor 50 and the recognized symbols are displayed on symbol display 60. If necessary, the user may enter corrections of recognition errors using input device 70. Alternatively, the user may enter corrections using pen 10 and digitizing tablet 12 to choose among alternatives displayed on the symbol display, or using other suitable means. The functionality of the apparatus of Fig. 1A will now be described. The user employs pen 10 to write symbols on graphic tablet 12. Pen 10 sends acceleration data describing the accelerations of pen 10 during writing to control circuit 40. Graphic tablet 12 sends pen point position data describing the position over time of the point of pen 10 to control circuit 40. Control circuit 40 amplifies and digitizes the acceleration data. If the acceleration data and the position data are not synchronized in time, control circuit 40 synchronizes the acceleration and position data by matching pen status signals with acceleration data. Pen status signals are described more fully below with reference to Fig. 4B. The combined synchronized data is sent by control circuit 40 to data processor 50. Alternatively, control circuit 40 may also comprise a processor and memory suitable for storing the combined synchronized data. In this case, pen 10, graphic tablet 12, and control circuit 40 may be used to produce and store the combined synchronized data. Then, at a later time, the data is sent by control circuit 40 to data processor 50 in order for handwriting recognition to occur. Before handwriting recognition may occur, data processor 50 must create a database which comprises data about each symbol which may be recognized, specific to each person who uses the apparatus. The database is termed herein the per-person per-symbol database. During teaching, data processor 50 controls the creation of the per-person per-symbol database of handwriting characteristics. The per-person per-symbol database comprises data for each person whose handwriting is known to the system, describing one or more prototypes for each symbol. Each prototype comprises parameters which describes the symbol as written by the person; the parameters are described in more detail below with reference to step 240. During teaching the user writes symbols from a pre-arranged script known to data processor 50, and the associated symbols appear on symbol display 60 during the writing. Preferably, the pre-arranged script contains several repetitions of each symbol. Preferably, based on the experience of the inventor, the symbols should occur in different parts of a word, such as beginning, middle, and end, throughout the pre-arranged script. The functionality of data processor 50 during the teaching process is more fully described below with reference to Fig. 4A. During recognition, data processor 50 controls the recognition process which comprises choosing the correct symbol code corresponding to the symbol that was written by the user; preferably, the recognition process also comprises choosing the correct word which was written by the user. The functionality of data processor 50 during the recognition process is more fully described below with reference to Fig. 4B. Reference is now additionally made to Fig. 1B which is a simplified semi-pictorial semi-block diagram illustration of handwriting recognition apparatus constructed and operative in accordance with an alternative aspect of the present invention. The apparatus of Fig. 1B is substantially similar to the apparatus of Fig. 1A, except as described below. In the apparatus of Fig. 1B, pen 10 writes on a writing surface 75, which may be a sheet of paper, a computer display screen, or any other suitable writing surface. In the case where writing surface 75 comprises a computer display screen, pen 10 may optionally be employed to write without ink, so that pen 10 functions strictly as a data-input device for the associated computer. It is appreciated that pen 10 in this case is particularly suited to function generally as a data input and pointing device as well as functioning as described below for handwriting analysis. Pen 10 of Fig. 1B is similar to pen 10 of Fig. 1A and additionally comprises an ultrasonic transmitter 80, such as model MA40S3S commercially available from Murata Electronics, GMBH, Halbeinstrabe 21-23, D-8500, Nurnberg, Germany. Ultrasonic transmitter 80 may be mounted on the pen at a suitable location, such as near the tip. Alternatively, ultrasonic transmitter 80 may be retrofittable to the pen. Further alternatively, ultrasonic transmitter 80 may comprise a plurality of transmitters. A plurality of ultrasonic receivers 85, such as model MA40S3R commercially available from Murata Electronics, GMBH, Halbeinstrabe 21-23, D-8500, Nurnberg, Germany, are located at predetermined positions in proximity to writing surface 75. In the case where writing surface 75 comprises a typical sheet of paper or a typical computer display screen, two ultrasonic receivers 85 are typically sufficient to determine the position of pen 10. In the case where writing surface 75 is large compared to a typical sheet of paper or a typical computer display screen, more than two receivers are preferred. In the case where two receivers 85 are employed, the line determined by the centers of the two receivers is preferably substantially parallel to the plane in which writing surface 75 largely lies. In the case where more than two receivers 85 are employed, the line determined by the centers of the receivers is preferably substantially located in a plane parallel to the plane in which writing surface 75 largely lies. The receivers 85 are preferably located relative to the writing surface 75 in such a way as to maximize the accuracy of measurement of the position of the pen. In the case of the MA40S3R receivers referred to above, the preferable minimum distance between each of the receivers 85 and the nearest portion of writing surface 75 is twenty centimeters, and the preferable maximum distance between each of the receivers 85 and the furthest portion of writing surface 75 is one meter. The receivers 85 typically have a preferred direction of reception; receivers 85 should preferably be directed in the general direction of the area in which pen 10 will be employed. Also, transmitter 80 typically has a preferred direction of transmission; pen 10 should preferably be employed so that the preferred direction of transmission of transmitter 80 will be toward receivers 85. A control circuit 90 periodically triggers ultrasonic transmitter 80, accumulates data from ultrasonic receivers 85, and calculates position of pen 10 based on the accumulated data. Control circuit 90 comprises a digital signal processor, known herein as a "DSP", such as model ADSP 2101 commercially available from Analog Devices, One Technology Way, P.O.B. 9106, Norwood, MA 02062-9106, USA. Control circuit 90 also comprises a plurality of digital counters operatively associated with the plurality of ultrasonic receivers 85. A suitable counter is model 74HCT4040 commercially available from RCA GMBH, Ridierstrasse 35A, 8000 Munchen 2, Germany. Control circuit 90 further comprises appropriate memory units for data storage and program storage. Control circuit 90 also amplifies and digitizes the acceleration data. Control circuit 90 amplifies the acceleration signals from pen 10 and converts them to digital form, preferably using an analog to digital converter. Fig. 2B is a schematic drawing of a preferred embodiment of an analog to digital converter suitable for use in this application. The functionality of the apparatus of Fig. 1B will now be described. The user employs pen 10 to write symbols on writing surface 75. Pen 10 sends acceleration data describing the accelerations of pen 10 during writing to control circuit 90. Control circuit 90 sends signals to pen 10, triggering ultrasonic transmitter 80 to emit a sequence of pulses. Typically, control circuit 90 sends a burst of pulses, each burst separated from the next burst by a specific time period. Preferably, four closely spaced pulses are sent in each burst, and the bursts are separated by 25 microseconds. Reference is now additionally made to Fig. 2C, which is a schematic drawing of a preferred structure of the portion of control circuit 90 which sends signals to pen 10. Control circuit 90 restarts the counters included therein at the beginning of each burst. Each of the ultrasonic receivers 85 receives the ultrasonic sound waves emitted by ultrasonic transmitter 80 as part of the burst, and sends a signal to control circuit 90. Upon receipt of a signal from one of the ultrasonic receivers 85, control circuit 90 stops the associated counter. Reference is now additionally made to Figs. 2D through 2H, which are schematic drawings of a preferred structure of the portion of control circuit 90 comprising the counters, DSP, and associated electronic circuits. Control circuit 90, in parallel with the other operations carried out by control circuit 90, calculates the coordinates of the tip of pen 10 based on the values in the counters within the control circuit. Control circuit 90 filters the counter's signals by removing large jumps in the counter value between one burst and the next; typically, jumps exceeding 25 to 30 units on the counter are considered large. When a large jump comprising a single data point is detected by control circuit 90, the value of the point is recomputed as the average of the previous and next values. When a large jump comprises two data points, control circuit 90 recomputes the values using linear interpolation. When a large jump comprises more than two data points, control circuit 90 recomputes the values of the points after the jump by subtracting the height of the jump, measured over the preceding data points. Control circuit 90 removes quantization noise of the counters. When a jump of one unit on the counter comprising a single data point is detected, control circuit 90 recomputes the value of that data point using a zero order interpolation, giving the data point a value equal to that of the preceding and following data points. Control circuit 90 then computes the position of the tip of pen 10 using triangulation as follows. The counter value represents the time between the transmission of a pulse by ultrasonic transmitter 80 and the receipt of the pulse by the one of ultrasonic receivers 85 associated with the counter. Because the speed of sound in air is taken to be isotropic, the counter value also represents the distance between ultrasonic transmitter 80 and the one of ultrasonic receivers 85 associated with the counter. The position of pen 10 is then computed by applying the Pythagorean theorem. Control circuit 90 then filters the signals using a low-pass filter, such as that described in Digital Filter Design by T.W. Parks and C.S. Burrus, published by John Wiley & Sons, 1987, chapter 7, section 7.3.3, using the fourth order low pass digital filter with cut-off frequency of 0.03. The position data thus computed by control circuit 90 may comprise the position data used subsequently by the apparatus of Fig. 1B. Alternatively, as described below, position data may be computed from a combination of data received by ultrasonic receivers 85 and acceleration data. Control circuit 90 amplifies and digitizes the acceleration data. If the acceleration data and the position data are not synchronized in time, control circuit 90 synchronizes the acceleration and position data by matching pen status signals with acceleration data. Pen status signals are described more fully below with reference to Fig. 4B. The combined synchronized data is sent by control circuit 90 to data processor 50. Alternatively, control circuit 90 may also comprise a processor and memory suitable for storing the combined synchronized data. In this case, pen 10 and control circuit 90 may be used to produce and store the combined synchronized data. Then, at a later time, the data is sent by control circuit 90 to data processor 50 in order for handwriting recognition to occur. In the case described above in which data from ultrasonic receivers 85 is combined with acceleration data to obtain position data, the improved position data is computed by data processor 50. Alternatively, the new position data may be computed by the DSP described above with reference to control circuit 90. Data processor 50 filters the position data from control circuit 90 to remove components other than noise. For example, the acceleration data may be filtered by a Butterworth digital filter described in Digital Filter Design by T.W. Parks and C.S Burrus, published by John Wiley & Sons, 1987, chapter 7, section 7.3.3, using the 4th order lowpass digital filter with cut-off frequency of 0.7 to 0.9. The noise component is generated when pen 10, being moved by the user, is moved over irregularities in writing surface 75, including microscopic irregularities. In the case of most writing surfaces 75, such as for example a sheet of paper, the microscopic surface irregularities occur at regular intervals over surface 75. The number of peaks in the noise component is taken to represent the number of surface irregularities traversed, and hence the distance traversed. Data processor 50 identifies and counts peaks in the noise. The number of peaks per unit of distance may be determined in advance for the particular type of writing surface 75, may be determined by a learning process, or may be determined by other means. The positions determined by control circuit 90 from ultrasound data are taken to specify the direction of movement, and the number of peaks in the noise component as described above are taken to specify the distance traversed. Data processor 50 computes, from the direction of movement and the distance traversed, updated and more accurate position data. Preferably, the sample rate of the acceleration data used to compute the noise is greater than the data transmission rate of ultrasound data from control circuit 90. Before handwriting recognition may occur, data processor 50 must create a database which comprises data about each symbol which may be recognized, specific to each person who uses the apparatus. The database is termed herein the per-person per-symbol database. During teaching, data processor 50 controls the creation of the per-person per-symbol database of handwriting characteristics. The per-person per-symbol database comprises data for each person whose handwriting is known to the system, describing one or more prototypes for each symbol. Each prototype comprises parameters which describes the symbol as written by the person; the parameters are described in more detail below with reference to step 240. During teaching the user writes symbols from a pre-arranged script known to data processor 50, and the associated symbols appear on symbol display 60 during the writing. Preferably, the pre-arranged script contains several repetitions of each symbol. Preferably, based on the experience of the inventor, the symbols should occur in different parts of a word, such as beginning, middle, and end, throughout the pre-arranged script. The functionality of data processor 50 during the teaching process is more fully described below with reference to Fig. 4A. During recognition, data processor 50 controls the recognition process which comprises choosing the correct symbol code corresponding to the symbol that was written by the user; preferably, the recognition process also comprises choosing the correct word which was written by the user. The functionality of data processor 50 during the recognition process is more fully described below with reference to Fig. 4B. Reference is now additionally made to Fig. 3 which is a simplified block diagram of the handwriting recognition apparatus of Figs. 1A and 1B. The handwriting recognition apparatus of Fig. 3 receives input from pen 10 and either graphic tablet 12 or control circuit 90. The data from either graphic tablet 12 or control circuit 90, representing positions of pen 10, is referred to herein as "position data". Pen 10, when moved by the user of the handwriting recognition apparatus, transmits data describing the accelerations of pen 10 over time to teaching control 130 and/or handwriting recognition control 150. Pen 10 also provides, in conjunction with graphic tablet 12, data describing the positions traced out over time by the tip of pen 10 as pen 10 is moved by the user over the surface of graphic tablet 12. Alternatively, in the case of the apparatus of Fig. 1B, position data is provided by control circuit 90 as described above. The data from pen 10 and the position data may be transmitted to a teaching control 130. Transmission to teaching control 130 occurs for each person who is to use the system for handwriting recognition before the person uses the system for handwriting recognition for the first time. Transmission to teaching control 130 also occurs when recognition errors are detected; use of teaching control 130 when recognition errors are detected is termed herein adaptive teaching. Teaching control 130 operates on the data received, which data represents hand movements by the user when writing a symbol, together with manually-provided identification of the symbol codes that are associated with the data. Teaching control 130 then updates database 140, the per-person per-symbol database. Database 140 comprises prototypes of accelerations and symbol shape for each symbol, comprising data specific to each person for each symbol. Alternatively, the data from pen 10 and the position data may be transmitted to handwriting recognition control 150. Handwriting recognition control 150 operates on the data received from pen 10 and the position data to recognize the symbol represented by the movement of pen 10 on graphic tablet 12 or writing surface 75. The output of handwriting recognition control 150 comprises a list of symbol codes and their respective probabilities. A handwriting recognition post-processing circuit 160, chooses the correct symbol code based on the list of symbol codes and probabilities, and on post-processing information which preferably comprises a database of previous confusions and a dictionary. The output of handwriting recognition post-processing circuit 160 is a symbol code or a word. Reference is now additionally made to Figs. 4A and 4B which are simplified flow charts illustrating operation of the handwriting recognition apparatus of Figs. 1A and 1B. Fig. 4A illustrates the teaching process and Fig. 4B illustrates the recognition process. The preferred method of operation of the method of Fig. 4A includes the following steps: STEP 210: Read position data and accelerometer data in parallel. Preferably, the accelerometer data is sampled more often than the position data; for example, eight data points may be collected from the accelerometer for each data point in the position data. The combined data preferably comprises the X,Y coordinates of the position of the tip of the pen 10 in the grid of the tablet and the tablet contact status of pen 10, i.e. whether or not it is in contact with the tablet surface. The status may be operationally indicated as "pen up", "pen down", or "pen out of proximity with the tablet", in the case of the Wacom Tablet Processor specified above. The combined data also preferably comprises the average value of the accelerometer data points corresponding to a single graphic tablet data point. The status of pen 10 may be derived from signals transmitted by graphic tablet 12, by a switch operatively associated with the tip of pen 10, as described below with reference to step 212, or by other means. STEP 212: Identify pen-surface contact termination. The data from step 210 may not include the surface contact status of pen 10. In this case, the surface contact status of pen 10 may be derived from the acceleration data. The acceleration data is filtered to remove components other than noise. For example, the acceleration data is filtered by a Butterworth digital filter described in Digital Filter Design by T.W. Parks and C.S Burrus, published by John Wiley & Sons, 1987, chapter 7, section 7.3.3, using the 4th order lowpass digital filter with cut-off frequency of 0.7 to 0.9. The filtered acceleration data is then integrated over time. The slope of the integrated filtered acceleration data is then analyzed to determine the point at which the slope exceeds a threshold value. The point at which the slope exceeds the threshold value is taken to be the first point with status "pen down". The point at which the slope falls below a threshold value is taken to be the first point with status "pen up"; the threshold value may or may not be the same as the previously described threshold value. In the case of determining pen status based on accelerometer data there is no status "pen out of proximity". The threshold values described above may be determined in advance for the particular type of pen and writing surface, may be determined by a learning process for the particular person, or may be determined by other means. STEP 215: Identify individual symbols and words. The data from the previous step is divided into data representing individual symbols. The status which comprises the statuses of "pen up" or "pen out of proximity" is termed herein "pen not down". Preferably, the number of consecutive data points with status of "pen not down", which data points represent a particular duration of the status "pen not down", is taken to indicate the end of a symbol or of a word. Typically, the duration of status "pen not down" within a range from 200 milliseconds to 400 milliseconds is taken to indicate the end of a symbol. Duration of the status "pen not down" in the range from 800 milliseconds to 1200 milliseconds is typically taken to indicate the end of a word. Alternatively, the end of a symbol or of a word may be indicated by data points which represent pen movements that are not part of a symbol, or by other means. Output data from step 215 comprises symbol end and word end data. STEP 220: Normalize combined data. The combined position data and the accelerometer data are normalized in time or by other means. STEP 230: Filter combined data. The normalized combined data received from the previous step is filtered in order to remove noise. The filtering may be accomplished by iterative smoothing of adjacent points until the total change in the signal due to a smoothing operation is less than the desired accuracy of the data, or by other suitable means. STEP 240: Parameterize combined data. The data is parameterized according to criteria which are chosen to represent each symbol. Reference is now additionally made to Figs. 5A through 5D which graphically illustrate some of the parameters. If the pen comprises a single accelerometer, the parameters preferably comprise the following: number of points before normalization; normalized signal of pen status; normalized signal of accelerations; sine of the angle α which angle is defined as the angle between the vector associated with the current data point (X i ,Y i ,AccZ i ) and the XY plane as shown in Fig. 5A; cosine of the angle α; sine of the angle β which angle is defined as the angle between the vector that connects the point before the previous point (X i-2 ,Y i-2 ,AccZ i-2 ) and the current point (X i ,Y i ,AccZ i ), and the vector that connects the current point with the point after the subsequent point (X i+2 ,Y i+2 ,AccZ i+2 ) in space (X,Y,AccZ) as shown in Fig. 5B; and cosine of the angle β. Alternatively, the pen may comprise, for example, three accelerometers, which are not necessarily mutually orthogonal. If the accelerometers are not mutually orthogonal, the acceleration data may be converted into equivalent data in a mutually orthogonal coordinate system as follows: Let the non-orthogonal signals be denoted by the vector u=(u 1 ,u 2 ,u 3 ) T and the orthogonal signals be denoted by the vector u'=(u' 1 ,u' 2 ,u' 3 ) T , where T denotes the transpose. Then u'=A 0 A -1 u where A is a vector of static sensitivity vectors A=(A 1 ,A 2 ,A 3 ) of the three- accelerometers. The static sensitivity vector is computed from the outputs of the accelerometers during a defined orientation without movement. A 0 is a diagonalized matrix of sensitivity of the orthogonal coordinate system comprising the norms of A 1 , A 2 , and A 3 . When the pen comprises, for example, three accelerometers, the parameters preferably comprise those mentioned above plus the following parameters: sine of the angle α' which angle is defined as the angle between the vector associated with the current data point (AccX i ,AccY i ,AccZ i ) and the AccXAccY plane as shown in Fig. 5C; cosine of the angle α'; sine of the angle β' which angle is defined as the angle between the vector that connects the point before the previous data point (AccX i-2 ,AccY i-2 ,AccZ i-2 ) and the current point (AccX i ,AccY i ,AccZ i ), and the vector that connects the current point with the point after the subsequent point (AccX i+2 ,AccY i+2 ,AccZ i+2 ) in space (AccX,AccY,AccZ) as shown in Fig. 5D; and cosine of the angle β'. STEP 250: Generalize parameters. The parameters of the symbol being learned represent a specific instance of the symbol. The symbol prototype stored by the system is to represent the general characteristics of the symbol as drawn by that person. Therefore, the parameters of the symbol being learned are generalized by some suitable means, such as by computation of the average of the value of each parameter from previous instances of the symbol along with the value of each parameter from the current instance of the symbol. STEP 260: Update per-person per-symbol prototype database. The newly computed parameters from the previous step are stored in the per-person per-symbol prototype database. The preferred method of Fig. 4B includes steps which have been described as part of the description of Fig. 4A. Description of those steps which are identical to steps in Fig. 4A have been omitted for the sake of brevity. The remainder of the steps in Fig. 4B include the following: STEP 300: For each prototype in the per-person per-symbol prototype database, build an index of comparison between the sample and the prototype, combined over parameters in the prototype. In accordance with one preferred embodiment of the present invention, all parameters are combined together to produce the index of comparison. In accordance with another device, parameters which come from graphic tablet data are combined and compared together, and parameters from accelerometer data are separately combined and compared, thus producing two measures of comparison between the sample and the prototype. Appendix B is a computer listing in the C programing language comprising routines that are a preferred implementation of step 300. The routines comprise the following, which are found in section IV, "recognition procedures": def_k_class; def_k_letter; def_k_word; def_k_row; mut_metric; metric_dir_y; metric_dir_x; together with various definitions used by the routines. STEP 310: Create a list or lists of probable symbols sorted by likelihood. Based on the index or indices of comparison generated in step 300, a single list of probable symbols sorted by likelihood is generated. According to a preferred embodiment of the present invention, two separate lists of probable symbols sorted by likelihood are generated. When two separate lists are generated, one comprises likely symbols based on graphic tablet data and the other comprises likely symbols based on accelerometer data. STEP 320: Choose the correct symbols and the correct word based on the list or lists, the database of previous confusions and a dictionary. If one list was generated previously, the symbols with greatest likelihood are the candidates from which the correct symbol is chosen. If more than one list was generated, the lists are combined and symbols with high likelihood on the combined list are the candidates from which the correct symbol is chosen. Preferably, the lists may be combined by a voting procedure which first forms the intersection of the two lists. If the intersection of the two lists is empty, so that no symbol appears in both lists, the output is the list which was produced from the position data. If the intersection is not empty, so that at least one symbol appears in both lists, the output list comprises all symbols included in the intersection group of the two input lists, sorted according to the average of the probabilities contained in the two lists. The database of previous confusions provides information that allows the correction of the choice of the correct symbol based on previous incorrect identifications. The database of previous confusions comprises, for each symbol, a list of other symbols which have been confused with the first symbol; for example, that the symbol "f" has often been confused with the symbol "b". When such an entry is found comprising previous confusions for a symbol in the list, the symbol or symbols that have previously been confused with the symbol in the list are added to the list. In accordance with the previous example, if the symbol "f" is found in the list, then the symbol "b" is added to the list. An indication of the end of each word has been passed as output since step 215, described above. Based on the indication, the most likely word, comprising the most likely identifications for each symbol in the list, is identified. The most likely word is checked against the dictionary. Preferably, the dictionary comprises both a general dictionary used for all users of the system and a personal dictionary for each user of the system. If an entry exists in the dictionary for the most likely word, the word is chosen as the correct identification. If the most likely word is not found in the dictionary, all possible word combinations in the list are formed and each is checked against the dictionary. Among all such words which are found in the dictionary, the word with the highest likelihood is then chosen as the correct identification. If none of the words is found in the dictionary, the most likely word is chosen as the correct identification. STEP 330: Check to see if a correction has been entered. During the process of recognition, the user of the system is preferably provided with a visual indication of each symbol recognized. After the end of a word is detected, the user of the system preferably is provided with a visual indication of the word recognized. The user may indicate manually that a given word was incorrectly recognized and may input a correction. STEP 340: Update database of previous confusions. Based on a manual correction entered in step 330 or an automatic correction based on the dictionary, the database of previous confusions is updated. Based on a manual correction, the personal dictionary is also updated if the corrected word is not found in the dictionary. Reference is now additionally made to Fig. 6A which is a simplified illustration of a preferred mechanical structure of the digitizing pen/accelerometer 10 of Fig. 1A. Pen 10 may comprise an electromagnetic pen such as a WACOM SP-200 available from WACOM Computer Systems GmbH, Hellersbergstrasse 4, W-4040 Neuss 1, Germany, or any other suitable pen designed for use with a suitable model of graphic tablet. Pen 10 also comprises an electromagnetic coil 410 which operates in conjunction with graphic tablet 12 to provide and indication of the location of the point of pen 10. Pen 10 further comprises an ink refill 420 which provides the ability to write on paper or on another surface. Pen 10 also comprises three built-in mutually orthogonal accelerometers 25 such as ICS 3031-2 available from IC Sensors. Alternatively, there may be a plurality of accelerometers not necessarily orthogonally disposed. According to a still further alternative, there may be only one accelerometer. Pen 10 also comprises associated amplifiers 30, described above with reference to Fig. 1A. Pen 10 further comprises communications cable 450 which is used to send data to control circuit 40. Alternatively, the data may be sent through any kind of appropriate communication link, such as ultrasonic, infrared, or by any other suitable means. Reference is now additionally made to Fig. 6B which is a simplified illustration of a preferred mechanical structure of the digitizing pen/accelerometer 10 of Fig. 1B. Pen 10 may comprise a housing such as an ABS plastic housing or other suitable housing. Pen 10 further comprises an ink refill 420 and associated spring which provides the ability to write on paper or on another surface. Pen 10 also comprises three built-in mutually orthogonal accelerometers 25 such as ICS 3031-2 available from IC Sensors. Alternatively, there may be a plurality of accelerometers not necessarily orthogonally disposed. According to a still further alternative, there may be only one accelerometer. Pen 10 also comprises associated amplifiers 30, described above with reference to Fig. 1A. Pen 10 also comprises ultrasonic transmitter 80 as specified above. Pen 10 further comprises communications cable 450 which is used to send data to control circuit 90. Alternatively, the data may be sent through any kind of appropriate communication link, such as ultrasonic, infrared, or by any other suitable means. Reference is now made to Fig. 7 which is a simplified pictorial illustration of another alternative preferred embodiment of handwriting recognition apparatus constructed and operated in accordance with the present invention. Pen 10 is employed to write in a notebook, on a sheet of paper, or on any other suitable surface. In the apparatus of Fig. 7, Pen 10 is as described above but the one or more accelerometers 25 comprise a plurality of accelerometers. The apparatus of Fig. 7 includes a scanner 500, such as a Logitech ScanMan, model 256. The user writes with pen 10 on writing surface 512. The description above in reference to Fig. 1 also applies to Fig. 7, except as described herein with reference to Fig. 7. Pen 10 sends acceleration data through control circuit 40 to data processor 50. After writing is concluded, surface 512 is scanned using scanner 500. Teaching and recognition then occur based on the combined data from pen 10 and scanner 500. Reference is now additionally made to Fig. 8 which is a simplified block diagram of the handwriting recognition apparatus of Fig. 7. The handwriting recognition apparatus of Fig. 8 receives input from pen 10 and scanner 500. Pen 10, when moved by the user of the handwriting recognition apparatus, transmits data describing the accelerations of pen 10 over time to acceleration teaching control 630 and/or acceleration handwriting recognition control 650. The term OCR as used herein refers to optical character recognition. Scanner 500, when it scans writing surface 512, transmit data describing the image on surface 512 to OCR teaching control 635 and/or OCR control 655. The data from pen 10 and scanner 500 may be transmitted to acceleration teaching control 630 or OCR teaching control 635 respectively. Transmission to acceleration teaching control 630 or OCR teaching control 635 occurs for each person who is to use the system for handwriting recognition before the person uses the system for handwriting recognition for the first time. Transmission to acceleration teaching control 630 or OCR teaching control 635 also occurs when recognition errors are detected; use of acceleration teaching control 630 or OCR teaching control 635 when recognition errors are detected is termed herein adaptive teaching. Acceleration teaching control 630 or OCR teaching control 635 operates on the data received, which data represents hand movements by the user when writing a symbol, together with manually-provided identification of the symbol codes that are associated with the data. Acceleration teaching control 630 then updates database 640, a per-person per-symbol acceleration database; OCR teaching control 635 updates database 645, a per-person per-symbol OCR database. Database 640 and database 645 comprise prototypes of accelerations and symbol shape for each symbol, comprising data specific to each person for each symbol. Alternatively, the data from pen 10 and scanner 500 may be transmitted to acceleration handwriting recognition control 650 or OCR control 655 respectively. Acceleration handwriting recognition control 650 and OCR control 655 operate on the data received from pen 10 and scanner 500 respectively to recognize the symbol represented by the movement of pen 10 on scanner 500. The output of acceleration handwriting recognition control 650 comprises a list of symbol codes and their respective probabilities. An acceleration handwriting recognition post-processing circuit 660, chooses the correct symbol code based on the list of symbol codes and probabilities, and on post-processing information which preferably comprises a database of previous confusions and a dictionary. The output of acceleration handwriting recognition post-processing circuit 660 is a list of symbol codes and/or words sorted by likelihood. Recognized word storage circuit 670 stores, for each word recognized, the sorted list of likely words output by acceleration handwriting recognition post-processing circuit 660. The stored lists are kept for later processing. The output of OCR control 655 comprises, for each symbol in the scanned image from scanner 500, a list of probable symbol codes sorted by likelihood. OCR control 655 may be implemented, for example, by any appropriate commercially available OCR system. Word/string matcher 680 accepts as input the lists of words output by acceleration handwriting recognition post-processing circuit 660 and the list of probably symbol codes output by OCR control 655. Word/string matcher 680 finds matches between its two input lists. The output of word/string matcher 680 comprises a list of words and/or strings of symbols and the position of each word and/or string on writing surface 512. Reference is now additionally made to Figs. 9A and 9B which are simplified flow charts illustrating operation of the handwriting recognition apparatus of Fig. 7 in accordance with a preferred embodiment of the invention. Fig. 9A illustrates the teaching process and Fig. 9B illustrates the recognition process. The preferred method of Fig. 9A includes steps which have been described as part of the description of Fig. 4A. Description of those steps which are identical to steps in Fig. 4A have been omitted for the sake of brevity. The remainder of the steps in Fig. 9A include the following: STEP 710: Read accelerometer data. The accelerometer data comprises data points representing sampling of the acceleration measured by accelerometers 25. Preferably, the sampling rate is approximately 1600 data points per second, averaged over 8 points, producing an output of approximately 200 data points per second. STEP 712: Identify pen-surface contact termination. The data from step 710 does not include the surface contact status of pen 10. The surface contact status of pen 10 may be derived from the acceleration data, as explained in step 212 above with reference to tablet contact data. STEP 715: Identify individual symbols and words. The data from the previous step is divided into data representing individual symbols. The status which comprises the status of "pen up" is termed herein "pen not down". Preferably, the number of consecutive data points with status of "pen not down", which data points represent a particular duration of the status "pen not down", is taken to indicate the end of a symbol or of a word. Typically, the duration of status "pen not down" within a range from 200 milliseconds to 400 milliseconds is taken to indicate the end of a symbol. Duration of the status "pen not down" in the range from 800 milliseconds to 1200 milliseconds is typically taken to indicate the end of a word. Alternatively, the end of a symbol or of a word may be indicated by data points which represent pen movements that are not part of a symbol, or by other means. Output data from step 715 comprises symbol end and word end data. STEP 720: Normalize accelerometer data. The accelerometer data is normalized in time or by other means. STEP 730: Filter accelerometer data. The normalized accelerometer data received from the previous step is filtered in order to remove noise. The filtering may be accomplished by iterative smoothing of adjacent points until the total change in the signal due to a smoothing operation is less than the desired accuracy of the data, or by other suitable means. STEP 740: Parameterize accelerometer data. The data is parameterized according to criteria which are chosen to represent each symbol. If the accelerometers are not mutually orthogonal, the acceleration data may be converted into equivalent data in a mutually orthogonal coordinate system as follows as described above with reference to step 240. The parameters preferably comprise the following: number of points before normalization; normalized signal of pen status; normalized signal of Z acceleration; sine of the angle α' defined above with reference to step 240; cosine of the angle α'; sine of the angle β' defined above with reference to step 240; and cosine of the angle β'. STEP 760: Update per-person per-symbol acceleration prototype database. The newly computed parameters from the previous step are stored in the per-person per-symbol acceleration prototype database. STEP 770: Has the end of the predefined text been reached? Whether the end has been reached is determined by whether or not the end of the predefined text file has been reached. If not, the process continues with step 710. If the end has been reached, the process continues with step 780. STEP 780: Scan written text. The text written on surface 512 is scanned using scanner 500. STEP 790: OCR teaching process. For each symbol in the text, features of the corresponding writing on surface 512 are identified. STEP 795: Update per-person per-symbol OCR prototype database. Features identified in step 790 are updated in the per-person per-symbol OCR prototype database. The preferred method of Fig. 9B includes steps which have been described as part of the description of Figs. 4A and 9A. Description of those steps which are identical to steps in Figs. 4A and 9A have been omitted for the sake of brevity. The remainder of the steps in Fig. 9B include the following: STEP 800: For each prototype in the per-person per-symbol acceleration prototype database, build an index of comparison between the sample and the prototype, combined over parameters in the prototype. In accordance with a preferred embodiment of the present invention, all parameters are combined together to produce the index of comparison. STEP 810: Create a list of probable symbols sorted by likelihood. Based on the index or indices of comparison generated in step 800, a single list of probable symbols sorted by likelihood is generated. STEP 820: Choose the correct symbols and the correct word based on the list, the database of previous confusions and a dictionary. The symbols with greatest likelihood are the candidates from which the correct symbol is chosen. As described above with reference to step 320, the database of previous confusions provides information that allows the correction of the choice of the correct symbol based on previous incorrect identifications. An indication of the end of each word has been passed as output since step 715, described above. Based on the indication, the most likely word, comprising the most likely identifications for each symbol in the list, is identified. The most likely word is checked against the dictionary. Preferably, the dictionary comprises both a general dictionary used for all users of the system and a personal dictionary for each user of the system. If an entry exists in the dictionary for the most likely word, the word is chosen as the correct identification. If the most likely word is not found in the dictionary, all possible word combinations in the list are formed and each is checked against the dictionary. Among all such words which are found in the dictionary, the word with the highest likelihood is then chosen as the correct identification. If none of the words is found in the dictionary, the most likely word is chosen as the correct identification. STEP 822: Store recognition information. The sorted list of likely words output by the previous step is stored for later processing. STEP 824: Check for end of text. The user indicates end of text using input device 70. STEP 826: Scan written text. Scanner 500 is employed to scan writing surface 512. The scanned image is output to step 828. STEP 828: Perform OCR. OCR control 655 is employed to perform optical character recognition on the scanned image from the preceding step. The output of step 828 comprises, for each symbol in the scanned image from step 826, a list of probable symbol codes sorted by likelihood and the position of each symbol in the scanned image. OCR control 655 may be implemented, for example, by any appropriate commercially available OCR system. STEP 830: Find matching words For each word from acceleration, find all exactly matching words in OCR and list them including location; or mark no match. For each word in the acceleration list where matches were found, succeeding words are checked to see whether the succeeding words correspond to words in succeeding locations as indicated from the OCR list; this process continues until no further match is found. There may be several possible matches for each word in the acceleration list. Further matching sequences of words are sought beginning with the next word after the last word of the preceding list of matches. For each remaining unmatched word in the acceleration list, the closest matching word in the OCR list is identified based on some measure of variance. For example, the measure of variance may be the number of matching letters between the two words on the list, with a minimum of 2 letters matching. The regions adjacent to the partially matched words are then checked; if the region before and after are matched, then we decide that the partially matched words are matched. The unmatched words in the OCR list are now examined. For any remaining unmatched words, if the region before and after the word matches, the word is considered to match. Optionally, any other context sensitive methods such as grammar checking or other appropriate means of identifying missing sections may be used to identify still unmatched words. Any remaining unmatched words are identified manually by the user. STEP 840: Update database of previous confusions. Based on a manual correction entered in step 330 or an automatic correction based on the dictionary, the database of previous confusions is updated. Based on a manual correction, the personal dictionary is also updated if the corrected word is not found in the dictionary. It is appreciated that various features of the invention which are, for clarity, described in the contexts of separate embodiments may also be provided in combination in a single embodiment. Conversely, various features of the invention which are, for brevity, described in the context of a single embodiment may also be provided separately or in any suitable subcombination. It will be appreciated by persons skilled in the art that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope of the present invention is defined only by the claims that follow:

Claims: Handwriting recognition apparatus comprising handwriting input apparatus employing at least two different sensing techniques to sense handwriting and including at least one accelerometer (25) located in said hand held writing implement (10) other than at a tip thereof; and symbol identification apparatus (50) receiving an output of the handwriting input apparatus for providing an output indication of symbols represented by the handwriting, and wherein said symbol identification apparatus includes a first identification channel for employing an input, different from said at least one accelerometer (25) from said handwriting input apparatus to provide a first output representing identification of symbols, a second identification channel for employing an input from said at least one accelerometer to provide a second output representing identification of symbols, and symbol selection apparatus for selecting between the first and the second outputs based on predetermined criteria. Handwriting recognition apparatus as claimed in claim 1, wherein said handwriting input apparatus comprises a position digitizer (12). Handwriting recognition apparatus as claimed in claim 2, wherein said at least one accelerometer (25) comprises a plurality of mutually orthogonally disposed accelerometers. Handwriting recognition apparatus as claimed in claim 2, wherein said symbol identification apparatus (50) includes combined position and acceleration processing apparatus, which combines the inputs from said digitizer (12) and said at least one accelerator (25) in identifying symbols. Handwriting recognition apparatus as claimed in claim 1, wherein said handwriting input apparatus comprises ultrasonic position determination apparatus operative in air. Handwriting recognition apparatus as claimed in claim 5, wherein said handwriting input apparatus is operative to write on a computer screen (60). A handwriting recognition method comprising; employing at least one accelerometer (25) located in a hand writing implement (10) other than at the tip thereof and at least one digitizer based on an additional different sensing technique to sense handwriting; and receiving an output indication of the handwriting and providing an output indication of symbols represented by the handwriting, wherein said step of providing an output indication of symbols employs input from a digitizer (12) to provide a first output representing identification of symbols along a first identification channel and employs input from said at least one accelerometer (25) to provide a second output representing identification of symbols along a second identification channel and selects between the first and second outputs based on predetermined criteria. A handwriting recognition method as claimed in claim 7, wherein said at least one additional sensing technique comprises position digitizing. A handwriting recognition method as claimed in claim 8 and further comprising identifying symbols by combining digitized position inputs and sensed acceleration information. A handwriting recognition method as claimed in claim 7, wherein said step of receiving includes, employing digitized position inputs to provide a first output representing identification symbols, employing acceleration information to provide a second output representing identification of symbols, and selecting between said first and second outputs.

Inventors: BAR-ITZHAK ZEEV, BARON EHUD, KORSENSKY VICTOR, PRISHVIN ALEXANDER, BAR-ITZHAK, ZEEV, BARON, EHUD, KORSENSKY, VICTOR, PRISHVIN, ALEXANDER
Applicants: INVIBRO TECHNOLOGIES LTD, INVIBRO TECHNOLOGIES LIMITED
Application year: 1995
Main classification: G06K9
IPC codes: G06F3, G06K9