IP Library Granted Patent US 9,589,185
Granted Patent B2
US 9,589,185 · App. 14/880,583 · Granted Mar 7, 2017

Symbol recognition using decision forests

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,589,185
App. No.
14/880,583
Granted
Mar 7, 2017
Kind
B2
Abstract

The current document is directed to methods and systems for identifying symbols corresponding to symbol images in a scanned-document image or other text-containing image, with the symbols corresponding to Chinese or Japanese characters, to Korean morpho-syllabic blocks, or to symbols of other languages that use a large number of symbols for writing and printing. In one implementation, the methods and systems to which the current document is directed carry out an initial processing step on one or more scanned images to identify a set of graphemes that most likely correspond to each symbol image that occurs in the scanned document image. The graphemes are selected for a symbol image based on accumulated votes generated from symbol patterns identified as likely related to the symbol image using one or more decision forests.

Claims (79)

1. An optical symbol recognition system comprising:

a memory; and

one or more processors coupled to the memory, the processors are configured to:

identify a symbol image in an image of a document;

identify using a decision forest, a set of candidate pattern data structures for the symbol image;

use the candidate pattern data structures to identify a set of candidate graphemes;

use the identified set of candidate graphemes to select a symbol code that represents the symbol image; and

producing an electronic document comprising the symbol code that represents the symbol image.

2. The optical symbol recognition system of claim 1 , wherein using the candidate pattern data structures to identify a set of candidate graphemes further comprises:

evaluating each candidate pattern data structure, within the context of one or more cluster data structures, for an ability to vote for graphemes;

voting, by the candidate pattern data structures evaluated to be able to vote for graphemes, for one or more graphemes;

identifying candidate graphemes for the symbol image as those graphemes receiving votes; and

sorting the identified graphemes into a truncated sorted grapheme array that represents the set of candidate graphemes.

3. The optical symbol recognition system of claim 2 , wherein the truncated sorted grapheme array includes those identified graphemes with greater than a threshold vote total.

4. The optical symbol recognition system of claim 2 , further comprising a set of data structures, stored in one or more of the one or more memories, the set of data structures including:

a decision forest;

a votes data structure that stores cumulative vote totals, each cumulative vote total associated with a grapheme code, the vote total in the votes data structure indexed by grapheme codes;

pattern data structures, each of which represents a symbol pattern and each of which includes an ordered set of parameter values, an ordered set of indices, and an ordered set of grapheme codes; and

two or more cluster data structures, each cluster data structure including an ordered set of references to parameters and one of multiple pattern data structures or multiple references to pattern data structures.

5. The optical symbol recognition system of claim 4 , further comprising an ordered set of functions that generate parameter values from symbol images.

6. The optical symbol recognition system of claim 5 , wherein identifying candidate graphemes for the symbol image as those graphemes receiving votes further includes:

initializing the votes data structure; and

adding a vote value to an element of the votes data structure corresponding to grapheme for which a pattern data structure votes.

7. The optical symbol recognition system of claim 4 , wherein identifying, using a decision forest, a set of candidate pattern data structures for the symbol image further comprises:

computing a set of parameter values for the symbol image;

inputting the set of parameter values, or a subset of the set of parameter values, to each decision tree of the decision forest; and

identifying the pattern data structures, each identified by a leaf node of each decision tree, as the set of candidate pattern data structures.

8. The optical symbol recognition system of claim 4 , wherein evaluating each candidate pattern data structure, within the context of one or more cluster data structures, for an ability to vote for graphemes further comprises:

evaluating the parameter values of the set of parameter values in each identified pattern data structure with respect to the parameter values in the cluster-associated ordered set of parameter values to generate a weight value by summing the absolute values of the differences between each parameter value of the set of parameter values in the pattern data structure and a corresponding parameter value in the cluster-associated ordered set of parameter values; and

when the weight value is less than a cutoff value, determining that the pattern data structure is able to vote for graphemes.

9. The optical symbol recognition system of claim 8 , wherein voting, by a candidate pattern data structures evaluated to be able to vote for graphemes, for one or more graphemes further comprises:

using the generated weight value to select an index from the ordered set of indices within the pattern data structure;

using the selected index to select a grapheme code from the ordered set of grapheme codes within the pattern data structure; and

for each grapheme code in the ordered set of grapheme codes within the pattern data structure starting from the first grapheme code and ending with the selected grapheme code,

indexing the votes data structure using the grapheme code to access a cumulative vote total for a grapheme corresponding to the grapheme code and adding a value to the cumulative vote total for the grapheme.

10. A method comprising:

identify a symbol image in an image of a document;

identifying, using a decision forest, a set of candidate pattern data structures for the symbol image;

using the candidate pattern data structures to identify a set of candidate graphemes;

using the identified set of candidate graphemes to select a symbol code that represents the symbol image; and

