IP Library Granted Patent US 12,307,575
Granted Patent B2
US 12,307,575 · App. 17/969,622 · Granted May 20, 2025

Scene capture via artificial reality systems

Inventors: Gioacchino Noris (Zurich, CH); Sony Nguyen (San Jose, CA); Andrea Alejandra Cohen (Redwood City, CA); Anush Mohan (San Jose, CA); Matthew Banks (Kirkland, WA)
Assignee: Meta Platforms Technologies, LLC
G06T15/06G06T15/08G06T17/00G06T19/006G06T19/20G06T2200/24G06T2210/12G06T2219/004G06T2219/2004
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,307,575
App. No.
17/969,622
Granted
May 20, 2025
Kind
B2
Abstract

In particular embodiments, a computing system may initiate a scene capture process to capture a scene. The scene may include one or more of planes or objects. The system may send a first set of instructions to outline one or more planes of the scene. The system may cast a first set of rays to outline the one or more planes. The system may create the one or more planes based on the first set of rays. The system may send a second set of instructions to outline one or more objects of the scene. The system may cast a second set of rays to outline the one or more objects. The system may create the one or more objects based on the second set of rays. The system may generate a scene model of the scene based on the one or more planes and the one or more objects.

Claims (70)

1. A method comprising, by a computing system:

initiating a scene capture process to capture a scene of a physical environment surrounding a user wearing an artificial-reality system, the scene comprising one or more of planes or objects;

sending a first set of instructions to the user to outline one or more planes of the scene;

casting a first set of rays to outline the one or more planes according to the first set of instructions;

creating one or more plane anchors corresponding to the one or more planes based on outlining by the first set of rays;

sending a second set of instructions to the user to outline one or more objects of the scene;

casting a second set of rays to outline the one or more objects according to the second set of instructions;

creating one or more object anchors corresponding to the one or more objects based on outlining by the second set of rays;

generating a scene model of the scene based on the one or more plane anchors and the one or more object anchors; and

providing a subset of the one or more plane anchors and/or the one or more object anchors, of the scene model, to a client application, responsive to a query by the client application for the subset of the one or more plane anchors and/or the one or more object anchors,

wherein the client application generates an artificial reality environment using the subset of the one or more plane anchors and/or the one or more object anchors of the scene model.

2. The method of claim 1 , wherein the one or more planes comprise walls, and wherein casting the first set of rays to outline the one or more planes according to the first set of instructions comprises:

casting a first ray to put a first point on a bottom corner of a first wall according to a first instruction of the first set of instructions;

casting a second ray to put a second point on a top corner on the same side of the first wall according to a second instruction of the first set of instructions; and

casting subsequent rays to put subsequent points on top corners of each subsequent wall present in the scene according to a third instruction of the first set of instructions.

3. The method of claim 2 , wherein creating the one or more planes comprises:

creating one or more two dimensional (2D) bounded boxes for the one or more planes based on the first point, the second point, and the subsequent points defined by the first ray, the second ray, and the subsequent rays, respectively.

4. The method of claim 1 , wherein the one or more objects comprise a desk, and wherein casting the second set of rays to outline the one or more one or more objects according to the second set of instructions comprises:

casting a first ray to put a first point on a floor directly below a top left corner of the desk;

casting a second ray to put a second point on the top left corner of the desk;

casting a third ray to put a third point on a top right corner of the desk; and

casting a fourth ray to put a fourth point on a corner directly behind the third point.

5. The method of claim 4 , wherein creating the one or more planes comprises:

creating one or more three dimensional (3D) volumes for the one or more objects based on the first point, the second point, third point, and the fourth point defined by the first ray, the second ray, third ray, and the fourth ray, respectively.

6. The method of claim 1 , wherein generating the scene model comprises:

saving the one or more plane anchors and the one or more object anchors;

grouping a first set of the one or more plane anchors into a first component;

grouping a second set of the one or more plane anchors into a second component;

grouping the one or more plane anchors and the one or more object anchors into a third component; and

associating, with each anchor, a component type and a semantic type.

7. The method of claim 1 , wherein the scene model is used by the client application or a user to add one or more augmented reality elements to the scene.

8. The method of claim 1 , wherein each casted ray of the first set of rays and/or the second set of rays places a point at a particular location based on an instruction of the first set of instructions and/or the second set of instructions.

9. The method of claim 8 , wherein the one or more plane anchors or the one or more object anchors are created based on points placed by casted rays at particular locations in the physical environment of the scene.

10. The method of claim 1 , wherein each ray of the first set of rays and/or the second set of rays is cast via a controller of the artificial-reality system.

11. The method of claim 1 , wherein the artificial-reality system is a virtual reality headset.

12. The method of claim 1 , wherein the query further requests one or more additional components of the scene model, and wherein the method further comprises:

determining that the one or more additional components of the scene model are not found;

reinitiating the scene capture process in response to determining that the one or more additional components of the scene model are not found; and

providing the one or more additional components to the client application,

