IP Library Granted Patent US 10,497,099
Granted Patent B2
US 10,497,099 · App. 16/150,614 · Granted Dec 3, 2019

Automatic orientation adjustment of spherical panorama digital images

Inventors: Byungmoon Kim (Sunnyvale, CA); Joon-Young Lee (San Jose, CA); Jinwoong Jung (Pohang, KR); Gavin Miller (Los Altos, CA)
Assignee: Adobe Inc.
G06T5/002G06T7/11G06T7/38H04N5/23238
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,497,099
App. No.
16/150,614
Granted
Dec 3, 2019
Kind
B2
Abstract

The present disclosure includes methods and systems for correcting distortions in spherical panorama digital images. In particular, one or more embodiments of the disclosed systems and methods correct for tilt and/or roll in a digital camera utilized to capture a spherical panorama digital images by determining a corrected orientation and generating an enhanced spherical panorama digital image based on the corrected orientation. In particular, in one or more embodiments, the disclosed systems and methods identify line segments in a spherical panorama digital image, map the line segments to a three-dimensional space, generate great circles based on the identified line segments, and determine a corrected orientation based on the generated great circles.

Claims (69)

1. A computer-implemented method of correcting skewed spherical panorama digital images to align scene orientation to image axes, comprising:

detecting a plurality of vertical line segments and a plurality of horizontal line segments portrayed in a spherical panorama digital image having a plurality of pixels, wherein the spherical panorama digital image has an original orientation;

identifying a vanishing point based on the plurality of horizontal line segments;

determining a corrected orientation of the spherical panorama digital image based on the vanishing point, the plurality of vertical line segments, and the original orientation; and

generating an enhanced spherical panorama digital image by modifying the plurality of pixels of the spherical panorama digital imaged based on the corrected orientation.

2. The method of claim 1 , further comprising mapping the plurality of horizontal line segments to horizontal great circles; and

wherein identifying the vanishing point comprises identifying the vanishing point based on the horizontal great circles.

3. The method of claim 2 , wherein identifying the vanishing point based on the horizontal great circles further comprises identifying intersections of the horizontal great circles.

4. The method of claim 2 , further comprising:

detecting a first point and a second point of each line segment in a plurality of line segments of the spherical panorama digital image utilizing a line segment detection algorithm;

determining a horizontal angle of each line segment in the plurality of line segments based on the first point and the second point; and

filtering the plurality of line segments to identify the plurality of horizontal line segments by applying a minimum horizontal angle threshold.

5. The method of claim 2 , further comprising:

mapping the plurality of vertical line segments to vertical great circles; and

generating vectors corresponding to the vertical great circles; and

wherein determining the corrected orientation of the spherical panorama digital image comprises determining a corrected vertical pole of the spherical panorama digital image based on the vanishing point, the generated vectors, and the original orientation.

6. The method of claim 5 , further comprising selecting the horizontal great circles and the vertical great circles by applying a spherical Hough transform.

7. The method of claim 1 , wherein modifying the plurality of pixels of the spherical panorama digital image comprises:

projecting a pixel of the plurality of pixels from a first position on the spherical panorama digital image onto first coordinates of a sphere;

determining a rotational matrix based on the original orientation and the corrected orientation;

rotating the pixel from the first coordinates on the sphere to new coordinates on the sphere based on the rotational matrix; and

mapping the pixel from the new coordinates on the sphere to a new position on the spherical panorama digital image.

8. A non-transitory computer readable medium storing instructions thereon that, when executed by at least one processor, cause a computer system to:

detect a plurality of vertical line segments and a plurality of horizontal line segments portrayed in a spherical panorama digital image having a plurality of pixels, wherein the spherical panorama digital image has an original orientation;

identify a vanishing point based on the plurality of horizontal line segments;

determine a corrected orientation of the spherical panorama digital image based on the vanishing point, the plurality of vertical line segments, and the original orientation; and

generate an enhanced spherical panorama digital image by modifying the plurality of pixels of the spherical panorama digital imaged based on the corrected orientation.

9. The non-transitory computer readable medium of claim 8 , further comprising instructions that, when executed by the at least one processor, cause the computer system to:

map the plurality of horizontal line segments to horizontal great circles; and

identify the vanishing point based on the horizontal great circles.

10. The non-transitory computer readable medium of claim 9 , further comprising instructions that, when executed by the at least one processor, cause the computer system to identify the vanishing point based on the horizontal great circles by identifying intersections of the horizontal great circles.

