IP Library Granted Patent US 11,776,222
Granted Patent B2
US 11,776,222 · App. 17/555,925 · Granted Oct 3, 2023

Method for detecting objects and localizing a mobile computing device within an augmented reality experience

Inventors: Mark Stauber (Bronx, NY); Jaeyong Sung (Bronx, NY); Devin Haslam (Bronx, NY); Amichai Levy (Bronx, NY)
Assignee: Roblox Corporation
G06T19/006G02B27/017G06F3/011G06F3/017G06T19/20G06V10/757G06V20/20G06V20/653G02B2027/014
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 11,776,222
App. No.
17/555,925
Granted
Oct 3, 2023
Kind
B2
Abstract

A method includes: recording a series of frames; recording a set of motion data representing motion of the mobile device; detecting relative positions of a 3D constellation of objects based on the series of frames and the set of motion data; generating classifications of the 3D constellation of objects by calculating a classification of each object in a set of object classes; calculating a transform aligning the 3D constellation of objects with a 3D localization map; accessing a set of augmented reality assets defined by the 3D localization map; calculating a position of the mobile device relative to the 3D localization map based on the transform and the set of motion data; and rendering the set of augmented reality assets based on positions of the set of augmented reality assets in the 3D localization map and based on the position of the mobile device in the 3D localization map.

Claims (113)

1. A method comprising:

at a device, during a time period:

capturing a set of frames; and

capturing a set of motion data representing motion of the device;

detecting a first set of relative positions of a constellation of objects based on the set of frames and the set of motion data;

generating a first set of classification vectors of the constellation of objects, each classification vector in the first set of classification vectors containing a set of confidence scores representing similarities between an object, in the constellation of objects, and an object class in a set of object classes; and

calculating a transform that aligns the constellation of objects to a set of objects represented in a localization map, the set of objects characterized by:

a second set of relative positions analogous to the first set of relative positions of the constellation of objects; and

a second set of classification vectors analogous to the first set of classification vectors of the constellation of objects.

2. The method of claim 1 , further comprising:

returning, to the device, a set of augmented reality assets defined by the localization map and the transform; and

at the device, rendering the set of augmented reality assets based on positions of the set of augmented reality assets in the localization map and based on the transform.

3. The method of claim 1 , wherein detecting the first set of relative positions of the constellation of objects comprises, for each object in the constellation of objects:

for each frame in a subset of the set of frames:

detecting the object in the frame; and

generating a set of points representing estimated distances from a camera of the device to surfaces on the first object;

compiling the set of points into a cluster of points based on the set of motion data; and

calculating a relative position of the object relative to the local virtual origin based on the cluster of points.

4. The method of claim 1 , wherein generating the first set of classification vectors comprises, for each object in the constellation of objects and for each object class in a set of object classes, calculating a confidence score in the classification vector based on an object classification model and the set of frames, the confidence score representing likeness of the object to the object class.

5. The method of claim 1 , wherein calculating the transform comprises:

calculating a geometric similarity measure between the constellation of objects and the localization map; and

in response to the geometric similarity measure exceeding a geometric similarity threshold:

identifying a mapping of a set objects in the constellation of objects to a corresponding set of objects in the localization map;

calculating a classification similarity measure between the first set of classification vectors of the constellation of objects and the second set of classification vectors of the set of objects in the localization map based on the mapping; and

in response to the classification similarity measure exceeding a classification similarity threshold, calculating the transform aligning the constellation of objects with the localization map.

6. A method comprising:

at a device, during a first time period:

capturing a first set of frames; and

capturing a first set of motion data representing motion of the device;

detecting a first set of relative positions of a first constellation of objects based on the first set of frames and the first set of motion data;

calculating a first set of classification vectors of objects in the first constellation of objects based on the first set of frames;

calculating a transform that aligns the first constellation of objects with a set of objects defined in a localization map, the set of objects characterized by:

a second set of relative positions analogous to the first set of relative positions of the first constellation of objects; and

a second set of classification vectors analogous to the first set of classification vectors of the first constellation of objects;

returning, to the device:

a set of augmented reality assets defined by the localization map; and

the transform; and

at the device:

calculating a position of the device relative to the localization map based on the transform; and

rendering the set of augmented reality assets based on positions of the set of augmented reality assets in the localization map and based on the position of the device in the localization map.

7. The method of claim 6 :

further comprising, at the device during a second time period, succeeding reception of the transform at the device:

capturing a second set of frames; and

capturing a second set of motion data; and

wherein calculating the position of the device relative to the localization map comprises calculating the position of the device relative to the localization map based on the transform, the second set of frames, and the second set of motion data.

8. The method of claim 7 , wherein calculating the position of the device comprises:

tracking a position of the device relative to the first constellation of objects based on the second set of frames and the second set of motion data; and

in response to receiving the transform, transforming the position of the device relative to the first constellation of objects to the position of the device relative to the localization map based on the transform.

9. The method of claim 7 relative to the localization map based on the transform, the second set of frames, and the second set of motion data furtheThe method of claim 7 , wherein calculating the position of the device comprises:

detecting a third set of relative positions of a second constellation of objects based on the second set of frames and the second set of motion data;

generating a third set of classification vectors of the second constellation of objects by calculating a classification vector of each object in the second constellation of objects based on the second set of frames; and

