CHARACTER RECOGNITION METHOD

Abstract: A method of recognizing a character includes measuring the angle of the tangent to the character at each of a plurality of sample points on the character (22), assigning tangent directions to the points (24) and utilizing the tangent directions according to predefined rules to recognize the character (28).

Description: CHARACTER RECOGNITION METHOD FIELD AND BACKGROUND OF THE INVENTION The present invention relates to a method of recognizing characters. The term "character" is used herein in its broadest meaning, to include. not only conventional alpha-numeric characters, but also various symbols, such as mathematical, scientific, phonetic, shorthand, etc., symbols. The method of the present invention is particularly useful for recognizing handwritten characters in real-time, and is therefore described below with respect to this application. Many character recognition methods have been described in the literature for recognizing both pre-printed characters off-line and handwritten characters on-line. A good review of the previously proposed methods is described in the article "The State of the Art in On-Line Handwriting Recognition" by C.C. Tappert, C.Y. Suen, and T. Wakahara, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 12, No.8, August 1990, Pages 787-808. This article lists 286 prior publications as references. OBJECTS AND BRIEF SUMMARY OF THE INVENTION Main Object of the Invention The main object of the present invention is to provide a new method of character recognition which has a number of important advantages making it particularly useful for on-line recognition of handwritten characters, although various aspects of the method could also advantageously be used for off-line recognition of pre-printed characters. Main Features of the Invention According to a broad aspect of the present invention, there is provided a method of recognizing a character, comprising the operations: (a) measuring the angle of the tangent to the character at each of a plurality of sample points on the character; (b) assigning those points having a tangent direction within a predefined angle from the vertical axis with identifications indicating Up and Down (U,D) point tangent directions (PTDs), and those points having a tangent direction within a predefined angle from the horizontal axis with identifications indicating Left and Right (L,R) PTDs; (c) determining those sample points in which the tangent direction changes from a U,D,L,R value to another U,D,L,R value with respect to the tangent direction of the preceding sample point (which has a U,D,L,R value), and identifying such sample points as special points; (d) arranging the special points according to predefined rules; (e) and utilizing the resulting arrangment of special points for recognizing the character. In the preferred embodiment of the invention described below, the predefined range in operation (b) is no more than 15° from the respective axis; preferably, it is 11°. As indicated earlier, the method is particularly useful for the real-time recognition of handwritten characters as they are written as a series of handwritten strokes, in which case the arrangement of special points resulting from operation (d) above is a time-ordered sequence. According to further features in the preferred embodiment of the invention described below, the method also includes determining the location of the start and end points of each handwritten stroke, and utilizing also the locations of those end points as special points for recognizing the character. The preferred embodiment of the invention also utilizes "torsion" points and "cusps" (both as defined below) as special points for recognizing the character. In addition, certain attributes, called "breaking", and "diagonal" (both as defined below) are assigned to some of the special points and are also used for identifying the character. According to still further features in the described preferred embodiment, the time-ordered sequence of special points is utilized for recognizing the character by matching them with stored sequences of special points of a plurality of stored reference characters. More particularly, the stored sequences of special points are stored in a look-up table which also includes the number of strokes of each stored reference character. A preliminary screening operation is performed wherein the number of strokes of the handwritten character to be recognized is compared with the number of strokes of the stored reference characters in the look-up table, and eliminates from further matching are those reference characters not having the same number of strokes as in the handwritten character to be recognized. According to still further features in the described preferred embodiment, if more than one reference character of the look-up table matches the sequence of special points of the handwritten character to be recognized, a decision operation is performed (after normalizing the coordinates of all the special points of the handwritten character to the smallest rectangle which encompasses all the special points), to determine the reference character having the best match with the handwritten character, by: (i) calculating the sum of the square distances between corresponding points of the handwritten character to be recognized, and each of the matched reference characters; and (ii) identifying the handwritten character as the reference character having the smallest sum so calculated. According to another aspect of the present invention, there is provided a method of recognizing a handwritten character by the trajectories of its handwritten strokes, comprising the operations: (a) identifying "special points" on the trajectory of the character; (b) assigning attributes to the special points; (c) sequencing the special points according to predefined rules; and (d) matching the sequence against a library of reference sequences that were previously stored identifying reference characters. The method of the described preferred embodiment is thus based on three basic stages: 1. a rough screening stage, in which the number of strokes of the inputted character to be recognized is compared with those of each stored reference character, and the reference characters having a different number of strokes are eliminated; 2. a fine screening stage, in which the above-described features extracted .from the inputted handwritten character are compared with those of the remaining candidates of the stored reference characters to eliminate most of the remainining candidates; and 3. a decision stage, in which the few reference character candidates remaining (if there is more than one after the fine screening stage) are compared with the inputted handwritten .character, and a decision is made as to which reference character is the "best" match. The foregoing features of the novel recognition method describe its normal working, or "Recognition" mode. The Recognition mode, however, may be preceded by a "Learning" mode, for "learning" the specific characters of the user. Thus, during the Learning mode, the various characters or other symbols to be recognized may be handwritten by the user on a digitizing tablet, and then each such character may be identified by a recognition code (e.g., the ASCII code). The features of each such handwritten character, together with its identification, are stored in the look-up table, and are then used during the Recognition mode for identifying the characters as each is handwritten on the digitizing tablet by the user. Thus, during the Recognition mode, in case of an on-line recognition error (e.g., an error in the identification of a handwritten character, or an inability to recognize an input as one of the reference characters), the user can correct the error immediately by switching to the Learning mode and inputting the correct identification code of the unrecognized input. The character is thus "learned" to enable recognition thereafter. Main Advantages of the Invention The character recognition method of the present invention has a number of important advantages, as set forth below, which make it particularly (but not exclusively) useful for the on-line recognition of handwritten characters: 1. The method is adapted to any language: It can be used for recognizing alphabetical characters of any alphabetic language, such as Hebrew, English, Arabic, etc., and also for recognizing special symbols, e.g., mathematical and scientific symbols, phonetic and shorthand symbols, etc. 2. The method is adapated to the user: It may be applied to "learn" the user's idiosyncrasies of writing, and "remembers" the specific features which distinguish one character from the other, while ignoring irregular differences such as distortions and changes in scale. The method may therefore also be used for recognizing and validating signatures, particularly those constituted of one or more relatively short strokes. 3. The method can be realised in real-time even on very small microprocessors: The method utilizes only a small part of the character information to recognize the character such that the method can be run on conventional microprocessors and personal computers at a recognition speed higher than the normal handwriting speed to provide real-time recognition without lag. 4. The method is independent of the hardware and can be run on a wide variety of digital computers: For example, the input information may be from any type of digitizing tablet (e.g., electromagnetic, pressure- sensitive, acoustic); also, the method can be implemented in hardware, software, special silicon chips, or any combination of the above. Further features and advantages of the invention will be apparent from the description below. BRIEF DESCRIPTION OF THE DRAWINGS The invention is herein described, by way of example only, with reference to the accompanying drawings, wherein: Fig. 1 is a block diagram illustrating one form of character recognition apparatus constructed in accordance with the present invention; Fig. 2 is a block diagram of the main processes performed by the character recognition method of the present invention; Figs. 3a — 3c, taken together, illustrate the character recognition method described below as a preferred embodiment of the present invention; Figs. 4-9, together with their respective tables 4a-9a illustrate a number of handwritten characters helpful in understanding the character recognition method illustrated by the flow chart of Figs. 3a and 3b; and Figs. 10a and 10b, taken together , constitute a flow chart illustrating the Learning mode stage in the described character recognition method. DESCRIPTION OF A PREFERRED EMBODIMENT Overall System and Modes of Operation Fig. 1 is a block diagram illustrating one form of apparatus for recognizing handwritten characters in accordance with the method of the present invention; and Fig. 2 is a block diagram illustrating the main processes involved in the character recognition method» The apparatus illustrated in Fig. 1 is adapted to be included in an existing processor system having a digitizing tablet 2, or other input device, for inputting the handwritten characters to be recognized. The apparatus includes a main processor 4 which receives the inputted information from the digitizing tablet 2 , performs the character recognition method as will be described more particularly below, and outputs a code or other identification identifying the inputted character. The identification outputted by the main processor 4 is fed, via a FIFO (first in first out) buffer 6, to an auxiliary processor 8 which outputs the identification code to an output terminal, a personal computer, or the like, to thereby free the main processor 4 for performing the recognition method. The main processor 4 includes an EPROM (erasable programmable read only memory) 4a for the fixed program controlling the processor 4, a RAM (random access memory) 4b for a loadable program, and another RAM 4c for storing the data. The auxiliary processor 8 also includes an EPROM 8a for the fixed program, an RAM 8b for the loadable program, and an RAM 8c for the data. The apparatus illustrated in Fig. 1 also includes conventional panel switches (one of which may be used as a mode selector), reset and clock circuits, etc., all generally designated by block 10, and a power supply and backup battery as generally designated by block 12. The main processes performed by the main processor 4 are indicated in the block diagram of Fig. 2. Thus, the tablet inputted data 20 is subjected to a feature extraction process 22, which process extracts certain selected features of the inputted data sufficient to identify the handwritten character. A mode selector process 24 determines whether the extracted features should be subjected to a Learning process or a Recognition process. If a Learning process (block 26) is selected, the extracted features are stored in a library of reference characters to be used in the Recognition process; and if the Recognition process (block 28) is selected, the extracted features are compared with the features of the stored reference characters, and a decision is outputted identifying the inputted handwritten character. The library in which the stored reference characters are stored is in the form of a look-up table identifying the number of strokes of each character and the characteristic features of each stroke. A stroke is determined from the pen-down to the pen-up position of a stylus when writing on the digitizing tablet (2, Fig. 1). For example, some characters are constituted of a single stroke, whereas other characters may be constituted of two, three, four, or more strokes. A "dot" is also considered a stroke, as will be described more particularly below. The characteristic features of each stroke to identify a reference character are described more particularly below in connection with the operation of the Recognition mode. When the system is operating according to the Recognition mode, and an on-line recognition error is experienced (e.g., an identification of the wrong character, or inability to identify a character), the user can correct the error immediately by switching back to the Learning mode, so that the features extracted in the feature extraction process 22 are stored as a new reference character along with the identification (e.g., per the ASCII codes) . The system may then be switched back to the Recognition mode, whereupon there is a greater probability that the "learned" character will thereafter be correctly recognized. RECOGNITION MODE The Three Stages The overall Recognition mode is schematically indicated by the flow chart of Figs. 3a and 3b. It is constituted of three stages: (1) a coarse screening stage; (2) a fine screening stage; and (3) a decision stage. The coarse screening stage merely compares the number of strokes of the handwritten character, as inputted via the digitizing tablet 2, with all the reference characters, and those reference characters which have a different number of strokes than the number of strokes of the inputted character are eliminated. This stage substantially reduces the number of reference characters which must be thereafter compared to the inputted character. In the fine screening stage, the inputted handwritten character is processed according to the flow chart illustrated in Figs. 3a and 3b to extract certain features of the inputted handwritten character. These extracted features are then compared with the features of all the stored reference characters which were not eliminated in the coarse screening stage, to further reduce in number of stored reference characters to be considered in the final decision stage. More particularly, the fine screening stage involves: (a) measuring the angle of the tangent to the character at each of a plurality of sample points on the character; (b) assigning those points having a tangent direction within a predefined angle from the vertical axis with identifications indicating Up and Down (U,D) point tangent directions (PTDs), and those points having a tangent direction within a predefined angle from the horizontal axis with identifications indicating Left and Right (L,R) PTDs; (c) determining those sample points in which the tangent direction changes from a U,D,L,R value to another U,D,L,R value with respect to the tangent direction of the preceding sample point (which has a U,D,L,R value), and identifying such sample points as special points; (d) arranging the special points according to predefined rules; (e) and utilizing the resulting arrangement of special points for recognizing the character. In the preferred embodiment of the invention described below, the predefined range in operation (b) is no more than 15° from the respective axis; preferably, it is 11°. The tangent angle of the character trajectory of each of the plurality of sample points is measured by measuring the angle of an imaginary chord connecting the two ends of a segement of predetermined length of the character trajectory with the respective sample point at its center. The length of the chord is also measured, and if it is below a predetermined minimum length, the sample point is assigned an identification indicating an undefined tangent direction. In the preferred embodiment described below, wherein the method is used for the real-time recognition of handwritten characters as they are written as a series of handwritten strokes, the predefined arrangement of special points resulting from operation (d) above is a time-ordered sequence. Types of Special Points and their Attributes There are four types of "special points"., as follows: (a) end points (i.e., the "pen-down" start point and the "pen-up" end point) of the trajectories of all pen strokes which belong to the inputted handwritten character; (b) points in which the tangent to the trajectory is within a predefined angle from the horizontal axis (X-axis) or the vertical axis (Y-axis); (c) points between two special points of type (b) that have the same tangent direction, in. which the tangent direction has a local extremum (hereinafter called a "torsion" point); (d) cusps, in which the tangent direction is undefined, but the tangents of the two adjacent special points have opposite directions. Points (b) and (c) are considered "special points" only if the tangent direction has changed more than 45° from the previous special point. Each special point has four features: "X" location, "Y" location, "PTD" (Point Tangent Direction) and "Attribute". PTD may take any one of six possible values, namely: left (L) or right (R) if it is within a predefined angle from the horizontal axis; up (U) or down (D) if it is within a predefined angle from the vertical; "Null" if the stroke is smaller than a fixed size; or "End", if it is the last point of the stroke. The predefined angle is no more than 15° from the respective axis; preferably, it is 11° in the preferred embodiment described below. Each special point may be assigned any one of the following three "attributes": (a) "breaking" (B) attribute, representing a sharp curvature: This attribute is applied to a special point which is injected between two PTDs which have opposite directions (i.e., a 180° change in the tangent direction). This may occur where there is a sharp curve in the trajectory, such as in the case of a "sharp" cusp. In such case, a special point assigned the attribute "breaking" is injected into the sequence between the adjacent special points of opposite directions, and the "breaking" special 10 point is applied with a tangent direction changed by 90° from the tangent direction of the first adjacent point in the direction of the tangent of the second adjacent point. (b) A "diagonal" (D) attribute, such as may occur at "end points" and "torsion points", where the tangent to 15 the curve is not within a predefined angle from the X-axis or the Y-axis. The direction of a "diagonal" special point is rounded to the nearest right, left, up or down direction as described earlier, but the point is qualified with the attribute of a "diagonal" (D) . 20 (c) "None", where the special point is assigned neither of the above attributes. Rules of Sequencing the Special Points The special points are arranged into time-ordered sequences, according to the following rules: 25 1. There should be no two consecutive points of the same PTD (such a situation is avoided by the requirement that a sample point is considered a special point only if its tangent has changed by more than 45° fom the previous special point), 30 2. There should be no two consecutive points of opposite PTDs (i.e., in opposite directions). Such a situation is avoided by the injection of a "breaking special point" as described above. Rules for Matching Sequences * - • -' The sequence of special points of each inputted handwritten stroke is matched with the sequences of special points of all the reference characters which were not eliminated in the coarse screening stage described earlier according to the following rules: A. if the corresponding PTD in the sequence match, the two sequences are incremented; B. if the corresponding PTD in the two sequences are opposite to each other, and if both special points are labelled "breaking" special points, the two sequences are incremented; C. if the two corresponding PTDs are opposite to one another, and one has an attribute identified as "B" (i.e., a "breaking" value) while the other has an attribute identified as "none", the two sequences are incremented; D. if one of the corresponding points has an attribute identified as "diagonal", and the other does not, then: (i) if the two points are the first ones in their respective sequences and the tangent directions of the two special points are not opposite to one another, only the sequence containing the "diagonal" attribute is incremented; (ii) if the two points are not the first ones in the sequence, none of them is the last point of its sequence, and the tangent directions of the two special points are opposite to one another, the sequence with the "diagonal" attribute is incremented by "2"; (iii) if one point is diagonal, and the other is the last of its sequence, then the sequence containing the diagonal tribute is incremented. The matching of the corresponding special points in the two sequences is continued for the complete sequences, and a "successful" match is determined to be present if the two sequences are thus completed. On the other hand, the matching of the two sequences is terminated whenever a match is not made between special points in the two sequences, and the match is determined to be an "unsuccessful" match. The fine screening stage thus eliminates a large number of possible candidates for the handwritten character to be identified. If more than one candidate remains, the recognition mode then proceeds to the decision stage. The Flow Chart of Figs. 3a, 3b The above-described operations are illustrated in the flow chart of Figs. 3a and 3b. . The first operation is to collect the special points out of the pen trajectory sample points and to record their coordinates, PTD's, and attributes (block 30). As described above, there are four types of special points, namely: (a) end points, (b) points in which the 'tangent to the trajectory is close to parallel to the horizontal axis or vertical axis, (c) "torsion" points, and (d) "cusps". All the foregoing points are identified by their PTD's, and attributes if any. The special points are then connected into a time-ordered sequence for each pen stroke of the input signal (block 31 ) . Such sequences are shown, for example, in the characters of Figs. 4-9, and their respective tables 4a-9a. A check is then made (block 32) whether there are consecutive points of opposite directions; if so, a "breaking" point is injected into the sequence (block 33) as described above. A check is then made whether the tangent is not parallel to the X-axis or Y-axis (block 34). As described earlier, this may occur at an end point or a torsion point, in which case the direction of the tangent is rounded to the nearest R,L,U,D direction and is qualified with the "diagonal" attribute (block 35). After all the special points have thus been collected for each stroke of the inputted handwritten character, all the coordinates of the points are normalized to the smallest rectangle which encompasses the trace of the stroke (block 36). The inputted data for the respective character is then compared with the reference characters stored in the library (block 37), i.e., in the look-up table of stored reference characters. First, a coarse screening operation is performed in which the number of strokes of the input symbol is compared to the number of strokes in the respective reference character (block 38); if there is no match, the respective reference character is eliminated ^ from the candidate list (block 39). After all the reference characters have thus been scanned (blocks 40, 41), a decision is made whether a match has occurred with respect to any of the reference characters (block 42); if not, the * inputted handwritten character is identified as an unrecognized character (block 43). In such a case, the character can either be ignored, or can be added to the library by selecting the Learning mode, and entering its correct identification to store its fetures in the library models. When scanning each of the reference characters during the fine screening stage, a check is made as to whether the sequence of special points in the inputted handwritten character matches the sequence of points in the reference character of the library model (block 45); if not, the reference character is eliminated from the candidate list (block 46) . A check is then made whether all the reference characters in the library models have been checked (blocks 47, 48); if so, a check is made to determine whether any candidates have been selected (block 49). If not, the character is determined to be an unrecognized character (block 50), which may be ignored or added to the library in a Learning mode, as described above with respect to block 43. This completes the fine screening stage. If more than one reference character passes this stage, the system then proceed to the decision stage to determine which of the characters passing the fine screening stage has the best match with the inputted handwritten character. In the decision stage, the norm distance (i.e., the sum of the square distances) is calculated between corresponding points of the handwritten character to be recognized and each of the reference characters passing the fine screening stage (block 51); the reference character having the smallest norm distance so calculated is chosen (block 52); and the code of the so-selected reference character is outputted as the identification of the inputted handwritten character (block 53). Examples of Character Recognition The recognition process will now be described with respect to several examples as illustrated in Figs. 4-9. Figs. 4-7 illustrate several examples of reference characters as stored in the look-up table (reference library models) and as having the characteristics set forth in Tables 4a-7a respectively, as also stored in the look-up table. Fig. 8 illustrates an example of a one-stroke handwritten character inputted into the system via the digitizing tablet 2 (Fig. 1), having the characteristics of Table 8a, which characteristics are to be compared with those of the reference characters of Figs. 4-7; and Fig. 9 illustrates a two-stroke handwritten character inputted via the digitizing tablet 2 and having the characteristics set forth in Table 9a, which characteristics are also to be compared with the reference characters stored in the look-up table. With reference first to the inputted handwritten character illustrated in Fig. 8, it will be seen that since this character is a one-stroke character, the coarse screening stage will immediately eliminate the character "t" of Fig. 6, which is a two-stroke character. This leaves only the one-stroke characters of Figs. 4, 5 and 7 to be compared in the fine screening stage. As described above, in the fine-screening stage each sequence of special points of the inputted handwritten character of Fig. 8, as set forth in Table 8a, is compared with the sequence of special points in each of the treference characters of Figs. 4, 5 and 7 as set forth in Tables 4a, 5a and 7a, respectively, in accordance with the above Rules of Matching Sequences. Comparing the special points of Table 8a (the inputted reference character of Fig. 8) with Table 4a (the stored reference character of Fig. 4), it will be seen that point P- in Table 8a is "R", and in Table 4a it is "U". However, this point in Table 8a is .qualified with the attribute "D" (diagonal), while that of Table 4a is "null" (blank); moreover, " the PTD's are the first ones in the sequence and are not opposite to one another. According to Matching Sequence Rule D(i), only the sequence containing the "diagonal" attribute (Point P- of Table 8a) , is incremented. We now proceed to compare point ~ of Table 8a with point P.. of Table 4a. The two PTD's are equal (U) , and therefore we continue to compare point ^ of Table 8a with point P_ of Table 4a. These two points are opposite to one another (being "L" in Table E and " " in Table 4a) . However, point P 2 in Table 4a is qualified with the attribute "B" (break), while point P 3 in Table 8a has no attribute. According to Matching Sequence Rule C, both sequences are incremented. From hereon, all the respective special points P.-.-P q in Table 4a match with points Ε .-Ε_.„ in Table 8a, in that they all have the same PTD's; therefore, the reference character of Fig. 4 passes the fine screening stage. The sequence of points as set forth in Table 8a, corresponding to the inputted handwritten character of Fig. 8, are then compared to those of Table 5a corresponding to the reference character illustrated in Fig. 5. In this comparison, it will be seen that point P.. of Table 8a and point P.. of Table 5a have different PTD's; in addition, the attributes of both are "D" (diagonal), and therefore there is no match according to the Matching Sequence Rules. Accordingly, the reference character of Fig. 5 is eliminated in this fine screening stage. The special points as set forth in Table 8a, corresponding to the inputted handwritten character of Fig. 8, are then compared to those appearing in Table 7a, corresponding to reference character of Fig. 7. Table 8a has the same number of special points with exactly the same PTD's as Table 7a, and therefore the reference character of Fig. 7 passes the fine screening stage. This matching procedure of course continues with all the other reference characters stored in the look-up table of the library models. Assuming that only the characters of Figs. 4 and 7 have passed the fine screening stage, the process now proceeds to the decision stage to determine which of these two characters makes a best match with the inputted handwritten character of Fig. 8, Table 8a. As indicated earlier, before the decision stage is reached, the coordinates of all the special points of the handwritten character to be recognized have been normalized to the smallest rectangular which encompasses all the special points (block 36, Fig. 3a) . In the decision stage, the sum of the square distances between corresponding points of the handwritten character to be recognized, and each of the non-eliminated reference characters, are calculated; and the reference character having the smallest sum so calculated is identified as the handwritten character. Thus, in this decision stage, the square euclidean distances are summed between the matched points of the character in Fig. 4 (Table 4a); in this example, this sum for the character of Fig. 4 is 680. Similarly, the square euclidean distances between the matched reference character of Fig. 7 (Table 7a) are summed; in this example, the sum is 86. Since the sum for Fig. 7 is much smaller than that for Fig. 4, the reference character of Fig. 7 is determined to be the one having the best match with the inputted handwritten character of Fig. 8 (Table 8a) . Fig. 9 illustrates a two-stroke handwritten character inputted via the digitizing tablet 2, and Table 9a represents the features extracted during the analyis of such a two-stroke character. It wil be seen that the coarse screening operation described above will eliminate all the stored reference characters as illustrated in Figs. 4, 5 and 7, all relating to a single-stroke character, and will therefore pass as a possible candidate only the two-stroke character illustrated in Fig. 6. It will also be seen that all the extracted features (PTD's and attributes) of the first stroke of the two-stroke reference character in Fig. 6 ("t"), as shown in Table 6a, also match those of the first stroke of the inputted handwritten character as illustrated in Fig. 9 and in in its Table 9a. However, the PTD's of the second stroke (points P g , P-i-* ) ) of the reference character in Fig. 6, as shown in Table 6a, do not match the extracted features of the second stroke in the inputted handwritten character of Fig. 9 , as illustrated by points P fi , P q in Table 9a. Accordingly, the reference character ("t") illustrated in Fig. 6 will not pass the fine-screening stage, and will therefore not be a possible candidate for the decision stage. The stored reference characters would presumably include a character having the extracted features corresponding to those of Fig. 9 and Table 9a so as to pass the fine screening stage. However, if there is no such character, the result will be an unrecognized character. This will be indicated by the system, and in such case the user may shift to the Learning mode in order to input and store a reference character having these features so that such a reference character will thereafter be recognized as a possible candidate whenever inputting, for recognition, a handwritten character corresponding to that illustrated in Fig. 9, Table 9a. The Learning Mode (Figs. 10a, 10b) As indicated earlier, the Learning mode, as illustrated in Figs. 10a, 10b, is used in order to store, in the look-up table of the reference character models, the features of all the reference characters with which each inputted handwritten character is to be compared in order to determine the best match. As also indicated above, the Recognition mode may be interrupted and switched to the Learning mode, in order to correct an error in the identification of a character, or to enable the system to identify a character which it previously was unable to identify. Thus, in the Learning mode, the special points of the pen trajectory are collected and their coordinates and directions are recorded in the look-up table, as described above (block 70, Fig. 10a). The special points are then connected into sequences of points for each pen stroke of the input signal (block 71). A decision is then made- ' whether any pair of consecutive points are of opposite directions (block 72); and if yes, a "breaking point" is inserted (block 73) in the same manner as described above in the Recognition mode. If there are no consecutive points of opposite directions, a decision is made whether the tangent at a point is not parallel to the X-axis or Y-axis (block 74); if "yes", the points labelled with the "D" (Diagonal) attribute and its direction is rounded to the nearest direction parallel to the axis, without creating two consecutive points with the same direction, as described above, in order to have PTDs of only four possible directions (U,D,L,R, block 75). All the coordinates are then normalized to the smallest rectangle which encompasses all the special points (block 76) . The operator then inputs a code identifying the respective character (block 77), and after a confirmation step (block 78), the new record is stored in the look-up table (block 79) . While the invention has been described with respect to one preferred embodiment, it will be appreciated that this is set forth merely for purposes of example, and that many other variations, modifications and applications of the invention may be made.

