06 SurfaceReconstruction
06 SurfaceReconstruction
University of Washington
Seattle, WA 98195
[19] Emanuel Sachs, Andrew Roberts, and David Stoops. 3-Draw: [24] Stan Sclaroff and Alex Pentland. Generalized implicit func-
A tool for designing 3D shapes. IEEE Computer Graphics tions for computer graphics. Computer Graphics (SIGGRAPH
and Applications, 11(6):18–26, November 1991. ’91 Proceedings), 25(4):247–250, July 1991.
[20] Hanan Samet. Applications of Spatial Data Structures. [25] G. Taubin. Estimation of planar curves, surfaces and nonpla-
Addison-Wesley, 1990. nar space curves defined by implicit equations, with applica-
tions to edge and range image segmentation. Technical Report
[21] Philip J. Schneider. Phoenix: An interactive curve design sys- LEMS-66, Division of Engineering, Brown University, 1990.
tem based on the automatic fitting of hand-sketched curves.
Master’s thesis, Department of Computer Science, U. of Wash- [26] B. C. Vemuri. Representation and Recognition of Objects
ington, 1988. From Dense Range Maps. PhD thesis, Department of Electri-
cal and Computer Engineering, University of Texas at Austin,
[22] R. B. Schudy and D. H. Ballard. Model detection of cardiac 1987.
chambers in ultrasound images. Technical Report 12, Com- [27] B. C. Vemuri, A. Mitiche, and J. K. Aggarwal. Curvature-
puter Science Department, University of Rochester, 1978. based representation of objects from range data. Image and
[23] R. B. Schudy and D. H. Ballard. Towards an anatomical model Vision Computing, 4(2):107–114, 1986.
of heart motion as seen in 4-d cardiac ultrasound data. In [28] G. Wyvill, C. McPheeters, and B. Wyvill. Data structures
Proceedings of the 6th Conference on Computer Applications for soft objects. The Visual Computer, 2(4):227–234, August
in Radiology and Computer-Aided Analysis of Radiological 1986.
Images, 1979.
(a) Traversal order of orientation propagation (b) Oriented tangent planes (Tp (xi ))
(c) Cubes visited during contouring (d) Estimated signed distance (shown as p ; z)
(e) Output of modified marching cubes (f) Final surface after edge collapses
Figure 2: Reconstruction of ray-traced CSG object (continued).
(a) Original mesh (b) Result of naive orientation propagation
(c) Reconstructed bordered surface (d) Reconstructed surface with complex geometry
(e) Reconstruction from cylindrical range data (f) Reconstruction from contour data
Figure 3: Reconstruction examples.
Eurographics Symposium on Geometry Processing (2006)
Konrad Polthier, Alla Sheffer (Editors)
Abstract
We show that surface reconstruction from oriented points can be cast as a spatial Poisson problem. This Poisson
formulation considers all the points at once, without resorting to heuristic spatial partitioning or blending, and
is therefore highly resilient to data noise. Unlike radial basis function schemes, our Poisson approach allows a
hierarchy of locally supported basis functions, and therefore the solution reduces to a well conditioned sparse
linear system. We describe a spatially adaptive multiscale algorithm whose time and space complexities are pro-
portional to the size of the reconstructed model. Experimenting with publicly available scan data, we demonstrate
reconstruction of surfaces with greater detail than previously achievable.
0
1. Introduction 0 0 0
0
0 1
Reconstructing 3D surfaces from point samples is a well 0
0 1 1
studied problem in computer graphics. It allows fitting of 1
0
0 1
scanned data, filling of surface holes, and remeshing of ex- 0 0
1
isting models. We provide a novel approach that expresses 0 0
surface reconstruction as the solution to a Poisson equation. Oriented
G points Indicator gradient Indicator function Surface
c The Eurographics Association 2006.
Kazhdan et al. / Poisson Surface Reconstruction
Moreover, in many implicit fitting schemes, the value Local fitting methods consider subsets of nearby points at
of the implicit function is constrained only near the sam- a time. A simple scheme is to estimate tangent planes and
ple points, and consequently the reconstruction may con- define the implicit function as the signed distance to the tan-
tain spurious surface sheets away from these samples. Typ- gent plane of the closest point [HDD∗ 92]. Signed distance
ically this problem is attenuated by introducing auxiliary can also be accumulated into a volumetric grid [CL96]. For
“off-surface” points (e.g. [CBC∗ 01, OBA∗ 03]). With Pois- function continuity, the influence of several nearby points
son surface reconstruction, such surface sheets seldom arise can be blended together, for instance using moving least
because the gradient of the implicit function is constrained at squares [ABCO∗ 01,SOS04]. A different approach is to form
all spatial points. In particular it is constrained to zero away point neighborhoods by adaptively subdividing space, for
from the samples. example with an adaptive octree. Blending is possible over
an octree structure using a multilevel partition of unity, and
Poisson systems are well known for their resilience in the
the type of local implicit patch within each octree node can
presence of imperfect data. For instance, “gradient domain”
be selected heuristically [OBA∗ 03].
manipulation algorithms (e.g. [FLW02]) intentionally mod-
ify the gradient data such that it no longer corresponds to any Our Poisson reconstruction combines benefits of both
real potential field, and rely on a Poisson system to recover global and local fitting schemes. It is global and therefore
the globally best-fitting model. does not involve heuristic decisions for forming local neigh-
There has been broad interdisciplinary research on solv- borhoods, selecting surface patch types, and choosing blend
ing Poisson problems and many efficient and robust methods weights. Yet, the basis functions are associated with the am-
have been developed. One particular aspect of our problem bient space rather than the data points, are locally supported,
instance is that an accurate solution to the Poisson equation and have a simple hierarchical structure that results in a
is only necessary near the reconstructed surface. This allows sparse, well-conditioned system.
us to leverage adaptive Poisson solvers to develop a recon- Our approach of solving an indicator function is sim-
struction algorithm whose spatial and temporal complexities ilar to the Fourier-based reconstruction scheme of Kazh-
are proportional to the size of the reconstructed surface. dan [Kaz05]. In fact, we show in Appendix A that our basic
Poisson formulation is mathematically equivalent. Indeed,
2. Related Work the Fast Fourier Transform (FFT) is a common technique
for solving dense, periodic Poisson systems. However, the
Surface reconstruction The reconstruction of surfaces FFT requires O(r3 log r) time and O(r3 ) space where r is
from oriented points has a number of difficulties in prac- the 3D grid resolution, quickly becoming prohibitive for fine
tice. The point sampling is often nonuniform. The positions resolutions. In contrast, the Poisson system allows adaptive
and normals are generally noisy due to sampling inaccuracy discretization, and thus yields a scalable solution.
and scan misregistration. And, accessibility constraints dur-
ing scanning may leave some surface regions devoid of data. Poisson problems The Poisson equation arises in numer-
Given these challenges, reconstruction methods attempt to ous applications areas. For instance, in computer graph-
infer the topology of the unknown surface, accurately fit (but ics it is used for tone mapping of high dynamic range im-
not overfit) the noisy data, and fill holes reasonably. ages [FLW02], seamless editing of image regions [PGB03],
Several approaches are based on combinatorial structures, fluid mechanics [LGF04], and mesh editing [YZX∗ 04].
such as Delaunay triangulations (e.g. [Boi84, KSO04]), al- Multigrid Poisson solutions have even been adapted for effi-
pha shapes [EM94, BBX95, BMR∗ 99]), or Voronoi dia- cient GPU computation [BFGS03, GWL∗ 03].
grams [ABK98, ACK01]. These schemes typically create a The Poisson equation is also used in heat transfer and
triangle mesh that interpolates all or a most of the points. diffusion problems. Interestingly, Davis et al [DMGL02]
In the presence of noisy data, the resulting surface is often use diffusion to fill holes in reconstructed surfaces. Given
jagged, and is therefore smoothed (e.g. [KSO04]) or refit to boundary conditions in the form of a clamped signed dis-
the points (e.g. [BBX95]) in subsequent processing. tance function d, their diffusion approach essentially solves
Other schemes directly reconstruct an approximating sur- the homogeneous Poisson equation ∆d = 0 to create an im-
face, typically represented in implicit form. We can broadly plicit surface spanning the boundaries. They use a local iter-
classify these as either global or local approaches. ative solution rather than a global multiscale Poisson system.
Global fitting methods commonly define the implicit Nehab et al [NRDR05] use a Poisson system to fit a 2.5D
function as the sum of radial basis functions (RBFs) centered height field to sampled positions and normals. Their ap-
at the points (e.g. [Mur91, CBC∗ 01, TO02]). However, the proach fits a given parametric surface and is well-suited to
ideal RBFs (polyharmonics) are globally supported and non- the reconstruction of surfaces from individual scans. How-
decaying, so the solution matrix is dense and ill-conditioned. ever, in the case that the samples are obtained from the union
Practical solutions on large datasets involve adaptive RBF of multiple scans, their approach cannot be directly applied
reduction and the fast multipole method [CBC∗ 01]. to obtain a connected, watertight surface.
c The Eurographics Association 2006.
Kazhdan et al. / Poisson Surface Reconstruction
Proof: To prove this, we show equality for each of the com- Solving the Poisson problem Having formed a vector field
ponents of the vector field. Computing the partial derivative V , we want to solve for the function χ̃ such that ∇χ̃ = V .
of the smoothed indicator function with respect to x, we get: However, V is generally not integrable (i.e. it is not curl-
free), so an exact solution does not generally exist. To find
∂ ∂ the best least-squares approximate solution, we apply the di-
χ ∗ F̃ = F̃(q − p)d p
∂ x q0 ∂ x q=q0 M
M
vergence operator to form the Poisson equation
∂ ∆χ̃ = ∇ · V .
= − F̃(q0 − p) d p
M ∂x
In the next section, we describe our implementation of
= − ∇ · F̃(q0 − p), 0, 0 d p
M these steps in more detail.
= F̃p (q0 ), 0, 0 , N∂ M (p) d p.
∂M
4. Implementation
(The first equality follows from the fact that χM is equal to
zero outside of M and one inside. The second follows from We first present our reconstruction algorithm under the as-
the fact that (∂ /∂ q)F̃(q − p) = −(∂ /∂ p)F̃(q − p). The last sumption that the point samples are uniformly distributed
follows from the Divergence Theorem.) over the model surface. We define a space of functions with
high resolution near the surface of the model and coarser
A similar argument shows that the y-, and z-components resolution away from it, express the vector field V as a linear
of the two sides are equal, thereby completing the proof. sum of functions in this space, set up and solve the Poisson
equation, and extract an isosurface of the resulting indicator
Approximating the gradient field Of course, we cannot function. We then extend our algorithm to address the case
evaluate the surface integral since we do not yet know the of non-uniformly sampled points.
c The Eurographics Association 2006.
Kazhdan et al. / Poisson Surface Reconstruction
4.1. Problem Discretization node function. Since the sampling width is 2−D and the sam-
ples all fall into leaf nodes of depth D, the error arising from
First, we must choose the space of functions in which to dis-
the clamping can never be too big (at most, on the order of
cretize the problem. The most straightforward approach is
half the sampling width). In the next section, we show how
to start with a regular 3D grid [Kaz05], but such a uniform
the error can be further reduced by using trilinear interpola-
structure becomes impractical for fine-detail reconstruction,
tion to allow for sub-node precision.
since the dimension of the space is cubic in the resolution
while the number of surface triangles grows quadratically. Finally, since a maximum tree depth of D corresponds to a
Fortunately, an accurate representation of the implicit sampling width of 2−D , the smoothing filter should approxi-
function is only necessary near the reconstructed surface. mate a Gaussian with variance on the order of 2−D . Thus, F
This motivates the use of an adaptive octree both to repre- should approximate a Gaussian with unit-variance.
sent the implicit function and to solve the Poisson system For efficiency, we approximate the unit-variance Gaussian
(e.g. [GKS02, LGF04]). Specifically, we use the positions of by a compactly supported function so that (1) the resulting
the sample points to define an octree O and associate a func- Divergence and Laplacian operators are sparse and (2) the
tion Fo to each node o ∈ O of the tree, choosing the tree and evaluation of a function expressed as the linear sum of Fo at
the functions so that the following conditions are satisfied: some point q only requires summing over the nodes o ∈ O
1. The vector field V can be precisely and efficiently repre- that are close to q. Thus, we set F to be the n-th convolution
sented as the linear sum of the Fo . of a box filter with itself resulting in the base function F:
2. The matrix representation of the Poisson equation, ex- 1 |t| < 0.5
pressed in terms of the Fo can be solved efficiently. F(x, y, z) ≡ (B(x)B(y)B(z))∗n with B(t) =
0 otherwise
3. A representation of the indicator function as the sum of
the Fo can be precisely and efficiently evaluated near the Note that as n is increased, F more closely approximates
surface of the model. a Gaussian and its support grows larger; in our implemen-
tation we use a piecewise quadratic approximation with
Defining the function space Given a set of point samples n = 3. Therefore, the function F is supported on the domain
S and a maximum tree depth D, we define the octree O to be [-1.5, 1.5]3 and, for the basis function of any octree node,
the minimal octree with the property that every point sample there are at most 53 -1 = 124 other nodes at the same depth
falls into a leaf node at depth D. whose functions overlap with it.
olution structure similar to that of traditional wavelet repre- where NgbrD (s) are the eight depth-D nodes closest to s.p
sentations. Finer nodes are associated with higher-frequency and {αo,s } are the trilinear interpolation weights. (If the
functions, and the function representation becomes more neighbors are not in the tree, we refine it to include them.)
precise as we near the surface.
Since the samples are uniform, we can assume that the
Selecting a base function In selecting a base function F, area of a patch Ps is constant and V is a good approxima-
our goal is to choose a function so that the vector field V , tion, up to a multiplicative constant, of the gradient of the
defined in Equation 2, can be precisely and efficiently repre- smoothed indicator function. We will show that the choice
sented as the linear sum of the node functions {Fo }. of multiplicative constant does not affect the reconstruction.
If we were to replace the position of each sample with the
center of the leaf node containing it, the vector field V could 4.3. Poisson Solution
be efficiently expressed as the linear sum of {Fo } by setting:
Having defined the vector field V , we would like to solve for
q
F(q) = F̃ D . the function χ̃ ∈ FO,F such that the gradient of χ̃ is closest
2
to V , i.e. a solution to the Poisson equation ∆χ̃ = ∇ · V .
This way, each sample would contribute a single term (the
normal vector) to the coefficient corresponding to its leaf’s One challenge of solving for χ̃ is that though χ̃ and the
c The Eurographics Association 2006.
Kazhdan et al. / Poisson Surface Reconstruction
coordinate functions of V are in the space FO,F it is not 4.4. Isosurface Extraction
necessarily the case that the functions ∆χ̃ and ∇ · V are. In order to obtain a reconstructed surface ∂ M̃, it is necessary
To address this issue, we need to solve for the function χ̃ to first select an isovalue and then extract the corresponding
such that the projection of ∆χ̃ onto the space FO,F is closest isosurface from the computed indicator function.
to the projection of ∇ · V . Since, in general, the functions We choose the isovalue so that the extracted surface
Fo do not form an orthonormal basis, solving this problem closely approximates the positions of the input samples. We
directly is expensive. However, we can simplify the problem do this by evaluating χ̃ at the sample positions and use the
by solving for the function χ̃ minimizing: average of the values for isosurface extraction:
2 2 1
∑ ∆χ̃ − ∇ · V , Fo = ∑ ∆χ̃ , Fo − ∇ · V , Fo . ∂ M̃ ≡ {q ∈ R3 χ̃ (q) = γ } with γ = ∑ χ̃ (s.p).
o∈O o∈O
|S| s∈S
Thus given the |O|-dimensional vector v whose o-th coordi- This choice of isovalue has the property that scaling χ̃ does
nate is vo = ∇ · V , Fo , the goal is to solve for the function not change the isosurface. Thus, knowing the vector field V
χ̃ such that the vector obtained by projecting the Laplacian up to a multiplicative constant provides sufficient informa-
of χ̃ onto each of the Fo is as close to v as possible. tion for reconstructing the surface.
To express this in matrix form, let χ̃ = ∑o xo Fo , so that To extract the isosurface from the indicator function, we
we are solving for the vector x ∈ R|O| . Then, let us define the use a method similar to previous adaptations of the March-
|O| × |O| matrix L such that Lx returns the dot product of the ing Cubes [LC87] to octree representations (e.g. [WG92,
Laplacian with each of the Fo . Specifically, for all o, o ∈ O, SFYC96, WKE99]). However, due to the nonconforming
the (o, o )-th entry of L is set to: properties of our tree, we modify the reconstruction ap-
proach slightly, defining the positions of zero-crossings
∂ 2 Fo ∂ 2 Fo ∂ 2 Fo along an edge in terms of the zero-crossings computed by
Lo,o ≡ , Fo + , Fo + , Fo . the finest level nodes adjacent to the edge. In the case that an
∂ x2 ∂ y2 ∂ z2
edge of a leaf node has more than one zero-crossing associ-
Thus, solving for χ̃ amounts to finding ated to it, the node is subdivided. As in previous approaches,
we avoid cracks arising when coarser nodes share a face with
min L x − v2 .
x∈R|O| finer ones by projecting the isocurve segments from the faces
of finer nodes onto the face of the coarser one.
Note that the matrix L is sparse and symmetric. (Sparse
because
the Fo are compactly supported, and symmetric be- 4.5. Non-uniform Samples
cause f g = − f g .) Furthermore, there is an inherent
multiresolution structure on FO,F , so we use an approach We now extend our method to the case of non-uniformly dis-
similar to the multigrid approach in [GKS02], solving the tributed point samples. As in [Kaz05], our approach is to es-
restriction Ld of L to the space spanned by the depth d func- timate the local sampling density, and scale the contribution
tions (using a conjugate gradient solver) and projecting the of each point accordingly. However, rather than simply scal-
fixed-depth solution back onto FO,F to update the residual. ing the magnitude of a fixed-width kernel associated with
each point, we additionally adapt the kernel width. This re-
sults in a reconstruction that maintains sharp features in ar-
Addressing memory concerns In practice, as the depth in-
eas of dense sampling and provides a smooth fit in sparsely
creases, the matrix Ld becomes larger and it may not be prac-
sampled regions.
tical to store it in memory. Although the number of entries in
a column of Ld is bounded by a constant, the constant value
can be large. For example, even using a piecewise quadratic Estimating local sampling density Following the ap-
base function F, we end up with as many as 125 non-zero proach of [Kaz05], we implement the density computation
entries in a column, resulting in a memory requirement that using a kernel density estimator [Par62]. The approach is to
is 125 times larger than the size of the octree. estimate the number of points in a neighborhood of a sam-
ple by “splatting” the samples into a 3D grid, convolving the
To address this issue, we augment our solver with a block “splatting” function with a smoothing filter, and evaluating
Gauss-Seidel solver. That is, we decompose the d-th dimen- the convolution at each of the sample points.
sional space into overlapping regions and solve the restric-
We implement the convolution in a manner similar to
tion of Ld to these different regions, projecting the local so-
Equation 3. Given a depth D̂ ≤ D we set the density esti-
lutions back into the d-dimensional space and updating the
mator to be the sum of node functions at depth D̂:
residuals. By choosing the number of regions to be a func-
tion of the depth d, we ensure that the size of the matrix used WD̂ (q) ≡ ∑ ∑ αo,s Fo (q).
by the solver never exceeds a desired memory threshold. s∈S o∈Ngbr (s)
D̂
c The Eurographics Association 2006.
Kazhdan et al. / Poisson Surface Reconstruction
Since octree nodes at lower resolution are associated with 5.1. Resolution
functions that approximate Gaussians of larger width, the We first consider the effects of the maximum octree depth
parameter D̂ provides away for specifying the locality of the on the reconstructed surface.
density estimation, with smaller values of D̂ giving sampling
density estimates over larger regions. Figure 3 shows our reconstruction results for the “dragon”
model at octree depths 6, 8, and 10. (In the context of recon-
Computing the vector field Using the density estimator, struction on a regular grid, this would correspond to reso-
we modify the summation in Equation 3 so that each sam- lutions of 643 , 2563 , and 10243 , respectively.) As the tree
ple’s contribution is proportional to its associated area on the depth is increased, higher-resolution functions are used to fit
surface. Specifically, using the fact that the area is inversely the indicator function, and consequently the reconstructions
proportional to sampling density, we set: capture finer detail. For example, the scales of the dragon,
which are too fine to be captured at the coarsest resolution
V (q) ≡ 1
∑ ∑ αo,s Fo (q). begin appearing and become more sharply pronounced as
s∈S WD̂ (s.p) o∈Ngbr (s) the octree depth is increased.
D
V (q) ≡ 1
∑W (s.p) ∑ αo,s Fo (q).
s∈S D̂ o∈NgbrDepth(s.p) (s)
5. Results
To evaluate our method we conducted a series of experi- 5.2. Comparison to Previous Work
ments. Our goal was to address three separate questions:
We compare the results of our reconstruction algorithm
How well does the algorithm reconstruct surfaces? How
to the results obtained using Power Crust [ACK01], Ro-
does it compare to other reconstruction methods? And, what
bust Cocone [DG04], Fast Radial Basis Functions (Fas-
are its performance characteristics?
tRBF) [CBC∗ 01], Multi-Level Partition of Unity Implicits
Much practical motivation for surface reconstruction de- (MPU) [OBA∗ 03], Surface Reconstruction from Unorga-
rives from 3D scanning, so we have focused our experiments nized Points [HDD∗ 92], Volumetric Range Image Process-
on the reconstruction of 3D models from real-world data. ing (VRIP) [CL96], and the FFT-based method of [Kaz05].
c The Eurographics Association 2006.
Kazhdan et al. / Poisson Surface Reconstruction
c The Eurographics Association 2006.
Kazhdan et al. / Poisson Surface Reconstruction
Limitation of our approach A limitation of our method The running time and memory performance of our method
is that it does not incorporate information associated with in reconstructing the Stanford Bunny at a depth of 9 is com-
the acquisition modality. Figure 6 shows an example of this pared to the performance of related methods in Table 2. Al-
in the reconstruction at the base of the Buddha. Since there though in this experiment, our method is neither fastest nor
are no samples between the two feet, our method (right) most memory efficient, its quadratic nature makes it scalable
connects the two regions. In contrast, the ability to use sec- to higher resolution reconstructions. As an example, Fig-
ondary information such as line of sight allows VRIP (left) ure 8 shows a reconstruction of the head of Michelangelo’s
to perform the space carving necessary to disconnect the two David at a depth of 11 from a set of 215,613,477 samples.
feet, resulting in a more accurate reconstruction. The reconstruction was computed in 1.9 hours and 5.2GB
of RAM, generating a 16,328,329 triangle model. Trying
to compute an equivalent reconstruction with methods such
5.3. Performance and Scalability
as the FFT approach would require constructing two voxel
Table 1 summarizes the temporal and spatial efficiency of grids at a resolution of 20483 and would require in excess of
our algorithm on the “dragon” model, and indicates that the 100GB of memory.
c The Eurographics Association 2006.
Kazhdan et al. / Poisson Surface Reconstruction
Figure 8: Several images of the reconstruction of the head of Michelangelo’s David, obtained running our algorithm with a maximum tree
depth of 11. The ability to reconstruct the head at such a high resolution allows us to make out the fine features in the model such as the inset
iris, the drill marks in the hair, the chip on the eyelid, and the creases around the nose and mouth.
Method Time Peak Memory # of Tris. • Incorporate line-of-sight information from the scanning
Power Crust 380 2653 554,332 process into the solution process.
Robust Cocone 892 544 272,662 • Extend the system to allow out-of-core processing for
FastRBF 4919 796 1,798,154 huge datasets.
MPU 28 260 925,240
Hoppe et al 1992 70 330 950,562 Acknowledgements
VRIP 86 186 1,038,055
FFT 125 1684 910,320 The authors would like to express their thanks to the Stan-
Poisson 263 310 911,390 ford 3D Scanning Repository for their generosity in dis-
tributing their 3D models. The authors would also like to
Table 2: The running time (in seconds), the peak memory usage express particular gratitude to Szymon Rusinkiewicz and
(in megabytes), and the number of triangles in the reconstructed
Benedict Brown for sharing valuable experiences and ideas,
surface of the Stanford Bunny generated by the different methods.
and for providing non-rigid body aligned David data.
6. Conclusion
We have shown that surface reconstruction can be expressed References
as a Poisson problem, which seeks the indicator function that
[ABCO∗ 01] A LEXA M., B EHR J., C OHEN -O R D., F LEISHMAN
best agrees with a set of noisy, non-uniform observations,
S., L EVIN D., S ILVA C.: Point set surfaces. In Proc. of the
and we have demonstrated that this approach can robustly Conference on Visualization ’01 (2001), 21–28.
recover fine detail from noisy real-world scans.
[ABK98] A MENTA N., B ERN M., K AMVYSSELIS M.: A new
There are several avenues for future work: Voronoi-based surface reconstruction algorithm. Computer
• Extend the approach to exploit sample confidence values. Graphics (SIGGRAPH ’98) (1998), 415–21.
c The Eurographics Association 2006.
Kazhdan et al. / Poisson Surface Reconstruction
[ACK01] A MENTA N., C HOI S., KOLLURI R.: The power crust, [NRDR05] N EHAB D., RUSINKIEWICZ S., DAVIS J., R A -
unions of balls, and the medial axis transform. Computational MAMOORTHI R.: Efficiently combining positions and normals
Geometry: Theory and Applications 19 (2001), 127–153. for precise 3D geometry. TOG (SIGGRAPH ’05) 24 (2005).
[BBX95] BAJAJ C., B ERNARDINI F., X U G.: Automatic recon- [OBA∗ 03] O HTAKE Y., B ELYAEV A., A LEXA M., T URK G.,
struction of surfaces and scalar fields from 3d scans. In SIG- S EIDEL H.: Multi-level partition of unity implicits. TOG (2003),
GRAPH (1995), 109–18. 463–470.
[BFGS03] B OLZ J., FARMER I., G RINSPUN E., S CHRÖDER P.: [Par62] PARZEN E.: On estimation of a probability density func-
Sparse matrix solvers on the GPU: Conjugate gradients and tion and mode. Ann. Math Stat. 33 (1962), 1065–1076.
multigrid. TOG 22 (2003), 917–924.
[PGB03] P ÉREZ P., G ANGNET M., B LAKE A.: Poisson image
[BMR∗ 99] B ERNARDINI F., M ITTLEMAN J., RUSHMEIER H., editing. TOG (SIGGRAPH ’03) 22 (2003), 313–318.
S ILVA C., TAUBIN G.: The ball-pivoting algorithm for surface
[SFYC96] S HEKHAR R., FAYYAD E., YAGEL R., C ORNHILL J.:
reconstruction. IEEE TVCG 5 (1999), 349–359.
Octree-based decimation of marching cubes surfaces. In IEEE
[Boi84] B OISSONNAT J.: Geometric structures for three dimen- Visualization (1996), 335–342.
sional shape representation. TOG (1984), 266–286.
[SOS04] S HEN C., O’B RIEN J., S HEWCHUK J.: Interpolating
[CBC∗ 01] C ARR J., B EATSON R., C HERRIE H., MITCHEL T., and approximating implicit surfaces from polygon soup. TOG
F RIGHT W., M C C ALLUM B., E VANS T.: Reconstruction and (SIGGRAPH ’04) 23 (2004), 896–904.
representation of 3D objects with radial basis functions. SIG-
[TO02] T URK G., O’B RIEN J.: Modelling with implicit surfaces
GRAPH (2001), 67–76.
that interpolate. In TOG (2002), 855–873.
[CL96] C URLESS B., L EVOY M.: A volumetric method for build-
ing complex models from range images. Computer Graphics [WG92] W ILHELMS J., G ELDER A. V.: Octrees for faster iso-
(SIGGRAPH ’96) (1996), 303–312. surface generation. TOG 11 (1992), 201–227.
[DG04] D EY T., G OSWAMI S.: Provable surface reconstruction [WKE99] W ESTERMANN R., KOBBELT L., E RTL T.: Real-time
from noisy samples. In Proc. of the Ann. Symp. Comp. Geom. exploration of regular volume data by adaptive reconstruction of
(2004), 428–438. iso-surfaces. The Visual Computer 15 (1999), 100–111.
[DMGL02] DAVIS J., M ARSCHNER S., G ARR M., L EVOY M.: [YZX∗ 04] Y U Y., Z HOU K., X U D., S HI X., BAO H., G UO B.,
Filling holes in complex surfaces using volumetric diffusion. In S HUM H.: Mesh editing with Poisson-based gradient field ma-
Int. Symp. 3DPVT (2002), 428–438. nipulation. TOG (SIGGRAPH ’04) 23 (2004), 641–648.
c The Eurographics Association 2006.
PolyFit: Polygonal Surface Reconstruction from Point Clouds
1
Figure 1. Pipeline. (a) Input point cloud. (b) Planar segments. (c) Supporting planes of the initial planar segments. (d) Supporting planes
of the refined planar segments. (e) Candidate faces. (f) Reconstructed model. All planar segments and faces are randomly colored.
2. Related Work from a sparse point cloud. Lin et al. [18] reconstruct
coarse building models by decomposing and fitting a set
In literature, a large body of research on polygonal of piecewise building blocks to the point clouds. By
surface reconstruction from point clouds aim at obtaining structuring and resampling planar primitives, Lafarge and
dense polygonal surfaces [8, 13, 22, 11]. In the last decades, Alliez [12] consolidate the point clouds and then obtain
extracting geometric primitives and identifying their com- surface models by solving a graph-cut problem. Using
bination to infer higher-level structures have become the a min-cut formulation, Verdie et. al. [26] reconstruct
most popular technique for reconstructing piecewise planar watertight buildings from an initial arrangement of planar
objects. In this section, we mainly review approaches that segments. These approaches specialize in reconstructing
focus on primitive extraction, primitive regularization, and urban buildings. Thus, they may not be suitable to handle
primitive- and hypothesis-based reconstruction. general piecewise planar objects. Based on space parti-
Primitive extraction. Researches falling in this cate- tioning and volumetric presentations, [3] and [2] obtain
gory aim at extracting high-quality instances of basic geo- piecewise planar reconstruction by determining if cells are
metric primitives (e.g., plane, cylinder) from point clouds occupied or not. These two techniques require visibility
corrupted by noise and outliers. The common practice information from the acquisition process as input while our
for this particular task is the Random Sample Consensus approach does not require this information.
(RANSAC) algorithm [6] and its variants [28, 24, 14]. Hypothesis-based reconstruction. By making stronger
These methods are reliable when the input data is contam- assumptions on the objects, researchers further regularize
inated by noise and outliers. So in our work, we use an the reconstruction problem and fit compound shapes (i.e.,
efficient implementation of the RANSAC algorithm [24] to a combination of multiple basic primitives) to the point
extract initial planar primitives. clouds [9, 16]. In Li et.al. [16], a set of axis-aligned boxes is
Primitive regularization. By exploiting the prior assembled to approximate the geometry of a building. Their
knowledge about the structure of an object, researchers strategy is generating a non-uniform grid and then selecting
further regularize the extracted primitives. Li et.al. [17] a subset of its cells that have good data support and are
discover global mutual relations between basic primitives smooth. In our work, we generalize this idea to reconstruct
and use such information as constraints to refine the general piecewise planar objects, and our reconstruction is
initial primitives base on local fitting and constrained based on optimization under hard constraints that guarantee
optimization. Monszpart et. al. [19] further exploit this idea manifold and watertight polygonal surface models.
to extract regular arrangements of planes. These methods
focus on inferring and regularizing potential relationship 3. Overview
between structures. However, obtaining manifold and
watertight surface models from the regularized primitives Our method takes as input a point cloud (possibly noisy,
remains unsolved. In our work, we provide a promising incomplete, and with outliers) of a piecewise planar object
framework to this challenging problem based on a and outputs a lightweight polygonal surface model. Our
hypothesizing and selection strategy. method consists of two main parts (see Figure 1):
Primitive-based reconstruction. In contrast with ap- Candidate face generation. We first extract a set of
proaches that focus on obtaining dense polygonal sur- planar segments from the point cloud using RANSAC [24].
faces, exploiting high-level primitives for man-made ob- Considering the detected planar segments may contain
jects became popular in the last years [25, 12, 15, 20, undesired elements due to noise, outliers, and missing data,
26, 16]. Arikan et al. [1] proposed an optimization-based we refine these planar segments by iteratively merging
interactive tool that can reconstruct architectural models plane pairs and fitting new planes. We then clip these
Figure 2. Two planes intersect with each other resulting in four parts (a). (b) to (g) show all possible combinations to ensure a 2-manifold
surface. The edge in (b) and (c) connects two co-planar parts, while in (d) to (g) it introduces sharp edges in the final model.
planes by an enlarged bounding box of the point cloud of the supporting planes for each pair of planar segments.
and compute pairwise intersections of the clipped planes to Then, starting from the pair (si , sj ) with the smallest angle,
hypothesize of the object’s faces. we test if the following two conditions are met. First, the
Face selection. We choose an optimal subset of the angle between the two planes is lower than a threshold,
candidate faces to assemble a manifold and watertight i.e., angle(si , sj ) < θt . Second, more than a specified
polygonal surface model. To do so, we formulate the face number (denoted as Nt ) of points lie on the supporting
selection as a binary linear programming problem. Our planes of both segments. If both conditions are satisfied,
objective function combines three terms that favor data we merge the two planar segments and fit a new supporting
fitting, point coverage, and model complexity, respectively. plane using PCA [10]. We iterate this process until no more
We also formulate hard constraints that ensure the final segment pair can be merged. In our experiments, we choose
model is manifold and watertight. θt = 10◦ and Nt = min(|si |, |sj |)/5, where |si | denotes
the number of supporting points of si . Figure 1 (c) and
4. Candidate Face Generation (d) show the extracted planes before and after refinement
respectively. It should be noted that an alternative approach,
The input to this step is a point cloud P of a piecewise
e.g., [17], can also be used to extract planar segments.
planar object, and the goal is to generate a reasonably large
Pairwise intersecting. To hypothesize the object’s
number of candidate faces.
faces, we crop the supporting planes of all planar segments
Plane extraction. We use the RANSAC-based primitive
by the bounding box of the point cloud. Then, the candidate
detection method proposed by Schnabel et al. [24] to detect
faces (i.e., a superset of the faces of the object) can be
a set of initial planar segments S = {si } from the point
obtained by intersecting the cropped planes. For simplicity,
cloud P . Here si is a set of points whose distances are
we compute pairwise intersections of the cropped planes
smaller than a threshold ε to a plane and each points can be
(see Figure 1 (e)). It should be noted that pairwise inter-
assigned to no more than one plane. This plane is denoted
sections introduce redundant candidate faces. Since most
as the supporting plane of si .
of the redundant faces do not represent actual structures of
Plane refinement. Due to the presence of noise and
an object, they are supported by no or very few (due to noise
outliers (especially for point clouds computed from Multi-
and outliers) point samples. The subsequent optimization-
view Stereo), RANSAC may produce a few undesired
based face selection is designed to favor choosing the most
planar segments. We observed that the undesired planar
confident faces while satisfying certain constraints.
segments usually have arbitrary orientations and poor point
The pairwise intersections maintain incidence informa-
support. Although the later optimization-based face se-
tion of the faces and edges. Each edge of a candidate face
lection procedure is designed to be capable of handling
is either connecting four neighboring candidate faces or
such outliers, there may still cause problems. First, these
representing a boundary. For example in Figure 2 (a), edge e
arbitrarily oriented planes may result in long but very
connects four faces while others are boundaries. We rely on
thin faces and small bumps in the final model. In some
such incidence information to formulate our manifold and
extreme cases, it may also introduce degenerate faces due
watertight constraints for face selection (see Section 5.2).
to the limit of floating point precision. This degeneracy
usually makes the manifold and watertight hard constraints
5. Face Selection
(see Section 5.2) impossible to be satisfied. Second, the
undesired candidate faces results in a larger optimization Given N candidate faces F = {fi |1 ≤ i ≤ N }
problem that is more expensive to be solved. generated in the previous step, we select a subset of these
To tackle this issue, we iteratively refine the initial planar candidate faces that can best describe the geometry of the
segments using an improved plane refinement algorithm object and ensure that the chosen faces form a manifold and
proposed in [15]. Specifically, we first compute the angle watertight polygonal surface. This is achieved through op-
timization. We define multiple energy terms that constitute
our objective function.
5.1. Energy terms
Let variable xi encode if a candidate face fi is chosen
(i.e., xi = 1) or not chosen (i.e., xi = 0), our objective
function consists of three energy terms: data-fitting, model
complexity, and point coverage.
Data-fitting. This term is intended to evaluate the fitting
quality of the faces to the point cloud while accounting for
an appropriate notion of confidence [21]. It is defined to Figure 3. Two examples of point coverage. The α-shape meshes
are in yellow and the candidate faces are in purple. The value
measure a confidence-weighted percentage of points that do
below each figure indicates the coverage ratio of each face.
not contribute to the final reconstruction
N
1 X Model complexity. Given incomplete point clouds
Ef = 1 − xi · support(fi ), (1)
|P | i=1 due to occlusions, the data-fitting term defined in Equa-
tion 1 tends to stubbornly comply with the incomplete
where |P | is the total number of points in P . support(fi ) data, resulting in gaps in the final model. Besides, noise
accounts for a notion of confidence and is defined at each and outliers also tend to introduce gaps and protrusions
point considering its local neighborhood in the reconstructed models. To avoid these defects, we
introduce a model complexity term to encourage simple
X dist(p, f )
support(f ) = (1 − ) · conf (p), structures (i.e., large planar regions). Considering gaps and
ε protrusions result in additional sharp edges, we define the
p,f |dist(p,f )<ε
(2) model complexity term as the ratio of sharp edges in the
where dist(p, f ) measures the Euclidean distance between model
a point p and a face f . We consider only points that are |E|
1 X
ε-close to f , i.e., points p satisfying dist(p, f ) < ε. The Em = corner(ei ), (4)
|E| i=1
confidence term conf (p) measures the local quality of the
point cloud at a point p. It is computed by examining the where |E| denotes the total number of pairwise intersections
local covariance matrices defined at p, as in [23]. In this in the candidate face set. corner(ei ) is an indicator function
work, we compute for p the covariance matrices of its local whose value is determined by the configuration of the two
neighbors at three static scales (i.e., different neighborhood selected faces connected by an edge ei . The intersecting
sizes). Then, conf (p) is defined as edges can be either planar or sharp. For example, the
3
intersecting edges e in Figure 2 (b) and (c) are planar edges
1X 3λ1i λ2 yielding larger planar polygons, but edges in (d) to (g) are
conf (p) = (1 − 1 2 3 ) · i3 , (3)
3 i=1 λi + λi + λi λi sharp edges that will introduce sharp features (if they are
selected in the final model). So corner(ei ) will have a value
where λ1i ≤ λ2i ≤ λ3i are the three eigenvalues of the of 1 if the faces associated with ei introduce a sharp edge
covariance matrix at scale i. conf (p) encode two geometric in the final model. Otherwise, corner(ei ) has a zero value
properties of the point samples near point p. The first meaning the two faces are coplanar.
property 1 − 3λ1 /(λ1 + λ2 + λ3 ) evaluates the quality of Point coverage. To handle missing data caused by oc-
fitting a local tangent plane at p, whose value of 0 indicates clusions, the unsupported regions (i.e., regions not covered
the worst point distribution and value of 1 indicates a by points) of the final model should be as small as possible.
perfectly fitted plane. The second property λ2 /λ3 evaluates To measure the coverage of a face fi , we first project all
the local sampling uniformity. Each eigenvalue ratio takes ε-close points onto fi . We then extract a mesh Miα by
on a value in the range [0, 1] with boundary values 0 and 1 constructing a 2D α-shape [5] from the projected points
corresponding to a perfect line distribution and a uniform (see Figure 3). We use only the points whose projections
disc distribution correspondingly. are inside fi for α-shape construction. We call Miα an α-
Intuitively, the data-fitting term favors choosing faces shape mesh. Intuitively, the α-shape mesh of a set of points
√
that are close to the input points and are supported by ensures that any three points with a circumradius rc ≤ α
densely sampled uniform regions. This term has a value are spanned by a triangle face. Given an appropriate value
in the range [0, 1] where a value of 1 indicates a noise-free of rc , the area of the α-shape mesh surface can provide us a
and outlier-free input data. reliable measure of the coverage of a candidate face by the
input points. Thus, our point coverage energy is defined as
the ratio of the uncovered regions in the model
N
1 X
Ec = xi · (area(fi ) − area(Miα )), (5)
area(M ) i=1
Figure 6. Result without (a) and with (b) plane refinement step.
In (a), the top comprises ten faces originating from three different Figure 7. A building (a) reconstructed without (b) and with (c) the
planes. The red arrows indicate long but very thin polygonal faces. complexity term. The red arrows indicate bumps and gaps.
As can be seen from the number of faces in the final models, tion method lies in the optimization-based face selection
our method can produce lightweight 3D models. We that is designed to favor different aspects necessary for
consider this as the third main advantage of our approach. high-quality reconstructions. Both data fitting and coverage
Timings. Table 1 shows the running times of each are essential requirements. We observed that having only
step for the examples presented in Figure 4. We can see these two terms works perfectly for reasonably complete
that the face selection step is slower compared to primitive datasets, but it is still not sufficient for point clouds with
extraction and candidate face generation. It should be noted significant imperfections (i.e., noise, outliers, and missing
that the construction of the α-shape meshes dominated this data). Figure 7 (b) shows such an example. We can see that
step. Down-sampling of input point clouds may speed up the reconstructed model demonstrates some desired bumps
this process. and gaps. In contrast, with our model complexity term, the
Effect of plane refinement. We tested our algorithm reconstructed model is cleaner and compact (c). To further
on a few data sets by omitting the refinement step. One evaluate the behavior of the model complexity term, we
such example is shown in Figure 6. We can see that even ran our face selection on a dataset by gradually increasing
without the plane refinement step, our optimization still the weight (see Figure 9). Not surprisingly, increasing the
recovers the main structure of this building. However, influence of the model complexity term resulted in less
we observe that the two models have some differences in detailed 3D models. Thus, the model complexity term also
the details. First, the top-most face of the reconstructed provides control over the model details.
polyhedron in (a) is composed of ten candidate faces lying Parameters. The parameters for most examples are as
on three different planes, while in (b) it comprises fewer follows: λf = 0.46, λc = 0.27, and λm = 0.27 (Note
faces originating from the same plane. Second, some that weights in a wide range can produce the same results).
undesired bumpy structures can be avoided with the plane Slightly different weights (λf = 0.3, λc = 0.4, and λm =
refinement step. This is because some initial faces are 0.3) are used for the sofa example in Figure 4 (i), where the
quite close to each other, making the energy terms less background (ground plane) has a much higher density than
distinguishable. Another benefit of the plane refinement the object (sofa), thus the smaller data fitting weight.
step is the gain in efficiency. With plane refinement, Robustness and accuracy. We evaluated the robustness
the total number of candidate faces is reduced from 1185 of our approach by reconstructing from synthetic data
to 348. Accordingly, the run-time of the optimization with an increasing amount of noise (see Figure 10). In
decreased from 1.25 seconds to 0.31 seconds, i.e., more (c), the standard deviation of the noise distribution is
than four times faster. 0.6 meters high, our method still obtained topologically
Effect of the energy terms. The core of our reconstruc- accurate reconstruction. However, a much higher level
Figure 8. Comparison with four state-of-the-art methods on a building dataset. (a) Input point cloud. (b) Model reconstructed by the
Poisson surface reconstruction algorithm [11]. (c) The result of the 2.5D Dual Contouring approach [27]. (d) The result of [15]. (e) The
result of [16]. (f) Our result. The number under each sub-figure indicates the total number of faces in the corresponding model.