IP Library Granted Patent US 12,249,092
Granted Patent B2
US 12,249,092 · App. 17/493,620 · Granted Mar 11, 2025

Visual inertial odometry localization using sparse sensors

Inventors: Amr Suleiman (Sammamish, WA); Anastasios Mourikis (Seattle, WA); Armin Alaghi (Kirkland, WA); Andrew Samuel Berkovich (Sammamish, WA); Shlomo Alkalay (Redmond, WA); Muzaffer Kal (Redmond, WA); Vincent Lee (Seattle, WA); Richard Andrew Newcombe (Seattle, WA)
Assignee: Meta Platforms Technologies, LLC
G06T7/73G06T7/97G06T19/006G06T2200/04
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,249,092
App. No.
17/493,620
Granted
Mar 11, 2025
Kind
B2
Abstract

In one embodiment, a computing system accesses a set of 3D locations associated with features in an environment previously captured by a camera from a previous camera pose. The computing system determines a predicted camera pose using the previous camera pose and motion measurements generated using a motion sensor associated with the camera. The computing system projects the set of 3D locations toward the predicted camera pose and onto a 2D image plane associated with the camera. The computing system generates, based on the projected set of 3D locations on the 2D image plane, an activation map specifying a subset of the pixel sensors of the camera that are to be activated. The computing system instructs, using the activation map, the camera to activate the subset of pixel sensors to capture a new image of the environment. The computing system reads pixel values of the new image.

Claims (64)

1. A method comprising, by a computing system:

accessing a set of 3D locations associated with features in an environment previously captured by a camera from a previous camera pose;

determining a predicted camera pose using the previous camera pose and motion measurements generated using a motion sensor associated with the camera;

projecting the set of 3D locations toward the predicted camera pose and onto a 2D image plane associated with the camera;

generating, based on the projected set of 3D locations on the 2D image plane, an activation map specifying a subset of the pixel sensors of the camera that are to be activated;

instructing, using the activation map, the camera to activate the subset of pixel sensors to capture a new image of the environment;

reading pixel values of the new image corresponding to the subset of pixel sensors activated by the camera; and

tracking the features in the environment based on the pixel values.

2. The method of claim 1 , further comprising:

receiving, from the camera, a plurality of frames containing a plurality of images of the environment; and

processing a set of the plurality of images to identify the features in the environment, wherein the features are indicative of a landmark in the environment.

3. The method of claim 1 , further comprising:

accessing one or more intrinsic camera parameters of the camera and one or more camera lens distortion characteristics, wherein projecting the set of 3D locations toward the predicted camera pose and onto the 2D image plane is based on the one or more intrinsic camera parameters of the camera and the one or more camera lens distortion characteristics.

4. The method of claim 1 , further comprising:

generating an occupancy grid based on the projection of the set of 3D locations toward the predicted camera pose and onto the 2D image plane, wherein the occupancy grid indicates one or more cells within the occupancy grid that are occupied by the projection of the set of 3D locations toward the predicted camera pose and onto the 2D image plane, and wherein generating the activation map is based on the occupancy grid.

5. The method of claim 4 , further comprising:

analyzing one or more unoccupied cells in the occupancy grid; and

determining whether to include the one or more unoccupied cells in the activation map based on a predetermined framerate.

6. The method of claim 5 , wherein the camera captures a plurality of images at a first framerate greater than the predetermined framerate.

7. The method of claim 1 , further comprising:

generating one or more search lines based on the projection of the set of 3D locations toward the predicted camera pose and onto the 2D image plane, wherein the one or more search lines are included in the activation map.

8. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

access a set of 3D locations associated with features in an environment previously captured by a camera from a previous camera pose;

determine a predicted camera pose using the previous camera pose and motion measurements generated using a motion sensor associated with the camera;

project the set of 3D locations toward the predicted camera pose and onto a 2D image plane associated with the camera;

generate, based on the projected set of 3D locations on the 2D image plane, an activation map specifying a subset of the pixel sensors of the camera that are to be activated;

instruct, using the activation map, the camera to activate the subset of pixel sensors to capture a new image of the environment;

read pixel values of the new image corresponding to the subset of pixel sensors activated by the camera; and

track the features in the environment based on the pixel values.

9. The media of claim 8 , wherein the one or more computer-readable non-transitory storage media is further operable when executed to:

receive, from the camera, a plurality of frames containing a plurality of images of the environment; and

process a set of the plurality of images to identify the features in the environment, wherein the features are indicative of a landmark in the environment.

10. The media of claim 8 , wherein the one or more computer-readable non-transitory storage media is further operable when executed to:

access one or more intrinsic camera parameters of the camera and one or more camera lens distortion characteristics, wherein projecting the set of 3D locations toward the predicted camera pose and onto the 2D image plane is based on the one or more intrinsic camera parameters of the camera and the one or more camera lens distortion characteristics.

