Crest lines extraction from 3D triangulated meshes 1 ... - CiteSeerX

17 downloads 0 Views 283KB Size Report
We present an automatic crest lines extraction method from 3D triangulated meshes. We use a bivariate polynomial to approximate the surface lo- cally and ...
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 brie y 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 brie y 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 de ne 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 de nition (1) and directly calculate the directional derivative of the largest curvature of every vertex like Lengagne et al [1] or using numerical di erences 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 di erences method and it, often, does not give acceptable results. Consequently, we take a di erent approach. We use the interpetation of de nition (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 de ne 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. De ne 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 di erent 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 di erent, we get very similar results. The substantial di erence 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 signi cant lines. Figure 6 shows the crest lines extracted as in [1]. Clearly, they are very di erent 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 di erent 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 Di erential 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 de nition (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

Suggest Documents