wherein the client application generates the artificial reality environment further using the one or more additional components.

13. The method of claim 1 , wherein the scene is a living room of the user.

14. The method of claim 13 , wherein the one or more planes comprise one or more walls, a ceiling, a floor, one or more windows, one or more doors, or any combination thereof.

15. The method of claim 13 , wherein the one or more objects comprise a couch, a desk, a television, a bed, a plant, a chair, or any combination thereof.

16. The method of claim 1 , wherein the scene capture process is initiated by the client application running on the artificial-reality system.

17. The method of claim 16 , wherein the client application is a first-party application or a third-party application on the artificial-reality system.

18. The method of claim 1 , wherein the client application is an existing application on the artificial-reality system.

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

initiate a scene capture process to capture a scene of a physical environment surrounding a user wearing an artificial-reality system, the scene comprising one or more of planes or objects;

send a first set of instructions to the user to outline one or more planes of the scene;

cast a first set of rays to outline the one or more planes according to the first set of instructions;

create one or more plane anchors corresponding to the one or more planes based on outlining by the first set of rays;

send a second set of instructions to the user to outline one or more objects of the scene;

cast a second set of rays to outline the one or more objects according to the second set of instructions;

create one or more object anchors corresponding to the one or more objects based on outlining by the second set of rays;

generate a scene model of the scene based on the one or more plane anchors and the one or more object anchors, and

provide a subset of the one or more plane anchors and/or the one or more object anchors, of the scene model, to a client application, responsively to a query by the client application for the subset of the one or more plane anchors and/or the one or more object anchors,

wherein the client application generates an artificial reality environment using the subset of the one or more plane anchors and/or the one or more object anchors of the scene model.

20. 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:

initiate a scene capture process to capture a scene of a physical environment surrounding a user wearing an artificial-reality system, the scene comprising one or more of planes or objects;

send a first set of instructions to the user to outline one or more planes of the scene;

cast a first set of rays to outline the one or more planes according to the first set of instructions;

create one or more plane anchors corresponding to the one or more planes based on outlining by the first set of rays;

send a second set of instructions to the user to outline one or more objects of the scene;

cast a second set of rays to outline the one or more objects according to the second set of instructions;

create one or more object anchors corresponding to the one or more objects based on outlining by the second set of rays;

generate a scene model of the scene based on the one or more planes and the one or more objects; and

providing a subset of the one or more plane anchors and/or the one or more object anchors, of the scene model, to a client application, responsive to a query by the client application for the subset of the one or more plane anchors and/or the one or more object anchors,

wherein the client application generates an artificial reality environment using the subset of the one or more plane anchors and/or the one or more object anchors of the scene model.

Assignments (1)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE APPLICATION NUMBER PREVIOUSLY RECORDED AT REEL: 67302 FRAME: 279. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 20, 2024
From: NORIS, GIOACCHINO; NGUYEN, SONY; COHEN, ANDREA ALEJANDRA; MOHAN, ANUSH; BANKS, MATTHEW
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 068476/0803 →
Continuity (2)
Provisional Application 63272092 · Oct 26, 2021
Related Publication 20230127307A1 · Apr 27, 2023
References Cited (65)
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 · 2021 [cited by examiner]
US 11158130B1 · Rubaiat Habib et al. · 2021 [cited by applicant]
US 11222468B1 · Lovegrove et al. · 2022 [cited by applicant]
US 11295460B1 · Aghdasi et al. · 2022 [cited by applicant]
US 11481925B1 · Li · 2022 [cited by examiner]
US 11670045B2 · Zhang · 2023 [cited by examiner]
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 · 2015 [cited by examiner]
US 20150331970A1 · Jovanovic · 2015 [cited by applicant]
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 · 2018 [cited by examiner]
US 20180143756A1 · Mildrew · 2018 [cited by examiner]
US 20180144547A1 · Shakib et al. · 2018 [cited by applicant]
US 20180232937A1 · Moyer et al. · 2018 [cited by applicant]
US 20190026956A1 · Gausebeck · 2019 [cited by examiner]
US 20190051054A1 · Jovanovic et al. · 2019 [cited by applicant]
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 · 2020 [cited by examiner]
US 20200364901A1 · Choudhuri et al. · 2020 [cited by applicant]
US 20210056762A1 · Robbe et al. · 2021 [cited by applicant]
US 20210304509A1 · Berkebile · 2021 [cited by applicant]
US 20210326026A1 · Osipov · 2021 [cited by examiner]
US 20220043446A1 · Ding et al. · 2022 [cited by applicant]
US 20220122285A1 · Suleiman et al. · 2022 [cited by applicant]
US 20220130064A1 · Tomar · 2022 [cited by applicant]
US 20220254207A1 · Billy et al. · 2022 [cited by applicant]
US 20220269885A1 · Wixson · 2022 [cited by examiner]
US 20230125390A1 · 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]
International Search Report and Written Opinion for International Application No. PCT/US2022/047864, mailed Apr. 6, 2023, 15 pages. [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/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]