• computational geometry;
  • segmentation;
  • point-based methods;
  • methods and applicationsACM CCS: I.3.5 [Computer Graphics]: Computational Geometry and Object Modelling Geometric algorithms;
  • languages;
  • and systems


  1. Top of page
  2. Abstract
  3. 1. Introduction
  4. 2. Related Work
  5. 3. Method
  6. 4. Applications
  7. 5. Discussion
  8. 6. Conclusions
  9. References

We present a method for extracting complex manifolds with an arbitrary number of (self-) intersections from unoriented point clouds containing large amounts of noise. Manifolds are formed in a three-step process. First, small flat neighbourhoods of all possible orientations are created around all points. Next, neighbourhoods are assembled into larger quasi-flat patches, whose overlaps give the global connectivity structure of the point cloud. Finally, curved manifolds are extracted from the patch connectivity graph via a multiple-source flood fill. The manifolds can be reconstructed into meshed surfaces using standard existing surface reconstruction methods. We demonstrate the speed and robustness of our method on several point clouds, with applications in point cloud segmentation, denoising and medial surface reconstruction.

1. Introduction

  1. Top of page
  2. Abstract
  3. 1. Introduction
  4. 2. Related Work
  5. 3. Method
  6. 4. Applications
  7. 5. Discussion
  8. 6. Conclusions
  9. References

Point cloud models of 3D shapes are created by many applications such as surface scanning [PNF*08], stereo reconstruction [RH07], shape processing [RT08b, JR07] and medical imaging [SHG06]. Extracting 3D surfaces from such point clouds is an important task. Many methods exist for reconstructing an approximation of a continuous 2D surface inline image from a point cloud S. However, most such methods pose constraints on the manifold structure of inline image and/or structure of the point cloud S, such as the sampling density of S, availability of normals, and the presence of watertight manifolds. A more restrictive constraint is that inline image is a single non-self-intersecting manifold inline image. Point clouds created by 3D laser scans typically meet this constraint. Other applications, however, can create clouds which sample intersecting manifolds. Examples hereof are medial shape processing [MBC12], where 3D skeleton manifolds naturally intersect; CAD reverse-engineering, where one aims to separate several intersecting shapes from a single point cloud, e.g. when topology information was lost; and dimensionality reduction [SP05].

Extracting multiple (self) intersecting manifold surfaces from unoriented noisy point clouds is very challenging, since this process is ill-posed without prior assumptions on the manifold structure [CLK09]. To address this, we propose to first segment the cloud into subsets which have manifold properties. Our contribution focuses on point cloud segmentation (as opposed to surface reconstruction): Given an unoriented point cloud, we first extract locally quasi-flat point groups. Next, we merge these groups into larger point sets using a global smoothness criterion. No assumption is made on the manifolds' shapes, sizes or (self) intersections. Finally, we reconstruct meshed manifolds from each such point set using existing standard surface reconstruction techniques. Manifold smoothness is controlled by two parameters. Our method is robust against geometric or topological noise, i.e. extracts smooth, clean, manifolds embedded into noisy clouds.

The structure of this paper is as follows. Section 'Related Work' reviews related work. Section 'Method' details the three steps of our method: local point classification (Section 'Local classification'), global classification (Section 'Global classification') and manifold reconstruction (Section 'Manifold reconstruction'). Section 'Applications' presents applications in manifold cloud clustering, denoising and medial surface reconstruction. Section 'Discussion' discusses our method. Section 'Conclusions' concludes the paper and outlines future work directions.

2. Related Work

  1. Top of page
  2. Abstract
  3. 1. Introduction
  4. 2. Related Work
  5. 3. Method
  6. 4. Applications
  7. 5. Discussion
  8. 6. Conclusions
  9. References

Extracting manifold surfaces from noisy point clouds has been researched in several fields, as follows.

