Methods, apparatus and computer program products that reconstruct surfaces from data point sets
First Claim
1. A method of modeling a three-dimensional (3D) surface, comprising the steps of:
- determining a plurality of stars from a plurality of points pi in a 3D point set S that at least partially describes the 3D surface, by projecting the plurality of points pi onto planes Ti that are each estimated to be tangent about a respective one of the plurality of points pi; and
merging the plurality of stars into a digital model of the 3D surface.
5 Assignments
0 Petitions
Accused Products
Abstract
Methods, apparatus and computer program products provide efficient techniques for reconstructing surfaces from data point sets. These techniques include reconstructing surfaces from sets of scanned data points that have preferably undergone preprocessing operations to improve their quality by, for example, reducing noise and removing outliers. These techniques include reconstructing a dense and locally two-dimensionally distributed 3D point set (e.g., point cloud) by merging stars in two-dimensional weighted Delaunay triangulations within estimated tangent planes. The techniques include determining a plurality of stars from a plurality of points pi in a 3D point set S that at least partially describes the 3D surface, by projecting the plurality of points pi onto planes Ti that are each estimated to be tangent about a respective one of the plurality of points pi. The plurality of stars are then merged into a digital model of the 3D surface.
-
Citations
72 Claims
-
1. A method of modeling a three-dimensional (3D) surface, comprising the steps of:
-
determining a plurality of stars from a plurality of points pi in a 3D point set S that at least partially describes the 3D surface, by projecting the plurality of points pi onto planes Ti that are each estimated to be tangent about a respective one of the plurality of points pi; and
merging the plurality of stars into a digital model of the 3D surface. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 71, 72)
-
-
14. A method of modeling a three-dimensional (3D) surface, comprising the steps of:
-
determining a plurality of stars from a plurality of points pi in a 3D point set S that at least partially describes the 3D surface, by projecting each of the plurality of points pi onto a respective plane; and
merging the plurality of stars into a model of the 3D surface by eliminating edges and triangles from the plurality of stars that are in conflict and merging nonconflicting edges and triangles from the plurality of stars into a 3D surface triangulation. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A method of modeling a three-dimensional (3D) surface, comprising the steps of:
-
determining a plurality of triangulated neighborhoods from a plurality of points in a 3D point set that at least partially describes the 3D surface, by projecting each of the plurality of points and one or more neighboring points in the 3D point set to a respective plane; and
merging the plurality of triangulated neighborhoods into a digital model of the 3D surface. - View Dependent Claims (20)
-
-
21. A method of modeling a surface of an object, comprising the steps of:
-
projecting each point and corresponding set of one or more neighboring points in a point set to a respective plane;
determining a star for each plane; and
merging the stars into a surface triangulation. - View Dependent Claims (22, 23)
-
-
24. A method of modeling a three-dimensional (3D) surface, comprising the steps of:
-
determining an estimated normal for each of a plurality of points in a 3D point set that at least partially describes the 3D surface;
evaluating a differential structure of the estimated normals associated with the plurality of points to estimate principal curvature directions on the 3D surface and classify a respective local neighborhood of each of the plurality of points in terms of its shape characteristic;
determining a respective approximating surface for each of the local neighborhoods; and
denoising the 3D point set by moving each of the plurality of points to a respective approximating surface that is associated with a local neighborhood of the respective point.
-
-
25. A method of modeling a three-dimensional (3D) surface, comprising the steps of:
-
determining a respective set of near points Si for each of a plurality of points pi in a 3D point set S that at least partially describes the 3D surface, where Si⊂
S;
determining a normal bundle for the 3D point set S by determining a respective plane hi of best fit for each of the sets of near points Si and a respective normal ni for each of the planes hi of best fit; and
determining a respective approximating surface for each of the sets of near points Si using the normal bundle to estimate respective principal curvature directions for each of the sets of near points Si.
-
-
26. A method of modeling a three-dimensional (3D) surface, comprising the steps of:
-
determining a respective set of near points Si for each of a first plurality of points p1i in a first 3D point set S1 that at least partially describes the 3D surface, where Si⊂
S1;
fitting each set of near points Si with a respective approximating surface;
denoising the first 3D point set S1 into a second 3D point set S2 by moving at least some of the first plurality of points p1i in the first 3D point set S1 to the approximating surfaces associated with their respective sets of near points Si;
determining a plurality of stars from a second plurality of points p2i in the second 3D point set S2, by projecting the second plurality of points p2i onto planes Ti that are estimated to be tangent about a respective one of the second plurality of points p2i; and
merging the plurality of stars into a digital model of the 3D surface. - View Dependent Claims (27, 28, 29)
-
-
30. A method of modeling a three-dimensional (3D) surface, comprising the steps of:
-
determining a respective set of near points for each of a plurality of points in a 3D point set that at least partially describes the 3D surface;
fitting each set of near points with a respective approximating surface that is a selected from a group consisting of cylinders and quadratic and/or cubic surfaces; and
denoising the 3D point set by moving each of the plurality of points in the 3D point set to the approximating surface associated with its respective set of near points.
-
-
31. A method of modeling a three-dimensional (3D) surface, comprising the steps of:
-
determining a respective set of near points for each of a first plurality of points in a 3D point set that at least partially describes the 3D surface; and
determining an estimated normal for each of the first plurality of points by;
determining a respective plane of best fit for each of the sets of near points; and
determining a normal for each of the planes of best fit.
-
-
32. A method of modeling a three-dimensional (3D) surface, comprising the steps of:
-
determining a respective set of near points for each of a first plurality of points in a 3D point set that at least partially describes the 3D surface;
determining a normal bundle by determining a respective plane of best fit for each of the sets of near points and a normal for each of the planes of best fit; and
determining from the normal bundle at least one respective principal curvature direction for each of the sets of near points.
-
-
33. A method of modeling a three-dimensional (3D) surface, comprising the step of:
denoising a 3D point set that at least partially describes the 3D surface by;
classifying a first neighborhood of points in the 3D point set S1 using a mass distribution matrix of the first neighborhood of points to estimate first normals associated with the first neighborhood of points and a normal distribution matrix of the first normals to estimate principal curvature directions;
fitting an approximate surface, which is selected from a group consisting of cylindrical, quadratic and cubic surfaces, to the first neighborhood of points; and
moving at least one point in the first neighborhood of points to the approximate surface.
-
34. A method of modeling a three-dimensional (3D) surface, comprising the steps of:
identifying a respective subset of near points for each of a plurality of points in a 3D point set that at least partially describes the 3D surface by;
determining dimensions of a near point search space using a random sample of the 3D point set; and
selecting, for each of the plurality of points, a respective set of points in the 3D point set that are within a respective near point search space that is oriented about a respective one of the plurality of points;
determining a plurality of stars from the plurality of points in the 3D point set by projecting the points in each subset of near points to a respective plane; and
merging the plurality of stars into a digital model of the 3D surface. - View Dependent Claims (35, 36)
-
37. A method of reconstructing a surface of an object from a three-dimensional (3D) point cloud data set S derived from scanning the object, comprising the steps of:
-
determining a respective subset of near points Si⊂
S for each of a plurality of points piε
S;
estimating a tangent plane Ti for each subset of near points Si;
projecting each subset of near points Si onto its respective tangent plane Ti;
constructing a respective star of each of the plurality of points pi from the projected points on each of the tangent planes Ti;
merging the stars associated with the tangent planes Ti into a 3D model of the surface by eliminating edges and triangles from the stars that are in conflict and merging nonconflicting edges and triangles from the stars into a 3D surface triangulation; and
filling one or more holes in the 3D surface triangulation.
-
-
38. A method of reconstructing a surface of an object from a three-dimensional dimensional (3D) point cloud, comprising the steps of:
-
determining for each of a first plurality of points in the point cloud a respective approximating surface that fits the point'"'"'s neighborhood;
moving each of the first plurality of points to its respective approximating surface;
determining an estimated tangent plane for each of a second plurality of points that have been moved to a respective approximating surface;
projecting each of the second plurality of points and points in their respective neighborhoods to a respective one of the estimated tangent planes;
constructing stars from points projected to the estimated tangent planes; and
merging the stars into a surface triangulation. - View Dependent Claims (39)
-
-
40. A method of reconstructing a surface of an object from a three-dimensional (3D) point cloud, comprising the steps of:
-
denoising the point cloud;
determining an estimated tangent plane for each of a plurality of points in the denoised point cloud;
projecting each of the plurality of points and other points in its respective neighborhood to a respective one of the estimated tangent planes;
constructing stars from points projected to the estimated tangent planes; and
merging the stars into a surface triangulation. - View Dependent Claims (41, 42, 43)
-
-
44. A method of denoising a three-dimensional (3D) point set, comprising the steps of:
-
estimating directions of a local collection of normals associated with a local collection of data points in the 3D point set by determining eigenvectors of a mass distribution matrix of the local collection of data points; and
estimating directions of curvature associated with the local collection of data points by determining eigenvectors of a normal distribution matrix of the local collection of normals.
-
-
45. A method of modeling a three-dimensional (3D) surface, comprising the steps of:
-
moving each of a plurality of first points in a point set that at least partially describes the 3D surface to a respective approximating surface that is derived by evaluating a respective first point and a plurality of its neighboring points in the point set;
projecting at least one of the first points, which has been moved to an approximating surface, to a first plane that is estimated to be tangent about the at least one of the first points;
projecting a plurality of points in a neighborhood of the at least one of the first points to the first plane; and
generating a star from a plurality of projected points on the first plane.
-
-
46. A method of modeling a three-dimensional (3D) surface, comprising the step of:
determining a star of a first point in a 3D point set that at least partially describes the 3D surface, by;
projecting the first point and second, third and fourth points in a neighborhood of the first point to a plane;
assigning respective weights to each of the second, third and fourth points that are based on projection distance; and
evaluating whether the projection of the fourth point is within an orthocircle defined by a triangle having projections of the first, second and third points as vertices.
-
47. A method of modeling a three-dimensional (3D) surface, comprising the step of:
determining a first star of a first point in a 3D point set that at least partially describes the 3D surface, by;
projecting the first point and first near points in a neighborhood of the first point to a first plane that is estimated to be tangent to the first point;
assigning respective weights to each of the projected first near points that are based on distances between the first near points and the projected first near points; and
connecting the projected first point and at least some of the projected first near points with triangles that share the projected first point as a vertex, by evaluating whether a next projected near point in a first sequence of projected first near points is closer than orthogonal to an orthocenter of a triangle having the projected first point and two of the projected first near points as vertices. - View Dependent Claims (48)
-
49. A method of modeling a three-dimensional (3D) surface, comprising the step of:
sequentially connecting a neighborhood of projected points on a plane to a first projected point on the plane by evaluating whether at least one projected point in the neighborhood of projected points is closer than orthogonal to an orthocircle defined by a triangle containing the first projected point and two projected points in the neighborhood of projected points as vertices, with the neighborhood of projected points having weights associated therewith that are each a function of a projection distance between a respective projected point in the neighborhood of projected points and a corresponding point in a 3D point set that at least partially describes the 3D surface. - View Dependent Claims (50, 51)
-
52. A method of modeling a three-dimensional (3D) surface, comprising the steps of:
-
projecting a first point in a 3D point set that at least partially describes the surface and a set of points in a neighborhood of the first point to a plane that is estimated to be tangent to the surface at the first point; and
creating a weighted Delaunay triangulation comprising triangles that share a projection of the first point in the plane as a vertex and include at least some of the projections of the set of points in the neighborhood of the first point as vertices that are weighted as a function of projection distance. - View Dependent Claims (53)
-
-
54. An apparatus for modeling a three-dimensional (3D) surface, comprising:
-
means for determining a plurality of stars from a plurality of points pi in a 3D point set S that at least partially describes the 3D surface, by projecting the plurality of points pi onto planes Ti that are each estimated to be tangent about a respective one of the plurality of points pi; and
means for merging the plurality of stars into a digital model of the 3D surface. - View Dependent Claims (55, 56, 57, 58)
-
-
59. An apparatus for modeling a three-dimensional (3D) surface, comprising:
-
means for determining a plurality of stars from a plurality of points pi in a 3D point set S that at least partially describes the 3D surface, by projecting each of the plurality of points pi onto a respective plane; and
means for merging the plurality of stars into a model of the 3D surface by eliminating edges and triangles from the plurality of stars that are in conflict and merging nonconflicting edges and triangles from the plurality of stars into a 3D surface triangulation. - View Dependent Claims (60, 61, 62)
-
-
63. A computer program product that models three-dimensional (3D) surfaces and comprises a computer-readable storage medium having computer-readable program code embodied in said medium, said computer-readable program code comprising:
-
computer-readable program code that determines a plurality of stars from a plurality of points pi in a 3D point set S that at least partially describes the 3D surface, by projecting each of the plurality of points pi onto a respective plane; and
computer-readable program code that merges the plurality of stars into a model of the 3D surface by eliminating edges and triangles from the plurality of stars that are in conflict and merging nonconflicting edges and triangles from the plurality of stars into a 3D surface triangulation. - View Dependent Claims (64)
-
-
65. A computer program product that models three-dimensional (3D) surfaces and comprises a computer-readable storage medium having computer-readable program code embodied in said medium, said computer-readable program code comprising:
-
computer-readable program code that projects a first point in a 3D point set that at least partially describes a 3D surface and a set of points in a neighborhood of the first point to a plane that is estimated to be tangent to the 3D surface at the first point; and
computer-readable program code that creates a weighted Delaunay triangulation comprising triangles that share a projection of the first point in the plane as a vertex and include at least some of the projections of the set of points in the neighborhood of the first point as vertices that are weighted as a function of projection distance.
-
-
66. A method of modeling a three-dimensional (3D) surface, comprising the steps of:
-
projecting a first point in a 3D point set that at least partially describes the surface and a set of points in a neighborhood of the first point to a plane that is estimated to be tangent to the surface at the first point; and
creating a weighted Delaunay triangulation comprising triangles that share a projection of the first point in the plane as a vertex and include at least some of the projections of the set of points in the neighborhood of the first point as vertices that are weighted as a function of projection distance, by evaluating whether or not one or more of the projections of the set of points in the neighborhood of the first point are closer than orthogonal to an orthocenter of a first triangle in the weighted Delaunay triangulation. - View Dependent Claims (67, 68, 69, 70)
-
Specification