calculating the position of the device by matching the second constellation of objects to the set of objects in the localization map.

10. The method of claim 6 :

wherein calculating the position of the device comprises calculating the position of the device relative to the localization map and an orientation of the device relative to the localization map; and

wherein rendering the set of augmented reality assets comprises:

identifying a subset of augmented reality assets in the set of augmented reality assets within a field of view of the device based on the position of the device relative to the localization map and the orientation of the device relative to the localization map; and

rendering the subset of augmented reality assets based on positions of the subset of augmented reality assets in the localization map and based on the position of the device relative to the localization map and the orientation of the device relative to the localization map.

11. The method of claim 6 , wherein returning the set of augmented reality assets defined by the localization map further comprises:

estimating an approximate position of the device relative to the localization map; and

identifying the set of augmented reality assets defined in the localization map within a threshold distance of the approximate position.

12. The method of claim 6 , further comprising:

at a mapping device:

capturing a second set of frames capturing an area of interest; and

capturing a second set of motion data representing motion of the mapping device;

identifying the set of objects based on the second set of frames and the second set of motion data;

for each object in the set of objects:

calculating a relative position of the object in the second set of relative positions, the relative position of the object relative to a virtual origin; and

calculating a classification vector in the second set of classification vectors of the object; and

generating the localization map based on the second set of relative positions and the second set of classification vectors of each object in the set of objects.

13. The method of claim 12 , further comprising:

generating a sparse set of points representing distances from a camera of the mapping device to surfaces of the area of interest based on the second set of frames and the second set of motion data;

generating a sparse point cloud reconstruction of the area of interest based on the sparse set of points; and

at the mapping device, rendering the sparse point cloud reconstruction of the area of interest.

14. The method of claim 13 , further comprising:

generating a dense set of points representing distances from the camera of the mapping device to surfaces of the area of interest based on the second set of frames and the second set of motion data;

generating a dense point cloud reconstruction of the area of interest based on the dense set of points; and

overlaying the dense point cloud reconstruction over the localization map to generate a composite map.

15. The method of claim 14 , wherein rendering the set of augmented reality assets comprises, at the device:

calculating a field of view of the device in the composite map based on the position of the device relative to the localization map;

identifying an augmented reality asset in the set of augmented reality assets within the field of view of the device in the composite map;

generating an occlusion mask for the augmented reality asset based on the field of view of the device in the composite map; and

rendering the augmented reality asset obscured by the occlusion map.

16. The method of claim 12 , further comprising:

at a content creation device:

rendering a representation of the localization map;

rendering a content creation interface; and

receiving input at the content creation interface representing locations of augmented reality assets in the localization map; and

creating the augmented reality assets in the localization map according to the input at the content creation interface.

17. A method comprising:

at a device, during a first time period:

capturing a first set of frames; and

capturing a first set of motion data representing motion of the device;

detecting a first set of relative positions of a constellation of objects based on the first set of frames and the first set of motion data;

generating a first set of object signatures of the constellation of objects, each object signature in the first set of object signatures containing a set of confidence scores representing similarities between an object, in the constellation of objects, and an object class in a set of object classes;

calculating a transform that aligns the constellation of objects with a set of objects represented in a localization map, the set of objects characterized by:

a second set of relative positions analogous to the first set of relative positions of the constellation of objects; and

a second set of object signatures analogous to the first set of object signatures of the constellation of objects;

accessing a set of augmented reality assets represented in the localization map;

calculating a position of the device relative to the localization map based on the transform and the first set of motion data; and

rendering the set of augmented reality assets based on positions of the set of augmented reality assets in the localization map and based on the position of the device in the localization map.

18. The method of claim 17 , wherein rendering the set of augmented reality assets comprises:

at the device, during a second time period succeeding the first time period:

capturing a second set of frames; and

capturing a second set of motion data;

calculating a position and orientation of the device relative to the localization map based on the second set of frames and the second set of motion data;

projecting a field of view of the device in the localization map based on the position and orientation of the device relative to the localization map;

identifying an augmented reality asset in the set of augmented reality assets within the field of view of the device; and

rendering the augmented reality asset based on the position of the augmented reality asset relative to the localization map and the position and orientation of the device relative to the localization map.

19. The method of claim 17 :

wherein detecting the first set of relative positions of the constellation of objects further comprises, detecting positions of the constellation of objects relative to a local virtual origin based on the set of frames and the set of motion data;

wherein calculating the transform aligning the constellation of objects with a localization map further comprises calculating the transform aligning the local virtual origin with a global virtual origin of the localization map; and

wherein calculating the position of the device relative to the localization map further comprises calculating the position of the device relative to the global virtual origin of the localization map.

20. The method claim 17 , wherein detecting the first set of relative positions of the constellation of objects comprises detecting the relative position of a planar surface, the planar object comprising a distinct 2D pattern.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2023
From: JIDO INC.
To: ROBLOX CORPORATION
Reel/Frame 063418/0904 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2022
From: STAUBER, MARK; SUNG, JAEYONG; LEVY, AMICHAI; HASLAM, DEVIN
To: JIDO INC.
Reel/Frame 059106/0241 →
Continuity (4)
Continuation 17102340 · Nov 23, 2020
Continuation 16588856 · Sep 30, 2019
Provisional Application 62739024 · Sep 28, 2018
Related Publication 20220114797A1 · Apr 14, 2022