Data clustering: If the cloud is a mix of smooth (intersecting) manifolds with noise, extraction can be seen as a data clustering task. Clustering methods use assumptions on the underlying data, e.g. linear manifolds [VMS05, HH05], minimal manifold separation [CH06], knowing the manifold count [SP05] or normal data [RVV06]. Spectral clustering handles curved manifolds, but is slow for intersecting manifolds [Gol09]. K-manifolds [SP05] estimate inter-point geodesic distances via dimensionality reduction [TdSL00] and uses this distance to cluster points via expectation-maximization. K-manifolds extract curved manifolds, but need to know the cluster count, and each point can belong to just one cluster. Since a geodesic distance is used to separate clusters, this fails for non-intersecting clusters (see further Section 'Manifold clustering'. Kushnir et al. [KGB06] cluster manifolds by finding a minimal normalized cut in a weighted graph. This method is not suitable for manifolds with varying sampling density. Difference-of-normals (DoN) [ITHG12] estimate point normals at two spatial scales r1 and r2 by fitting a plane on point neighbourhoods with radii r1 and r2, respectively. Large values of the difference of the two normals indicate shapes in the cloud at a scale between r1 and r2, which can next be segmented from the surrounding cloud.

Outlier removal: Points with statistical properties diverging from the desired smooth manifolds are removed [KNT00, JKN98, Haw80, RMB*08, BKNS00]. Such methods do not address point clouds specifically. However, data statistics (distribution, distances and density) can have a too wide variance for non-uniformly sampled clouds with many noisy outliers, e.g. tens of percents of the cloud size. Sotoodech et al[Sot07] remove outliers recursively, in decreasing distance from the cluster centre. However, this approach does not work well for datasets where noise and data overlap or which contain non-intersecting manifolds far away from the largest data density (see also Section 'Noise removal from (intersecting) manifold clouds'). For such datasets, tensor voting (TV) provides an alternative solution [MM07]. Local geometric structure, or features, are represented using, e.g. second-order symmetric tensors of the covariance matrix created from the neighbours of each point. Each point lying on a (potentially noisy) manifold propagates its local feature in a neighbourhood of user-specified radius σ, by casting a vote to all nearby points. The neighbourhood is determined by a dense ‘voting field’, aligned with the local point. The vote is a tensor generated according to the local tensor and position in the voting field. Accumulating all votes generates the new local tensor or feature. 3D surfaces are finally extracted by isosurfacing the extremal directions of the tensor field [MM07, MT00].

Surface reconstruction: Point-cloud surface reconstruction often uses global priors, e.g. surface smoothness, water tightness, viewpoint invariance and topology [BMR*99, AC01, Flö09, DG03, CSD04, JR07, DLRW09, TOZ*11, SSZCO10, KBH06]. For noisy clouds, we distinguish between denoising [UH07] and surface extraction methods [DG04, SW09, MDD*10]. Chang et al. present a comprehensive comparison of the strengths and limitations of 16 surface reconstruction methods [CLK09]. They show that, apart of their own method, all other reviewed methods cannot handle non-manifold surfaces and/or intersecting manifolds. However, the method of Chang et al. is much slower, and more complicated, than our proposal (see Section 'Discussion').

Our contribution: Our goal is to separate manifold points from an input noisy cloud. Our priors are a set of (self-) intersecting manifolds with or without boundaries. This is more general than typical priors in data clustering, outlier removal and surface reconstruction: Unlike manifold clustering, we allow points to belong to several, one or no manifold (i.e. noise). Unlike outlier removal, we allow a much higher amount and spread of noise. Unlike surface reconstruction, we segment the input cloud into separate manifolds, so we can directly use standard surface reconstruction tools for each such manifold.

3. Method

  1. Top of page
  2. Abstract
  3. 1. Introduction
  4. 2. Related Work
  5. 3. Method
  6. 4. Applications
  7. 5. Discussion
  8. 6. Conclusions
  9. References

Our input is an unoriented point cloud inline image which samples a surface inline image consisting of one or several possibly (self-) intersecting manifolds inline image embedded into noise. We first classify, or label, S into a set of point clouds inline image, such that each inline image is the sampled representation of inline image. The classification handles intersecting manifolds, i.e. inline image can be non-void for inline image. To handle noisy clouds, we allow certain points from S which cannot be classified as belonging to any smooth manifold, to be labelled as noise, and further ignored, i.e. inline image.

Classification has two phases (Figure 1). First, for each small spatial neighbourhood inline image of a point inline image, we compute all point sets inline image which describe quasi-flat manifolds embedded in ν. We call this local classification (Section 'Local classification'). Next, we group the point sets inline image into sets inline image which describe large, compact, manifolds inline image. We call this global classification (Section 'Global classification'). Finally, we reconstruct piecewise linear (meshed) representations of the manifolds inline image from the sets inline image (Section 'Manifold reconstruction').


Figure 1. (a)–(e) Algorithm steps (see Sections 'Local classification'– 3.3 for details). (f) Three manifolds are extracted from a noisy point cloud.

Download figure to PowerPoint

3.1. Local classification

A key property of a 2D manifold is its local flatness. To reason about local flatness, we consider each neighbourhood inline image, inline image. Such neighbourhoods can be defined, e.g. using the k nearest neighbours of inline image (Figure 1a), as detailed further in Section 'Discussion'.

3.1.1. Local surface estimation

To find all manifolds which a neighbourhood inline image admits, we first construct all possible flat surfaces which pass through inline image and two other points inline image, i.e. all triangles inline image. We exclude degenerate triangles which have near-collinear or near-identical vertices. The maximum triangle count is the number of possible 2-permutations without repetition, i.e. inline image where inline image is the neighbourhood size. For each neighbourhood ν, we gather the unoriented normals inline image of all triangles inline image into a normal set inline image (Figure 1b).

Consider now the map inline image where inline image is the unit sphere, which maps from each normal inline image to the sphere point indicated by inline image, seen as a vector starting at the sphere centre. γ is the Gauss map of a surface formed by all triangles in inline image [GP05]. The peaks of γ coincide with the normal directions of the most salient manifolds, since these are the directions along which many triangles, packed in the small spatial area ν, are oriented. Hence, we can use γ to extract our desired quasi-flat manifolds within ν. We distinguish three cases:

  1. If ν samples a quasi-flat surface, all triangles inline image have similar normals inline image, so γ has two clear peaks (at inline image and inline image).
  2. If ν samples the intersection of two or more manifolds, γ has two or more such peak-pairs.
  3. If γ does not have clearly separated peaks, but is a rather flat signal, ν samples a volumetric point distribution rather than a few intersecting quasi-flat surfaces, so we cannot reliably extract clear quasi-flat manifolds from ν.

All points whose normals fall under a peak pair in γ are thus points in ν which belong to the same quasi-flat surface. Hence, if we can reliably find well-separated peaks in γ (which we discuss next in Section 'Segmenting the Gauss map'), we find the desired separate quasi-flat surfaces in ν. If such peaks are far apart in γ, their corresponding quasi-flat surfaces should self-intersect within ν, since ν is small and these surfaces are not parallel. For example, the Gauss map for seven triangles in Figure 1(c) captures the intersection of two quasi-flat surfaces within the considered neighbourhood, one with three triangles and the other one with four triangles.

3.1.2. Segmenting the Gauss map

To separate the different quasi-flat surfaces in a neighbourhood ν, we cluster the neighbourhood's Gauss map γ using the geodesic distance on the sphere inline image between the map's normals, defined as

  • display math(1)

where ‘·’denotes the vector dot product. As we do not know a priori the number of peaks in γ, we use a hierarchical bottom-up, full-linkage, agglomerative clustering on the distance matrix induced by d on inline image [dHINM04]. This yields a dendrogram inline image whose nodes inline image are sets of triangles having similar normals. We next cut inline image at a user-given normal dissimilarity level inline image. For each node inline image in the cut, we collect all vertices of triangles in inline image to create a quasi-flat surface or patch inline image. We also store in each patch inline image all normals of its triangles. We denote this normal set inline image. The threshold inline image gives the amount of curvature we allow for our quasi-flat surfaces over ν. Small inline image values yield more, and flatter, patches inline image. Larger values yield fewer, and more curved, patches. Setting inline image is discussed further in Section 'Discussion'.

From the above, we obtain, for each input point inline image, a set inline image of quasi-flat patches inline image which pass through inline image. The size of the set inline image tells what type of point inline image is: If inline image, one patch passes through inline image, so we say that inline image is a flat point. If inline image, more patches pass through inline image, so we consider that inline image is an intersection point of several manifolds or a flat patch surrounded by noise. For example, a point on the intersection line of the two planes in Figure 1(d) has two patches inline image. Of course, the notions of flatness and intersection used here are subject to the flatness threshold inline image (see also Section 'Discussion'). We do not further distinguish between several intersecting manifolds and noise (both occurring when inline image) explicitly by counting the size of the set inline image, but implicitly, by the global process which joins overlapping similar-orientation patches, as described further in Section 'Global classification'.

Our approach is similar to [WHH10] where, for each point, all local triangulations containing the current point are projected on a Gauss map, which is next clustered. However, [WHH10] use this only to find sharp edges. We use our local patches to reconstruct manifolds past such implicit edges, as described next in Section 'Global classification'.

Conceptually, our patches inline image resemble the splats used in point-based rendering (PBR) [WK04, BSK04]: We also want to approximate the surface (or intersecting surfaces) around each point inline image by a local quasi-flat structure, using the k nearest neighbours of inline image. Like splats, our patches overlap their neighbours, to produce a coverage of the approximated surface. However, splats are typically circular or elliptic in shape. Our patches do not have shape constraints apart from their quasi-planarity. Secondly, a patch explicitly stores all normals of its points (used next to merge patches into manifolds, see Section 'Global classification'). Splats typically use normals from an analytic surface fit to their sample points. During our merging process, we only enforce local quasi-flatness constraints on the resulting manifolds. A splat has typically a global smoothness constraint, due to the above-mentioned surface fit. As such, we use here the term patches to distinguish these from PBR splats.

3.2. Global classification

To find the desired manifolds inline image from the local patch-sets inline image, we assume that each inline image is part of exactly one inline image. We justify this as follows. First, patches are quasi-flat or lightly curved, by construction, so it makes little sense to assign the same patch to two different manifolds. Secondly, any two such patches from the same small neighbourhood ν are oriented at strongly different angles, since our clustering threshold inline image finds strong, separated, peaks in the Gauss map (see also Section 'Discussion'). Thus, when such situations occur, we have two manifolds intersecting in ν, each of the two patches belonging to a different manifold. Thirdly, we assume that all points in any inline image belong to some patch, i.e. that our manifolds are a union of patches inline image.

Assembling patch-sets inline image into manifolds inline image is described next.

3.2.1. Patch connectivity graph

First, we determine how patches in the patch-sets inline image around each point inline image relate to each other. For this, we construct a patch connectivity graph inline image, as follows (Figure 1e). For each patch inline image, we add a graph vertex inline image to V. Given two patches inline image and inline image, we define their surface dissimilarity δ as

  • display math(2)

with d given by Equation (1). If two points inline image, which belong to the same patch-set, have patches inline image whose dissimilarity δ is below a given value inline image, we add an edge to E between inline image and inline image. Since we compare only points inline image from the same patch-set, δ is evaluated only for close, overlapping patches. Although Equation (2) is equivalent to a full linkage between all normals in inline image, inline image, we speed up its computation by adding an edge between two graph nodes as soon as we find two normals inline image which are closer than inline image. We store G as a binary adjacency matrix where each entry defines if two patches are connected or not. Setting inline image is discussed further in Section 'Discussion'.

G could be directly used to find points of the different manifolds inline image, e.g. by finding its connected components via flood filling. However, this only works if manifolds intersect at non-acute angles, which is not always the case (see examples in Section 'Noise removal from (intersecting) manifold clouds'). If manifolds intersect at acute angles, a connected component of G can cover more than a single manifold. Indeed, patches close to manifold intersections and which belong to different manifolds differ too little in terms of normals, and thus get connected when building G. We solve this issue and robustly detect intersecting manifolds from the patch graph G in two steps: seed point detection (Section 'Seed point detection') and manifold point labelling (Section 'Manifold labelling').

3.2.2. Seed point detection

Seed points inline image are cloud points located in quasi-flat areas and far from potential manifold intersections. They are starting points for a flood fill process over G which ultimately delivers our manifold points inline image (Section 'Manifold labelling'). We compute Ω as follows.

  1. Mark all cloud points inline image as unvisited, and set Ω to inline image.
  2. Find an unvisited flat point inline image, i.e. with inline image (Section 'Segmenting the Gauss map').
  3. Add inline image to Ω.
  4. Mark all unvisited flat neighbours inline image of inline image as visited, using a flood fill.
  5. Repeat from step 2 until all points in S are visited.

Ω contains seed points far away from manifold intersections. The point flatness condition prevents the fill to leak from one manifold to another; intersections act as flood barriers, since they have non-flat points. So, we get as many seeds as manifold segments delimited by manifold intersection curves and manifold boundaries, e.g. four seeds for the cross in Figure 1(a), one for each arm.

3.2.3. Manifold labelling

The seed set Ω (Section 'Seed point detection') could be directly used to find manifold connected components separated by intersection curves. Although such results are useful [UH03], we aim to find entire manifolds past intersection curves. For instance, for the shape in Figure 1(f), we want to find three intersecting surfaces (red, green and blue in Figure 1f) rather than 12 quarter surfaces. Since seed points inline image are flat, their patch-sets have a single patch, i.e. inline image. We use this observation as follows (see also Figure 2 for a 2D sketch): For each inline image, we assign a unique ID to inline image (step A). Next, we do a flood-fill over patches (step B). For this flood fill, we use the patch connectivity (stored in G) instead of the point neighbours (given by ν) used to find seeds (Section 'Seed point detection'). Hence, the patch-level flood fill can cross manifold intersections but stays confined to the surface of a single manifold.


Figure 2. Manifold labelling: (A) assignment of IDs 0..3 to seed points inline image; (B) patch-level flood fill yielding matrix B, (C) construction of manifolds and (D) final manifolds (Section 'Manifold labelling'). From the four seed points (marked red), we extract two manifolds with labels 02 and 13, and one intersection point with label 0123.

Download figure to PowerPoint

The patch-level flood fill adds to every patch the IDs of the seeds which flooded through that patch. However, we need this information at point level, i.e. know which seeds flooded through each cloud point. We store this in a compact and fast way by using a binary matrix inline image, where each row inline image is a bit-vector whose non-zero values encode the seeds inline image which flooded through point inline image. We finally find the manifolds inline image as all points which share the same row bit-patterns in B. Hence, we find as many manifolds as different row bit-patterns we have in B.

Points on manifold intersections contain seed point information from all manifolds intersecting at that location. To add such points to their intersecting manifolds, we visit the k-neighbours of a given non-intersection point inline image, and add to the manifolds of inline image those which contain the same seed vertices as inline image. The result is a manifold binary matrix inline image, where rows inline image correspond to the input points inline image and columns to manifolds inline image, and inline image indicates that inline image (Figure 2C). A point can belong to none, one or more manifolds. Points which were not reached from any seed point, and are not seed points themselves, belong to no manifold, and are labelled as noise. Points which belong to more manifolds directly give us the manifold intersection curves, see, e.g. the light-blue point at the intersection in Figure 2(D), or the three yellow intersection curves in Figure 1(f).

Figure 3 sketches two sampled manifolds that intersect at a small acute angle α. If the terminal ‘branches’ of the two manifolds are far enough from each other, phase A finds four seeds (inline image, labelled with IDs 1..4, Figure 3 top). Next, the patch-level flood fill propagates these seeds. If α is very small around the intersection point, each ID will ‘leak’ from its manifold segment to two other segments past the intersection point, e.g. the top-left ID 1 will flood the top-right and bottom-right branches. In phase C, we thus find four different manifold segments, having the unique labels 123, 124, 134 and 234, and one intersection point with label 1234. If α is larger, we have the situation in Figure 2, where we find only two manifolds. When α tends to zero, then a single seed point is found; thus, a single manifold is extracted.


Figure 3. Labelling of manifolds intersecting at acute angles.

Download figure to PowerPoint

3.3. Manifold reconstruction

We have now classified the input cloud S into a set of (intersecting) point-sets inline image, each one sampling a separate manifold. We can now use several existing methods to reconstruct the desired manifold surfaces inline image. A good candidate is the ball pivoting method [BMR*99], which can reconstruct approximating triangle mesh surfaces from manifold point clouds. Figure 1(f) shows the final result on our running example. The three surfaces are correctly extracted from the input cloud. Manifold intersections are marked in yellow. Non-manifold noise points, found by our extraction, are black.

Point classification into separate manifolds is essential to reconstruction quality: Feeding an entire, unclassified, cloud to most existing point cloud reconstruction methods [DG04, DG03, KBH06, AC01], create various artefacts, as shown further in Section 'Surface segmentation and reconstruction' since such methods are not designed to handle noisy (self-) intersecting clouds.

4. Applications

  1. Top of page
  2. Abstract
  3. 1. Introduction
  4. 2. Related Work
  5. 3. Method
  6. 4. Applications
  7. 5. Discussion
  8. 6. Conclusions
  9. References

4.1. Manifold clustering

Manifold clustering of point clouds aims at labelling each point as belonging to a manifold. The labelled cloud can be further applied in manifold learning algorithms [SP05], shape segmentation or as an input for surface reconstruction. We compare next our method with the well-known K-manifolds algorithm [SP05]. As input, we use non-uniformly sampled manifolds embedded in 3D, see Figure 4: Two intersecting curved surfaces (a,b), a four-branch spiral (c,d) and a densely-sampled spiral cut by a sparsely-sampled plane (e,f). Since K-manifolds are very slow (several minutes for a few thousand points), we limited our tests to small clouds only. As shown in Figure 4, our method finds the several manifolds present in the input robustly and eliminates the surrounding noise. In contrast, K-manifolds do handle well intersecting manifolds (Figure 4a vs. Figures 4b and  c vs. Figure 4d), but separates manifolds from noise less well (Figure 4k vs. Figure 4l).


Figure 4. Manifold clustering: Our algorithm (right) versusK-manifolds (left). Top row: clustering results. Bottom row: One selected manifold from the clustering, displayed separately for illustration purposes. Input clouds are similar to examples in [SP05].

Download figure to PowerPoint

4.2. Noise removal from (intersecting) manifold clouds

Noise in point clouds can occlude the underlying surfaces and limit the success of surface reconstruction, clustering and registration [CLK09]. We evaluated the noise-removal ability of our method for clouds sampling various surfaces. For a fraction ϕ of the points in each cloud, we add an outlier close to each cloud point inline image in a random direction and at a random distance from inline image ranging from 0% to 40% of the cloud's size. We next use our classification method (Section 'Method') to find noisy points, i.e. which do not belong to any manifold. When removing these points, we should recover the initial noiseless cloud (ground truth).

We compared our method with the statistical outlier removal (SOR) [RMB*08] and TV [MM07, MT00]. Figure 5 shows the results. We remove considerably more outliers (noise points) than SOR, and produce surfaces very close to the original. Our method works well even in spatially complex areas, see, e.g. the gun handle. TV also effectively removes most noise points. However, TV tends to create spurious surfaces that connect the original surface with nearby noise points (Figure 5, green markers: bunny years, mouse tail connected to body, and thickening of shuttle wings), or it removes details altogether (Figure 5, red markers: shuttle tailwing and gun handle). The ratio of incorrectly kept noise versus incorrectly removed details is strongly influenced by TV's volume sampling resolution [MM07, MT00]: Higher resolutions remove less non-noise points, but also keep too many noise points. Lower resolutions sub-sample the TV tensor field. As such, fewer manifold structures can be traced through noisy areas (so more noise is removed), but also more original detail points are classified as noise and thus removed.


Figure 5. Noise removal from manifold clouds. Noisy shapes (top) are denoised with SOR [RMB*08], TV [MM07] and our method. Zoom-ins show details marked in blue. TV: red markers show incorrectly removed points; green markers show not removed noise.

Download figure to PowerPoint

Figure 6 shows the difference between added and removed points, as percentage of the original input point count, for values of ϕ ranging from 0% (no noise added) to 40% extra noise points added. Values are averaged for all models in Figure 5. We did not include TV in this comparison, since its behaviour with respect to keeping incorrect noise points versus removing correct original points strongly varies with parameter settings (as explained earlier) and also with the actual input cloud. For inline image, both our method and SOR remove some non-noise points (5% and 15%, respectively). Although, ideally, this value should be zero for a cloud consisting only of manifolds, we remove less non-noise points than SOR, which is desirable. As more noise is added, the ratio of added versus removed points stays stable with our method, i.e. we remove only the added noise. In contrast, SOR removes increasingly more points than the added noise—up to almost 20% of the original non-noise points.


Figure 6. Percentage of removed points in excess of added noise points for different noise amounts, averaged for the models in Figure 5. Blue line: our method; red line: SOR method [RMB*08].

Download figure to PowerPoint

4.3. Medial surface segmentation and reconstruction

Medial surfaces, or skeletons, contain the loci of maximally inscribed balls within a given shape [PSS*03, SP99]. Such surfaces consist of tens of manifolds of various sizes which meet along a set of Y-intersection curves [Dam06, LK07, CLK09]. Each manifold corresponds to a separate edge set on the initial surface inline image. Separating medial surfaces into their corresponding manifolds is useful for applications such as shape classification [CLK09], shape matching [CC00] and segmentation [RT08a, RT08c].

Recently, Ma et al. proposed a very efficient GPU method to extract highly accurate medial point clouds of complex 3D shapes [MBC12], thereby making medial surfaces practical for applications on very large models. However, they stress that medial point clouds are of limited use since, for typical applications, one needs mesh-based skeletons. Creating such representations from medial clouds is highly challenging, since typical medial surfaces contain numerous (self-) intersections of very closely spaced, non-watertight, manifolds. Also, small-scale noise on the input shape creates spurious medial sheets, which show up as outlier points in the medial point cloud [SP99, MBC12, MGP10].

Using our method on the medial clouds computed by [MBC12], we can thus simultaneously

  1. eliminate outlier (noise) medial points;
  2. obtain a separate mesh for each medial manifold.

Figure 7 shows this on two medial clouds. Figures 7(e)– (l) show the medial manifolds extracted by our method, coloured differently for display purposes. As visible, our method captures well the complex medial topology and also robustly finds and eliminates the quite many noise points—compare Figures 7(i)–(l) where noise is drawn in black with Figures 7(e)– (h) where we eliminated the noise. Since such noise is unavoidable when extracting medial axes of discrete objects, our method has the added value of acting as a filter that generates clean medial surfaces.


Figure 7. Medial surface reconstruction: (a)–(d) High-accuracy ground truth [TJ12]. (e)–(h) Our method (noise points removed). (i)–(l) Our method, (detected noise rendered in black). (m)–(p) Isotopic reconstruction [DLRW09]. (q)–(t) Tensor voting reconstruction [MM07].

Download figure to PowerPoint

For comparison ground-truth, we next used the high-accuracy medial surface reconstruction method in [TJ12] which works as follows: Given an input mesh shape, the medial cloud is computed following Ma et al. Next, the medial cloud is simplified, or regularized, by eliminating noise points that correspond to small-scale surface details, using the medial importance metric in [RvWT08]. Finally, the input mesh is collapsed onto the simplified (clean) medial cloud to yield the medial mesh, using the so-called feature transform [RvWT08].

Our method produces nearly identical medial surfaces with [TJ12] (Figures 7a–d vs. Figures 7e–h). Differences consist in small-scale holes in our manifolds, which do not exist in the reconstruction of [TJ12]. Upon closer inspection, we see that these holes are due to limitations of the ball pivoting method used following our point classification, and not due to the fact that our method incorrectly classifies manifold points as noise. Hence, we argue that our main goals A and B are reached. [TJ12] does not produce such small holes in the medial surface reconstruction. This is expected, since this method requires the input to be provided as an oriented mesh rather than an unoriented cloud. Moreover, [TJ12] needs the feature transform linking this mesh with its medial cloud, the relatively expensive and complicated importance computation for denoising [RvWT08] (which adversely affects goal A), and delivers a single unstructured medial surface (thus does not satisfy goal B). Although we require far less information (meshless unoriented medial clouds), i.e. use no knowledge that these points encode a medial surface, we can still extract separate and clean medial manifolds.

4.4. Surface segmentation and reconstruction

Segmentation: Given a point cloud S which samples a 3D surface inline image, our method can segment inline image into smooth regions separated by sharp edges. In contrast to many surface segmentation techniques, we do not require inline image to be closed, non-intersecting, be a single manifold, have normals or be provided as a mesh. Figures 10(d)–(l) illustrate our segmentation. Zoom-ins show details to provide insight into the point samples' distribution in various areas. To better visualize the segmented point-sets, we show their reconstructions by ball pivoting. Figure 10(d) shows the segmentation of a cloud from a 3D structured-light scan of a room by a Kinect device. The point sampling is quite uniform, but noisy. The objects in the room are segmented correctly from each other and from the floor. The back wall (red) is only partially segmented since points in that range, far from the camera, are highly noisy, so they do not create a smooth manifold. In Figures 10(e)–(f), the various parts of the rabbit statue (body, plinth faces, inner ear surfaces and heart detail) are correctly found. Since the cloud describes a hollow shape, we also get manifolds for the inner surfaces—see the head, body and plinth cavities in the half-opaque rendering in Figure 10(f). Very thin, highly-curved, details like the screw connecting the head to the heart shape are labelled as noise, as they have a higher local curvature than the imposed flatness inline image (Section 'Segmenting the Gauss map'). Figures 10(i)–(j) show the segmentation of a cloud having several tens of intersecting shapes (sails, mast parts and hull parts). In Figure 10(i), we used a low-resolution cloud (38K points). As seen in the zoom-in, fine details such as the masts have extremely few points. Like for the screw in the rabbit model, few or no patches are found along the mast, so no manifolds are found there (case c of local surface estimation, Section 'Local surface estimation'). Using a higher resolution cloud (image (j), 74K points) finds the detail manifolds along the masts. Figure 10(k) shows a cloud (125K points) of a CAD model of a car engine with over 100 self-intersecting surfaces and highly non-uniform sampling. Figure 10(l) shows the extracted manifolds. As for the ship, too thin and/or sparsely sampled details are classified as outliers and no manifolds are extracted there.

Figure 8 shows the results of the DoN method [ITHG12], as implemented in the PCL library [Ioa13], on to two of our clouds. As the DoN method requires, we first specified the scale range inline image within which features are sought. We did this, by trial and error, so as to obtain the desired manifolds: For the room scene, we want to segment the various objects placed on the floor; for the kitten model, we want to find its medial manifolds. The DoN threshold inline image was set to various values in the range [0.1, 0.5], similar to [ITHG12]. The resulting point clusters from DoN are shown as coloured balls. Input points not segmented by DoN are shown light grey. We see that DoN can separate the small-scale objects from the room floor. Also, a large part of the kitten's medial manifolds are found and separated from each other. However, several issues are visible. First and foremost, the large manifolds present in the room (floor, walls) are not found—since these are not within the user-selected scale range inline image. If we carefully tune both r1 and r2, we can find parts of these manifolds. However, in the same time, we loose the smaller scale object segments. For the kitten medial cloud, segmenting is even more challenging, since its manifolds are less well separated from each other. In contrast, our method better separates both large and small manifolds, for point clouds (Figures 10b and d). This is explained by the fact that our method does not search for manifolds at a given scale range, but tries to construct the largest possible manifolds allowed by the inline image and inline image constraints.

Reconstruction and denoising: We next use our method to reconstruct surfaces formed by several intersecting manifolds embedded into noise, and compare our results (Figure 9) with several surface reconstruction methods, which are well known in the literature, easy to use, and their authors provided their implementations: isotopic reconstruction [DLRW09], ball pivoting [BMR*99], Poisson reconstruction [KBH06] and TV [MM07, MT00]. Our method recovers best the various manifolds embedded into the noisy clouds. Isotopic reconstruction yields the next best results, as it can handle surfaces with boundaries, but still creates many small-scale spurious, non-manifold, surface fragments. Ball pivoting, as expected, cannot handle well dense noise and has problems for highly non-uniform clouds, like the rhino model whose rump has a much lower sampling density than the rest of the model (see zoom-ins in Figure 9). However, if ball pivoting is executed after our clustering method, most noise points are discarded, given the built-in denoising of our method. This drastically improves the effectiveness of ball pivoting (compare Figure 9, first and third rows). Also, since each segmented manifold is smooth, ball-pivoting can be used with a larger rolling-ball radius. This increases the ball pivoting robustness with respect to non-uniform sampling. Comparing the results of ball pivoting with isotopic reconstruction, we see that the latter suffers far less from noise and also does not produce undesired holes. Hence, isotopic reconstruction is a very good candidate to replace ball pivoting in our per-manifold reconstruction following the proposed denoising and classification. Poisson reconstruction, using an octree depth and solver divide value of 10, produces smooth surfaces, but cannot handle well (intersecting) manifolds with boundaries. Finally, TV, used with a volume sampling resolution of 5003 and point-neighbourhood size inline image (for details, see [MM07, MT00]) yields smooth surfaces, but fails in thin areas where parallel surfaces are close to each other, like the thin muzzle and horns of the elk model.


Figure 8. Difference-of-normals (DoN) segmentation [ITHG12] applied to two point clouds (compare with results in Figures 10b and d).

Download figure to PowerPoint


Figure 9. Shape reconstruction comparison for noisy point clouds with intersecting manifolds. From top to bottom, rows: our method, isotopic reconstruction [DLRW09], ball pivoting [BMR*99], Poisson reconstruction [KBH06] and tensor voting [MM07]. Zoom-ins show point cloud details of selected model areas, for getting insight into the sampling distribution.

Download figure to PowerPoint

We also used the isotopic and TV methods to extract manifolds from medial clouds (see Figure 7, two bottom rows). We notice here similar issues as in Figure 9. The isotopic method tends to create small-scale non-manifold noisy details. In contrast, TV creates very smooth surfaces and handles manifold intersection regions very well. However, TV has the tendency to extend the reconstructed manifolds far into the noisy regions in an anisotropic way, i.e. retains noise points which allow a smooth continuation of the medial manifolds but in the same time eliminates noise points from the same areas if these are not aligned with the reconstructed manifolds.

5. Discussion

  1. Top of page
  2. Abstract
  3. 1. Introduction
  4. 2. Related Work
  5. 3. Method
  6. 4. Applications
  7. 5. Discussion
  8. 6. Conclusions
  9. References

Generality: We use a local feature detection for each point-cloud spatial neighbourhood, followed by a global flood fill to find individual manifolds. Our approach has two main contributions. First, we extract manifold clouds from large amounts of embedding noise. Next, we segment manifold clouds from a single input cloud. This allows a direct reuse of existing surface reconstruction or shape analysis methods for point clouds on complex, multi-manifold, noisy clouds, even when such methods were designed to work only on smooth manifold clouds.

Robustness: Our method is robust to outlier noise (Figures 5 and 7). This feature is due to the hierarchical clustering of the local normal maps Section 'Segmenting the Gauss map'). and the global clustering of local quasi-flat patches (Section 'Global classification'). The first clustering separates locally relevant patches from noisy outliers, i.e. acts as a fine-grained noise filter. The second clustering ensures that only similar-orientation patches get grouped into smooth manifolds, i.e. acts as a coarse-grained noise filter. We pose no constraints on the cloud sampling density, as we detect local flatness using k nearest neighbours, rather than range search with a user-prescribed radius, such as, e.g. [ITHG12]. The examples shown here indicate that we can handle clouds with a large amount of sampling-density variation (see Figures 9 and 10). However, we acknowledge our limits: Highly non-uniformly sampled clouds (e.g. Figures 10i and k) will yield many points classified as noise.

