IP Library Granted Patent US 11,315,333
Granted Patent B2
US 11,315,333 · App. 17/080,174 · Granted Apr 26, 2022

Edge detection and smoothing for virtual object presentation

Inventors: Patrik Goorts (Hasselt, BE); Steven Maesen (Hasselt, BE); Daniel Stephen Speelman (Fairview, PA); Robert David Berkebile (Phoenix, MD); Steven Robb Dobos (Plantation, FL)
Assignee: Magic Leap, Inc.
G06T19/006G06T5/002G06T17/20H04N13/344
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,315,333
App. No.
17/080,174
Granted
Apr 26, 2022
Kind
B2
Abstract

Image processing techniques for rendering holographic images are described. Image data captured from cameras can be converted into a triangle mesh. The triangle mesh may be processed by determining the location of edges, normals, and edge distances in the mesh. Mesh and edge smoothing can be performed on the mesh to reduce noise and jagged edges. Additional mesh cleanup and simplification can be performed to reduce the number of vertices and triangles and enhance the qualify of the mesh. Data from the resulting mesh can be transmitted to a receiving device where the mesh data is used to reproduce a holographic image of the image data captured by the depth sensors.

Claims (84)

1. A computer-implemented method comprising:

obtaining image data from a pair of cameras;

determining a mesh of triangles from the image data;

performing mesh smoothing and edge smoothing to remove noise from the mesh of triangles;

removing one or more vertices from the mesh that have a mesh contribution value that does not satisfy a contribution threshold, the mesh contribution value being indicative of a contribution of the one or more vertices to a shape of the mesh of triangles;

storing, in a memory, mesh data that characterizes the mesh after the removing of the one or more vertices from the mesh; and

transmitting the mesh data to a rendering device configured to render a holographic image based on the mesh data.

2. The computer-implemented method of claim 1 , comprising determining edges for the triangles by:

for each vertex in the mesh:

determining a neighboring vertex that is located one vertex away from the vertex;

determining whether the neighboring vertex and the vertex share a common triangle;

determining that the neighboring vertex and the vertex are internal nodes of the mesh when the neighboring vertex and the vertex are shared by at least two triangles; and

determining that the neighboring vertex and the vertex are external nodes of the mesh when the neighboring vertex and the vertex are part of one triangle.

3. The computer-implemented method of claim 2 , comprising determining, for each internal node, a distance to an edge of the mesh, wherein the distance is a number of hops to get to the edge from the internal node.

4. The computer-implemented method of claim 1 , wherein performing mesh smoothing and edge smoothing comprises:

for each vertex:

determining an average location of vertices that share a triangle with the vertex; and

modifying a location of the vertex to be closer to the average location of the vertices that share a triangle with the vertex.

5. The computer-implemented method of claim 1 , wherein performing mesh smoothing and edge smoothing comprises:

identifying a vertex located a determined number of hops from a particular edge of the mesh;

identifying other vertices that share a triangle and that are located the determined number of hops from the particular edge;

determining an average location of the other vertices; and

modifying a location of the vertex such that the location of the vertex is closer to the average location.

6. The computer-implemented method of claim 1 , comprising:

determining that two vertices are separated by a distance that is less than a threshold distance; and

merging the two vertices.

7. The computer-implemented method of claim 1 , wherein removing one or more vertices from the mesh that have a mesh contribution value that does not satisfy the contribution threshold comprises:

identifying a pair of vertices that belong to the same triangle;

determining an effect on the mesh if the pair of vertices are merged; and

determining that the effect on the mesh is less than the contribution threshold.

8. The computer-implemented method of claim 7 , wherein determining the effect on the mesh when the pair of vertices are merged comprises determining a change in angle between all neighboring triangles before and after the pair of vertices are merged.

9. The computer-implemented method of claim 1 , comprising removing one or more triangles from the mesh before removing the one or more vertices by removing one or more triangles that form a submesh in the mesh.

10. The computer-implemented method of claim 1 , wherein the mesh data comprises data indicative of color in one or more images and depth from the pair of cameras to a pixel in the one or more images.

11. A virtual or augmented reality system, comprising:

a frame structure comprising a pair of depth sensors configured to obtain image data;

a computing device coupled to the frame structure, the computing device configured to:

obtain image data from the pair of depth sensors;

determine a mesh of triangles from the image data;

perform mesh smoothing and edge smoothing to remove noise from the mesh of triangles; and

remove one or more vertices from the mesh that have a mesh contribution value that does not satisfy a contribution threshold, the mesh contribution value being indicative of a contribution of the one or more vertices to a shape of the mesh of triangles;

