IP Library Granted Patent US 12,079,931
Granted Patent B2
US 12,079,931 · App. 17/856,720 · Granted Sep 3, 2024

Image and point cloud based tracking and in augmented reality systems

Inventors: Nathan Jurgenson (Venice, CA); Linjie Luo (Los Angeles, CA); Jonathan M Rodriguez, II (Los Angeles, CA); Rahul Bhupendra Sheth (Los Angeles, CA); Jia Li (Marina Del Rey, CA); Xutao Lv (Marina Del Rey, CA)
Assignee: SNAP INC.
G06T17/00G06T19/006G06T2210/56
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,079,931
App. No.
17/856,720
Granted
Sep 3, 2024
Kind
B2
Abstract

Systems and methods for image based location estimation are described. In one example embodiment, a first positioning system is used to generate a first position estimate. Point cloud data describing an environment is then accessed. A two-dimensional surface of an image of an environment is captured, and a portion of the image is matched to a portion of key points in the point cloud data. An augmented reality object is then aligned within one or more images of the environment based on the match of the point cloud with the image. In some embodiments, building façade data may additionally be used to determine a device location and place the augmented reality object within an image.

Claims (97)

1. A method comprising:

accessing, by one or more computing devices having one or more processors and memory, data of a three-dimensional (3D) point cloud corresponding to an environment associated with a client device;

determining, by the one or more computing devices, and based on a global positioning system signal, a first position estimate for an image sensor of at least one of the client device or a companion device associated with the client device, wherein the companion device is separate from the client device;

accessing, by the one or more computing devices, an image of the environment captured by the image sensor;

causing, by the one or more computing devices, the first position estimate and the image to be communicated together as part of a first communication from the client device to a cloud server computer;

receiving, by the one or more computing devices and in response to the first position estimate, a set of structure facade data describing one or more structure facades associated with the environment;

identifying, by the one or more computing devices and using the set of structure facade data, a first structure facade portion of the image corresponding to first structure facade data of the set of structure facade data;

obtaining, by the one or more computing devices from the cloud server computer, a second position estimate for the image sensor, the second position estimate being based on a portion of a set of key points of the 3D point cloud matching to the image;

determining, by the one or more computing devices and based on the first structure facade portion of the image, a third position estimate of the image sensor;

obtaining, by the one or more computing devices from the cloud server computer, a fourth position estimate of the image sensor based on a second structure facade portion of the image, wherein the second structure facade portion corresponds to second structure facade data that is determined based on a set of detailed structure facade data having a higher level of detail than the set of structure facade data;

generating, by the one or more computing devices, an updated position estimate based on at least one of the third position estimate and the fourth position estimate;

generating, by the one or more computing devices, a model of a virtual object within the 3D point cloud; and

generating, by the one or more computing devices, an augmented reality image comprising the virtual object in the environment using the second position estimate for the image sensor, the model of the virtual object within the 3D point cloud, and a match of the portion of the set of key points of the 3D point cloud to the image, wherein the augmented reality image is further generated using the updated position estimate along with the second position estimate to align the virtual object within the image.

2. The method of claim 1 , comprising:

determining, by the one or more computing devices, a time of a receipt of the second position estimate from the cloud server computer; and

generating, by the one or more computing devices, a third position estimate of the image sensor using the second position estimate, and using a tracked motion of the companion device from an image capture time to the time of the second position estimate;

wherein the augmented reality image is generated using the third position estimate to align the virtual object within a second image of the environment.

3. The method of claim 1 , wherein the set of structure facade data is received at the client device from the cloud server computer with the second position estimate.

4. The method of claim 3 , comprising:

capturing, by the companion device, a plurality of video frames of the environment; and

for each video frame of the plurality of video frames:

generating, by the one or more computing devices, an additional updated position estimate based on at least one facade match with the set of structure facade data;

positioning, by the one or more computing devices, the virtual object within the video frame based on the additional updated position estimate;

generating, by the one or more computing devices, a corresponding augmented reality image comprising the virtual object and a corresponding portion of the environment; and

outputting, by the one or more computing devices, the corresponding augmented reality image on an output display of the companion device.

5. The method of claim 4 , comprising:

accessing, by the one or more computing devices, a compressed 3D cloud point model;

wherein for each video frame, a position of the virtual object is determined based on a video frame match with the compressed 3D cloud point model.

6. The method of claim 1 , comprising, prior to accessing of the set of structure facade data:

capturing, by the one or more computing devices, a plurality of model images of the environment;

capturing, by the one or more computing devices, a model location for each of the plurality of model images of the environment; and

processing, by the one or more computing devices, the plurality of model images and the model location for each of the plurality of model images to generate a database of facade data comprising the first structure facade data and to generate the 3D point cloud of the environment;

wherein the first structure facade data stored by the database comprises one or more facade surface locations and a two-dimensional facade pattern.

7. The method of claim 1 ,

wherein the first structure facade data of the set of structure facade data comprises one or more facade surface locations and a two-dimensional facade pattern, and further comprising:

calculating, by the one or more computing devices and using the first position estimate and using the one or more facade surface locations, an expected perspective for the two-dimensional facade pattern;

processing, by the one or more computing devices, the two-dimensional facade pattern to generate a first perspective pattern; and

processing, by the one or more computing devices, the image of the environment using the first perspective pattern to identify the first structure facade portion.

8. The method of claim 7 , wherein calculating the second position estimate of the image sensor, comprises:

calculating, by the one or more computing devices, an error value between the first perspective pattern and the first structure facade portion;

determining, by the one or more computing devices, a relative location value associated with the error value; and

determining, by the one or more computing devices, the second position estimate from the first position estimate using the relative location value.

9. The method of claim 1 , further comprising:

accessing, at the one or more computing devices and in response to the first position estimate, a set of stored structure facade data describing one or more structure facades associated with a regularly visited location or expected future travel location, the set of stored structured facade data being stored at the client device; and

adding the set of stored structure facade data to the set of structure facade data.

10. The method of claim 1 , wherein the second structure facade portion of the image is identified in response to determining a failure of identifying the first structure facade portion of the image based on the set of structure facade data.

11. A computing apparatus comprising:

one or more processors; and

memory storing computer readable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

accessing three-dimensional (3D) point cloud data corresponding to an environment associated with a client device;

determining, based on a global positioning system signal, a first position estimate for an image sensor of at least one of the client device or a companion device associated with the client device, wherein the companion device is separate from the client device;

accessing an image of the environment captured by the image sensor;

causing the first position estimate and the image to be communicated as part of a first communication from the client device to a cloud server computer;

receiving, in response to the first position estimate, a set of structure facade data describing one or more structure facades associated with the environment;

identifying, using the set of structure facade data, a first structure facade portion of the image corresponding to first structure facade data of the set of structure facade data;

obtaining, from the cloud server computer, a second position estimate for the image sensor, the second position estimate being based on a portion of a set of key points of the 3D point cloud matching to the image;

determining, based on the first structure facade portion of the image, a third position estimate of the image sensor;

obtaining, from the cloud server computer, a fourth position estimate of the image sensor that is based on a second structure facade portion of the image, wherein the second structure facade portion corresponds to second structure facade data that is determined using a set of detailed structure facade data having a higher level of detail than the set of structure facade data;

generating an updated position estimate based on at least one of the third position estimate and the fourth position estimate;

generating a model of a virtual object within the 3D point cloud; and

generating an augmented reality image comprising the virtual object in the environment using the second position estimate for the image sensor, the model of the virtual object within the 3D point cloud, and a match of the portion of the set of key points of the 3D point cloud to the image, wherein the augmented reality image is further generated using the updated position estimate along with the second position estimate to align the virtual object within the image.

12. The computing apparatus of claim 11 , wherein the memory stores additional computer-readable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

matching the portion of the set of key points of the 3D point cloud to the image by processing the image to identify one or more key features of the image, and performing a 3D matching process to search for a match between the one or more key features of the image and the portion of the set of key points of the 3D point cloud.

13. The computing apparatus of claim 11 , wherein the memory stores additional computer-readable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

receiving the image from an image sensor of the companion device, and wherein the companion device comprises a wearable device.

14. The computing apparatus of claim 13 , wherein the wearable device comprises a device selected from the set of:

an augmented reality helmet, an augmented reality visor, augmented reality glasses, and an augmented reality glasses attachment.

15. The computing apparatus of claim 11 , further comprising:

determining a time of a receipt of the fourth position estimate from the cloud server computer; and

wherein the updated position estimate is further based on a tracked motion of the companion device from an image capture time to the time of the receipt of the fourth position estimate.

16. The computing apparatus of claim 14 , wherein the memory stores additional computer-readable instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

accessing, in response to the first position estimate, a set of stored structure facade data describing one or more structure facades associated with a regularly visited location or expected future travel location, the set of stored structured facade data being stored at the client device; and

adding the set of stored structure facade data to the set of structure facade data.

17. The computing apparatus of claim 11 , wherein the second structure facade portion of the image is identified in response to determining a failure of identifying the first structure facade portion of the image based on the set of structure facade data.

18. One or more non-transitory computer readable media comprising computer readable instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

accessing three-dimensional (3D) point cloud data corresponding to an environment associated with a client device;

determining, based on a global positioning system signal, a first position estimate for an image sensor of at least one of the client device or a companion device associated with the client device, wherein the companion device is separate from the client device;

accessing an image of the environment captured by the image sensor;

causing the first position estimate and the image to be communicated together as part of a first communication from the client device to a cloud server computer;

receiving, in response the first position estimate, a set of structure facade data describing one or more structure facades associated with the environment;

identifying, using the set of structure facade data, a first structure facade portion of the image corresponding to first structure facade data of the set of structure facade data;

obtaining, from the cloud server computer, a second position estimate for the image sensor, the second position estimate being based on a portion of a set of key points of the 3D point cloud matching to the image;

determining, based on the first structure facade portion of the image, a third position estimate of the image sensor;

obtaining a fourth position estimate of the image sensor that is based on a second structure facade portion of the image, wherein the second structure facade portion corresponds to second structure facade data that is determined using a set of detailed structure facade data having a higher level of detail than the set of structure facade data;

generating an updated position estimate based on at least one of the third position estimate and the fourth position estimate;

generating a model of a virtual object within the 3D point cloud; and

generating an augmented reality image comprising the virtual object in the environment using the second position estimate for the image sensor, the model of the virtual object within the 3D point cloud, and the match of the portion of the set of key points of the 3D point cloud to the image, wherein the augmented reality image is further generated using the updated position estimate along with the second position estimate to align the virtual object within the image.

19. The one or more non-transitory computer readable media of claim 18 , comprising additional instructions that, when executed by the one or more processors, cause the one or more processors to perform additional operations comprising:

capturing, at the companion device, a plurality of video frames of the environment; and

for each video frame of the plurality of video frames:

generating an additional updated position estimate based on at least one structure facade match with a set of structure facade data;

positioning the virtual object within the video frame based on the additional updated position estimate;

generate a corresponding augmented reality image comprising the virtual object and a corresponding portion of the environment; and

outputting the corresponding augmented reality image on an output display of the companion device.

20. The one or more non-transitory computer readable media of claim 18 , comprising additional instructions that, when executed by the one or more processors, cause the one or more processors to perform additional operations comprising:

accessing, in response to the first position estimate, a set of stored structure facade data describing one or more structure facades associated with a regularly visited location or expected future travel location, the set of stored structured facade data being stored at the client device; and

adding the set of stored structure facade data to the set of structure facade data.

Assignments (2)
CHANGE OF NAME Recorded Jan 4, 2023
From: SNAPCHAT INC.
To: SNAP INC.
Reel/Frame 065019/0736 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2023
From: JURGENSON, NATHAN; LUO, LINJIE; RODRIGUEZ, JONATHAN M., II; SHETH, RAHUL BHUPENDRA; LI, JIA; LV, XUTAO
To: SNAPCHAT INC.
Reel/Frame 062270/0770 →
Continuity (5)
Continuation 17248833 · Feb 10, 2021
Continuation 16824297 · Mar 19, 2020
Continuation 15971566 · May 4, 2018
Continuation 14953913 · Nov 30, 2015
Related Publication 20220406008A1 · Dec 22, 2022