Parameters: Our method has three parameters, as follows. The neighbourhood size (k nearest neighbours) should be large enough to create triangles around a given point inline image to represent all possible surfaces crossing inline image, but not too large so that meaningless surfaces are created. On all our models, regardless of sampling density, inline image provided good results. Setting k too large creates, along with the desired patches (that is, oriented along the sampled manifolds), several spurious patches at various random orientations. However, these are typically much fewer than the desired patches, so their effect gets filtered out by the Gauss map segmentation and subsequent patch-level flood fill steps. The local flatness inline image (Section 'Segmenting the Gauss map'), set in this paper to 0.15, models the compromise between the extracted manifold smoothness, robustness to point-displacement noise, and manifold separation accuracy. Figure 11 (top row) illustrates this. Lower inline image yield more manifolds, since we allow normals to locally vary less within a manifold. This, for example, separates the toes and eyes detail of the rhino. Larger inline image values yield fewer, but potentially more curved, manifolds—the toes and eye get merged with the surrounding points. Increasing inline image even further merges the lower and upper leg fragments. For noisy datasets, larger inline image values also have the effect of classifying more points as noise, since less curvature is allowed within a manifold. Classifying points as noise prevents them from being treated by the ball pivoting reconstruction which, in turn, creates the small-scale holes mentioned in Section 'Medial surface segmentation and reconstruction'. However, we argue that such holes are not a classification problem, but a limitation of the post-processing surface reconstruction method being used: If the aim is to remove such holes and still extract smooth manifolds, as controlled by inline image, then one should use a surface reconstruction tool that can handle non-uniformly sampled manifold clouds. If, however, the aim is to extract less smooth manifolds, then inline image should be increased. Another approach would be to set inline image adaptively as a function of the neighbourhood's point distribution. However, how to do this and still guarantee the desired noise removal and manifold intersection detection is a topic of future research.


