IP Library Granted Patent US 10,586,343
Granted Patent B1
US 10,586,343 · App. 16/054,598 · Granted Mar 10, 2020

3-d head mounted display based environmental modeling system

Inventors: Thomas John Whelan (Redmond, WA); Steven John Lovegrove (Woodinville, WA); Zhaoming Zhu (Redmond, WA); Richard Andrew Newcombe (Seattle, WA)
Assignee: Facebook Technologies, LLC
G06T7/521G02B27/0172G06T7/90G06T11/001G06T17/00G06T19/006
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 10,586,343
App. No.
16/054,598
Granted
Mar 10, 2020
Kind
B1
Abstract

A head mounted display (HMD) dynamically generates a model of an area. The HMD includes a depth camera assembly (DCA), a color camera, and a processing circuitry. The processing circuitry receives, from the DCA, a frame of depth image data, generates a depth map of a portion of the area based on the frame of the depth image data, receives a frame of color image data from the camera, determines a location in a model of the area that corresponds with the portion of the area of the depth map based on the frame of the color image data, and update the model of the area by combining the depth map of the portion of area with one or more other depth maps of one or more other portions of the area based on the location in the model.

Claims (70)

1. A head mounted display (HMD) comprising:

a depth camera assembly (DCA) configured to generate depth image data of an area;

a camera configured to generate color image data of the area; and

processing circuitry configured to:

receive, from the DCA, a frame of the depth image data;

generate a depth map of a portion of the area based on the frame of the depth image data;

receive, from the camera, a frame of the color image data for the portion of the area;

determine a location in a model of the area that corresponds with the portion of the area of the depth map based on the frame of the color image data; and

update the model of the area by combining the depth map of the portion of area with one or more other depth maps of one or more other portions of the area based on the location in the model.

2. The HMD of claim 1 , further including a display, and wherein the processing circuitry is further configured to generate a rendering of the portion of the area based on the model of the area and provide the rendering to the display.

3. The HMD of claim 1 , wherein the processing circuitry is further configured to apply a texture to the model based on color image data.

4. The HMD of claim 1 , wherein the DCA includes a structured light (SL) projector configured to illuminate the portion of the area with a plurality of SL elements, and an imaging device configured to capture the frame of the depth image data including the SL elements reflected from the portion of the area.

5. The HMD of claim 4 , wherein:

the SL projector includes a light emitter and a pattern plate including apertures corresponding with the plurality of SL elements, the light emitter configured to generate light and pass the light through the apertures of the pattern plate to illuminate the portion of the area with the plurality of SL elements; and

the processing circuitry configured to generate the depth map includes the processing circuitry being configured to match at least a portion of the plurality of SL elements captured by the DCA with at least a portion of the apertures of the pattern plate.

6. The HMD of claim 5 , wherein the processing circuitry configured to match at least a portion of the plurality of SL elements with at least a portion of the apertures of the pattern plate includes the processing circuitry being configured to:

generate a hash table for a pattern the pattern plate;

identify an SL element in the frame of the depth image data;

apply warp functions to a window around the SL element in the frame of the depth image data to generate candidate warps, each of the warp functions applying at least one of a stretch or a skew to the window;

determine binary codes for the candidate warps; and

match the SL element to an aperture of the pattern based on comparing the binary codes of the candidate warps with the hash table of the pattern.

7. The HMD of claim 6 , wherein the pattern includes multiple apertures and the window includes multiple SL elements.

8. The HMD of claim 5 , wherein the processing circuitry configured to match at least a portion of the plurality of SL elements with at least a portion of the apertures of the pattern plate includes the processing circuitry being configured to:

match a first SL element with a first aperture;

match a second SL element with a second aperture;

determine a distance between the first SL element and the second SL element in the frame;

determine a distance threshold for detecting a false positive match; and

discard at least one of the match between the first SL element with the first aperture and the match between the second SL element with the second aperture when the distance is larger than the distance threshold.

9. The HMD of claim 5 , wherein the processing circuitry configured to match at least a portion of the plurality of SL elements with at least a portion of the apertures of the pattern plate includes the processing circuitry being configured to:

match a first SL element with a first aperture; and

match a second SL element with a second aperture based on the match between the first SL element with the first aperture and relative positions of the first aperture and the second aperture of the pattern plate.

