IP Library › Granted Patent US 9,092,853
Granted Patent B2
US 9,092,853 · App. 14/513,046 · Granted Jul 28, 2015

Method for dynamically calibrating rotation offset in a camera system

Inventors: Todd S. Sachs (Palo Alto, CA); Kevin L. Hunter (Sunnyvale, CA); Marco Zuliani (Los Gatos, CA); Claus Molgaard (Los Gatos, CA)
Assignee: Apple Inc.
G06T7/0018H04N5/23216H04N5/23293H04N17/002G06T2207/10004
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,092,853
App. No.
14/513,046
Granted
Jul 28, 2015
Kind
B2
Abstract

A method for dynamically calibrating rotational offset in a device includes obtaining an image captured by a camera of the device. Orientation information of the device at the time of image capture may be associated with the image. Pixel data of the image may be analyzed to determine an image orientation angle for the image. A device orientation angle may be determined from the orientation information. A rotational offset, based on the image orientation angle and the device orientation angle, may be determined. The rotational offset is relative to the camera or orientation sensor. A rotational bias may be determined from statistical analysis of numerous rotational offsets from numerous respective images. In some embodiments, various thresholds and predetermined ranges may be used to exclude some rotational offsets from the statistical analysis or to discontinue processing for that image.

Claims (57)

1. A device comprising:

a camera configured to capture images;

one or more processors; and

memory storing program instructions executable by the one or more processors to:

for a plurality of images,

obtain an image captured by the camera; and

analyze pixel data of the image to determine an image orientation for the image; and

based at least in part on a statistical analysis of at least a portion of the plurality of determined image orientations, determine an orientation bias, wherein the orientation bias is relative to the camera.

2. The device of claim 1 , wherein to analyze pixel data of the image to determine the image orientation for the image, the program instructions are further executable to:

determine a horizon line for the image from application of a frequency domain technique to the captured image; and

wherein at least part of the image orientation is calculated based at least in part on an angle between the horizon line for the image and an x-axis of the image.

3. The device of claim 1 , wherein the program instructions are further executable by the one or more processors to:

use the orientation bias for compensation in a horizon adjustment associated with a cropping or panorama function of the device.

4. The device of claim 3 , wherein the orientation bias indicates a rotational angle of the camera with respect to the housing of the device.

5. The device of claim 1 , wherein to statistically analyze at least a portion of the plurality of the determined image orientations, the program instructions are further executable by the one or more processors to:

determine whether one of the plurality of the determined image orientations exceeds a threshold; and

discard a particular one of the plurality of the determined image orientations from the statistical analysis for a particular one of the plurality of the determined image orientations that exceeds a threshold.

6. The device of claim 1 , wherein the program instructions are further executable by the one or more processors to:

distinguish between images that appear to have been intentionally rotated and those that have not been intentionally rotated; and

exclude the respective image orientation from the statistical analysis for images that appear to have been intentionally rotated.

7. The device of claim 1 , wherein the program instructions are further executable by the one or more processors to perform said analysis for only a limited amount of time, or as a user-selected calibration mode.

8. A method, comprising:

performing by one or more computing devices having one or more processors:

for a plurality of images:

obtaining an image captured by a camera; and

analyzing pixel data of the image to determine an image orientation for the image; and

based at least in part on a statistical analysis of at least a portion of the plurality of determined image orientations, determining an orientation bias, wherein the orientation bias is relative to the camera.

9. The method of claim 8 , further comprising;

determining a horizon line for the image from application of a frequency domain technique to the captured image; and

wherein the image orientation is calculated, based at least in part on an orientation between the horizon line for the image and an x-axis of the image.

10. The method of claim 8 , further comprising:

using the orientation bias for compensation in a horizon adjustment associated with a cropping or sweep panorama function of the device.

11. The method of claim 10 , wherein the orientation bias indicates a rotational angle of the camera with respect to a housing of the device.

12. The method of claim 8 , further comprising:

determining whether one of the plurality of image orientations exceeds a threshold; and

discarding a particular one of the plurality of image orientations from the statistical analysis for a particular one of the plurality of image orientations that exceeds a threshold.

13. The method of claim 8 , further comprising:

distinguishing between images that appear to have been intentionally rotated and those that have not been intentionally rotated; and

excluding the respective image orientation from the statistical analysis for images that appear to have been intentionally rotated.

14. The method of claim 8 , further comprising performing said analysis for only a limited amount of time, or as a user-selected calibration mode.

15. A non-transitory computer readable storage medium storing program instructions executable to perform:

for a plurality of images:

obtaining an image captured by the camera; and

analyzing pixel data of the image to determine an image orientation angle for the image; and

based at least in part on a statistical analysis of at least a portion of the plurality of determined image orientations, determining an orientation bias, wherein the orientation bias-is relative to the camera.

16. The non-transitory computer readable storage medium of claim 15 , further comprising;

determining a horizon line for the image from application of a frequency domain technique to the captured image; and

wherein at least part of the image orientation is calculated based at least in part on an angle between the horizon line for the image and an x-axis of the image.

17. The non-transitory computer readable storage medium of claim 15 , further comprising:

using the orientation bias for compensation in a horizon adjustment associated with a cropping or sweep panorama function of a device housing the camera.

18. The non-transitory computer readable storage medium of claim 15 , wherein the orientation bias indicates a rotational angle of the camera with respect to a housing for the camera.

19. The non-transitory computer readable storage medium of claim 18 , further comprising:

determining whether one of the plurality of the determined image orientations exceeds a threshold; and

discarding a particular one of the plurality of the determined image orientations from the statistical analysis for a particular one of the plurality of the determined image orientations that exceeds a threshold.

20. The non-transitory computer readable storage medium of claim 15 , further comprising:

distinguishing between images that appear to have been intentionally rotated and those that have not been intentionally rotated; and

excluding the respective image orientation from the statistical analysis for images that appear to have been intentionally rotated.

Continuity (2)
Continuation 13955467 · Jul 31, 2013
Related Publication 20150035991A1 · Feb 5, 2015