Claims: WHAT IS CLAIMED IS: 1. A method of recognizing a character comprising the operations: (a) measuring the angle of the tangent to the character at each of a plurality of sample points on the character; (b) assigning those points having a tangent direction within a predefined angle from the vertical axis with identifications indicating Up (U) and Down (D) point tangent directions (PTDs), and those points having a tangent direction within a predefined angle from the horizontal axis with identifications indicating Left (L) and Right (R) PTDs; (c) determining those sample points in which the tangent direction changes from a U,D,L,R value to another U,D,L,R value with respect to the tangent direction of the preceding sample point (which has a U,D,L,R value), and identifying such sample points as special points; (d) arranging said special points according to a predefined rules; (e) and utilizing the resulting arrangement of special points for recognizing the character. 2. The method according to Claim 1 , wherein said predefined angle is not more than 15° ' from the respective axis. 3. The method according to Claim 2, wherein said predefined angle is about 11° from the respective axis. 4. The method according to any one of Claims 1-3, wherein the tangent angle at each of said plurality of sample points is measured by measuring the angle of an imaginary chord connecting the two ends of a segment of predetermined length with the respective sample point at its center. 5. The method according to any one of Claims 1-4, wherein the length of said chord is also measured, and if below a predetermined minimum length, the sample point is assigned an identification indicating an undefined tangent direction. 6. The method according to any one of Claims 1-5, including determining those sample points in which: (a) the tangent direction has a local extremum, (b) the PTDs of the preceding and subsequent special points are of the same value, and (c) the tangent direction of the respective point is more than a predefined angle from said preceding and subsequent points; identifying said latter sample points as "torsion" special points; and including said "torsion" special points in operations (d) and (e). 0 7. The method according to any one of Claims 1-6, wherein the method is used for the real-time recognition of handwritten characters as they are written as a series of handwritten strokes, and wherein the arrangement of special points resulting from predefined sequence in operation (d) 5 is a time-ordered sequence. 8. The method according to Claim 7, further including detemining the location of the start and end points of each handwritten stroke, and utilizing also the location of said start and end points as special points for G recognizing the character according to the operations (d) and (e) . 9. The method according to either of Claims 7 or 8, wherein said time-ordered sequence of special points is utilized for recognizing the character by matching it with 5 stored sequences of special points of a plurality of stored reference characters. 10. The method according to Claim 9, wherein said operation (d) includes examining said sequence of changes in the tangent directions of the handwritten character for the 0 presence of a 180° change between first and second adjacent special points in the sequence; and upon detecting the presence of such a 180° change, injecting a further special point, identified with the attribute "breaking", into said sequence between said adjacent special points, and applying to said further special point a tangent direction changed by 90° from the tangent direction of the first adjacent point, in the direction of the tangent of the second adjacent point.

Inventors: ILAN GABRIEL, ISAAK SHMUEL, ILAN, GABRIEL, ISAAK, SHMUEL
Applicants: ADVANCED RECOGNITION TECH, ADVANCED RECOGNITION TECHNOLOGIES, INC.
Application year: 1992
Main classification: G06K9
IPC codes: G06K9