Figure 10. Shape segmentation examples. (a)–(c) Medial surfaces. (d) Structured light acquisition. (e) and (f) Shape with inner surfaces. (g) and (h) Mechanical shapes. (i)–(l) Mix of different structures with varying sampling density.

Download figure to PowerPoint


Figure 11. Effect of parameters inline image and inline image on manifold extraction results.

Download figure to PowerPoint

The patch similarity inline image (Section 'Patch connectivity graph') acts similarly to inline image, but at a coarser scale (Figure 11, bottom row). Small inline image values yield relatively flat manifolds, i.e. split large manifolds along their crease lines. Large inline image values yield less, and more curved, manifolds. For the rhino model, increasing inline image progressively merges all toe details with the legs, and further merges legs with the rump. For the figures in this paper, we used inline image.

Performance: We implemented our method in C++ using inline image-trees for nearest-neighbour searches [MA12]. We easily added CPU parallelization for local classification (Section 'Local classification') and patch graph building (Section 'Patch connectivity graph'), since points and patches are treated independently. Table 1 shows timings for a single-threaded versus a 4-core 2.8 GHz MacBook 4 GB RAM laptop. Our method scales well with the number of available cores. If desired, a GPU (e.g. CUDA) port could be easily done for further speed-ups. Our CPU method takes roughly half the time of the GPU surface reconstruction from noisy clouds in [SW09]. For the same inputs, the TV surface extraction in [MLT13] takes tens of minutes (at a volume resolution 5003 and inline image). This is not surprising, since TV uses several convolution passes of a large 3D tensor volume with a filter of kernel size σ. Decreasing the volume resolution speeds up TV, but makes it loose small-scale manifold details. The DoN method [ITHG12] has similar costs to our method – 4.9 and 15.96 s for the kitten and room clouds in Figure 8, respectively (for our timings, see Table 1).