producing an electronic document comprising the symbol code that represents the symbol image.

11. A method of claim 10 , wherein using the candidate pattern data structures to identify a set of candidate graphemes further comprises:

evaluating each candidate pattern data structure, within the context of one or more cluster data structures, for an ability to vote for graphemes;

voting, by the candidate pattern data structures evaluated to be able to vote for graphemes, for one or more graphemes;

identifying candidate graphemes for the symbol image as those graphemes receiving votes; and

sorting the identified graphemes into a truncated sorted grapheme array that represents the set of candidate graphemes.

12. The method of claim 11 , wherein the truncated sorted grapheme array includes those identified graphemes with greater than a threshold vote total.

13. The method of claim 11 , further comprising a set of data structures, stored in one or more of the one or more memories, the set of data structures including:

a decision forest;

a votes data structure that stores cumulative vote totals, each cumulative vote total associated with a grapheme code, the vote total in the votes data structure indexed by grapheme codes;

pattern data structures, each of which represents a symbol pattern and each of which includes an ordered set of parameter values, an ordered set of indices, and an ordered set of grapheme codes; and

two or more cluster data structures, each cluster data structure including an ordered set of references to parameters and one of multiple pattern data structures or multiple references to pattern data structures.

14. The method of claim 13 , further comprising an ordered set of functions that generate parameter values from symbol images.

15. The method of claim 14 , wherein identifying candidate graphemes for the symbol image as those graphemes receiving votes further includes:

initializing the votes data structure; and

adding a vote value to an element of the votes data structure corresponding to grapheme for which a pattern data structure votes.

16. The method of claim 14 , wherein identifying, using a decision forest, a set of candidate pattern data structures for the symbol image further comprises:

computing a set of parameter values for the symbol image;

inputting the set of parameter values, or a subset of the set of parameter values, to each decision tree of the decision forest; and

identifying the pattern data structures, each identified by a leaf node of each decision tree, as the set of candidate pattern data structures.

17. The method of claim 14 , wherein evaluating each candidate pattern data structure, within the context of one or more cluster data structures, for an ability to vote for graphemes further comprises:

evaluating the parameter values of the set of parameter values in each identified pattern data structure with respect to the parameter values in the cluster-associated ordered set of parameter values to generate a weight value by summing the absolute values of the differences between each parameter value of the set of parameter values in the pattern data structure and a corresponding parameter value in the cluster-associated ordered set of parameter values; and

when the weight value is less than a cutoff value, determining that the pattern data structure is able to vote for graphemes.

18. The method of claim 17 , wherein voting, by a candidate pattern data structures evaluated to be able to vote for graphemes, for one or more graphemes further comprises:

using the generated weight value to select an index from the ordered set of indices within the pattern data structure;

using the selected index to select a grapheme code from the ordered set of grapheme codes within the pattern data structure; and

for each grapheme code in the ordered set of grapheme codes within the pattern data structure starting from the first grapheme code and ending with the selected grapheme code,

indexing the votes data structure using the grapheme code to access a cumulative vote total for a grapheme corresponding to the grapheme code and adding a value to the cumulative vote total for the grapheme.

19. A non-transitory computer-readable storage medium comprising executable instructions which, when executed by one or more processors in an optical symbol recognition system, cause the optical symbol recognition system to:

identify a symbol image in an image of a document;

identify, using a decision forest, a set of candidate pattern data structures for the symbol image;

use the candidate pattern data structures to identify a set of candidate graphemes;

use the identified set of candidate graphemes to select a symbol code that represents the symbol image; and

producing an electronic document comprising the symbol code that represents the symbol image.

20. The non-transitory computer-readable storage medium of claim 19 , wherein using the candidate pattern data structures to identify a set of candidate graphemes further comprises:

evaluating each candidate pattern data structure, within the context of one or more cluster data structures, for an ability to vote for graphemes;

voting, by the candidate pattern data structure evaluated to be able to vote for graphemes, for one or more graphemes;

identifying candidate graphemes for the symbol image as those graphemes receiving votes; and

sorting the identified graphemes into a truncated sorted grapheme array that represents the set of candidate graphemes.

Assignments (4)
SECURITY INTEREST Recorded Aug 14, 2023
From: ABBYY INC.; ABBYY USA SOFTWARE HOUSE INC.; ABBYY DEVELOPMENT INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 064730/0964 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2022
From: ABBYY PRODUCTION LLC
To: ABBYY DEVELOPMENT INC.
Reel/Frame 059249/0873 →
MERGER Recorded Dec 31, 2018
From: ABBYY DEVELOPMENT LLC
To: ABBYY PRODUCTION LLC
Reel/Frame 047997/0652 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2015
From: CHULININ, IURII GEORGIEVICH; SENKEVICH, OLEG
To: ABBYY DEVELOPMENT LLC
Reel/Frame 036847/0077 →