a memory configured to store mesh data that characterizes the mesh after removing the one or more vertices from the mesh; and

a headset configured to render a holographic image based on the mesh data.

12. The virtual or augmented reality system of claim 11 , wherein the computing device is configured to transmit the mesh data to one or more rendering devices configured to render the holographic image based on the mesh data, the one or more rendering devices comprising the headset.

13. The virtual or augmented reality system of claim 11 , wherein, to determine edges for the triangles, the computing device is configured to:

for each vertex in the mesh:

determine a neighboring vertex that is located one vertex away from the vertex;

determine whether the neighboring vertex and the vertex share a common triangle;

determine that the neighboring vertex and the vertex are internal nodes of the mesh when the neighboring vertex and the vertex are shared by at least two triangles; and

determine that the neighboring vertex and the vertex are external nodes of the mesh when the neighboring vertex and the vertex are part of one triangle.

14. The virtual or augmented reality system of claim 11 , wherein, to perform the mesh smoothing and edge smoothing, the computing device is configured to:

for each vertex:

determine an average location of vertices that share a triangle with the vertex; and

modify a location of the vertex to be closer to the average location of the vertices that share a triangle with the vertex.

15. The virtual or augmented reality system of claim 11 , wherein, to perform the mesh smoothing and edge smoothing, the computing device is configured to:

identify a vertex located a determined number of hops from a particular edge of the mesh;

identify other vertices that share a triangle and that are located the determined number of hops from the particular edge;

determine an average location of the other vertices; and

modify a location of the vertex such that the location of the vertex is closer to the average location.

16. A non-transitory computer-readable storage medium comprising instructions, which, when executed by one or more computing devices, cause the one or more computing devices to perform operations comprising:

obtaining image data from a pair of cameras;

determining a mesh of triangles from the image data;

performing mesh smoothing and edge smoothing to remove noise from the mesh of triangles;

removing one or more vertices from the mesh that have a mesh contribution value that does not satisfy a contribution threshold, the mesh contribution value being indicative of a contribution of the one or more vertices to a shape of the mesh of triangles;

storing, in a memory, mesh data that characterizes the mesh after the removing of the one or more vertices from the mesh; and

transmitting the mesh data to a rendering device configured to render a holographic image based on the mesh data.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the one or more computing devices is configured to determine edges for the triangles by:

for each vertex in the mesh:

determining a neighboring vertex that is located one vertex away from the vertex;

determining whether the neighboring vertex and the vertex share a common triangle;

determining that the neighboring vertex and the vertex are internal nodes of the mesh when the neighboring vertex and the vertex are shared by at least two triangles; and

determining that the neighboring vertex and the vertex are external nodes of the mesh when the neighboring vertex and the vertex are part of one triangle.

18. The non-transitory computer-readable storage medium of claim 16 , wherein performing mesh smoothing and edge smoothing comprises:

for each vertex:

determining an average location of vertices that share a triangle with the vertex; and

modifying a location of the vertex to be closer to the average location of the vertices that share a triangle with the vertex.

19. The non-transitory computer-readable storage medium of claim 16 , wherein performing mesh smoothing and edge smoothing comprises:

identifying a vertex located a determined number of hops from a particular edge of the mesh;

identifying other vertices that share a triangle and that are located the determined number of hops from the particular edge;

determining an average location of the other vertices; and

modifying a location of the vertex such that the location of the vertex is closer to the average location.

20. The non-transitory computer-readable storage medium of claim 16 , wherein removing one or more vertices from the mesh that have a mesh contribution value that does not satisfy the contribution threshold comprises:

identifying a pair of vertices that belong to the same triangle;

determining an effect on the mesh if the pair of vertices are merged; and

determining that the effect on the mesh is less than the contribution threshold by determining a change in angle between all neighboring triangles before and after the pair of vertices are merged.

Assignments (2)
SECURITY INTEREST Recorded May 24, 2022
From: MOLECULAR IMPRINTS, INC.; MENTOR ACQUISITION ONE, LLC; MAGIC LEAP, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 060338/0665 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2022
From: GOORTS, PATRIK; MAESEN, STEVEN; SPEELMAN, DANIEL STEPHEN; BERKEBILE, ROBERT DAVID; DOBOS, STEVEN ROBB
To: MAGIC LEAP, INC.
Reel/Frame 059252/0030 →
Continuity (2)
Provisional Application 62926714 · Oct 28, 2019
Related Publication 20210125413A1 · Apr 29, 2021