Table 1. Timings for models shown in this paper (N = model with added noise (see Figure 5); MS = medial surface (see Figure 7))
    Time (s)Time (s)
Mouse (N)54 8296121 28827.337.52
Space Shuttle (N)106 5803635 90234.6812.58
Glue gun (N)128 88712446 37926.327.31
Stanford bunny (N)42 3224597620.974.86
Intersecting planes30 486304.891.38
Rabbit124 9984040127.892.15
Engine124 48142634 23552.3314.29
Ship38 24067942013.563.72
Ship 274 57311718 23228.027.63
Screwdriver27 15256737.431.96
Rockerarm43 2134132212.123.59
Kinect room135 4021923 73336.879.75
Elephant (MS)173 0122816 23256.3215.51
Cow (MS)252 1805122 30989.7424.04
Scapula (MS)116 9304502237.2810.25
Pig (MS)225 2817615 47173.3820.23
Horse (MS)120 4424210 50339.6511.10
Kitten (MS)43 51023950312.383.53

Computing the patch dissimilarity δ with full-linkage (Equation (2)) is inline image worst case for a patch with N normals on average. N is a few tens for all tested models. The early termination criterion (inline image, Section 'Patch connectivity graph') makes this cost much lower in practice, roughly inline image (see also below). We also tested an average-linkage patch dissimilarity, i.e. using the distance between patch average normals, which is inline image. For the models in this paper, this gave a speed-up of about 20%, with a slight quality decrease—a few small-sized manifolds appear, since averages of two patch normal sets usually differ more than the closest normals of such sets. Given this, we chose to pay the small extra cost of full-linkage for increased manifold quality.

