IP Library Granted Patent US 12,488,544
Granted Patent B2
US 12,488,544 · App. 18/266,937 · Granted Dec 2, 2025

Calibration for virtual or augmented reality systems

Inventors: Ankur Gupta (Union City, CA); Mohamed Souiai (San Francisco, CA)
Assignee: Magic Leap, Inc.
G06T19/006G06F3/012G06T7/70G06T7/80
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 12,488,544
App. No.
18/266,937
Granted
Dec 2, 2025
Kind
B2
Abstract

Techniques for addressing deformations in a virtual or augmented headset described. In some implementations, cameras in a headset can obtain image data at different times as the headset moves through a series of poses of the headset. One or more miscalibration conditions for the headset that have occurred as the headset moved through the series of poses can be detected. The series of poses can be divided into groups of poses based on the one or more miscalibration conditions, and bundle adjustment for the groups of poses can be performed using a separate set of camera calibration data. The bundle adjustment for the poses in each group is performed using a same set of calibration data for the group. The camera calibration data for each group is estimated jointly with bundle adjustment estimation for the poses in the group.

Claims (80)

1 . A method comprising:

obtaining image data from a plurality of cameras of a headset, including obtaining image data at different times as the headset moves through a series of poses of the headset;

detecting that one or more miscalibration conditions for the headset have occurred as the headset moved through the series of poses;

dividing the series of poses into groups of poses based on the one or more miscalibration conditions;

performing bundle adjustment for the groups of poses using a separate set of camera calibration data for each group of poses of the groups of poses, wherein the bundle adjustment for a set of poses in each group of poses is performed using a same set of calibration data for each group of poses, and wherein the separate set of camera calibration data for each group of poses is estimated jointly with bundle adjustment estimation for the set of poses in each group of poses, and comprising:

optimizing the separate set of camera calibration data for each group of poses to align the headset to a set of mapping reference points in an augmented reality image, comprising:

applying a first constraint that limits a difference between rotation parameters of the separate set of camera calibration data for two groups of poses of the groups of poses to be less than a rotation threshold; and

applying a second constraint that limits a difference between translation parameters of the separate set of camera calibration data for two groups of poses of the groups of poses to be less than a translation threshold; and

changing one or more of an alignment and an orientation of one or more of the plurality of cameras based on the bundle adjustment to calibrate the headset.

2 . The method of claim 1 , wherein obtaining the image data at different times as the headset moves through the series of poses of the headset comprises:

determining position and orientation values for each camera of the headset relative to a map reference point for each pose of the headset.

3 . The method of claim 1 , wherein obtaining the image data at different times as the headset moves through the series of poses of the headset comprises:

determining a pose of the headset for each selected frame of image data; and

selecting a subset of poses as the series of poses.

4 . The method of claim 1 , wherein detecting that the one or more miscalibration conditions for the headset have occurred comprises one or more of:

determining that the headset has been placed on or taken off of a user's head;

determining that a location of the headset has changed;

detecting a fluctuation in an ambient temperature surrounding the headset;

detecting a fluctuation in a temperature of the headset; and

detecting a mechanical displacement of a portion of the headset.

5 . The method of claim 1 , wherein dividing the series of poses into the groups of poses comprises:

determining a first time that a first miscalibration condition occurred;

identifying all poses of the headset prior to the first time when the first miscalibration condition occurred; and

grouping the poses of the headset prior to the first time into a first pose group.

6 . The method of claim 5 , wherein dividing the series of poses into the groups of poses comprises:

determining a second time that a second miscalibration condition occurred;

identifying all poses of the headset after the first time and prior to the second time when the second miscalibration condition occurred; and

grouping the poses of the headset between the first time and the second time into a second pose group.

7 . The method of claim 6 , wherein a number of poses in the second pose group is different from a number of poses in the first pose group.

8 . The method of claim 1 , wherein performing the bundle adjustment for the groups of poses using the separate set of camera calibration data for each group of poses comprises:

determining a separate extrinsic parameter for each group of poses, the separate extrinsic parameter comprising at least two matrices of rotation and translation parameter values associated with at least two cameras of the headset.

9 . The method of claim 1 , wherein:

the rotation threshold is 2 arc minutes; and

the translation threshold is 3 mm.

10 . The method of claim 1 , comprising:

displaying the augmented reality image at a display of the headset in response to calibration of the headset.

11 . A virtual or augmented reality system, comprising:

a headset comprising a display device configured to display an augmented reality image and cameras configured to obtain image data for rendering the augmented reality image; and

a processor coupled to the headset, the processor configured to:

obtain the image data from the cameras, including image data obtained at different times as the headset moves through a series of poses of the headset;

detect that one or more miscalibration conditions for the headset have occurred as the headset moved through the series of poses;

divide the series of poses into groups of poses based on the one or more miscalibration conditions;

perform bundle adjustment for the groups of poses using a separate set of camera calibration data for each group of poses of the groups of poses, wherein the bundle adjustment for a set of poses in each group of poses is performed using a same set of calibration data for each group of poses, and wherein the separate set of camera calibration data for each group of poses is estimated jointly with bundle adjustment estimation for the set of poses in each group of poses, and comprising:

optimize the separate set of camera calibration data for each group of poses to align the headset to a set of mapping reference points in the augmented reality image, comprising:

apply a first constraint that limits a difference between rotation parameters of the separate set of camera calibration data for two groups of poses of the groups of poses to be less than a rotation threshold; and

apply a second constraint that limits a difference between translation parameters of the separate set of camera calibration data for two groups of poses of the groups of poses to be less than a translation threshold; and

change one or more of an alignment and an orientation of one or more of the cameras based on the bundle adjustment to calibrate the headset.

