IP Library Granted Patent US 11,847,563
Granted Patent B2
US 11,847,563 · App. 17/970,651 · Granted Dec 19, 2023

On-device artificial intelligence systems and methods for document auto-rotation

Inventor: Christopher Dale Lund (San Diego, CA)
Assignee: OPEN TEXT SA ULC
G06N3/08G06N20/00G06V10/242G06V10/82G06V30/153G06V30/19173G06V30/414H04N1/3877H04N1/40012
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 11,847,563
App. No.
17/970,651
Granted
Dec 19, 2023
Kind
B2
Abstract

An auto-rotation module having a single-layer neural network on a user device can convert a document image to a monochrome image having black and white pixels and segment the monochrome image into bounding boxes, each bounding box defining a connected segment of black pixels in the monochrome image. The auto-rotation module can determine textual snippets from the bounding boxes and prepare them into input images for the single-layer neural network. The single-layer neural network is trained to process each input image, recognize a correct orientation, and output a set of results for each input image. Each result indicates a probability associated with a particular orientation. The auto-rotation module can examine the results, determine what degree of rotation is needed to achieve a correct orientation of the document image, and automatically rotate the document image by the degree of rotation needed to achieve the correct orientation of the document image.

Claims (59)

1. A method for document auto-rotation, the method comprising:

determining, by an auto-rotation module, a plurality of textual snippets in a document image;

preparing, by the auto-rotation module, the plurality of textual snippets for input to a neural network;

processing, by the auto-rotation module, the plurality of textual snippets using the neural network, wherein the neural network is trained to process an input textual snippet, recognize an orientation of the input textual snippet, and provide an output indicating a degree of rotation needed to correct the orientation of the input textual snippet;

determining, by the auto-rotation module based on outputs from the neural network, a degree of rotation needed to rotate the document image; and

rotating, by the auto-rotation module, the document image by the degree of rotation determined based on the outputs from the neural network.

2. The method according to claim 1 , further comprising:

segmenting, by the auto-rotation module, the document image into bounding boxes, the segmenting including generating a bounding box defining a connected segment of black pixels in the document image, wherein the bounding box defines a set of coordinates in the document image that contains the connected segment of black pixels.

3. The method according to claim 2 , wherein determining the plurality of textual snippets in the document image further comprises determining the plurality of textual snippets from the bounding boxes.

4. The method according to claim 2 , further comprising:

randomly selecting textual snippets from the bounding boxes; and

testing each of the textual snippets randomly selected from the bounding boxes using the neural network.

5. The method according to claim 4 , further comprising:

conducting a statistical analysis on results from the neural network, wherein the statistical analysis yields a confidence that a most-common output from the neural network is incorrect for the document image; and

checking the confidence during the testing until the confidence reaches or exceeds a proscribed limit.

6. The method according to claim 4 , further comprising:

determining whether a minimum number of samples of the textual snippets from the bounding boxes has been reached; and

responsive to the minimum number of samples of the textual snippets from the bounding boxes has been reached, stop randomly selecting textual snippets from the bounding boxes and determining, based on the testing, how many votes are for each of a plurality of directions.

7. The method according to claim 1 , wherein the neural network is configured for outputting a probability value indicating that a zero degree of rotation or zero number of turns is needed to correct the orientation of the input textual snippet, a probability value indicating that a 90 degree of rotation or a single right or left turn is needed to correct the orientation of the input textual snippet, a probability value indicating that a 180 degree of rotation is or two right or left turns are needed to correct the orientation of the input textual snippet, and a probability value indicating that a 270 degree of rotation is or three right or left turns are needed to correct the orientation of the input textual snippet.

8. A system for document auto-rotation, the system comprising:

a processor;

a non-transitory computer-readable medium; and

stored instructions translatable by the processor for:

determining a plurality of textual snippets in a document image;

preparing the plurality of textual snippets for input to a neural network;

processing the plurality of textual snippets using the neural network, wherein the neural network is trained to process an input textual snippet, recognize an orientation of the input textual snippet, and provide an output indicating a degree of rotation needed to correct the orientation of the input textual snippet;

determining, based on outputs from the neural network, a degree of rotation needed to rotate the document image; and

rotating the document image by the degree of rotation determined based on the outputs from the neural network.

9. The system of claim 8 , wherein the stored instructions are further translatable by the processor for:

segmenting the document image into bounding boxes, the segmenting including generating a bounding box defining a connected segment of black pixels in the document image, wherein the bounding box defines a set of coordinates in the document image that contains the connected segment of black pixels.

