IP Library Granted Patent US 10,540,576
Granted Patent B1
US 10,540,576 · App. 16/240,588 · Granted Jan 21, 2020

Panoramic camera systems

Inventors: Michael John Toksvig (Palo Alto, CA); Forrest Samuel Briggs (Palo Alto, CA); Brian Keith Cabral (San Jose, CA)
Assignee: Facebook, Inc.
G06K9/6269G06K9/00201G06K9/209G06K9/4628G06K9/527G06K9/6201G06K9/6202G06K9/627G06K9/6255G06K9/6256G06K9/66G06T5/002G06T5/20G06T7/55G06T7/70G06T15/06G06T19/20H04N5/2226H04N5/23216H04N5/23229H04N5/23238H04N5/247H04N7/181H04N17/002G06T7/77G06T2207/10016G06T2207/10028G06T2207/20081G06T2207/30244G08B13/19641H04N5/2252
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,540,576
App. No.
16/240,588
Granted
Jan 21, 2020
Kind
B1
Abstract

A camera system captures images from a set of cameras to generate binocular panoramic views of an environment. The cameras are oriented in the camera system to maximize the minimum number of cameras viewing a set of randomized test points. To calibrate the system, matching features between images are identified and used to estimate three-dimensional points external to the camera system. Calibration parameters are modified to improve the three-dimensional point estimates. When images are captured, a pipeline generates a depth map for each camera using reprojected views from adjacent cameras and an image pyramid that includes individual pixel depth refinement and filtering between levels of the pyramid. The images may be used generate views of the environment from different perspectives (relative to the image capture location) by generating depth surfaces corresponding to the depth maps and blending the depth surfaces.

Claims (80)

1. A method comprising:

receiving a calibration of an image capture system comprising a plurality of cameras, the calibration describing an expected position and orientation of the plurality of cameras;

receiving a set of calibration images comprising an image captured from each of the plurality of cameras of the image capture system;

identifying a set of feature matches, each feature match associating corresponding locations in a first image and a second image of the set of calibration images;

determining a set of traces, each trace comprising one or more feature matches of the set of feature matches and associated with two or more images of the set of calibration images;

calculating, for each trace of the set of traces, one or more reprojection errors; and

refining the calibration of the image capture system based on the set of traces and the one or more reprojection errors of each trace.

2. The method of claim 1 , further comprising:

determining, for each trace of the set of traces, a 3D location in space associated with the trace based on the two or more images associated with that trace and the calibration of the image capture system; and

refining the set of traces based on the 3D location associated with each trace.

3. The method of claim 2 , wherein calculating, for each trace of the set of traces, one or more reprojection errors comprises:

calculating, for each trace of the set of traces, one or more reprojection errors based on the 3D location associated with the trace, the calibration of the image capture system, and the one or more feature matches associated with the trace.

4. The method of claim 2 , wherein calculating, for each trace of the set of traces, one or more reprojection errors comprises:

calculating, based on the estimated 3D location of each trace, a reprojection error for each feature match of the second refined set of feature matches;

and wherein refining the set of traces based on the 3D location associated with the trace comprises:

discarding, from the second refined set of feature matches, one or more feature matches, based on the calculated reprojection error; and

determining, a refined set of traces based on the updated second refined set of feature matches.

5. The method of claim 1 , further comprising refining the set of feature matches by:

determining, for each feature match of the set of feature matches, a 3D location in space associated with that feature match; and

discarding, from the set of feature matches, one or more feature matches based on the 3D location associated with each feature match.

6. The method of claim 5 , wherein discarding, from the refined set of feature matches, one or more feature matches comprises:

calculating, based on the estimated 3D location of each feature match, a reprojection error for each feature match of the refined set of feature matches;

determining, based on the determined reprojection errors, a threshold reprojection error for each feature match of the refined set of feature matches; and

discarding, from the set of feature matches, one or more feature matches based on the reprojection error of the one or more feature matches being greater than the threshold reprojection error.

7. The method of claim 6 , wherein determining a threshold reprojection error for each feature match of the refined set of feature matches comprises:

calculating the median reprojection error for the set of feature matches between a first and second image of the set of calibration images; and

assigning a threshold reprojection error to each feature match for each feature match of set of feature matches based on the median reprojection error.

8. A system comprising:

an image capture system comprising a plurality of cameras configured to capture images;

a camera calibration system, configured to:

receive, a calibration of the image capture system describing an expected position and orientation of each camera of the image capture system;

receive, from the image capture system, a set of calibration images comprising an image captured from each camera of the image capture system;

identify a set of feature matches, each feature match associating corresponding locations in a first image and a second image of the set of calibration images;

determine a set of traces, each trace comprising one or more feature matches of the set of feature matches and associated with two or more images of the set of calibration images;

calculate, for each trace of the set of traces, one or more reprojection errors; and

