Generating surfaces with arbitrary topologies using signed distance fields
The various embodiments described herein include methods, devices, and systems for generating object meshes. In some embodiments, a method includes obtaining a trained classifier, and an input observation of a 3D object. The method further includes generating a three-pole signed distance field from the input observation using the trained classifier. The method also includes generating an output mesh of the 3D object from the three-pole signed distance field; and generating a display of the 3D object from the output mesh.
1. A method performed at a computing system having memory and one or more processors, the method comprising:
obtaining a trained classifier;
obtaining an input observation of a 3D object;
generating a three-pole signed distance field from the input observation using the trained classifier, wherein generating the three-pole signed distance field from the input observation comprises assigning each point of a plurality of points with a value indicative of whether the point is inside a surface, outside the surface, or undefined;
generating an output mesh of the 3D object from the three-pole signed distance field, wherein generating the output mesh comprises extracting surfaces from between sets of inside and outside values only; and
generating a display of the 3D object from the output mesh.
2. The method of claim 1 , further comprising obtaining a sampling point template;
wherein the three-pole signed distance field is generated using the sampling point template.
3. The method of claim 2 , wherein the three-pole signed distance field includes a three-pole signed distance value for each sampling point in the sampling point template.
4. The method of claim 1 , wherein the input observation includes one or more open surfaces.
5. The method of claim 1 , wherein generating the output mesh of the 3D object from the three-pole signed distance field comprises generating one or more open surfaces for the 3D object.
6. The method of claim 1 , wherein the input observation is point cloud data.
7. The method of claim 1 , wherein the input observation is an image.
8. The method of claim 1 , wherein the output mesh is generated from the three-pole signed distance field using a marching cubes algorithm.
9. The method of claim 1 , wherein the classifier is trained using a set of input sampling points and a corresponding input training observation.
10. The method of claim 9 , wherein the set of input sampling points are generated by applying an octree construction to an input shape.
11. The method of claim 1 , wherein the classifier is trained to learn respective surface functions for a set of input shapes.
12. The method of claim 1 , wherein the classifier comprises a classification neural network.
13. The method of claim 1 , wherein generating the display of the 3D object comprises generating a 2D view of the 3D object at a display device.
14. The method of claim 1 , wherein generating the display of the 3D object comprises generating the display of the 3D object in an artificial-reality environment.
15. A computing system, comprising:
one or more processors;
memory; and
one or more programs stored in the memory and configured for execution by the one or more processors, the one or more programs comprising instructions for:
obtaining a trained classifier;
obtaining an input observation of a 3D object;
generating a three-pole signed distance field from the input observation using the trained classifier, wherein generating the three-pole signed distance field from the input observation comprises assigning each point of a plurality of points with a value indicative of whether the point is inside a surface, outside the surface, or undefined;
generating an output mesh of the 3D object from the three-pole signed distance field, wherein generating the output mesh comprises extracting surfaces from between sets of inside and outside values only; and
generating a display of the 3D object from the output mesh.
16. The computing system of claim 15 , wherein generating the output mesh of the 3D object from the three-pole signed distance field comprises generating one or more open surfaces for the 3D object.
17. The computing system of claim 15 , wherein the one or more programs further comprise instructions for obtaining a sampling point template, wherein the three-pole signed distance field is generated using the sampling point template.
18. A non-transitory computer-readable storage medium storing one or more programs configured for execution by a computing device having one or more processors, memory, and a display, the one or more programs comprising instructions for:
obtaining a trained classifier;
obtaining an input observation of a 3D object;
generating a three-pole signed distance field from the input observation using the trained classifier, wherein generating the three-pole signed distance field from the input observation comprises assigning each point of a plurality of points with a value indicative of whether the point is inside a surface, outside the surface, or undefined;
generating an output mesh of the 3D object from the three-pole signed distance field, wherein generating the output mesh comprises extracting surfaces from between sets of inside and outside values only; and
generating a display of the 3D object from the output mesh.
19. The non-transitory computer-readable storage medium of claim 18 , wherein generating the output mesh of the 3D object from the three-pole signed distance field comprises generating one or more open surfaces for the 3D object.
20. The non-transitory computer-readable storage medium of claim 18 , wherein the one or more programs further comprise instructions for obtaining a sampling point template, wherein the three-pole signed distance field is generated using the sampling point template.