IP Library Granted Patent US 10,685,261
Granted Patent B2
US 10,685,261 · App. 16/004,735 · Granted Jun 16, 2020

Active segmention of scanned images based on deep reinforcement learning for OCR applications

Inventors: Xuewei Qi (Sterling Heights, MI); Orhan Bulan (Troy, MI); David H. Clifford (Royal Oak, MI); David J. Hiemenga (Grand Rapids, MI); Yehenew G. Mengistu (Sterling Heights, MI)
Assignee: GM GLOBAL TECHNOLOGY OPERATIONS LLC
G06K9/6268G06K9/00463G06T7/11H04N1/02805G06K2209/01G06T2207/20081
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 10,685,261
App. No.
16/004,735
Granted
Jun 16, 2020
Kind
B2
Abstract

A system for partitioning a two-dimensional (2D) array and recognizing elements of the 2D array selects a location in an array comprising pixel data of the 2D array; and selects a direction in which to traverse the array from the selected location to segment the elements of the 2D array. The system uses a model and a reward/penalty function to guide the traversal through the array. The system changes direction when the data encountered while traversing the array in the selected direction represents one of the elements of the 2D array and continues in the selected direction when the data represents a joint between two elements of the 2D array. The system recognizes one or more of the elements of the 2D array segmented by traversing the array.

Claims (50)

1. A system for partitioning a two-dimensional (2D) array and recognizing elements of the 2D array, the system comprising:

a processor and memory storing instructions for the processor, the processor configured to execute the instructions to:

select a location in an array comprising pixel data of the 2D array;

select a direction in which to traverse the array from the selected location to segment the elements of the 2D array, the selected direction being based on data surrounding the selected location and based on a model generated by segmenting a plurality of 2D arrays;

define a penalty function and a reward function based on needs of an application partitioning the 2D array;

increment the reward function associated with the model in response to not encountering data representing one or more elements of the 2D array while traversing the array in the selected direction;

increment the penalty function associated with the model in response to encountering data representing one or more elements of the 2D array while traversing the array in the selected direction;

determine whether the data encountered while traversing the array in the selected direction represents one of the elements of the 2D array or represents a joint between two elements of the 2D array;

traverse the array in a different direction in response to determining that the data encountered represents one of the elements of the 2D array;

traverse through the joint between the two elements and continue traversing the array in the selected direction in response to determining that the data encountered represents a joint between two elements of the 2D array; and

recognize one or more of the elements of the 2D array segmented by traversing the array.

2. The system of claim 1 wherein the processor is further configured to execute the instructions to update the model based on one or more of the incremented reward and penalty functions and based on the pixel data of the 2D array.

3. The system of claim 1 wherein the processor is further configured to execute the instructions to select the location based on an a priori information about the pixel data of the 2D array.

4. The system of claim 1 wherein the elements of the 2D array include alphanumeric characters.

5. The system of claim 1 wherein the processor is further configured to execute the instructions to:

select one or more additional locations in the array based on the pixel data;

traverse the array from the selected location and the one or more additional locations in parallel in the selected direction to segment the elements of the 2D array; and

recognize a plurality of the elements of the 2D array segmented by traversing the array from the one or more additional locations.

6. The system of claim 5 wherein the processor is further configured to execute the instructions to select a total number of locations including the selected location and the one or more additional locations based on the pixel data.

7. The system of claim 5 wherein the processor is further configured to execute the instructions to select spacing between the selected location and the one or more additional locations based on the pixel data.

8. The system of claim 5 wherein the processor is further configured to execute the instructions to select widths of paths for traversing the array from the selected location and the one or more additional locations based on the pixel data.

9. The system of claim 8 wherein the processor is further configured to execute the instructions to select the widths to be equal.

10. The system of claim 8 wherein the processor is further configured to execute the instructions to select at least one of the widths to be different than others of the widths.

11. The system of claim 1 wherein the processor is further configured to execute the instructions to, prior to selecting the location:

receive the pixel data of the 2D array;

detect locations of the elements in the 2D array; and

correct one or more of orientation, intensity, and scaling of the 2D array.

12. The system of claim 1 wherein the processor is further configured to execute the instructions to recognize the one or more of the elements of the 2D array using respective classifiers.

13. A method for partitioning a two-dimensional (2D) array and recognizing elements of the 2D array, the method comprising:

selecting a location in an array comprising pixel data of the 2D array;

selecting a direction in which to traverse the array from the selected location to segment the elements of the 2D array, the selected direction being based on data surrounding the selected location and based on a model generated by segmenting a plurality of 2D arrays;

incrementing a reward function associated with the model in response to not encountering data representing one or more elements of the 2D array while traversing the array in the selected direction;

incrementing a penalty function associated with the model in response to encountering data representing one or more elements of the 2D array while traversing the array in the selected direction;

determining whether the data encountered while traversing the array in the selected direction represents one of the elements of the 2D array or represents a joint between two elements of the 2D array;

traversing the array in a different direction in response to determining that the data encountered represents one of the elements of the 2D array;

traversing through the joint between the two elements and continue traversing the array in the selected direction in response to determining that the data encountered represents a joint between two elements of the 2D array; and

recognizing one or more of the elements of the 2D array segmented by traversing the array using respective classifiers.

14. The method of claim 13 further comprising updating the model based on one or more of the incremented reward and penalty functions and based on the pixel data of the 2D array.

15. The method of claim 13 further comprising selecting the location based on an a priori information about the pixel data of the 2D array.

16. The method of claim 13 further comprising:

selecting one or more additional locations in the array based on the pixel data;

traversing the array from the selected location and the one or more additional locations in parallel in the selected direction to segment the elements of the 2D array; and

recognizing a plurality of the elements of the 2D array segmented by traversing the array from the one or more additional locations.

17. The method of claim 16 further comprising selecting a total number of locations including the selected location and the one or more additional locations based on the pixel data.

18. The method of claim 16 further comprising selecting spacing between the selected location and the one or more additional locations based on the pixel data.

19. The method of claim 16 further comprising selecting widths of paths for traversing the array from the selected location and the one or more additional locations based on the pixel data.

20. The method of claim 13 further comprising, prior to selecting the location:

receiving the pixel data of the 2D array;

detecting locations of the elements in the 2D array; and

correcting one or more of orientation, intensity, and scaling of the 2D array.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2018
From: QI, XUEWEI; BULAN, ORHAN; CLIFFORD, DAVID H.; HIEMENGA, DAVID J.; MENGISTU, YEHENEW G.
To: GM GLOBAL TECHNOLOGY OPERATIONS LLC
Reel/Frame 046042/0787 →
Continuity (1)
Related Publication 20190377988A1 · Dec 12, 2019