Smoothing and robust normal estimation for 3D point clouds
First Claim
1. A computer-implemented process for smoothing 3D models, comprising using a computer to perform process actions for:
- receiving a set of 3D input points representing a 3D input model;
using the set of 3D input points to determine a set of the nearest j neighbors of each input point;
for each input point, fitting a corresponding plane in 3D space to the point and its set of nearest j neighbors;
creating a set of 3D output points by projecting each input point onto its corresponding plane;
using the set of 3D output points to determine a set of the nearest k neighbors of each output point;
for each output point, fitting a corresponding plane in 3D space to the point and its set of nearest k neighbors;
for each output point, computing a corresponding surface normal from the corresponding plane; and
wherein the set of 3D output points and corresponding surface normals represent a smoothed 3D output model.
2 Assignments
0 Petitions
Accused Products
Abstract
A “Point Cloud Smoother” provides various techniques for refining a 3D point cloud or other 3D input model to generate a smoothed and denoised 3D output model. Smoothing and denoising is achieved, in part, by robustly fitting planes to a neighborhood of points around each point of the input model and using those planes to estimate new points and corresponding normals of the 3D output model. These techniques are useful for a number of purposes, including, but not limited to, free viewpoint video (FVV), which, when combined with the smoothing techniques enabled by the Point Cloud Smoother, allows 3D data of videos or images to be denoised and then rendered and viewed from any desired viewpoint that is supported by the input data.
107 Citations
20 Claims
-
1. A computer-implemented process for smoothing 3D models, comprising using a computer to perform process actions for:
-
receiving a set of 3D input points representing a 3D input model; using the set of 3D input points to determine a set of the nearest j neighbors of each input point; for each input point, fitting a corresponding plane in 3D space to the point and its set of nearest j neighbors; creating a set of 3D output points by projecting each input point onto its corresponding plane; using the set of 3D output points to determine a set of the nearest k neighbors of each output point; for each output point, fitting a corresponding plane in 3D space to the point and its set of nearest k neighbors; for each output point, computing a corresponding surface normal from the corresponding plane; and wherein the set of 3D output points and corresponding surface normals represent a smoothed 3D output model. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for smoothing 3D point clouds, comprising:
-
a general purpose computing device; and a computer program comprising program modules executable by the computing device, wherein the computing device is directed by the program modules of the computer program to; receive a 3D point cloud comprising a set of 3D input points; determine a set of the nearest neighbors of each 3D point; fit a plane in 3D space to each 3D point and its set of nearest neighbors; create a set of 3D output points by projecting each input point onto its corresponding plane; determine sets of nearest neighbors for each output point; fit planes to each output point and its set of nearest neighbors; compute a surface normal for each output point from the corresponding plane; and wherein the set of 3D output points and corresponding surface normals represent a smoothed 3D point cloud. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computer-readable storage device having computer executable instructions stored therein for smoothing 3D point-based models, said instructions causing a computing device to execute a method comprising:
-
receiving a set of 3D input points representing a 3D input model; using the set of 3D input points to determine a set of the nearest j neighbors of each input point; for each input point, fitting a corresponding plane in 3D space to the point and its set of nearest j neighbors; creating a set of output 3D points by projecting each input point onto its corresponding plane along a surface normal of that plane; using the set of 3D output points to determine a set of the nearest k neighbors of each output point; for each output point, fitting a corresponding plane in 3D space to the point and its set of nearest k neighbors; for each output point, computing a corresponding surface normal from the corresponding plane; and wherein the set of 3D output points and corresponding surface normals represent a smoothed 3D output model. - View Dependent Claims (17, 18, 19, 20)
-
Specification