11. The media of claim 8 , wherein the one or more computer-readable non-transitory storage media is further operable when executed to:

generate an occupancy grid based on the projection of the set of 3D locations toward the predicted camera pose and onto the 2D image plane, wherein the occupancy grid indicates one or more cells within the occupancy grid that are occupied by the projection of the set of 3D locations toward the predicted camera pose and onto the 2D image plane, and wherein generating the activation map is based on the occupancy grid.

12. The media of claim 11 , wherein the one or more computer-readable non-transitory storage media is further operable when executed to:

analyze one or more unoccupied cells in the occupancy grid; and

determine whether to include the one or more unoccupied cells in the activation map based on a predetermined framerate.

13. The media of claim 12 , wherein the camera captures a plurality of images at a first framerate greater than the predetermined framerate.

14. The media of claim 8 , wherein the one or more computer-readable non-transitory storage media is further operable when executed to:

generate one or more search lines based on the projection of the set of 3D locations toward the predicted camera pose and onto the 2D image plane, wherein the one or more search lines are included in the activation map.

15. A system comprising:

one or more processors; and

one or more computer-readable non-transitory storage media coupled to one or more of the processors and comprising instructions operable when executed by one or more of the processors to cause the system to:

access a set of 3D locations associated with features in an environment previously captured by a camera from a previous camera pose;

determine a predicted camera pose using the previous camera pose and motion measurements generated using a motion sensor associated with the camera;

project the set of 3D locations toward the predicted camera pose and onto a 2D image plane associated with the camera;

generate, based on the projected set of 3D locations on the 2D image plane, an activation map specifying a subset of the pixel sensors of the camera that are to be activated;

instruct, using the activation map, the camera to activate the subset of pixel sensors to capture a new image of the environment;

read pixel values of the new image corresponding to the subset of pixel sensors activated by the camera; and

track the features in the environment based on the pixel values.

16. The system of claim 15 , wherein the instructions are further executable by the one or more processors to:

receive, from the camera, a plurality of frames containing a plurality of images of the environment; and

process a set of the plurality of images to identify the features in the environment, wherein the features are indicative of a landmark in the environment.

17. The system of claim 15 , wherein the instructions are further executable by the one or more processors to:

access one or more intrinsic camera parameters of the camera and one or more camera lens distortion characteristics, wherein projecting the set of 3D locations toward the predicted camera pose and onto the 2D image plane is based on the one or more intrinsic camera parameters of the camera and the one or more camera lens distortion characteristics.

18. The system of claim 15 , wherein the instructions are further executable by the one or more processors to:

generate an occupancy grid based on the projection of the set of 3D locations toward the predicted camera pose and onto the 2D image plane, wherein the occupancy grid indicates one or more cells within the occupancy grid that are occupied by the projection of the set of 3D locations toward the predicted camera pose and onto the 2D image plane, and wherein generating the activation map is based on the occupancy grid.

19. The system of claim 18 , wherein the instructions are further executable by the one or more processors to:

analyze one or more unoccupied cells in the occupancy grid; and

determine whether to include the one or more unoccupied cells in the activation map based on a predetermined framerate.

20. The system of claim 15 , wherein the instructions are further executable by the one or more processors to:

generate one or more search lines based on the projection of the set of 3D locations toward the predicted camera pose and onto the 2D image plane, wherein the one or more search lines are included in the activation map.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2024
From: SULEIMAN, AMR; MOURIKIS, ANASTASIOS; ALAGHI, ARMIN; BERKOVICH, ANDREW SAMUEL; ALKALAY, SHLOMO; KAL, MUZAFFER; LEE, VINCENT; NEWCOMBE, RICHARD ANDREW
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 069372/0709 →
CHANGE OF NAME Recorded Jul 6, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060591/0848 →
Continuity (3)
Continuation 17472545 · Sep 10, 2021
Provisional Application 63078794 · Sep 15, 2020
Related Publication 20220122285A1 · Apr 21, 2022
References Cited (63)
US 9063330B2 · LaValle et al. · 2015 [cited by applicant]
US 9964409B1 · Flint et al. · 2018 [cited by applicant]
US 10338392B2 · Kohler et al. · 2019 [cited by applicant]
US 10346623B1 · Brandwine et al. · 2019 [cited by applicant]
US 10466953B2 · Eade et al. · 2019 [cited by applicant]
US 10657701B2 · Osman et al. · 2020 [cited by applicant]
US 11024079B1 · Chuah et al. · 2021 [cited by applicant]
US 11158130B1 · Rubaiat Habib · 2021 [cited by examiner]
US 11222468B1 · Lovegrove · 2022 [cited by examiner]
US 11481925B1 · Li et al. · 2022 [cited by applicant]
US 11670045B2 · Zhang et al. · 2023 [cited by applicant]
US 20050249426A1 · Badawy · 2005 [cited by applicant]
US 20120300020A1 · Arth et al. · 2012 [cited by applicant]
US 20120306850A1 · Balan et al. · 2012 [cited by applicant]
US 20140267234A1 · Hook et al. · 2014 [cited by applicant]
US 20150029218A1 · Williams et al. · 2015 [cited by applicant]
US 20150062125A1 · Aguilera Perez et al. · 2015 [cited by applicant]
US 20150331970A1 · Jovanovic · 2015 [cited by examiner]
US 20160364912A1 · Cho et al. · 2016 [cited by applicant]
US 20170115488A1 · Ambrus et al. · 2017 [cited by applicant]
US 20170243403A1 · Daniels et al. · 2017 [cited by applicant]
US 20170337749A1 · Nerurkar et al. · 2017 [cited by applicant]
US 20170345167A1 · Ard et al. · 2017 [cited by applicant]
US 20180053329A1 · Roberts et al. · 2018 [cited by applicant]
US 20180122139A1 · Janzer et al. · 2018 [cited by applicant]
US 20180143023A1 · Bjorke et al. · 2018 [cited by applicant]
US 20180143756A1 · Mildrew et al. · 2018 [cited by applicant]
US 20180144547A1 · Shakib et al. · 2018 [cited by applicant]
US 20180232937A1 · Moyer et al. · 2018 [cited by applicant]
US 20190026956A1 · Gausebeck et al. · 2019 [cited by applicant]
US 20190051054A1 · Jovanovic · 2019 [cited by examiner]
US 20190236842A1 · Bennett et al. · 2019 [cited by applicant]
US 20190287311A1 · Bhatnagar et al. · 2019 [cited by applicant]
US 20200066046A1 · Stahl et al. · 2020 [cited by applicant]
US 20200099954A1 · Hemmer et al. · 2020 [cited by applicant]
US 20200175764A1 · Romea et al. · 2020 [cited by applicant]
US 20200250879A1 · Foster et al. · 2020 [cited by applicant]
US 20200302681A1 · Totty et al. · 2020 [cited by applicant]
US 20200364901A1 · Choudhuri · 2020 [cited by examiner]
US 20210056762A1 · Robbe et al. · 2021 [cited by applicant]
US 20210304509A1 · Berkebile · 2021 [cited by applicant]
US 20210326026A1 · Osipov et al. · 2021 [cited by applicant]
US 20220043446A1 · Ding et al. · 2022 [cited by applicant]
US 20220254207A1 · Billy et al. · 2022 [cited by applicant]
US 20220269885A1 · Wixson et al. · 2022 [cited by applicant]
US 20230125390A1 · Noris et al. · 2023 [cited by applicant]
US 20230127307A1 · Noris et al. · 2023 [cited by applicant]
US 20230237692A1 · Alaghi et al. · 2023 [cited by applicant]
EP 3419286A1 · 2018 [cited by applicant]
WO 2013155217A1 · 2013 [cited by applicant]
WO 2015192117A1 · 2015 [cited by applicant]
WO 2021010660A1 · 2021 [cited by applicant]
WO 2021188741A1 · 2021 [cited by applicant]
Balntas V., et al., “HPatches: a Benchmark and Evaluation of Handcrafted and Learned Local Descriptors,” Computer Vision and Pattern Recognition (CVPR), Apr. 19, 2017, arXiv:1704.05939v1 [cs.CV], 10 Pages. [cited by applicant]
International Preliminary Report on Patentability for International Application No. PCT/US2022/047864, mailed May 10, 2024, 12 pages. [cited by applicant]
International Preliminary Report on Patentability for International Application No. PCT/US2023/011579, mailed Aug. 8, 2024, 10 pages. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2020/027763, mailed Jul. 23, 2020, 12 Pages. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2022/047864, mailed Apr. 6, 2023, 15 pages. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2022/052472, mailed Apr. 17, 2023, 11 pages. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2023/011579, mailed May 17, 2023, 12 pages. [cited by applicant]
Morrison J. G., et al., “Scalable Multirobot Localization and Mapping with Relative Maps: Introducing MOARSLAM,” IEEE Control Systems, vol. 36, No. 2, Apr. 1, 2016, pp. 75-85. [cited by applicant]
Mur-Artal R., et al., “ORB-SLAM: a Versatile and Accurate Monocular SLAM System,” IEEE Transactions on Robotics, Sep. 18, 2015, arXiv:1502.00956v2 [cs. RO], 18 Pages, Doi: 10.1109/TRO.2015.2463671. [cited by applicant]
Tian Y., et al., “SOSNet: Second Order Similarity Regularization for Local Descriptor Learning,” Computer Vision and Pattern Recognition (CVPR), Dec. 16, 2019, arXiv:1904.05019v2 [cs.CV], 10 Pages. [cited by applicant]