12 . The virtual or augmented reality system of claim 11 , wherein to obtain the image data at different times as the headset moves through the series of poses of the headset, the processor is configured to:

determine a pose of the headset for each selected frame of image data; and

select a subset of poses as the series of poses.

13 . The virtual or augmented reality system of claim 11 , wherein to divide the series of poses into the groups of poses, the processor is configured to:

determine a first time that a first miscalibration condition occurred;

identify all poses of the headset prior to the first time when the first miscalibration condition occurred;

group the poses of the headset prior to the first time into a first pose group;

determine a second time that a second miscalibration condition occurred;

identify all poses of the headset after the first time and prior to the second time when the second miscalibration condition occurred; and

group the poses of the headset between the first time and the second time into a second pose group.

14 . The virtual or augmented reality system of claim 11 , wherein to perform the bundle adjustment for the groups of poses using the separate set of camera calibration data for each group of poses, the processor is configured to:

determine a separate extrinsic parameter for each group of poses, the separate extrinsic parameter comprising at least two matrices of rotation and translation parameter values associated with at least two cameras of the headset.

15 . A non-transitory computer-readable storage medium comprising instructions, which, when executed by one or more processors, cause the one or more processors to perform operations comprising:

obtaining image data from a plurality of cameras of a headset, including obtaining image data at different times as the headset moves through a series of poses of the headset;

detecting that one or more miscalibration conditions for the headset have occurred as the headset moved through the series of poses;

dividing the series of poses into groups of poses based on the one or more miscalibration conditions;

performing bundle adjustment for the groups of poses using a separate set of camera calibration data for each group of poses of the groups of poses, wherein the bundle adjustment for a set of poses in each group of poses is performed using a same set of calibration data for each group of poses, and wherein the separate set of camera calibration data for each group of poses is estimated jointly with bundle adjustment estimation for the set of poses in each group of poses, and comprising:

optimizing the separate set of camera calibration data for each group of poses to align the headset to a set of mapping reference points in an augmented reality image, comprising:

applying a first constraint that limits a difference between rotation parameters of the separate set of camera calibration data for two groups of poses of the groups of poses to be less than a rotation threshold; and

applying a second constraint that limits a difference between translation parameters of the separate set of camera calibration data for two groups of poses of the groups of poses to be less than a translation threshold; and

changing one or more of an alignment and an orientation of one or more of the plurality of cameras based on the bundle adjustment to calibrate the headset.

16 . The non-transitory computer-readable storage medium of claim 15 , obtaining the image data at different times as the headset moves through the series of poses of the headset comprises:

determining a pose of the headset for each selected frame of image data; and

selecting a subset of poses as the series of poses.

17 . The non-transitory computer-readable storage medium of claim 15 , wherein dividing the series of poses into the groups of poses comprises:

determining a first time that a first miscalibration condition occurred;

identifying all poses of the headset prior to the first time when the first miscalibration condition occurred;

grouping the poses of the headset prior to the first time into a first pose group;

determining a second time that a second miscalibration condition occurred;

identifying all poses of the headset after the first time and prior to the second time when the second miscalibration condition occurred; and

grouping the poses of the headset between the first time and the second time into a second pose group.

18 . The non-transitory computer-readable storage medium of claim 15 , wherein performing the bundle adjustment for the groups of poses using the separate set of camera calibration data for each group of poses comprises:

determining a separate extrinsic parameter for each group of poses, the separate extrinsic parameter comprising at least two matrices of rotation and translation parameter values associated with at least two cameras of the headset.

Assignments (2)
SECURITY INTEREST Recorded Oct 15, 2025
From: MAGIC LEAP, INC.; MENTOR ACQUISITION ONE, LLC; MOLECULAR IMPRINTS, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073109/0238 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2023
From: GUPTA, ANKUR; SOUIAI, MOHAMED
To: MAGIC LEAP, INC.
Reel/Frame 064570/0066 →
Continuity (2)
Provisional Application 63129316 · Dec 22, 2020
Related Publication 20240062482A1 · Feb 22, 2024
References Cited (18)
US 8736636B2 · Kang · 2014 [cited by applicant]
US 8793770B2 · Lim · 2014 [cited by applicant]
US 8823855B2 · Hwang · 2014 [cited by applicant]
US 8874673B2 · Kim · 2014 [cited by applicant]
US 10705598B2 · Steedly et al. · 2020 [cited by applicant]
US 20090237510A1 · Chen · 2009 [cited by examiner]
US 20140347390A1 · Poulos et al. · 2014 [cited by applicant]
US 20170061693A1 · Kohler · 2017 [cited by examiner]
US 20180329484A1 · Steedly et al. · 2018 [cited by applicant]
US 20190236405A1 · Dabeer et al. · 2019 [cited by applicant]
JP 2016021097A · 2016 [cited by applicant]
JP 2017108370A · 2017 [cited by applicant]
JP 2020201587A · 2020 [cited by applicant]
Office Action in Japanese Appln. No. 2023-537547, mailed on Dec. 19, 2024, 5 pages (with English translation). [cited by applicant]
International Search Report and Written Opinion in International Appln. No. PCT/US2021/064655, mailed Mar. 24, 2022, 8 pages. [cited by applicant]
Extended European Search Report in European Appln. No. 21912060.7, mailed Oct. 18, 2024, 12 pages. [cited by applicant]
Grubert et al., “A Survey of Calibration Methods for Optical See-Through Head-Mounted Displays,” IEEE Trans Vis Comput Graph, Sep. 2018, 24(9):2649-2662. [cited by applicant]
Hinzmann et al., “Robust map generation for fixed-wing UAVs with low-cost highly-oblique monocular cameras,” Paper, Presented at Proceedings of the 2016 IEEE/RSJ International Conference on Intelligent Robots and System… [cited by applicant]