Limitations: If a neighbourhood ν has no apparent 2D manifold structure, but a volumetric or 1D point density, the local Gauss map has no clearly separated peaks. In that case, the neighbourhood is labelled as noise (see, e.g. ship's thinnest masts and its ropes, and the rabbit screw in Figure 10). If this happens for most neighbourhoods, e.g. in the case of a surface sampled overall by a thick point cloud, our manifold extraction will fail. This is expected, as our method is designed to find 2D manifolds only. In this respect, TV is more general, as it can extract 2D surfaces, 1D curves, and junction points where several surfaces or curves intersect. However, for the manifold extraction case, both our method and TV share the same limitation: Given a neighbourhood where n manifolds intersect, if the sampling rate of these manifolds is too low with respect to n, neither method will be able to reliably separate these manifolds, and both methods will classify the neighbourhood as noise. Examples of such configurations are visible for the car engine cloud segmentation (Figure 10k). When the sampling rate is high enough, our method can reliably extract several intersecting manifolds, as illustrated by the medial examples in Figure 7.

Comparison: Many surface reconstruction methods exist, so the comparisons in Section 'Applications' are clearly not exhaustive. Also, our method does aim to replace all general-purpose surface reconstruction methods from point clouds for all input clouds. Specifically, our method should be used when one needs to extract (self) intersecting manifolds with boundaries from noisy clouds. For this context, the only two comparable methods we are aware of are [CLK09] and [MM07]. For instance, [BMR*99] and [DLRW09] can handle boundaries, but are challenged by noise and intersections; [KBH06] can handle noise well, but not manifold boundaries and intersections. [DG04], [SW09], and [MDD*10] can handle noise well, but cannot handle intersections. In the class of methods that explicitly handle intersections, we are around five times faster than [CLK09] (Table 1 vs. Figure 27 in [CLK09]). Note that [CLK09] does not appear to include the medial surface computation cost. If one added that cost, our method is over 15 times faster. Also, [CLK09] is considerably more complex to implement, as it requires a separate robust extraction of 3D medial surfaces from point clouds [LK07]. Compared to [MM07], we are over two orders of magnitude faster, and handle better manifolds which are close to each other.

6. Conclusions

  1. Top of page
  2. Abstract
  3. 1. Introduction
  4. 2. Related Work
  5. 3. Method
  6. 4. Applications
  7. 5. Discussion
  8. 6. Conclusions
  9. References

We have presented a method to robustly segment unoriented point clouds into smooth manifolds. We handle clouds with complex combinations of an unknown number of potentially (self) intersecting, open or closed, manifolds embedded into noise. Using a clustering approach, we find the most probable local quasi-flat surface patches passing through each point, and merge these patches to classify the input points into manifolds or noise. Classified per-manifold points are reconstructed into a mesh using out-of-the-box cloud reconstruction methods. Compared to other methods, we allow input points to be classified as belonging to no manifold (e.g. noise), one manifold, or being on the intersection of several manifolds. This allows handling highly noisy clouds or point clouds having complex structures. The method allows for an easy parallelization, is simple to use and has robust default parameter values. We demonstrate our method on several point clouds with use-cases in manifold extraction from embedding noise, regularized medial-surface reconstruction and point-cloud surface segmentation, and point-cloud reconstruction.

One application area for further study is CAD reverse engineering, i.e. the recovery of separate 3D parts, or components, from a point cloud where topology information has been lost. A different direction is to consider other data than point clouds. By replacing the definitions of spatial neighbourhood and orientation similarity, we could extract smooth manifold-like structures embedded in other spaces, e.g. find bundles or sheets of fibres in tractography datasets or segment multi-variate spatial data.


  1. Top of page
  2. Abstract
  3. 1. Introduction
  4. 2. Related Work
  5. 3. Method
  6. 4. Applications
  7. 5. Discussion
  8. 6. Conclusions
  9. References
  • 1
    [AC01] Amenta N., Choi S.: The power crust. In Proceedings of SMA (2001), ACM, pp. 6573.
  • 2
    [BKNS00] Breunig M., Kriegel H.-P., Ng R., Sander J.: LOF: Identifying density-based local outliers. In Proceedings of SIGMOD (2000), ACM, pp. 93104.
  • 3
    [BMR*99] Bernardini F., Mittleman J., Rushmeier H., Silva C., Taubin G.: The ball-pivoting algorithm for surface reconstruction. IEEE TVCG 5, 4 (1999), 349359.
  • 4
    [BSK04] Botsch M., Spernat M., Kobbelt L.: Phong splatting. In Proceedings of PBG (2004), pp. 2532.
  • 5
    [CC00] Costa L., Cesar R.: Shape Analysis and Classification: Theory and Practice. CRC Press, Boca Raton, FL, USA, 2000.
  • 6
    [CH06] Cao W., Haralick R.: Nonlinear manifold clustering by dimensionality. In Proceedings of ICPR (2006), IEEE, pp. 920924.
  • 7
    [CLK09] Chang M.-C., Leymarie F. F., Kimia B. B.: Surface reconstruction from point clouds by transforming the medial scaffold. CVIU 113, 11 (2009), 11301146.
  • 8
    [CSD04] Cohen-Steiner D., Da F.: A greedy Delaunay-based surface reconstruction algorithm. Visual Computer 20, 1 (2004), 416.
  • 9
    [Dam06] Damon J.: Global medial structure of regions in inline image. Geometry and Topology 10 (2006), 23852429.
  • 10
    [DG03] Dey T., Goswami S.: Tight Cocone: A water-tight surface reconstructor. In Proceedings of SMA (2003), pp. 127134.
  • 11
    [DG04] Dey T., Goswami S.: Provable surface reconstruction from noisy samples. In Proceedings of Annual Symposium on Computational Geometry (SCG) (2004), pp. 428438.
  • 12
    [dHINM04] de Hoon M., Imoto S., Nolan J., Myiano S.: Open source clustering software. Bioinformatics 20, 9 (2004), 14531454.
  • 13
    [DLRW09] Dey T., Li K., Ramos E., Wenger R.: Isotopic reconstruction of surfaces with boundaries. CGF 28, 5 (2009), 13711382.
  • 14
    [Flö09] Flöry S.: Fitting curves and surfaces to point clouds in the presence of obstacles. CAGD 26, 2 (2009), 693707.
  • 15
    [Gol09] Goldberg A. B.: Multi-manifold semi-supervised learning. In Proceedings of AISTATS (2009), pp. 169176.
  • 16
    [GP05] Gauss C. F., Pesic P.: General Investigations of Curved Surfaces. Dover Books on Mathematics. Dover Publ., Mineola, NY, USA, 2005.
  • 17
    [Haw80] Hawkins D. M.: Identification of Outliers. Chapman and Hall, London, 1980.
  • 18
    [HH05] Haralick R., Harpaz R.: Linear manifold clustering. In Proceedings of the International Conference on Machine Learning and Data Mining in Pattern (2005), pp. 132141.
  • 19
    [Ioa13] Ioannou Y.: DoN implementation in the PCL library, 2013. URL:, Accessed on May 2012.
  • 20
    [ITHG12] Ioannou Y., Taati B., Harrap R., Greenspan M.: Difference of normals as a multi-scale operator in unorganized point clouds. ArXiv e-prints (2012). arXiv:1209.1759, Accessed on May 2012.
  • 21
    [JKN98] Johnson T., Kwok I., Ng R.: Fast computation of 2-dimensional depth contours. In Proceedings of KDDM (1998), AAAI Press, pp. 224228.
  • 22
    [JR07] Jalba A., Roerdink J.: Efficient surface reconstruction using Coulomb potentials. IEEE TVCG 13, 6 (2007), 15121519.
  • 23
    [KBH06] Kazhdan M., Bolitho M., Hoppe H.: Poisson surface reconstruction. In Proceedings of SGP (2006), pp. 6170.
  • 24
    [KGB06] Kushnir D., Galun M., Brandt A.: Fast multiscale clustering and manifold identification. Pattern Recognition 39, 10 (2006), 18761891.
  • 25
    [KNT00] Knorr E. M., Ng R. T., Tucakov V.: Distance-based outliers: Algorithms and applications. Journal of Very Large Data Bases 8, 3–4 (2000), 237253.
  • 26
    [LK07] Leymarie F., Kimia B.: The medial scaffold of 3D unorganized point clouds. IEEE TVCG 29, 2 (2007), 313330.
  • 27
    [MA12] Mount D., Arya S.: Approximate nearest neighbor search software, 2012. URL:, Accessed on May 2012.
  • 28
    [MBC12] Ma J., Bae S. W., Choi S.: 3D medial axis point approximation using nearest neighbors and the normal field. Visual Computer 28, 1 (2012), 719.
  • 29
    [MDD*10] Mullen P., DeGoes F., Desbrun M., Cohen D., Alliez P.: Signing the unsigned: Robust surface reconstruction from raw pointsets. CGF 29, 5 (2010), 17331741.
  • 30
    [MGP10] Miklos B., Giesen J., Pauly M.: Discrete scale axis representations for 3D geometry. In Proceedings of ACM SIGGRAPH (2010), pp. 394493.
  • 31
    [MLT13] Medioni G., Lee M.-S., Tang C.-K.: TV3D 3D tensor voting library, 2013. URL:
  • 32
    [MM07] Mordohai P., Medioni G.: Tensor Voting: A Perceptual Organization Approach to Computer Vision and Machine Learning. Morgan & Claypool, San Rafael, CA, USA, 2007.
  • 33
    [MT00] Medioni G., Tang C.-K.: Tensor voting: Theory and applications. In Proceedings of RFIA (2000).
  • 34
    [PNF*08] Pollefeys M., Nistér D., Frahm J. M., Akbarzadeh A., Mordohai P., Clipp B., Engels C., Gallup D., Kim S. J., Merrell P., Salmi C., Sinha S., Talton B., Wang L., Yang Q., Stewénius H., Yang R., Welch G., Towles H.: Detailed real-time urban 3D reconstruction from video. International Journal of Computer Vision 78, 2–3 (2008), 143167.
  • 35
    [PSS*03] Pizer S., Siddiqi K., Szekely G., Damon J., Zucker S.: Multiscale medial loci and their properties. IJCV 55, 2–3 (2003), 155179.
  • 36
    [RH07] Ringbeck T., Hagebeuker B.: A 3D time of flight camera for object detection. Measurement 9 (2007), 867879.
  • 37
    [RMB*08] Rusu R. B., Marton Z. C., Blodow N., Dolha M., Beetz M.: Towards 3D point cloud based object maps for household environments. Robotics and Autonomous Systems 56, 11 (2008), 927941.
  • 38
    [RT08a] Reniers D., Telea A.: Patch-type segmentation of voxel shapes using simplified surface skeletons. CGF 27, 7 (2008), 18371844.
  • 39
    [RT08b] Reniers D., Telea A.: Robust segmentation of voxel shapes using medial surfaces. In Proceedings of the SMI (2008).
  • 40
    [RT08c] Reniers D., Telea A.: Segmenting simplified surface skeletons. In Proceedings of DGCI (2008), Springer, pp. 132145.
  • 41
    [RVV06] Rabbani T., Van Den Heuvel F., Vosselmann G.: Segmentation of point clouds using smoothness constraint. International Archives of Photogrammetry Remote Sensing and Spatial Information Sciences 36, 5 (2006), 16.
  • 42
    [RvWT08] Reniers D., van Wijk J. J., Telea A.: Computing multiscale skeletons of genus 0 objects using a global importance measure. IEEE TVCG 14, 2 (2008), 355368.
  • 43
    [SHG06] Sitek A., Huesman R. H., Gullberg G. T.: Tomographic reconstruction using an adaptive tetrahedral mesh defined by a point cloud. IEEE Transactions on Medical Imaging 25, 9 (2006), 11721179.
  • 44
    [Sot07] Sotoodeh S.: Hierarchical clustered outlier detection in laser scanner point clouds. International Archives of Photogrammetry, Remote Sensing and Spatial Information Sciences 36, (2007), 383388.
  • 45
    [SP99] Siddiqi K., Pizer S.: Medial Representations: Mathematics, Algorithms and Applications. Springer, Berlin, Heidelberg, Germany, 1999.
  • 46
    [SP05] Souvenir R., Pless R.: Manifold clustering. In Proceedings of ICCV (Beijing, China, 2005), pp. 648653.
  • 47
    [SSZCO10] Shalom S., Shamir A., Zhang H., Cohen-Or D.: Cone carving for surface reconstruction. ACM TOG 29, 6 (2010), 547555.
  • 48
    [SW09] Sheung H., Wang C.: Robust mesh reconstruction from unoriented noisy points. In Proceedings of SPM (2009), ACM, pp. 1324.
  • 49
    [TdSL00] Tenenbaum J. B., de Silva V., Langford J. C.: A global geometric framework for nonlinear dimensionality reduction. Science 290, 5500 (2000), 23192323.
  • 50
    [TJ12] Telea A., Jalba A.: Computing curve skeletons from medial surfaces of 3D shapes. In Proceedings of Theory & Practice of Computer Graphics (2012), Eurographics, pp. 132139.
  • 51
    [TOZ*11] Tagliasacchi A., Olson M., Zhang H., Hamarneh G., Cohen-Or D.: VASE: Volume-aware surface evolution for surface reconstruction from incomplete point clouds. CGF 30, 5 (2011), 15631571.
  • 52
    [UH03] Unnikrishnan R., Hebert M.: Robust extraction of multiple structures from non-uniformly sampled data. In Proceedings of IROS (2003), pp. 13221329.
  • 53
    [UH07] Unnikrishnan R., Hebert M.: Denoising manifold and non-manifold point clouds. In Proceedings of BMVC (2007).
  • 54
    [VMS05] Vidal R., Ma Y., Sastry S.: Generalized principal component analysis. IEEE TPAMI 27, 12 (2005), 19451959.
  • 55
    [WHH10] Weber C., Hahmann S., Hagen H.: Sharp feature detection in point clouds. In Proceedings of SMA (2010), pp. 175186.
  • 56
    [WK04] Wu J., Kobbelt L.: Optimized sub-sampling of point sets for surface splatting. CGF 23, 3 (2004), 643652.