Crest lines extraction from 3D triangulated meshes 1 Abstract 2

Crest lines extraction from 3D triangulated meshes
Georgios Stylianou and Gerald Farin
Department of Computer Science and Engineering
Arizona State University
Tempe, AZ 85287-5407
1 Abstract
tify topologically correct points.
We propose a method that solves the problems
appearing in [1], is automatic in addition to [2] and
can be applied in any surface as long as it is represented by a triangulated mesh in contrast to [3].
This article is organized as follows. In Section
3 we briey describe the underlying theory of our
method. Sections 4, 5 present the method and the
experimental results.
We present an automatic crest lines extraction
method from 3D triangulated meshes. We use a
bivariate polynomial to approximate the surface locally and calculate the principal curvatures and directions on every vertex and a tracing algorithm
to extract the crest lines. We show crest lines on
various triangulated meshes and evaluate their invariance under rotation and stability under scaling.
Keywords:3D triangulation, crest lines, principal
curvatures.
3 Theory
In this section, we briey give the theoretical aspects of this work.
2 Introduction
3.1 Crest lines
Crest lines are 3D lines on a surface that provide
a satisfactory geometrical representation of important physical properties such as anatomical features
in the case of medical images [2].
Lengagne et al [1], extract crest lines from 3D triangulations. This method has problems regarding
the derivative calculation of the largest curvature
because it makes a very rough approximation of the
derivative that fails in many cases.
Gueziec [3] extracts crest lines using a B-spline
parametrization of the skull. Although, such a
parametrization is the most accurate, is very expensive and most importantly it can not be used
to parametrize every surface.
Khaneja et al [2] implemented a dynamic programming algorithm to extract crest lines from triangulations that is stated to have noise immunization. This method is semi-automatic and was applied to medical data only. The problem is it requires the presense of an expert to dene start-end
points for every crest line; thus this method fails
when there is no expert or the expert fails to iden-
Crest lines are local shape features of a surface.
They are as the set of of all points satisfying
Dt1 k1 (u; v) = 0
(1)
where k1 is the largest principal curvature and t1
is its direction in the (u,v)-domain.
They are shape features with the main charasteristic of using local information to yield a global
description of the surface.
3.2 Parametrization
We use a quadratic bivariate polynomial to
parametrize locally the surface.
The patch we use has the type
x(u) = au2 + buv + cv 2 + du + ev + f (2)
where u = (u; v) is a point on the domain, x(u)
is a point on the surface and a; b; c; d; e; f are the
coecients of the patch.
1
3.3 Least Squares tting
The rst step is:
For every vertex vi of the mesh,
1. Get the star of vi , denoted by star(vi ).
2. Fit the quadratic patch (2) on vi and star(vi ).
3. Compute the principal curvatures and their
corresponding directions on vi .
Then we evaluate whether a vertex is a crest
point. The local neighborhood of a vertex vi of
a triangulated mesh is its star(vi ). We can utilize
the denition (1) and directly calculate the directional derivative of the largest curvature of every
vertex like Lengagne et al [1] or using numerical
dierences but the derivative is very noise sensitive and it fails to provide consistent values many
times especially on irregular triangulated meshes.
In fact, we have experimented using the numerical
dierences method and it, often, does not give acceptable results. Consequently, we take a dierent
approach.
We use the interpetation of denition (1) where
a point is a crest point if its largest curvature
is locally maximal in its corresponding direction.
Therefore, after calculating the principal curvature
k1i and its corresponding domain direction ti1 of a
vertex vi , we use the domain values of the star(vi )
as follows:
The domain values of the star(vi ) are
(u1 ; :::; uL ), L is the number of vertices in the
star(vi ) and u0 is the domain value of vi .
Find the edge (u0 ; um ), m 2 [1; L] closest to
ti1 .
Find the edge (u0 ; uj ), j 2 [1; L] and j 6= m
closest to ;ti1 .
Get the largestj curvature of the corresponding
vertices k1m , k1 .
If (k1i )2 ; (k1m)2 > e and (k1i )2 ; (k1j )2 > e then
vi is a crest point.
where e >= 0 controls the level of maximality.
The second step of the method is the tracing of
crest lines over the mesh. Letthe mesh consist of
N vertices. The algorithm is:
1. Initialize linelist L and set the number of lines
j = 0.
We use the least squares [4] method to t (2) on a
point set. Here we dene the problem and describe
the domain calculation.
Problem: Given a point set D = fpi ji = 0; :::; Lg
we want to nd an approximating patch b(u; v),
such that
L
kpi ; b(ui ; vi )k2
(3)
X
i=0
is minimized.
The rst step is the domain calculation i.e. the
calculation of the parameters ui = (ui ; vi ) that correspond to pi . In other words, we have to calculate
the domain parameters ui of the prospective range
values pi . The procedure we use is due to Hamann
[6]. Here we rapidly give the steps.
In order to approximate the principal curvatures at
a point xi do
1. Get the neighboring points of xi .
2. Compute the best plane P , passing through
these points.
3. Dene an orthonormal coordinate system in P
with a point in D as the origin.
4. Project all the points of D onto the plane P
and represent their projections with respect to
the local coordinate system in P .
The nal points are the wanted domain points. In
our case, the plane P is the plane with normal vector the normal vector on a vertex of the triangulated mesh.
The second step is the patch tting. We solve
the linear system
D = FX
which is equivalent to minimizing 3. D is the given
point set, F is the domain values of this point set
D and X are the unknowns, the coecients of the
polynomial 2.
4 Method
Here, we describe the method we propose for automatic crest line extraction. The method is twofold. The rst step approximates the principal curvatures and directions on every vertex of the triangulation and the second step traces the crest lines.
2
2. Set the id of the current vertex i = 0.
3. if vi is not visited and is a crest point
call traceCrestLine (vi ; lj ,"rst").
call traceCrestLine (vi ; lj ,"last").
increase j .
4. If i < N increase i and goto step 3.
The procedure traceCrestLine (vi ; lj ) is:
1. Mark vi as visited and add it to line lj .
2. Get all the vertices of star(vi ) that are crest
points and are not visited. Let their number
be n.
3. If n = 1 then goto step 1 for the new vertex,
else exit.
When we call traceCrestLine with the argument
"rst" it adds every point on the beginning of the
line, otherwise with the argument "last" adds every
point on the end of the line. Therefore, we can
trace the maximum line segment possible and not
just parts of a line.
Figure 2: Crest lines of vase2.
Figure 3: Crest lines of vase2 after streching.
5 Results
Figures 4 and 5 show the crest lines extracted
from the triangulated mesh of the Stanford bunny
in two dierent mesh resolutions. Bunny2 consists
of 8171 vertices and 16301 facets. Bunny3, which
is a decimated version of bunny2, consists of 1889
vertices and 3751 facets. To obtain these results we
set the threshold e = 3:0 and e = 0:5 for bunny2
and bunny3, respectively. Even though the level
of resolution is quite dierent, we get very similar results. The substantial dierence is that the
crest points of bunny2 are much more stable than
bunny3's in terms of their level of maximality.
Moreover, even with these nice results we have
some artifacts. Lines that should not exist or very
small lines. These can be removed by deleting the
lines that have less than a given number of points.
This keeps the most signicant lines.
Figure 6 shows the crest lines extracted as in [1].
Clearly, they are very dierent and too many lines
appear that should not exist. The problem that
causes all these artifacts is the derivative calculation of the largest curvature.
We have tested our algorithm on various meshes.
Firstly, we used regular triangulated meshes representing dierent kinds of vases. Figures 1 and
2 show the crest lines superimposed on vase1 and
vase2, respectively. Figure 3 shows the crest lines
Figure 1: Crest lines of vase1.
for vase2 after scaling two times in x and y coordinates, before extracting crest lines. They are very
stable, even though, we streched the object. The
only problem on the crest lines is that they are
slightly translated from their actual position, as it
is visually observed. This problem occurs because
we trace crest lines over the vertices of the mesh.
3
Figure 6: The crest lines of vase1 as in [1]
tation of this method for extracting crest lines eciently on triangulated meshes of order of hundreds
of thousands of points.
7 Acknowledgments
Figure 4: Crest lines for Stanford bunny2.
This work was supported in part by the Arizona
Alzheimer's Disease Research Center.
References
[1] R. Lengagne, F. Pascal, O. Monga. Using Crest
Lines to Guide Surface Reconstruction from
Stereo. ICPR '96,1996.
[2] N. Khaneja, M.I. Miller, U. Grenander. Dynamic Programming Generation of Curves on
Brain Surfaces. IEEE Transactions on Pattern
Analysis and Machine Intelligence,
[3] A. Gueziec. Large Deformable Splines, Crest
lines and Matching. IEEE 4th International
Conference on Computer Vision,650-657,1993.
[4] G. Farin. Curves and Surfaces for Computer
Aided Geometric Design, Fourth Edition. Academic Press, Boston, 1997.
[5] A. Gray. Modern Dierential Geometry of
Curves and Surfaces with Mathematica, Second
Edition. CRC Press,1998.
[6] B. Hamann. Curvature Approximation for Triangulated Surfaces. In Computing, 139-153,
Springer-Verlag, 1993.
Figure 5: Crest lines for Stanford bunny3.
6 Conclusions
In this work, we have presented a method for crest
lines extraction. We used a bivariate polynomial
to calculate principal curvatures and directions on
every vertex of the mesh and used denition (1) to
decide when a vertex is a crest point. Later, we
gave an algorithm to trace the crest lines over the
mesh and stored them in a useful data structure
for future use. Finally, we shown its eciency on
various triangulated meshes, and evaluated the invariance of crest lines under rigid transformations
and stability under streching.
In future work, we intend to implement a quantitative comparison method using crest lines, improve noise control and make a parallel implemen4