10. The system of claim 9 , wherein determining the plurality of textual snippets in the document image further comprises determining the plurality of textual snippets from the bounding boxes.

11. The system of claim 9 , wherein the stored instructions are further translatable by the processor for:

randomly selecting textual snippets from the bounding boxes; and

testing each of the textual snippets randomly selected from the bounding boxes using the neural network.

12. The system of claim 11 , wherein the stored instructions are further translatable by the processor for:

conducting a statistical analysis on results from the neural network, wherein the statistical analysis yields a confidence that a most-common output from the neural network is incorrect for the document image; and

checking the confidence during the testing until the confidence reaches or exceeds a proscribed limit.

13. The system of claim 11 , wherein the stored instructions are further translatable by the processor for:

determining whether a minimum number of samples of the textual snippets from the bounding boxes has been reached; and

responsive to the minimum number of samples of the textual snippets from the bounding boxes has been reached, stop randomly selecting textual snippets from the bounding boxes and determining, based on the testing, how many votes are for each of a plurality of directions.

14. The system of claim 8 , wherein the neural network is configured for outputting a probability value indicating that a zero degree of rotation or zero number of turns is needed to correct the orientation of the input textual snippet, a probability value indicating that a 90 degree of rotation or a single right or left turn is needed to correct the orientation of the input textual snippet, a probability value indicating that a 180 degree of rotation is or two right or left turns are needed to correct the orientation of the input textual snippet, and a probability value indicating that a 270 degree of rotation is or three right or left turns are needed to correct the orientation of the input textual snippet.

15. A computer program product for document auto-rotation, the computer program product comprising a non-transitory computer-readable medium storing instructions translatable by a processor for:

determining a plurality of textual snippets in a document image;

preparing the plurality of textual snippets for input to a neural network;

processing the plurality of textual snippets using the neural network, wherein the neural network is trained to process an input textual snippet, recognize an orientation of the input textual snippet, and provide an output indicating a degree of rotation needed to correct the orientation of the input textual snippet;

determining, based on outputs from the neural network, a degree of rotation needed to rotate the document image; and

rotating the document image by the degree of rotation determined based on the outputs from the neural network.

16. The computer program product of claim 15 , wherein the instructions are further translatable by the processor for:

segmenting the document image into bounding boxes, the segmenting including generating a bounding box defining a connected segment of black pixels in the document image, wherein the bounding box defines a set of coordinates in the document image that contains the connected segment of black pixels.

17. The computer program product of claim 16 , wherein the instructions are further translatable by the processor for:

randomly selecting textual snippets from the bounding boxes; and

testing each of the textual snippets randomly selected from the bounding boxes using the neural network.

18. The computer program product of claim 17 , wherein the instructions are further translatable by the processor for:

conducting a statistical analysis on results from the neural network, wherein the statistical analysis yields a confidence that a most-common output from the neural network is incorrect for the document image; and

checking the confidence during the testing until the confidence reaches or exceeds a proscribed limit.

19. The computer program product of claim 17 , wherein the instructions are further translatable by the processor for:

determining whether a minimum number of samples of the textual snippets from the bounding boxes has been reached; and

responsive to the minimum number of samples of the textual snippets from the bounding boxes has been reached, stop randomly selecting textual snippets from the bounding boxes and determining, based on the testing, how many votes are for each of a plurality of directions.

20. The computer program product of claim 15 , wherein the neural network is configured for outputting a probability value indicating that a zero degree of rotation or zero number of turns is needed to correct the orientation of the input textual snippet, a probability value indicating that a 90 degree of rotation or a single right or left turn is needed to correct the orientation of the input textual snippet, a probability value indicating that a 180 degree of rotation is or two right or left turns are needed to correct the orientation of the input textual snippet, and a probability value indicating that a 270 degree of rotation is or three right or left turns are needed to correct the orientation of the input textual snippet.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2024
From: OPEN TEXT CORP.
To: CROWDSTRIKE, INC.
Reel/Frame 068121/0609 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2024
From: OPEN TEXT SA ULC
To: OPEN TEXT CORP.
Reel/Frame 067400/0102 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2022
From: LUND, CHRISTOPHER DALE
To: OPEN TEXT SA ULC
Reel/Frame 061657/0572 →
Continuity (4)
Continuation 17347527 · Jun 14, 2021
Continuation 16819741 · Mar 16, 2020
Continuation 16272863 · Feb 11, 2019
Related Publication 20230049296A1 · Feb 16, 2023