Constraint driven-on line recognition of handwritten characters and symbols
First Claim
1. A method for identifying a valid symbol or a string of valid symbols from a sequence of handwritten strokes comprising the steps of:
- generating, in response to one or more handwritten strokes, a plurality of stroke labels each having an associated score; and
processing the plurality of stroke labels to identify stroke labels indicative of a valid symbol or portion of a valid symbol, the step of processing including the steps ofstoring the stroke labels within a data structure by order of score, the data structure storing all or a portion of all paths through a search space defined by the plurality of stroke labels; and
reading a path from the data structure, extending the path with possible successor paths, and merging the extended paths back into the data structure as a function of score.
1 Assignment
0 Petitions
Accused Products
Abstract
Method and apparatus for identifying a valid symbol or a string of valid symbols from a sequence of handwritten strokes. A method includes the steps of (a) generating in response to one or more handritten strokes a plurality of stroke labels each having an associated score; (b) processing the plurality of stroke labels in accordance with a beam search-like technique to identify those stroke labels indicative of a valid symbol or portion of a valid symbol; and (c) associating together identified stroke labels to determine an identity of a valid symbol or a string of valid symbols therefrom. An aspect of the invention is that each of the constraint validation filters is switchably coupled into a serial filter chain. The switches function to either couple a filter input to a stroke label or decouple the input and provide a path around the filter block. An application writer has available a plurality of constraint filters. The application writer specifies which one or ones of the constraint filters are to be applied for a specific sequence of strokes.
92 Citations
35 Claims
-
1. A method for identifying a valid symbol or a string of valid symbols from a sequence of handwritten strokes comprising the steps of:
-
generating, in response to one or more handwritten strokes, a plurality of stroke labels each having an associated score; and processing the plurality of stroke labels to identify stroke labels indicative of a valid symbol or portion of a valid symbol, the step of processing including the steps of storing the stroke labels within a data structure by order of score, the data structure storing all or a portion of all paths through a search space defined by the plurality of stroke labels; and reading a path from the data structure, extending the path with possible successor paths, and merging the extended paths back into the data structure as a function of score. - View Dependent Claims (2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 15, 16, 18, 20, 22, 23, 24, 25, 26, 27, 29, 34)
-
-
6. 5) extending a younger sister path from a parent of the top-path;
-
1.6) merging the younger sister path back into the stack as a function or score; 1.7) sending the top path through at least one constraint validation filter; if the top path survives the filter, 2.) extending the top path with the best one among candidates returned from the constraint validation filter; 3a.) merging the extended top path back into the data structure with an associated FLAG=OPEN; 3b.) merging the original top-path back into the data structure with an associated FLAG=CLOSED; and 4.) repeating the steps of the procedure from (1.) until an end of input condition is reached.
-
-
11. Apparatus for identifying a valid symbol or a string of valid symbols from a sequence of handwritten strokes comprising:
-
means for generating, in response to one or more handwritten strokes, a plurality of stroke labels each having an associated score; and means for processing the plurality of stroke labels to identify stroke labels indicative of a valid symbol or portion of a valid symbol, the means for processing comprising means for storing the stroke labels within a data structure by order of score, the data structure storing all or a portion of all paths through a search space defined by the plurality of stroke labels; and means for reading a path from the data structure, means for extending the path with possible successor paths, and means for merging extended paths back into the data structure as a function of score.
-
-
17. A method for identifying a valid symbol or a string of valid symbols from a sequence of handwritten strokes comprising the steps of:
-
generating in response to one or more handwritten strokes a plurality of stroke labels each having an associated score; storing the stroke labels within a first data structure; and processing selected ones of the plurality of stored stroke labels with one or more constraint validation filter means to identify those stored stroke labels indicative of a valid symbol or portion of a valid symbol, the step of processing including a step of storing within a second data structure those stored stroke labels identified to be indicative of a valid symbol or portion of a valid symbol. - View Dependent Claims (19, 21)
-
-
28. A method for identifying a valid symbol from a sequence of handwritten strokes, for each handwritten stroke the method comprises the steps of:
-
comparing a handwritten stroke to a plurality of stroke templates to identify a symbol or symbols of which the handwritten stroke may be a constituent; associating the handwritten stroke with a portion of each identified symbol to form a stroke label; assigning a score to each stroke label, the score having a value that is a function of a degree of similarity between the handwritten stroke and the stroke template corresponding to the identified symbol; ordering the stroke labels associated with the handwritten stroke by order of score; and processing the stroke labels associated with the handwritten stroke by determining which stroke labels, if any, when combined with stroke labels associated with a subsequently written handwritten stroke, comprise a valid symbol or a portion of a valid symbol. - View Dependent Claims (30)
-
-
31. A method for identifying a valid symbol from a sequence of handwritten strokes, for each handwritten stroke the method comprises the steps of:
-
comparing a handwritten stroke to a plurality of stroke templates to identify a symbol or symbols of which the handwritten stroke may be a constituent; associating the handwritten stroke with a portion of each identified symbol to form a stroke label; assigning a score to each stroke label, the score having a value that is a function of a degree of similarity between the handwritten stroke and the stroke template corresponding to the identified symbol; ordering the stroke labels associated with the handwritten stroke by order of score; and processing the stroke labels associated with the handwritten stroke by determining which stroke labels, if any, when combined with stroke labels associated with a subsequent handwritten stroke, comprise a valid symbol or a portion of a valid symbol, wherein the step of processing includes an initial step of storing the stroke labels within a data structure by order of score value, the data structure storing all or a portion of all paths through a search space defined by the stroke labels, and wherein the step of processing includes the steps of;
-
-
32. ) removing a top path from the data structure;
-
1.5) extending a younger sister path from a parent of the top-path; 1.6) merging the younger sister path back into the data structure as a function of score; 1.7) sending the top path through at least one constraint validation filter; if the top path survives the filter,
-
-
33. ) extending the top path with the best one among candidates returned from the constraint validation filter;
-
3a.) merging the extending top path back into the data structure with an associated FLAG=OPEN; 3b.) merging the original top-path back into the data structure with an associated FLAG=CLOSED; and 4.) repeating the steps of the procedure from (1.) until an end of input condition is reached.
-
-
35. Apparatus for identifying a valid symbol or a string of valid symbols from a sequence of handwritten strokes, comprising:
-
means for generating, in response to one or more handwritten strokes, a plurality of stroke labels each having an associated score; means for storing the stroke labels within a first data structure; and means for processing selected ones of the plurality of stored stroke labels with one more constraint validation filter means to identify stored stroke labels that are indicative of a valid symbol or portion of a valid symbol, the processing means including means for storing within a second data structure any stroke labels identified as being indicative of a valid symbol or portion of a valid symbol.
-
Specification