
neighborhood along the computed normal is then ordered
around p, and the points that have to be connected to it are
identified based on their visibility with respect to previous
triangle edges (here only the current boundaries of the mesh
have to be considered). The remaining points are connected
to p in consecutive pairs, forming triangles.
The advantage of this method is that it preserves all
points and makes no interpolation, over which we want
to have greater control in our algorithm (see Section III).
However, for noisy datasets the smoothness and locally
uniform sampling constraints presented in [4] do not hold.
In our implementation, this problem is solved, and we adapt
the resulting triangle sizes to the surface’s properties. A
similar method is presented in [5], though it suffers from
the limitation of not being able to deal with sharp features,
and it only works with densely sampled point sets.
Our hole filling approach is similar to the one presented in
[8], but we identify holes automatically and grow the triangle
mesh into it by the use of robustly fitted vertices.
The main contributions of our surface reconstruction
method include the following ones:
• adaptability to variable densities. Our method does not
assume smooth surfaces or locally uniform neighbor-
hoods, and can adapt to the point density variations
present in 2.5D datasets. See Section III.
• near realtime performance. We employ fast kd-tree
searches for nearest neighbor computations [9] and op-
timized lookups of previously computed triangle edges,
to achieve extremely fast visibility checks (i.e. tests for
the intersections of triangle edges). See Section VI.
• noise robustness. Estimated surface normals at a point
are computed using a robust Weighted Least Squares
method on the full neighborhood (see Section II), rather
than averaging the normals of the current adjacent
triangles as done in [4].
• memory efficiency. For each point we propagate a
front wave, updated continuously, containing the point’s
associated advancing triangular edges. This has the
advantage that we do not have to remember all the
triangles in the entire dataset, and the lookup of edges
that have to be checked for visibility is performed
locally (as opposed to [4] – see Section II).
• fast updates for incremental scans. By determining the
overlapping area between each new registered data scan
and the existing surface mesh, our method is able to
grow the existing model without recreating the entire
triangular mesh. See Section IV.
• supporting point labels. The proposed surface recon-
struction framework is flexible with respect to a local
triangulation stopping criterion, in the sense that previ-
ously determined point labels can be used to decouple
triangular meshes. An example is presented in Figure 7,
where a distance connectivity criterion was used to
segment and label objects lying on a horizontal planar
surface, and thus resulting in separate triangular meshes
for each object. See Section V.
The remainder of this paper is organized as follows. The
next section introduces the theoretical foundations for our
surface reconstruction method and discusses differences and
improvements over similar work. In Section III we present
our adaptive and robust resampling technique. Section IV
discusses our improvements for achieving fast updates in
incremental scans, while Section V presents a special case for
triangular mesh decoupling using point labels. In Section VI
we present results obtained on noisy indoor and outdoor
datasets. Finally, we conclude and give insight on our future
work in section VII.
II. THEORETICAL CONSIDERATIONS
The input to our algorithm is an unorganized 3D point
cloud P obtained from laser sensing devices, representing
real-world scenes or objects, with no constraint on them be-
ing watertight or complete. The data can contain occlusions
and may be a combination of several registered partial views.
In particular, in our work, we use an autonomous personal
robotic assistant operating in household environments [10],
and acquire point clouds by sweeping motions of an arm with
a 2D laser sensor mounted on it (see Figure 1). The obtained
data represents both large environmental models such as
complete rooms, but also smaller segmented objects lying
on horizontal planar surfaces (e.g. tables, cupboard shelves,
counters) which may be manipulated by the robot. These
particularities of our application scenario, require a set of
constraints on our surface reconstruction system’s behavior:
• since the robot acquires data in stages (i.e. partial scans
of the world), whenever new data scans are available,
the current existing mesh needs to be updated efficiently
(see Section IV);
• to support dynamic scenes, such as objects being moved
around from one place to the other, a mechanism
for decoupling and reconstructing the mesh as fast as
possible needs to exist, and separate objects should be
triangulated separately (see Section V);
• since the input data contains high levels of noise,
measurement errors, and holes, and to ensure that there
are enough points in the neighborhood to capture all
the relevant details in the reconstructed surface, a re-
sampling step with variable vertex densities needs to be
available (see Section III).
The last step is especially useful for large datasets when
a compact representation is needed for high variations in
surface curvature, requiring higher vertex densities on sharp
edges and lower on flat surfaces.
In order to deal with the special requirements posed by our
application and to achieve near real-time performance, we
employ several techniques and optimizations. An important
difference between our approach and [4] is that our method
works directly on the 3D point cloud data as we facilitate fast
nearest neighbor searches with kd-trees, and avoid creating
an additional dexel structure, which requires a two step
search through the entire dataset.
Additionally, since we deal with large datasets, we opti-
mize the lookup of edges that have to be checked for pruning
points by the visibility criterion in a k-neighborhood.
3219
- 1
- 2
- 3
前往页