refine the calibration of the image capture system based on the set of traces and the one or more reprojection errors of each trace.

9. The system of claim 8 , wherein the camera calibration system is further configured to:

determine, for each trace of the set of traces, a 3D location in space associated with the trace based on the two or more images associated with that trace and the calibration of the image capture system; and

refine the set of traces based on the 3D location associated with each trace.

10. The system of claim 9 , wherein calculating, for each trace of the set of traces, one or more reprojection errors comprises:

calculating, for each trace of the set of traces, one or more reprojection errors based on the 3D location associated with the trace, the calibration of the image capture system, and the one or more feature matches associated with the trace.

11. The system of claim 9 , wherein calculating, for each trace of the set of traces, one or more reprojection errors comprises:

calculating, based on the estimated 3D location of each trace, a reprojection error for each feature match of the second refined set of feature matches;

and wherein refining the set of traces based on the 3D location associated with the trace comprises:

discarding, from the second refined set of feature matches, one or more feature matches, based on the calculated reprojection error; and

determining, a refined set of traces based on the updated second refined set of feature matches.

12. The system of claim 8 , wherein the camera calibration system is further configured to refine the set of feature matches by:

determining, for each feature match of the set of feature matches, a 3D location in space associated with that feature match; and

discarding, from the set of feature matches, one or more feature matches based on the 3D location associated with each feature match.

13. The system of claim 12 , wherein discarding, from the refined set of feature matches, one or more feature matches comprises:

calculating, based on the estimated 3D location of each feature match, a reprojection error for each feature match of the refined set of feature matches;

determining, based on the determined reprojection errors, a threshold reprojection error for each feature match of the refined set of feature matches; and

discarding, from the set of feature matches, one or more feature matches based on the reprojection error of the one or more feature matches being greater than the threshold reprojection error.

14. The system of claim 13 , wherein determining a threshold reprojection error for each feature match of the refined set of feature matches comprises:

calculating the median reprojection error for the set of feature matches between a first and second image of the set of calibration images; and

assigning a threshold reprojection error to each feature match for each feature match of set of feature matches based on the median reprojection error.

15. A non-transitory computer readable storage medium comprising instructions which, when executed by a processor, cause the processor to perform the steps of:

receiving a calibration of an image capture system comprising a plurality of cameras, the calibration describing an expected position and orientation of the plurality of cameras;

receiving a set of calibration images comprising an image captured from each of the plurality of cameras of the image capture system;

identifying a set of feature matches, each feature match associating corresponding locations in a first image and a second image of the set of calibration images;

determining a set of traces, each trace comprising one or more feature matches of the set of feature matches and associated with two or more images of the set of calibration images;

calculating, for each trace of the set of traces, one or more reprojection errors; and

refining the calibration of the image capture system based on the set of traces and the one or more reprojection errors of each trace.

16. The non-transitory computer readable storage medium of claim 15 , wherein the steps further comprise:

determining, for each trace of the set of traces, a 3D location in space associated with the trace based on the two or more images associated with that trace and the calibration of the image capture system; and

refining the set of traces based on the 3D location associated with each trace.

17. The non-transitory computer readable storage medium of claim 16 , wherein calculating, for each trace of the set of traces, one or more reprojection errors comprises:

calculating, for each trace of the set of traces, one or more reprojection errors based on the 3D location associated with the trace, the calibration of the image capture system, and the one or more feature matches associated with the trace.

18. The non-transitory computer readable storage medium of claim 16 , wherein calculating, for each trace of the set of traces, one or more reprojection errors comprises:

calculating, based on the estimated 3D location of each trace, a reprojection error for each feature match of the second refined set of feature matches;

and wherein refining the set of traces based on the 3D location associated with the trace comprises:

discarding, from the second refined set of feature matches, one or more feature matches, based on the calculated reprojection error; and

determining, a refined set of traces based on the updated second refined set of feature matches.

19. The non-transitory computer readable storage medium of claim 15 , wherein the steps further comprise refining the set of feature matches by:

determining, for each feature match of the set of feature matches, a 3D location in space associated with that feature match; and

discarding, from the set of feature matches, one or more feature matches based on the 3D location associated with each feature match.

20. The non-transitory computer readable storage medium of claim 19 , wherein discarding, from the refined set of feature matches, one or more feature matches comprises:

calculating, based on the estimated 3D location of each feature match, a reprojection error for each feature match of the refined set of feature matches;

determining, based on the determined reprojection errors, a threshold reprojection error for each feature match of the refined set of feature matches; and

discarding, from the set of feature matches, one or more feature matches based on the reprojection error of the one or more feature matches being greater than the threshold reprojection error.

Assignments (1)
CHANGE OF NAME Recorded Nov 18, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058897/0824 →
Continuity (2)
Continuation 15490887 · Apr 18, 2017
Provisional Application 62485381 · Apr 13, 2017