IP Library Granted Patent US 11,393,072
Granted Patent B2
US 11,393,072 · App. 16/913,198 · Granted Jul 19, 2022

Methods and systems for automatically correcting image rotation

Inventor: Ionut Mironica (Bucharest, RO)
Assignee: Adobe Inc.
G06T3/60G06N3/0481G06N3/084G06N20/00G06T3/40G06T5/009G06T5/50G06T11/60G06T2207/20081G06T2207/20084
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,393,072
App. No.
16/913,198
Filed
Jun 26, 2020
Granted
Jul 19, 2022
Kind
B2
Art Unit
2646
USPC
382/100
Abstract

Systems and methods are disclosed for automatically correcting a rotation of an image. One method comprises receiving an input image to be processed for rotation correction, and providing the input image to a machine learning model configured to predict a rotation angle and an orientation of an image. The machine learning model may comprise a convolutional neural network utilizing one or more rectangle-shaped filters to extract features from the input image. A rotation angle may be determined using a first branch of fully connected layer configured for a regression task of the machine learning model, and an orientation of the image may be determined using a second branch of fully connected layer configured for a classification task of the machine learning model. The input image may then be rotated based on the determined rotation angle and orientation.

Claims (58)

1. A computer-implemented method for automatically correcting a rotation of an image, the method comprising:

receiving an input image to be processed for rotation correction;

providing the input image to a machine learning model configured to predict a rotation angle and an orientation of an image, the machine learning model comprising a convolutional neural network utilizing one or more rectangle-shaped filters;

determining a rotation angle of the input image using a first branch of fully connected layer configured for a regression task of the machine learning model;

determining an orientation of the input image using a second branch of fully connected layer configured for a classification task of the machine learning model; and

rotating the input image based on the determined rotation angle and orientation.

2. The computer-implemented method of claim 1 , further comprising:

receiving a plurality of sample images, the plurality of sample images comprising ground truth data;

augmenting by the plurality of sample images by rotating each of the plurality of sample images by a randomly-selected angle in a randomly-selected orientation; and

training the machine learning model by providing each of the plurality of augmented sample images to the machine learning model,

wherein the ground truth data comprises images that are correctly rotated.

3. The computer-implemented method of claim 1 , further comprising, prior to providing the input image to the machine learning model:

adjusting a brightness level of the input image to a predefined brightness level; and

adjusting a gamma level of the input image to a predefined gamma level.

4. The computer-implemented method of claim 1 , wherein each of the one or more rectangle-shaped filters has a dimension of M by N.

5. The computer-implemented method of claim 1 , wherein the machine learning model comprises:

a first loss function configured to penalize a prediction error associated with a rotation angle predicted for an image; and

a second loss function configured to penalize a prediction error associated with an orientation predicted for an image.

6. The computer-implemented method of claim 5 , wherein the first loss function is a regression loss function.

7. The computer-implemented method of claim 5 , wherein the first loss function comprises one or more of:

a mean squared error based on a difference between a predicted rotation angle and an actual rotation angle;

an orientation loss based on a difference between a predicted orientation and an actual orientation; and

a regularization term.

8. The computer-implemented method of claim 5 , wherein the second loss function is a classification loss function.

9. The computer-implemented method of claim 1 , wherein the input image to be processed for rotation correction is extracted from a video frame or a still image.

10. A computer-implemented method for automatically correcting a rotation of an image, the method comprising:

receiving an input image to be processed for rotation correction;

preparing the input image for feature extraction;

extracting a plurality of features from the input image using a machine learning model comprising one or more straighten bottleneck residual blocks, each of the one or more straighten bottleneck residual blocks comprising a rectangle-shaped filter;

determining a rotation angle of the input image based on the plurality of extracted features using a first branch of fully connected layer of the machine learning model;

determining an orientation of the input image based on the plurality of extracted features using a second branch of fully connected layer of the machine learning model; and

rotating the input image based on the determined rotation angle and orientation.

11. The computer-implemented method of claim 10 , wherein preparing the input image for feature extraction comprises one or more of:

resizing the input image to a predefined dimension;

for each of red, green, and blue channels of the input image, determining a mean pixel value of each of a plurality of pixels in the input image;

adjusting a brightness level of the input image to a predefined brightness level; and

adjusting a gamma level of the input image to a predefined gamma level.

12. The computer-implemented method of claim 10 , wherein the machine learning model comprises a convolutional neural network utilizing the one or more straighten bottleneck residual blocks.

13. The computer-implemented method of claim 10 , wherein each of the one or more straighten bottleneck residual blocks comprises a plurality of filters including the rectangle-shaped filter.

14. The computer-implemented method of claim 10 , wherein each of the one or more straighten bottleneck residual blocks comprises:

a first layer including a 1×1 filter;

a second layer subsequent to the first layer, the second layer including the rectangle-shaped filter;

a third layer subsequent to the second layer, the third layer including a 1×1 filter; and

a skip connection.

15. The computer-implemented method of claim 10 , wherein the rectangle-shaped filter has a dimension of M by N.

16. The computer-implemented method of claim 10 , wherein the first branch of fully connected layer uses linear activation and the second branch of fully connected layer uses non-linear activation.

17. The computer-implemented method of claim 16 , wherein the non-linear activation uses a softmax activation function.

18. The computer-implemented method of claim 10 , wherein the orientation indicates one of: a clockwise direction, a counterclockwise direction, or none.

19. The computer-implemented method of claim 10 , wherein rotating the input image based on the determined rotation angle and orientation comprises:

rotating the input image by the determined rotation angle in a direction opposite to the determined orientation.

20. A system for automatically correcting a rotation of an image, the system comprising:

one or more processors; and

one or more computer readable media storing instructions which, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

receiving an input image to be processed for rotation correction;

providing the input image to a machine learning model configured to predict a rotation angle and an orientation of an image, the machine learning model comprising a convolutional neural network utilizing one or more rectangle-shaped filters;

determining a rotation angle of the input image using a first branch of fully connected layer configured for a regression task of the machine learning model;

determining an orientation of the input image using a second branch of fully connected layer configured for a classification task of the machine learning model; and

rotating the input image based on the determined rotation angle and orientation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2020
From: MIRONICA, IONUT
To: ADOBE INC.
Reel/Frame 053055/0050 →
Continuity (1)
Related Publication 20210407045A1 · Dec 30, 2021