10. The HMD of claim 5 , wherein the processing circuitry configured to generate the depth map includes the processing circuitry being configured to determine a normal vector for the at least a portion of the plurality of SL elements based on a triangulation using a distance between the SL projector and the imaging device.

11. The HMD of claim 10 , wherein the processing circuitry configured to generate the depth map includes the processing circuitry being configured to:

determine a topology based on normal vectors of the plurality of SL elements; and

determine a normal vector for a location in the frame of the depth image data that is unilluminated by the plurality of SL elements based on the topology.

12. A method comprising:

receiving, by a processing circuitry and from a depth camera assembly (DCA) of a head-mounted display (HMD), a frame of depth image data captured by the DCA;

generating, by the processing circuitry, a depth map of a portion of an area based on the frame of the depth image data;

receiving, by the processing circuitry and from a camera of the HMD, a frame of color image data for the portion of the area;

determining, by the processing circuitry, a location in a model of the area that corresponds with the portion of area of the depth map based on the frame of the color image data; and

updating, by the processing circuitry, the model of the area by combining the depth map of the portion of area with one or more other depth maps of one or more other portions of the area based on the location in the model.

13. The method of claim 12 , further comprising, by the processing circuitry:

generating a rendering of the portion of the area based on the model of the area; and

displaying the rendering on a display of the HMD; and

applying a texture to the depth map based on the color image data.

14. The method of claim 12 , further comprising:

illuminating the portion of the area with a plurality of SL elements of the DCA; and

capturing the frame of the depth image data including the SL elements reflected from the portion of the area by an imaging device of the DCA.

15. The method of claim 14 , further comprising:

generating, by a light emitter of the SL projector, light and passing the light through apertures of a pattern plate of the SL projector to illuminate the portion of the area with the plurality of SL elements; and wherein:

generating the depth map includes matching at least a portion of the plurality of SL elements captured by the DCA with at least a portion of the apertures of the pattern plate.

16. The method of claim 15 , wherein matching at least a portion of the plurality of SL elements with at least a portion of the apertures of the pattern plate includes:

generating a hash table for a pattern of the pattern plate;

identifying an SL element in the frame of the depth image data;

applying warp functions to a window around the SL element in the frame of the depth image data to generate candidate warps, each of the warp functions applying at least one of a stretch or a skew to the second window;

determining binary codes for the candidate warps; and

matching the SL element to an aperture of the pattern based on comparing the binary codes of the candidate warps with the hash table of the pattern.

17. The method of claim 15 , wherein matching at least a portion of the plurality of SL elements with at least a portion of the apertures of the pattern plate includes:

matching a first SL element with a first aperture;

matching a second SL element with a second aperture;

determining a distance between the first SL element and the second SL element in the frame;

determining a distance threshold for detecting a false positive match; and

discarding at least one of the match between the first SL element with the first aperture and the match between the second SL element with the second aperture when the distance is larger than the distance threshold.

18. The method of claim 15 , wherein matching at least a portion of the plurality of SL elements with at least a portion of the apertures of the pattern plate includes:

matching a first SL element with a first aperture; and

matching a second SL element with a second aperture based on the match between the first SL element with the first aperture and a distance between the first aperture and the second aperture of the pattern plate.

19. The method of claim 15 , wherein generating the depth map includes determining a normal vector for the at least a portion of the plurality of SL elements based on a triangulation using a distance between the SL projector and the imaging device.

20. The method of claim 19 , wherein generating the depth map includes:

determining a topology based on normal vectors of the at least a portion of the plurality of SL elements; and

determining a normal vector for a location in the frame of the depth image data that is unilluminated by the plurality of SL elements based on the topology.

Assignments (3)
CHANGE OF NAME Recorded Jun 8, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060315/0224 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2020
From: WHELAN, THOMAS JOHN; LOVEGROVE, STEVEN JOHN; ZHU, ZHAOMING; NEWCOMBE, RICHARD ANDREW
To: OCULUS VR, LLC
Reel/Frame 051527/0023 →
CHANGE OF NAME Recorded Sep 12, 2018
From: OCULUS VR, LLC
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 047178/0616 →
Continuity (1)
Provisional Application 62679765 · Jun 1, 2018
Cited By (1)
US 12,711,710