Manifold extraction from point clouds
Point clouds are produced by many applications such as 3D scanners or volume processing tools. If the points are located on a surface, it is interesting to explicitly extract this surface for further analysis.
The challenge is to design a method that
- extracts smooth "manifolds" from noisy point clouds
- does not need a-priori knowledge on the number of existing manifolds
- does not need other information than point coordinates
- robustly handles complex, (self)intersecting manifolds
- can handle very large point clouds efficiently
Algorithm
We have developed an algorithm which complies with the above requirements. Its steps are as follows:
- compute normals for all possible "patch" orientations around each point
- cluster normals and patches using a Gauss map
- group clusters into point sets representing large, connected, smooth manifolds
- use ball pivoting to reconstruct each manifold separately
Results
Skeleton reconstruction
Surface reconstruction
Manifold extraction from noisy point clouds
Discussion
The above algorithm has several desirable properties:
- a point can belong to one or more clusters, thus, manifolds. This allows transparent handling of self-intersecting manifolds
- since we output a set of independent manifolds, it is easy to select the "n" most important ones e.g. based on surface. This is useful for extracting large surfaces from noisy point clouds
- the clustering process can be stopped based on local conditions e.g. angles. This allows controlling where a manifold stops
- any surface reconstruction method can be used once we have points clustered in different sets
Acknowledgements
This research is done in cooperation with Jacek Kustra (Philips Research) and Andrei Jalba (TU Eindhoven).