11. The non-transitory computer readable medium of claim 9 , further comprising instructions that, when executed by the at least one processor, cause the computer system to:

detect a first point and a second point of each line segment in a plurality of line segments of the spherical panorama digital image utilizing a line segment detection algorithm;

determine a horizontal angle of each line segment in the plurality of line segments based on the first point and the second point; and

filter the plurality of line segments to identify the plurality of horizontal line segments by applying a minimum horizontal angle threshold.

12. The non-transitory computer readable medium of claim 9 , further comprising instructions that, when executed by the at least one processor, cause the computer system to:

map the plurality of vertical line segments to vertical great circles; and

generate vectors corresponding to the vertical great circles; and

determine the corrected orientation of the spherical panorama digital image by determining a corrected vertical pole of the spherical panorama digital image based on the vanishing point, the generated vectors, and the original orientation.

13. The non-transitory computer readable medium of claim 8 , further comprising instructions that, when executed by the at least one processor, cause the computer system to modify the plurality of pixels of the spherical panorama digital image by:

projecting a pixel of the plurality of pixels from a first position on the spherical panorama digital image onto first coordinates of a sphere;

determining a rotational matrix based on the original orientation and the corrected orientation;

rotating the pixel from the first coordinates on the sphere to new coordinates on the sphere based on the rotational matrix; and

mapping the pixel from the new coordinates on the sphere to a new position on the spherical panorama digital image.

14. The non-transitory computer readable medium of claim 8 , further comprising instructions that, when executed by the at least one processor, cause the computer system to provide the enhanced spherical panorama digital image for display via a virtual reality device.

15. A system comprising:

at least one processor; and

at least one non-transitory computer readable storage medium storing instructions that, when executed by the at least one processor, cause the system to:

detect a plurality of vertical line segments and a plurality of horizontal line segments portrayed in a spherical panorama digital image having a plurality of pixels, wherein the spherical panorama digital image has an original orientation;

identify a vanishing point based on the plurality of horizontal line segments;

determine a corrected orientation of the spherical panorama digital image based on the vanishing point, the plurality of vertical line segments, and the original orientation; and

generate an enhanced spherical panorama digital image by modifying the plurality of pixels of the spherical panorama digital imaged based on the corrected orientation.

16. The system of claim 15 , further comprising instructions that, when executed by the at least one processor, cause the system to:

map the plurality of horizontal line segments to horizontal great circles; and

identify the vanishing point based on the horizontal great circles.

17. The system of claim 16 , further comprising instructions that, when executed by the at least one processor, cause the system to identify the vanishing point based on the horizontal great circles by identifying intersections of the horizontal great circles.

18. The system of claim 17 , further comprising:

detecting a first point and a second point of each line segment in a plurality of line segments of the spherical panorama digital image utilizing a line segment detection algorithm;

determining a horizontal angle of each line segment in the plurality of line segments based on the first point and the second point; and

filtering the plurality of line segments to identify the plurality of horizontal line segments by applying a minimum horizontal angle threshold.

19. The system of claim 17 , further comprising instructions that, when executed by the at least one processor, cause the system to:

map the plurality of vertical line segments to vertical great circles; and

generate vectors corresponding to the vertical great circles; and

determine the corrected orientation of the spherical panorama digital image by determining a corrected vertical pole of the spherical panorama digital image based on the vanishing point, the generated vectors, and the original orientation.

20. The system of claim 15 , further comprising instructions that, when executed by the at least one processor, cause the system to modify the plurality of pixels of the spherical panorama digital image by:

projecting a pixel of the plurality of pixels from a first position on the spherical panorama digital image onto first coordinates of a sphere;

determining a rotational matrix based on the original orientation and the corrected orientation;

rotating the pixel from the first coordinates on the sphere to new coordinates on the sphere based on the rotational matrix; and

mapping the pixel from the new coordinates on the sphere to a new position on the spherical panorama digital image.

Assignments (2)
CHANGE OF NAME Recorded Nov 30, 2018
From: ADOBE SYSTEMS INCORPORATED
To: ADOBE INC.
Reel/Frame 047688/0635 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2018
From: KIM, BYUNGMOON; LEE, JOON-YOUNG; JUNG, JINWOONG; MILLER, GAVIN
To: ADOBE SYSTEMS INCORPORATED
Reel/Frame 047053/0313 →