Principal Curvature Ridges and Geometrically Salient
Regions of Parametric B-Spline Surfaces
Suraj Musuvathya,∗, Elaine Cohenb , James Damonc , Joon-Kyung Seongd
a
School of Computing, University of Utah
School of Computing, University of Utah
c
Department of Mathematics, University of North Carolina at Chapel Hill
d
Korea Advanced Institute of Science and Technology
b
Abstract
Ridges are characteristic curves of a surface that mark salient intrinsic features of its shape and are therefore valuable for shape matching, surface
quality control, visualization and various other applications. Ridges are loci
of points on a surface where one of the principal curvatures attain a critical
value in its respective principal direction. We present a new algorithm for
accurately extracting ridges on B-Spline surfaces and define a new type of
salient region corresponding to major ridges that characterize geometrically
significant regions on surfaces. Ridges exhibit complex behavior near umbilics on a surface, and may also pass through certain turning points causing
added complexity for ridge computation. We present a new numerical tracing
algorithm for extracting ridges that also accurately captures ridge behavior
at umbilics and ridge turning points. The algorithm traverses ridge segments
by detecting ridge points while advancing and sliding in principal directions
on a surface in a novel manner, thereby computing connected curves of ridge
points. The output of the algorithm is a set of curve segments, some or all of
which, may be selected for other applications such as those mentioned above.
The results of our technique are validated by comparison with results from
previous research and with a brute-force domain sampling technique.
Keywords: ridge, parametric B-Spline surface, geometrically salient region
Corresponding Author
Email addresses: srm@cs.utah.edu (Suraj Musuvathy), cohen@cs.utah.edu
(Elaine Cohen), jndamon@math.unc.edu (James Damon), seong@kaist.ac.kr
(Joon-Kyung Seong)
∗
Preprint submitted to Computer-Aided Design
September 1, 2010
F emur
Ridges
Crests
Figure 1: Ridges and crests of a femur B-Spline surface model.
1. Introduction
Ridge curves mark important intrinsic features of the shape of a surface. The formal mathematical study of the role of ridges in geometry began
with the research of Porteous [1] and was first emphasized for shape analysis
by Koenderink [2]. Since then, ridges have proven valuable in a variety of
applications spanning diverse domains. They are view independent curves
and more stable with surface deformation compared to other feature curves
such as curvature lines, which makes them very useful for shape matching [3, 4, 5, 6]. They are useful in visualization applications since they capture perceptually salient features of an object [7, 8, 9]. Other applications
include freeform surface quality control [10] and geophysical analysis [11, 12].
Figure 1 shows ridges and special types of ridges called crests of a B-Spline
surface model of the upper part of a femur bone that have been computed
using the technique presented in this paper.
A variety of approaches have been previously presented for computing
ridges of discrete surface representations including polygonal meshes and images and implicit surface representations that are typically used to approximate discrete data. Estimating principal curvatures and their derivatives are
major challenges for discrete surface representations. Tracing is relatively
simpler and is typically performed by detecting crossings of ridges on the
boundaries of mesh polygons or image voxels.
In contrast, principal curvatures and their derivatives can be computed
exactly at specific points given a parametric surface representation with suf2
ficient smoothness, but tracing ridges is more difficult. In addition, ridges
exhibit complex behavior around umbilics where multiple segments may coalesce, or form loops. Umbilics represent important features on surfaces and
have been used in shape matching [13]. Therefore, it is essential to compute
ridges around umbilics accurately. There are relatively few methods that
address ridge computation at umbilics on parametric surfaces.
The main contribution of this paper is a new algorithm for computing
ridges on tensor product B-Spline surfaces that also accurately captures ridge
behavior at umbilics and other special points such as turning points. The
algorithm traces ridges using localized curvilinear coordinate systems formed
by principal curvature lines. Key results on computing principal curvature
lines at umbilics, presented in [14], are utilized in the approach presented in
this paper. The output of the algorithm is a set of ridge curve segments, that
are available for use in other applications such as those mentioned previously.
While the technique presented in this paper has been designed for tensor
product piecewise rational parametric surfaces, it is quite general and extends
to surface representations with multiple or trimmed patches with sufficient
smoothness.
This paper also introduces a new type of geometrically salient region corresponding to major ridges. These salient regions also provide a means of
measuring the importance of a ridge and its surrounding region in terms of
higher order shape features. Earlier methods for quantifying the importance
of ridges account for geometric properties only at ridge points [15, 16, 17].
The method introduced in this paper also considers salient neighborhood of
ridges. Salient regions provide additional information for studying geometric
variation of similar shapes and are especially useful when the ridges themselves do not provide sufficient information. For example, the location of the
ridges may be very similar across a set of similar surfaces but the geometry of regions surrounding the ridges may vary. An example is presented in
Section 8 to illustrate this situation.
1.1. Definition and Classification of Ridges
There are a number of different definitions of ridge curves on surfaces
with different meaning and intent. We follow the notation given in [18,
19] and present that definition here. Consider a tensor product parametric
surface S(u, v) ∈ R3 . Every point on S(u, v), excluding umbilics, has two
different principal curvatures (κ1 > κ2 ) and two corresponding principal
3
Table 1: Classification of Ridges
Ridge Type
Definition
def
=
0
def
=
0
κ1 -ridge
∇t1 κ1 = h∇κ1 , t1 i
κ2 -ridge
∇t2 κ2 = h∇κ2 , t2 i
Elliptic ridge
∇t1 κ1 = 0,
tT1 Hκ1 t1 < 0
∇t2 κ2 = 0,
tT2 Hκ2 t2 > 0
κiuu κiuv
, i = 1, 2
Hκ i =
κiuv κivv
Crest
∇t1 κ1 = 0,
tT1 Hκ1 t1 < 0,
|κ1 | > |κ2 |
(κ2 -crest → ravine or valley)
∇t2 κ2 = 0,
tT2 Hκ2 t2 > 0,
|κ1 | < |κ2 |
4
directions (t1 , t2 )1 . Ridges are loci of points on a surface where one of the
principal curvatures attains a critical value (i.e., local maximum, minimum or
inflection) in its respective principal direction. This turns out to be equivalent
to φi (u, v) = h∇κi , ti i = 0, i = 1 or 2 (See [18, 20]). In this paper, we
will henceforth refer to φi (u, v) as the ridge condition for the corresponding
principal curvature.
Table 1 presents a classification of the various types of ridges. A ridge is
called elliptic if κ1 (κ2 ) at a ridge point attains a local maximum (minimum)
in the t1 (t2 ) direction, and termed hyperbolic otherwise. A crest is an elliptic
ridge of the principal curvature with larger magnitude (See Table 1). The
crest curve corresponding to the minimum principal curvature is typically
called a valley or a ravine. It should be noted that some authors prefer to
define ridges as the crest corresponding to the maximum principal curvature,
while others refer to crests as κ1 -ridges, where |κ1 | ≥ |κ2 |. In this paper, the
term ridges encompasses crests, elliptic, and hyperbolic ridges.
1.2. Generic Properties of Ridges
Various aspects of the behavior of ridges on surfaces are summarized in
this section (See [2, 18, 19, 21, 22] for discussions and proofs). In this paper,
only the generic case is considered.
1. Two different ridges of the same principal curvature do not cross each
other, except at umbilics. This property reduces the complexity of
ridge tracing significantly.
2. κ1 -ridges may cross κ2 -ridges at so called purple points.
3. Ridges of a particular principal curvature do not have start or end
points within a model (excluding the boundary of an open surface),
except at umbilics.
4. Although principal directions are not defined at umbilics, ridges do
occur at umbilics and exhibit complex behavior around umbilics.
5. Elliptic ridges, and therefore crests, do not occur at umbilics.
6. An umbilic may be classified as either a 1-ridge umbilic or a 3-ridge
umbilic depending on the number of ridges arriving at the umbilic.
7. Ridges of a principal curvature intersect its corresponding principal
direction transversally on the surface (R3 ) except at a few isolated
1
t1 and t2 are 2D vectors denoting elements of the tangent plane at S(u, v).
5
locations. This property enables tracing ridges on local coordinate
systems formed by principal directions on a surface.
8. Locations on the surface where a ridge is tangential to the corresponding principal direction are called turning points (also known as A4
points in geometry and singularity theory). Turning points are detected using this property in the approach presented in this paper.
9. At a turning point, a ridge attains a local inflection in the corresponding principal direction and changes from being elliptic to hyperbolic
or vice versa. This condition is given by tTi Hκi ti = 0, i = 1 or 2. In
this paper, this equation is not used since Property 8 allows identification of turning points without computing second order derivatives of
curvatures.
10. A ridge of one principal curvature may be tangential to the other principal curvature direction on the surface (R3 ) i.e., a κ1 -ridge may be
tangential to the minimum curvature direction and vice versa. A good
example is the equator of an ellipsoid.
This paper is organized as follows. Related research results on ridge
computation are presented in Section 2. Section 3 presents background on
differential geometry of surfaces. An overview of the ridge tracing algorithm
is presented in Section 4 and the details are presented in Sections 5 and 6.
Results and discussion on ridge computation are presented in Section 7. New
results on identifying salient regions associated to major ridges are presented
in Section 8, after which concluding remarks are made.
2. Previous Work on Extracting Ridges
Previous results on computing ridges of parametric surfaces can be classified into two categories: 1) direct computation of zero sets of the ridge
condition equations, and 2) evaluation of the ridge condition on a tessellation of the parametric domain or other locations on a surface. The research
presented in Cazals et al. [18, 21, 22] falls into the first category. In [18], a
system of equations that encodes all the ridges and umbilics of a parametric
surface represented by a single polynomial is presented. This system is essentially the product of the ridge conditions for both the principal curvatures.
An algorithm is presented to solve the resulting polynomial equations using
algebraic techniques [21, 22], and to compute topologically correct ridges.
Their research presents the first technique to compute the topology of ridges
6
exactly at umbilics. Examples have been provided for single patch Bézier
surfaces. The results computed using the technique presented in this paper
are validated with an example from their research.
Other prior results for computing ridges on parametric surfaces fall into
the second category. A method based on sampling the ridge condition on the
curvature lines of a parametric surface and reporting a collection of points
(without connectivity information) that satisfy the ridge condition (within
some error criteria) is presented in Hosaka [10]. The notion of crest bands has
been introduced in Jefferies [23]. Crest bands are soft ridges that satisfy the
ridge condition within a given threshold at uniform samples in the parametric
domain. This technique is also used for comparison and validation of the
results presented in this paper. A similar approach for sampling the ridge
condition on a regular rectangular grid in the parametric space of a surface
represented by thin-plate splines and connecting neighboring ridge points on
the grid has been presented in Guéziec [3]. Approximation of ridges on the
edges of a triangulation of the parametric domain has been presented in Kent
et al. [4] and Morris [24]. In the research presented by Morris [24], umbilics
are first detected and ridge points are identified on circles surrounding the
umbilics.
This paper presents a new approach based on numerically tracing zeros of
the ridge condition within a user defined error bound, which may be arbitrarily small. Within the bounds of the numerical error, our technique accurately
captures generic ridge behavior at all locations on a surface including umbilics. Our technique has been designed for rational B-Splines, which are used
to represent complex surfaces in a rich variety of applications, and is reasonably fast for complex surfaces. For rational parametric surfaces (NURBS),
the ridge equations have a very high degree, and hence, directly solving for
the zero sets of the ridge condition is computationally expensive in terms
of memory and processing time. In addition, to the best of our knowledge,
there is no technique in the existing literature that can accurately compute
the topology of ridges of NURBS surfaces at all locations from a disjoint
set of ridge points. The authors of [21, 22] note that at the time of writing (2007), their technique for processing single polynomial surfaces was too
slow to compute results in reasonable time for a bi-quintic Bézier patch. A
domain tessellation or sampling-based method, albeit computationally fast,
has other disadvantages. It is hard to obtain accurate ridges (exact zeros of
the ridge condition) and connectivity information, especially at umbilics.
We briefly review some of the techniques used for computing ridges for
7
polygonal meshes, implicit surface representations and discrete images. This
is by no means an exhaustive review, but enlists representative works in
each area. For polygonal meshes, curvatures and their derivatives are approximated by a discrete differential geometry method [17, 25], by fitting
a local or global smooth surface [15, 16, 26], or a combination of the two
approaches [27]. The tracing methods typically follow vertices classified as
ridge points or along the zero crossings of the ridge condition on the polygon edges. Geometric filtering approaches have been presented in Belyaev et
al. [28] and Lai et al. [29]. For implicit surface representations, techniques for
computing ridges via the intersection of the implicit surface and other implicit equations describing the ridges have been presented [30, 31, 32]. There
has also been work on detecting ridges on images using nonlinear filtering
techniques [28, 33]. Most of these techniques present results for only crest
curves and thus, do not address ridges at umbilics.
3. Background
In this section, we review fundamental results on differential geometry
that are utilized in this paper. For details, the reader is referred to [14, 34, 35].
3.1. Principal Curvatures and Principal Directions
Consider a regular tensor product parametric B-Spline surface S(u, v) :
v
[u1 , u2] × [v 1 , v 2 ] → R3 , S ∈ C 2 . The surface normal, n(u, v) = ||SSuu ×S
×Sv ||
(assumed oriented inward for a closed surface, and ||Su × Sv || =
6 0 since S
is regular) where, subscripts indicate the partial derivatives with respect to
the corresponding parameter variable. The matrix of the first fundamental
form of the surface is given by,
hSu , Su i hSu , Sv i
E F
(3.1)
=
I=
hSu , Sv i hSv , Sv i
F G
The matrix of the second fundamental form is given by,
hSuu , ni hSuv , ni
L M
=
II =
hSuv , ni hSvv , ni
M N
(3.2)
Let A, B, C be defined as follows.
A = EG − F 2
B = 2F M − GL − EN
C = LN − M 2
8
(3.3)
Then, the principal curvatures at a point on the surface are given by,
√
√
−B + B 2 − 4AC
−B − B 2 − 4AC
κ1 =
; κ2 =
2A
2A
(3.4)
κ1 ≥ κ2
κ1 is termed the maximum principal curvature and κ2 is termed the minimum principal curvature. The corresponding principal curvature directions
are given by,
1
−(N − κ1 G)
−(M − κ1 F )
t1
or
t1 = 2 =
M − κ1 F
L − κ1 E
t1
(3.5)
1
−(N − κ2 G)
−(M − κ2 F )
t2
or
t2 = 2 =
M − κ2 F
L − κ2 E
t2
The coefficients in the above equation are chosen so that the principal
direction vectors are non-degenerate and as well-conditioned as possible. If
only one of the vectors is well-conditioned, the following property enables
computation of the other vector.
3.2. Orthogonal Property of Principal Directions
The vectors t1 and t2 lie in the tangent plane at S(u, v) spanned by Su
and Sv . The model or Euclidean space vectors, denoted by T1 and T2 are
given by,
T1 = t11 Su + t21 Sv
(3.6)
1
2
T2 = t2 Su + t2 Sv
If κ1 6= κ2 , then hT1 , T2 i = 0, so the two principal directions are orthogonal at all non-umbilic points on the surface. (see lemma 12.47 of [34] or
[35]). This property enables tracing ridges on a surface using local coordinate
systems formed by T1 and T2 at non-umbilic points.
3.3. Three Types of Umbilics
Umbilics are points on the surface where the normal curvatures in all
directions are equal. Therefore, κ1 = κ2 and the principal directions are not
defined. However, lines of curvature exhibit three different patterns around
9
Lemon
Star
Monstar
Figure 2: Patterns of principal curvature lines around umbilics. κ1 curvature lines are
indicated in pale blue and κ2 curvature lines are in magenta.
generic umbilics denoted as the lemon, star, and (le)monstar patterns. Figure 2 shows the three different patterns formed by the principal curvature
lines around umbilics2 . At a lemon umbilic, there is a single principal direction that changes from being a maximum curvature principal direction to a
minimum curvature principal direction. At a star umbilic, there are three
such principal directions. A monstar umbilic is similar to a star umbilic, except that all maximum (minimum) curvature directions are contained within
a right angle.
3.4. Principal Directions Around Umbilics
Maekawa and Patrikalakis [14, 36] presented a technique to distinguish
between generic and non-generic umbilics and classify generic umbilics as
lemon, star and monstar, and to compute exact principal direction patterns
around umbilics. The principal directions were used in their work to trace
curvature lines on a surface around umbilics. We employ this method to
characterize behavior of ridges near umbilics. The idea is to represent the
surface locally as a Monge patch in a reference frame centered at the umbilic and aligned with the tangent space of the surface at the umbilic. Then,
the position vectors of the local maxima and minima of the Monge patch
around the umbilic in the tangent space represent the maximum and minimum principal direction vectors. Details of this method can be found in [14].
Their approach also detects non-generic umbilics. We have not found any
literature characterizing the behavior of principal curvature lines and ridges
2
In geometry literature, blue and red colors have been used to indicate principal curvature lines as well as κ1 and κ2 ridges. In this paper, pale blue and magenta are used to
depict curvature lines in order to distinguish between curvature lines and ridges.
10
S(u,v)
S(u,v)
p
p
0
Slide
2
p
Project
1
R1
Project
Slide
R2
Advance
R0
Advance
R3
R1
R0
Ridge
Ridge
(a) Advance and slide steps for a single (b) Several progress operations in a
progress operation
trace (projection steps not shown)
Figure 3: Tracing overview - advance and slide steps. Advance steps are shown in brown,
projection operations are shown in black, slide steps are shown in green. Also shown are
principal directions and ridges (dark blue).
around non-generic umbilics and hence chose not to address them in this
paper.
At generic umbilics, there can either be a single maximum and minimum
(lemon) or three maxima and minima (star and monstar). Maxima and
minima occur on opposite sides of each other i.e., the angle between their
position vectors is π. This phenomenon is shown in Figure 2, where the
relevant maximum and minimum principal directions are opposite to each
other.
4. Overview of Tracing Algorithm
The input surface, S(u, v), is assumed to be regular (i.e., Su × Sv 6= 0),
having only isolated umbilics, and ridges that exhibit only generic properties
as specified in Section 1.2. The surface is also required to be C 3 smooth, in
order to have continuous first order derivatives of principal curvatures. κ1 ridges and κ2 -ridges are traced separately. In our discussion, we present the
algorithm for tracing ridges corresponding to the maximum principal curvature (κ1 ). The tracing procedure for κ2 -ridges is similar, and the differences
are indicated at the end of the section after an overview of the algorithm has
been presented.
Traces are started at various seed points including critical points of curvature and umbilics. Curvature critical points trivially satisfy the ridge condition since the curvature gradient is identically zero at these locations. Um-
11
bilics are also included as seed points since ridges may pass through these
points.
Our strategy is based on the property that κ1 -ridges intersect the κ1
curvature lines transversally except at a few isolated turning points. The
idea is to trace a κ1 curvature line to a zero of the ridge condition, where the
κ1 curvature line intersects a ridge. In order to progress to the next trace
point, the algorithm steps along the κ2 curvature line (T2 direction) and then
traces the κ1 curvature line from the new location. Since the curvature lines
are orthogonal, the algorithm is guaranteed to progress further along a ridge.
Each trace consists of several progress operations. Each progress operation consists of two steps viz., an advance step, and a slide step, as illustrated
in Figure 3.
1. Advance step - compute a new point in the tangent plane of the current ridge point in the Euclidean minimum principal direction (T2 ) and
project it onto the surface.
2. Slide step - slide along the Euclidean maximum principal direction (T1 )
and project onto the surface. Iterate until a zero of the ridge condition
is reached (T1 recomputed at each point).
Figure 3(a) shows an advance step and a slide that consists of a single step.
In general, a slide may consist of several small sub-steps and the principal
curvatures and directions are recomputed at every sub-step (Figure 3(b)).
The step sizes are varied adaptively (See Section 6). A trace ends when
it reaches either another seed point or a parametric domain boundary. A
new trace is also computed from the same seed point but by advancing in
the opposite (−T2 ) direction. Special care is needed when the trace is close
to a turning point and when the trace is started at an umbilic. The following
sections present details on computing seed points and the different tracing
steps.
The algorithm for tracing κ2 -ridges differs in that the advance step is done
along the maximum principal direction (T1 ) and the slide step is performed
along the minimum principal direction (T2 ).
Away from umbilics, classical tracing methods via solutions of ordinary
differential equations (ODEs) representing the ridges may be employed. However, such methods require higher order surface smoothness and are computationally more demanding since derivatives of the ridge condition are required. In our experiments, much smaller step sizes were required by the
12
ODE based method for achieving the same accuracy as the algorithm presented in this paper. In addition, singular points of the ridge condition are
required for robust tracing via ODEs and the task of locating such points is
computationally demanding due to the complexity of the ridge condition and
its derivatives. Due to all the above reasons, the algorithm presented in this
paper is computationally more suitable than ODE based methods for ridge
tracing.
5. Computing Seed Points
This section presents systems of equations required to compute curvature critical points and umbilics based on [37, 14]. A robust and efficient
subdivision-based constraint solving technique [38, 39] is used to compute
the roots of relevant piecewise rational equations. The subdivision-based
technique will compute all roots upto a user-specified tolerance [38].
5.1. Curvature Critical Points
Critical points of curvature occur at the locations on a surface where
the curvature gradient is identically zero. Using the notation introduced in
Section 3.1, and writing both principal curvatures in one equation,
√
−B ± B 2 − 4AC
(5.1)
κ(u, v) =
2A
It is necessary to solve for simultaneous roots of
κu (u, v) = 0,
κv (u, v) = 0.
(5.2)
B(u, v) is not rational since it involves the coefficients of the second fundamental form, which
√ in turn have a square root in the denominator. Noting
that ||Su × Sv || = A,
b
L
L= √ ,
A
c
M
M=√ ,
A
b
B
B=√ ,
A
C=
κ(u, v) =
b±
−B
b
N
N=√
A
b
C
A
p
(5.3)
b 2 − 4AC
b
B
3
2A 2
13
b M
c, N,
b B,
b C
b are piecewise polynomial or piecewise rational dependwhere L,
ing on whether S(u, v) is piecewise polynomial or rational, respectively.
The first order derivatives of κ(u, v) are given by,
R(u)
κu = P (u) ± √ = 0
Q
κv = P
(v)
R(v)
± √ =0
Q
(5.4)
where,
P (u) = 12 [(−A
−3
2
P (v) = 21 [(−A
−3
2
R(u) = 12 [(A
−3
2
R(v) = 12 [(A
−3
2
bu + 3 A −5
b
2 A B)]
B
u
2
bv + 3 A −5
b
2 A B)]
B
v
2
bu B
b − 2A −1
bu + 4A −3
b − 3 A −5
b 2 )]
2 C
2 A C
2 A B
B
u
u
2
(5.5)
bv B
b − 2A −1
bv + 4A −3
b − 3 A −5
b 2 )]
2 C
2 A C
2 A B
B
v
v
2
b 2 − 4AC
b
Q=B
Note that,
R(v)
R(u)
κ1u = P (u) + √ , κ1v = P (v) + √
Q
Q
κ2u = P
(u)
R(u)
R(v)
− √ , κ2v = P (v) − √
Q
Q
(5.6)
Moving the terms with the square root in Equation 5.4 to the right hand
side, squaring both sides and simplifying we get,
QP (u)2 − R(u)2 = 0
QP
(v)2
−R
(v)2
(5.7)
=0
The above equations encode the critical points of both κ1 and κ2 . After
solving for the roots of the above system of equations, they are classified as
critical points of κ1 or κ2 by evaluating Equation 5.6.
14
5.2. Umbilics
At umbilics, κ1 = κ2 . Therefore, from Equation 5.3 it is apparent that,
b 2 − 4AC
b=0
Q(u, v) = B
(5.8)
In addition, Q(u, v) attains a minimum at the umbilic (since Q(u, v) ≥ 0).
Therefore, the roots of the following system of equations are computed.
∂Q(u, v)
bB
bu − 4Au C
b − 4AC
bu = 0
= 2B
∂u
(5.9)
∂Q(u, v)
bB
bv − 4Av C
b − 4AC
bv = 0
= 2B
∂v
Equation 5.8 is then evaluated to ensure Q(u, v) = 0 (since there may be
local extrema of Q(u, v) that do not occur at umbilics).
6. Tracing
As mentioned in Section 4, each trace consists of a series of advance
and slide steps. For both these steps, consistent orientation of the principal
directions and prudent step sizes must be chosen in order to successfully trace
a ridge. We discuss each operation with respect to tracing a κ1 -ridge. The
strategy for tracing at umbilics and the technique used for projecting points
onto the surface at every step are also presented.
6.1. Advance Step
6.1.1. Orientation
At every advance step, it is necessary to ensure that the new T2 vector is
along the same direction as the previous T2 vector and not opposite (by ensuring that the angle between the vectors in acute). The heuristic, called the
acute angle rule [15], has been used for tracing ridges on polygonal meshes.
6.1.2. Step size
A judicious choice of step size is critical when two ridges are close. At
every advance step, an initial step size δ0 is first selected3 . Let ri ∈ R2
3
In our experiments, initial step sizes of 0.1% of the length of the diagonal of the
bounding box of the surface worked well.
15
(w)
(w)
ri
w
rj
(w)
ri
(a)
rj
w
(b)
ri
rj w
(c)
Figure 4: Robust initial advance step size selection. ri is a ridge point and rj is the advance
point.The graph of φ(w) between ri and rj (w ∈ [0, 1]) is shown as a thick curve. Broken
curve segments indicate φ(w), w < 0, w > 1. δ0 should be chosen such that φ(w) does
not have any local extrema between ri and rj . a) indicates a correct step size selection.
b) and c) indicate incorrect step size selections. In case b), the trace will get stuck in a
local minimum of φ(w) and will not reach a ridge. In case c), the trace will converge to
an adjacent ridge segment.
Turning point
S(u,v)
Advance step
T1
Ridge
Figure 5: Advance step size (turning point aware). Advance steps are shown in brown,
maximum curvature principal directions are shown in pale blue, ridge is shown in dark
blue.
16
be the parameter values for the current ridge point and rj ∈ R2 be the
parameter values for the point arrived at by advancing along the T2 direction
and projecting onto the surface. Let φ(u, v) represent the ridge condition for
the current principal curvature. γ(w) = (u(w), v(w)) = ri + w(rj − ri ), w ∈
[0, 1] is the line segment joining ri and rj . φ(γ(w)) is the corresponding curve
segment of the ridge condition between ri and rj . In order to guarantee
robustness, the trace must not slide to either a local extremum of φ(u, v) or
an adjacent ridge segment (See Figure 4). This condition can be enforced by
ensuring that φ(γ(w)) does not have any local extrema. The test would then
involve checking whether or not the graph of φ(γ(w)) has a zero slope at
any point. However, computation of the slope requires higher order surface
smoothness. In addition, φ(γ(w)) is not a rational function. Therefore a
computationally efficient approach similar to a Monte Carlo method requiring
only samples of φ(γ(w)) is used. The interval w = [0, 1] is sampled randomly
and φ(γ(w)) is evaluated at the samples. The robustness test then checks if
the samples of φ(γ(w)) are monotonic with respect to w. δ0 must be reduced
until this condition is satisfied.
The advance step size is additionally varied adaptively during the trace
depending on nearness to a turning point. The step size can be additionally
scaled using curvature magnitude and curvature gradient magnitude at every step. Initially, at a seed point, there is no information about the ridge
direction. From the next advance step onward the ridge direction is tracked
using the previous trace points. The angle between the ridge direction and
the T1 direction computed at the current location is related to the proximity
of a turning point. An angle close to zero implies that a turning point is very
close. The step size is reduced accordingly during the trace until it falls below a threshold (turning point stepsize threshold4 ). Once it falls below
the threshold, the orientation of the T2 vector is reversed since the ridge will
now progress in the opposite direction. From the next advance step onward,
the trace will use the new orientation of the T2 vector. The ridge progress
direction is used to avoid backtracking along the previously computed trace
after a flip. The adaptive step size variation in the vicinity of a turning
point is illustrated in Figure 5. Also, using a larger step size immediately
after detecting a potential turning point and searching for a ridge by sliding
from an advance step in both T2 and −T2 directions helps detect a geodesic
4
We have used a threshold value of 10−6 in our experiments.
17
(a)
(c)
(b)
(d)
Figure 6: Sliding to a ridge. Advance step is shown in brown, slide steps are shown in
green. a) First slide step is moving toward ridge but has not yet reached ridge, b) Second
slide step has crossed ridge, c) Slide is recomputed with reduced step size, new slide point
has not yet reached ridge, d) Slide has reached ridge after a few steps of b) and c).
inflection point of the ridge.
6.2. Slide Step
After an advance step is done, the slide begins with an initial step size
and a local search is performed for a ridge in both T1 and −T1 directions.
The technique presented in Section 6.1.2 can be used to ensure robust initial
step size selection. Figure 6 shows a sample sliding scenario. The values
of the ridge condition at the current location and a step from the current
location in the T1 direction are compared. If the ridge conditions at the
two points have the same sign and have increasing magnitude, a slide is not
performed in that direction. If they have the same sign and are decreasing
in magnitude, the new location is accepted and the slide is repeated from
the new location. If the signs are different (implying that the slide crossed a
ridge), the slide step size is reduced5 and a new location is recomputed from
the current point along the T1 direction at the current point. This process is
repeated iteratively until the ridge condition falls below a specified threshold
(ridge accuracy threshold)6 . A local acute angle heuristic is used to select
consistent T1 vector orientations.
6.3. Tracing from Umbilics
The algorithm sweeps around umbilics using the principal curvature directions to detect ridges. If a ridge is found, a seed point is created and
a trace is started in the direction away from the umbilic (See Figure 7 for
illustration).
5
6
In our experiments, we found that halving the step size works well.
ridge accuracy threshold value of 10−3 was used in our experiments.
18
Lemon
Star
Monstar
Figure 7: Tracing around umbilics. Scout points are shown in green.
Recall from Section 3.4 that there are either one or three pairs of minimum
and maximum curvature directions oriented opposite each other. In any of
these cases, a scout point is created at a small distance from the umbilic
along each of the minimum curvature directions and traces are started from
each of them as presented in the previous section. If the scout does not detect
a ridge, it will stop automatically. If the scout does detect a trace, it will
continue as if it were tracing from any other regular point. In addition, scout
points are also created along the maximum principal directions in order to
completely sweep around the umbilic.
It should be noted that it is possible to trace the same ridge multiple
times (from start to end and reverse). At umbilics, a ridge can be traced
multiple times from different seed points. Duplicate ridges are detected by
inspecting the start and end points of the respective traces. In the latter
case, the start points are the same umbilic point. In addition, the curvature
lines may have a large geodesic curvature very close to an umbilic. The local
acute angle rule may not guarantee consistent orientations in such cases, as
noted by [15]. Therefore, to avoid such situations, the scout points must
not be created too close to an umbilic. Tracing κ2 ridges from umbilics is
identical, since scout points are created in all principal directions.
6.4. Projecting Points onto Surface
At every step, when a motion is performed in either principal direction
in the tangent plane of the surface, it is necessary to project the point onto
the surface. In order to find the point on the surface S(u, v) (and the corresponding parameter values) closest to a given point X ∈ R3 , a global
approach involves solving the following system of equations.
hSu (u, v), (S(u, v) − X)i
=
hSv (u, v), (S(u, v) − X)i
=
19
0
(6.1)
0
The solution set of this system of equations gives all points on the surface
where the vector from the point X to a point on the surface is in the direction
of the surface normal at that point. The actual closest point is determined
by computing the distances from X to all the solutions and selecting the
nearest one.
The global approach is too slow since the tracing algorithm may involve a
very large number of projection operations. In this paper, a two dimensional
Newton’s method is used to find the closest point on the surface. This technique is very fast and has been used for interactive applications that require
computing closest points at a very large rate (several hundred times a second) [40]. Since the step sizes used in the algorithm are typically very small,
this works well. An alternative method presented in [41] can be used for point
projection. In the event that the Newton’s method fails to give accurate results, the algorithm reverts to the global method. In our experiments, this
situation did not occur very often. The two dimensional Newton’s method
involves solving the following linear system of equations for variables u and
v.
∂(hSu ,Zi) ∂(hSu ,Zi)
∂u
∂v
u
−
u
hS
,
Zi
0
u
=−
v − v0
hSv , Zi
∂(hSv ,Zi)
∂(hSv ,Zi)
(6.2)
∂u
∂v
Z = S−X
The Jacobian matrix can be expanded as,
hSuu , Zi + hSu , Su i hSuv , Zi + hSu , Sv i
hSuv , Zi + hSu , Sv i hSvv , Zi + hSv , Sv i
(6.3)
Symbolic representations of the partial derivatives of the surface are precomputed so that they can be evaluated quickly for the projection operations.
The parameter values of the current advance or slide point are used as the
initial point (u0 , v0 ). This system is solved iteratively until the error is small
enough. The error is computed as the residual from the evaluation of Equation 6.1.
7. Results on Ridge Computation and Discussion
The tracing algorithm has been implemented in the IRIT [42] programming environment. Experiments have been performed on an Intel 2.4GHz
20
Figure 8: Ridges on a Bézier patch. κ1 -ridges are in blue and κ2 -ridges are in red.
Figure 9: Ridges of Bézier patch depicted in parametric space. Black cross-hairs indicate
umbilics.
21
processor with 8GB memory. We first present results for a simple bi-quartic
Bézier patch (See Figures 8 and 9). This surface was selected to allow direct comparison with the results presented in [22] (See Figures 8.4 and 8.5
therein), which are topologically correct at all locations including umbilics.
The results are best compared in parametric space. Figure 9 and Figure 8.4
of [22] are indeed very similar.
We also present ridges traced on complex models from different application domains including a human femur bone model and a terrain elevation map [43]. The surfaces are represented by tensor product bi-quartic
B-Splines. The results are compared with a brute force sampling of the ridge
condition in the parametric domain in Figures 10 and 11. Soft ridges, similar
to the style presented in [23], are computed to present a better visualization. However, there is no topology associated with the sampled ridges. The
images showing the sampled κ1 -ridges are colored with regions varying from
blue fading into yellow. Images of the sampled κ2 -ridges are colored with
regions varying from red fading into cyan. Darker blue colors in the former,
and brighter red in the latter images correspond to regions closer to κ1 and
κ2 ridges respectively.
The sampling approach can falsely indicate the presence (false positives)
or absence (false negatives) of ridges. In Figure 12, the rectangular outline
region shows an example where the presence of a κ1 -ridge is falsely indicated
on the terrain elevation model. The κ1 ridge samples indicate the presence of
a ridge. However, a close inspection of the κ2 ridge samples and the traced
ridges indicate that there is a κ2 -ridge in that region, which is verified by
the topology of the traced ridges in the surrounding region. False positives
(+ve) occur when the magnitude of the ridge condition is small enough to
pass a threshold used for coloring the samples, but not zero. Figure 12
also shows an example where the sampling approach fails to detect a κ2 ridge (elliptic outline region) of the terrain elevation model, but is accurately
captured using the tracing approach. False negatives(-ve) occur when width
of the ridges is narrower (which can be arbitrarily narrow) than the sampling
fineness. Figure 12.(b) shows that the tracing approach presented in this
paper avoids the problems associated with sampling-based techniques and
accurately captures ridge behavior.
While our algorithm is not designed for non-generic situations, end points
of non-generic ridges that stop within the surface boundary are detected in
our algorithm when the trace cannot detect any ridge during the slide step.
Non-generic ridges of the same type may cross each other. The technique
22
presented here does not capture the topology at the junctions of ridges of the
same type. This is an area for future work. Some non-generic ridge segments
may be missed if the algorithm does not find seed points in those segments.
Determining seed points that are neither curvature critical points nor umbilics to account for non-generic ridges is also an area for future work. However,
since the curvature critical points and umbilics represent important feature
points on a surface, the algorithm presented in this paper is guaranteed to
capture salient ridges on a surface.
The constraint solver for computing seed points may give extraneous roots
if too large a tolerance is allowed. These false roots will result in traces that
end within a few steps, which is a non-generic situation. Such ridge traces
are detected and removed.
Computational aspects for the different models on a single CPU are compared in Table 27 . The computation times vary depending on the complexity
of the models, not only in terms of representation size, but also in terms of
the features on the surfaces, on the accuracy of the ridge tracing and the
average trace length. We used a ridge accuracy threshold of 10−3 for all
data sets. The femur and the terrain models are quite complex, and our technique gives results in a few minutes. In comparison, an ODE based tracing
method took several hours to compute ridges with the same accuracy. Since
traces computed from different seed points are independent of each other, it
is possible to perform them in parallel, which would further reduce computation time. The sampling method took 10 and 9 seconds for a 200 x 200
grid for the femur and terrain models respectively. However, as mentioned
earlier, the sampled result does not provide accurate locations and topology
of ridge points.
The technique presented in this paper requires C 3 surface smoothness. It
is desirable to have similar techniques for surfaces with lower order smoothness. We are currently developing techniques to address this problem (See [44]).
This research assumes surface regularity and the presence of only isolated
generic umbilics. Addressing such situations is an area for future work.
8. Geometrically Significant Regions Associated with Ridges
Elliptic ridges (See Section 1.1) are identified in our work as major ridges
and hyperbolic ridges are identified as secondary ridges. This section defines
7
Time taken to create surface patches is not included.
23
a)
b)
c)
d)
e)
f)
Figure 10: a) Femur bone model, b) Sampled κ1 ridges (darker blue indicates ridge proximity), c) Sampled κ2 ridges (brighter red indicates ridge proximity), d) Ridges overlaid
on surface (κ1 → blue, κ2 → red), e) Traced κ1 ridges (black) overlaid on b), f) Traced
κ2 ridges (black) overlaid on c)
Table 2: Computation Characteristics
Model
Control
Mesh
Size
Curvature
Critical
Points
Umbilics
8
Seed
Points
Time
(minutes)
0.08
Ridge
Tracing
Time
(minutes)
0.07
Bézier patch
(biquartic)
Femur
(biquartic)
Terrain
(biquartic)
5×5
23
22 × 21
458
12
7.03
3.68
20 × 20
508
314
7.5
14.96
24
a)
b)
c)
d)
e)
f)
Figure 11: a) Terrain elevation model, b) Sampled κ1 ridges (darker blue indicates ridge
proximity), c) Sampled κ2 ridges (brighter red indicates ridge proximity), d) Ridges overlaid on surface (κ1 → blue, κ2 → red), e) Traced κ1 ridges (black) overlaid on b), f) Traced
κ2 ridges (black) overlaid on c)
k1 false
+ve
k1 false
+ve
k2 false
−ve
(a) k1 ridge samples
(b) Traced k1 and k2 ridges
(c) k2 ridge samples
Figure 12: An example of a false positive in κ1 -ridge samples (rectangle outline) and a
false negative (ellipse outline) in κ2 -ridge samples of the terrain elevation model. (a), (b)
and (c) represent enlarged views of κ1 -ridge samples, traced ridges and κ2 -ridge samples
of the same region of the terrain elevation model.
25
a type of salient region associated with major ridges that indicate geometrically significant regions on surfaces. First, we distinguish different types
of major and secondary ridges. Second, we define the new type of salient
region associated with elliptic ridges. Third, we present generic properties
of boundaries of these salient regions. Fourth, we present a heuristic explanation of the nature of the regions and their relation to the elliptic ridges.
Finally, we present an example of how these salient regions can be used for
analyzing geometric variation.
8.1. Major and Secondary Ridges
Major Ridges. Let κ1 > κ2 denote the principal curvatures at a nonumbilic point, and let p1 , respectively p2 denote the principal curves associated
with these curvatures. Then the major ridges associated with major geometric features of the surface are curves consisting of points at which one of the
following conditions is satisfied:
1. Convex Ridge: κ1 > κ2 > 0 such that κ1 has a local maximum along
p1 at the point.
2. Saddle (type I) Ridge: κ1 > 0 > κ2 such that κ1 has a local maximum
along p1 at the point.
3. Saddle (type II) Ridge: κ1 > 0 > κ2 such that κ2 has a local minimum
along p2 at the point.
4. Concave Ridge: 0 > κ1 > κ2 such that κ2 has a local minimum along
p2 at the point.
All of these are types of elliptic ridges, with the convex and concave elliptic
ridges occurring in regions of positive Gauss curvature and both types of
saddle elliptic ridges occurring in regions of negative Gauss curvature. Also,
note that the saddle elliptic ridges in the second and third cases can cross
transversally. For example, in Figure 13, the convex and saddle elliptic ridges
of type I are shown in cyan and the concave and saddle elliptic ridges of type
II are shown in magenta.
Secondary Ridges. Secondary ridges may not correspond to perceptually obvious geometric features but provide useful insight into variation of
curvature on surfaces. They are defined by one of the following conditions.
1. κ1 > κ2 > 0 with κ1 having a local minimum along p1
2. κ1 > 0 > κ2 with κ1 having a local minimum along p1 .
3. κ1 > 0 > κ2 with κ2 having a local maximum along p2 .
26
a)
b)
Figure 13: Major and secondary ridges of an object; a) side view, b) top view. Major
ridges of κ1 are shown in cyan and those of κ2 are shown in magenta. Secondary ridges
of κ1 are shown in blue and those of κ2 are shown in red.
4. 0 > κ1 > κ2 with κ2 having a local maximum along p2 .
Again in Figure 13, the secondary ridges of κ1 are shown in blue and those
of κ2 are shown in red.
8.2. Salience Boundaries and Salient Regions
Thus far, we have divided the ridges into two distinct classes of major
and secondary ridges; and for the major ridges, these are further divided
into four distinct types which correspond to specific geometric features. We
next further extend this analysis to associate salient regions surrounding the
major ridges.
To define these regions, consider the partial flow along the principal curves
from the major ridge points. At a major ridge point, where κ1 has a local
maximum that is not a turning point, the corresponding principal curve is
transverse to the ridge. By following the principal curve away from the
ridge point, eventually a point is reached where κ1 has a local minimum that
is a point on a secondary κ1 -ridge. Along the curve between these points
there is a point where the function κ1 changes from concave downward to
concave upward. Since there are no intrinsic coordinates on a surface, this
transition point depends upon the choice of coordinates being used. The
27
parameterization of the principal curve can be normalized using the unit
speed parameterization. Then, in these unit speed coordinates along the
principal curve, κ1 has an inflection point on the curve between the local
maximum and minimum where tT1 Hκ1 t1 = 0. There is another inflection
point reached by flowing along the principal curve from the major ridge
point in the negative direction. We term these inflection points the salience
boundary points of the corresponding major ridge point and we term the flow
along the principal direction from the major ridges to the salience boundary
points the salience flow. Salience boundary points of major ridges of κ2 are
identified in a similar manner by flowing along principal curves of κ2 .
The salience boundary for a major ridge then is the collection of salience
boundary points identified from the flow along the corresponding principal
curves from the major ridges. The regions surrounding such a ridge curve and
bounded by the salience boundaries defines salient regions associated to the
major ridges. Following are the types of salience boundaries corresponding
to the type of major ridges:
Types of Salience Boundaries:
1. Convex Salience Boundary : κ1 > κ2 > 0 and κ1 has a first inflection
point moving along p1 from a convex elliptic ridge point in a direction
of decreasing κ1 .
2. Saddle Salience Boundary (Type I) : κ1 > 0 > κ2 and κ1 has a first
inflection point moving along p1 from a saddle elliptic ridge point of
type I in a direction of decreasing κ1 .
3. Saddle Salience Boundary (Type II) : κ1 > 0 > κ2 and κ2 has a first
inflection point moving along p2 from a saddle elliptic ridge point of
type II in a direction of increasing κ2 .
4. Concave Salience Boundary : 0 > κ1 > κ2 and κ2 has a first inflection
point moving along p2 from a concave elliptic ridge point in a direction
of increasing κ2 .
In order to compute salience boundaries and salient regions, principal
curves are traced from each major ridge point on either side of the ridge
using the method presented in [36]. The first inflection point on both sides,
identified as the location where the sign of tTi Hκi ti changes, are marked as
salience boundary points.
Salient regions and salience boundaries associated with major ridges of
a surface are shown in Figure 14. For the convex and type I saddle elliptic
ridges, salient regions are shown in green and for concave and type II saddle
28
Degenerate
inflection point
Figure 14: Salience boundaries and salient regions associated with major ridges. For κ1 ,
major ridges are shown in cyan, principal curve segments in salient regions are shown
in green and inflection points are shown in dark blue. For κ2 , major ridges are shown
in magenta, principal curve segments in salient regions are shown in yellow and inflection
points are shown in dark red. Also shown is a closeup of a region that indicates a degenerate
inflection point.
a)
b)
Figure 15: a) Salience boundary points and other inflection points on principal curves
traced from a few major ridge points. b) Results superimposed on surface indicating
sampling of κ2 ridge function. For κ1 , major ridges are shown in cyan, principal curve
segments in salient regions are shown in green and inflection points are shown in dark blue.
For κ2 , major ridges are shown in magenta, principal curve segments in salient regions are
shown in yellow and inflection points are shown in dark red.
29
elliptic ridges, the salient regions are shown in yellow. It is possible for
multiple inflection points to exist between a major ridge and a secondary
ridge along a principal curve. In this case, the first inflection points reached
by flowing from the major ridge points are treated as the salience boundary
points. In Figure 15 there are other inflection points that occur on the κ2
principal curves between the magenta and red ridges and the number of
such points is consistent with the number of sign changes of tT2 Hκ2 t2 between
major and secondary ridges. Note that there are no additional ridges between
the additional inflection points. This is validated in Figure 15 b) where the
sampled ridge condition for κ2 is shown. In this image, the intensity of the
red color is higher in the regions closer to a κ2 ridge.
8.3. Properties of Salience Boundaries
With the exception of turning points on a ridge, the principal curve pi
corresponding to a principal curvature κi for that ridge is transverse to the
corresponding ridge. In a small neighborhood of a non-turning point x0 ,
generically, the principal curvature does not have critical points at inflection
points, so the implicit function theorem implies that the inflection points
form a regular differentiable curve. Generically this curve is transverse to the
corresponding principal curves and is disjoint from the corresponding major
ridge curve except at isolated points. These properties can fail in two distinct
ways at isolated points. One is when the inflection point is degenerate,
and then the curve of inflection points meets the corresponding major ridge
(which ends there). The other is when the curve of inflection points is tangent
to the principal curve at a point disjoint from the corresponding major ridge.
We describe both of these situations.
8.3.1. Salience Boundaries at Degenerate Inflection Points
For exceptional non-turning points on a ridge, the inflection point occurs
at a critical point for κi along the principal curve. We explain the behavior
at such points for the case of a convex ridge curve. The behavior of κ1 will
be modeled by the behavior of the family g(x, u) = −x3 + ux. Here x is the
unit speed coordinate along the principal curves, and u parameterizes the
family of principal curves with the degenerate inflection point occurring at
the origin. The graph of g is shown in Figure 16.
The inflection points of g, as a function of x, lie along the u axis as shown
in Figure 17. For fixed u < 0, there are no critical points, and a single
inflection point where x = 0. However, the direction of the salience flow is
30
x
u
Figure 16: Graph of g illustrating degenerate inflection points
u
-
+
local max
local min
-
+
x
line of
inflection pts
Figure 17: Decomposition of Salient Region resulting from a Degenerate Inflection Point
determined by the sign of g ′′ as shown in Figure 17. On each side the flow is
away from the origin. At u = 0 the inflection point becomes degenerate and
for u > 0 two critical points are created, one a local maximum for g (= κ1 )
which is a convex ridge point and the other a local minimum for g (= κ1 ),
which is a secondary ridge. These occur on each side of 0; and the sign of g ′′
indicates the flow inside the parabola is toward the origin.
Hence, for this model, the positive u axis is one part of the salience
boundary corresponding to the ridge formed from the local maxima with the
other given by the positive x-axis representing the principal curve tangent to
the curve of local maxima at the degenerate point. Then, the salient region
is the shaded region. An example of a degenerate inflection point is shown
31
in Figure 14.
8.3.2. Salience Boundaries Tangent to Principal Curves
The second possibility is that the curve of inflection points is tangent to
a principal curve at an isolated point. If we again denote κ1 by g then this
will happen at points where g ′′ = 0 (i.e., an inflection point) and g ′′′ = 0
(corresponding to the principal curve being tangent to the curve of inflection
points at that point). Figure 19 b) presents an example of this situation.
8.4. Properties of Salient Regions
Consider a convex elliptic ridge. Suppose the principal curvature κ1 is
large. A large curvature corresponds to a small radius of curvature. If the
ridge is part of a larger region, then this high curvature can only be maintained for a short time along the corresponding principal curve. Hence, the
decrease must be rapid initially which then begins to decrease more gradually. This is where an inflection point occurs. Hence, the salient region is
concentrated in a small region about the major ridge curve, as illustrated in
Figure 14 at the cyan ridge in the center of the image where the surface is
sharply curving. If instead the curvature is much smaller, then the decrease
can be more gradual so the inflection point occurs much farther along the
principal curve. Then, the salient region is much larger but changes more
gradually. The cyan ridges on either side of the image center of Figure 14
illustrate this behavior. Also, in Figure 15 a) the salience boundaries of κ2
are further away from the magenta ridge since the curvature change is more
gradual. An analogy here is with placing an ink pad at a point on a ridge.
The sharper the change in the curvature κ1 , the smaller the region that would
be marked by the ink. By contrast, if the curvature κ1 changes more gradually, a much larger region will be marked by the ink. The salient region is
similar to such a marked region.
8.5. Analyzing Geometric Variation using Salient Regions
Salient regions are an effective visualization tool for analyzing higher order
geometric properties of surfaces and can also be used to measure geometric
variation of similar objects. Salient regions are especially useful in distinguishing geometric properties of a population of similar objects when ridges
on the surfaces occur at similar locations. Figure 18 shows front and back
views of an object that is slightly asymmetric. The major and secondary
ridges are slightly different on the front and back sides of the model but do
32
a)
b)
c)
d)
e)
f)
g)
h)
Figure 18: Visualizing geometric differences using salient regions. a) front view and, b)
back view of a slightly asymmetric object, c) and d) major ridges only, e) and f) all ridges,
g) and h) salient regions.
33
Salience boundary tangent
to principal curve
a)
b)
Figure 19: Visualizing geometric differences using salient regions. a) the major ridge
corresponding to the bump in the surface lies in the center on both asymmetric regions,
other major ridges are slightly different across plane of symmetry, b) salient regions clearly
indicate geometric differences in the asymmetric regions pointed by the arrows. Also shown
is a close up view of a region that contains a point where the salience boundary is tangent
to the principal curve.
not clearly distinguish the differences. In particular, the major ridge running along the bump of the model is almost identical on both sides. In this
case the salient regions clearly indicate the geometric differences and enable
quantitative evaluation of the differences. The differences are clearly visible
from the top view of the object as shown in Figure 19.
9. Conclusions
Ridges are important feature curves and have a wide variety of applications. Umbilics and therefore, ridges around umbilics, also represent important aspects of the shape of a surface. Ridges exhibit complex behavior
around umbilics. This paper presents a new algorithm for numerically tracing
ridges on B-Spline surfaces that has been designed using generic properties of
ridges. In addition, a new type of geometrically salient region corresponding
to major ridges is defined.
The tracing algorithm involves traversing curvature lines in a novel manner and accurately captures the behavior of ridges at all points on a surface
including umbilics. The technique takes into account turning points without
directly computing them, thereby allowing ridge computation on C 3 models,
instead of requiring C 4 smoothness. Our technique has been designed for
34
rational tensor product B-Spline surface representations. Since ridge computation is local to a tensor product patch, it is directly extensible for models
with multiple patches. Some special cases, such as ridges parallel to a domain
boundary, may need to be addressed. Trimmed freeform surfaces also may
be addressed by minor modifications to the algorithm. The algorithm design enables optimization using parallel processing techniques, which would
further improve computation time. The approach can be further extended
to surfaces with isolated irregular points. We plan to pursue these modifications in future work. The technique presented in this paper avoids errors
in ridge computation associated with sampling-based approaches, while at
the same time, it can generate results for complex models that were previously computationally intractable. The result is a set of trace segments that
are available for other applications, such as surface segmentation, matching,
quality control and visualization.
We identify elliptic ridges as major ridges with geometric significance.
These ridges supplemented with salient regions are very useful for studying
geometric variation across a population of similar objects. Earlier methods
for computing significance of ridges only account for geometric properties of
surfaces only at the ridge points. The type of salient region presented in this
paper provides a new method of quantifying geometric importance of ridges
that also takes into account salient neighborhoods of ridges. We are currently
investigating several measures based on salient regions to precisely quantify
geometric properties of surfaces at and in the neighborhood of ridges.
10. Acknowledgements
This work was supported in part by NSF (CCF0541402), NSF DMS0706941, the Basic Science Research Program through the National Research
Foundation of Korea (NRF) funded by the Ministry of Education, Science
and Technology (2010-0028631), and the Korea Science and Engineering
Foundation (KOSEF) grant funded by the Korea government (MEST) (20100015879). All opinions, findings, conclusions or recommendations expressed
in this document are those of the authors and do not necessarily reflect the
views of the sponsoring agencies.
[1] I. Porteous, The normal singularities of a submanifold, Journal of Differential Geometry 5 (1971) 543–564.
[2] J. Koenderink, Solid shape, MIT Press Cambridge, MA, USA, 1990.
35
[3] A. Guéziec, Large deformable splines, crest lines and matching, in: Computer Vision, 1993. Proceedings., Fourth International Conference on,
1993, pp. 650–657.
[4] J. Kent, K. Mardia, J. West, Ridge curves and shape analysis, in: The
British Machine Vision Conference 1996, 1996, pp. 43–52.
[5] X. Pennec, N. Ayache, J.-P. Thirion, Landmark-based registration using
features identified through differential geometry, in: I. Bankman (Ed.),
Handbook of Medical Image Processing and Analysis - New edition,
Academic Press, 2008, Ch. 34, pp. 565–578.
[6] G. Subsol, Crest lines for curve-based warping, Brain Warping (1999)
241–262.
[7] F. Cole, A. Golovinskiy, A. Limpaecher, H. S. Barros, A. Finkelstein,
T. Funkhouser, S. Rusinkiewicz, Where do people draw lines?, ACM
Transactions on Graphics (Proc. SIGGRAPH) 27 (3).
[8] V. Interrante, H. Fuchs, S. Pizer, Enhancing transparent skin surfaces
with ridge and valley lines, in: Proceedings of the 6th conference on
Visualization’95, IEEE Computer Society Washington, DC, USA, 1995.
[9] K. Ma, V. Interrante, Extracting feature lines from 3D unstructured
grids, in: Visualization’97., Proceedings, 1997, pp. 285–292.
[10] M. Hosaka, Modeling of curves and surfaces in CAD/CAM with 90
figures Symbolic computation, Springer, 1992.
[11] J. Little, P. Shi, Structural lines, TINs, and DEMs, Algorithmica 30 (2)
(2001) 243–263.
[12] T. Tasdizen, R. Whitaker, Feature preserving variational smoothing
of terrain data, in: Proceedings of the Second IEEE Workshop on
Variational, Geometric and Level Set Methods in Computer Vision
(VLSM’03)(Institute of Electrical and Electronics Engineers, 2003), pp.
121–128.
[13] K. Ko, T. Maekawa, N. Patrikalakis, H. Masuda, F. Wolter, Shape intrinsic fingerprints for free-form object matching, in: Proceedings of the
eighth ACM symposium on Solid modeling and applications, ACM New
York, NY, USA, 2003, pp. 196–207.
36
[14] N. Patrikalakis, T. Maekawa, Shape interrogation for computer aided
design and manufacturing, Springer, 2002.
[15] F. Cazals, M. Pouget, Topology driven algorithms for ridge extraction
on meshesINRIA Technical Report.
[16] Y. Ohtake, A. Belyaev, H. Seidel, Ridge-valley lines on meshes via implicit surface fitting, ACM Transactions on Graphics 23 (3) (2004) 609–
612.
[17] S. Yoshizawa, A. Belyaev, H. Yokota, H. Seidel, Fast and faithful geometric algorithm for detecting crest lines on meshes, in: Computer
Graphics and Applications, 2007. PG’07. 15th Pacific Conference on,
2007, pp. 231–237.
[18] F. Cazals, J. Faugère, M. Pouget, F. Rouillier, The implicit structure
of ridges of a smooth parametric surface, Computer Aided Geometric
Design 23 (7) (2006) 582–598.
[19] I. Porteous, Geometric differentiation: for the intelligence of curves and
surfaces, Cambridge University Press, 2001.
[20] P. Hallinan, G. Gordon, A. Yuille, P. Giblin, D. Mumford, Two-and
three-dimensional patterns of the face, AK Peters, Ltd. Natick, MA,
USA, 1999.
[21] F. Cazals, J. Faugère, M. Pouget, F. Rouillier, Topologically certified
approximation of umbilics and ridges on polynomial parametric surfaceINRIA Technical Report.
[22] F. Cazals, J. Faugère, M. Pouget, F. Rouillier, Ridges and umbilics
of polynomial parametric surfaces, Geometric Modeling and Algebraic
Geometry (2007) 141–159Jüttler, B. and Piene, R. (eds.).
[23] M. Jefferies, Extracting Crest Lines from B-spline Surfaces, Arizona
State University, 2002.
[24] R. Morris, Symmetry of Curves and the Geometry of Surfaces, Ph.D.
thesis, PhD thesis, University of Liverpool (1990).
37
[25] K. Hildebrandt, K. Polthier, M. Wardetzky, Smooth feature lines on
surface meshes, in: Symposium on geometry processing, 2005, pp. 85–
90.
[26] S. Kim, C. Kim, Finding ridges and valleys in a discrete surface using
a modified MLS approximation, Computer-Aided Design 37 (14) (2005)
1533–1542.
[27] G. Stylianou, G. Farin, Crest lines extraction from 3D triangulated
meshes, Hierarchical and geometrical methods in scientific visualization
(2003) 269–281.
[28] A. Belyaev, Y. Ohtake, K. Abe, Detection of ridges and ravines on range
images and triangular meshes, in: Proceedings of SPIE, Vol. 4117, 2000,
p. 146.
[29] Y. Lai, Q. Zhou, S. Hu, J. Wallner, H. Pottmann, Robust feature classification and editing, IEEE Transactions on Visualization and Computer
Graphics 13 (1) (2007) 34–45.
[30] A. Belyaev, A. Pasko, T. Kunii, Ridges and ravines on implicit surfaces,
in: Computer Graphics International, 1998. Proceedings, 1998, pp. 530–
535.
[31] I. Bogaevski, V. Lang, A. Belyaev, T. Kunii, Color ridges on implicit
polynomial surfaces, GraphiCon 2003, Moscow, Russia.
[32] J. Thirion, A. Gourdon, The 3D marching lines algorithm and its application to crest lines extraction.
[33] O. Monga, S. Benayoun, Using partial derivatives of 3D images to extract typical surface features, Computer Vision and Image Understanding 61 (2) (1995) 171–189.
[34] E. Cohen, R. Riesenfeld, G. Elber, Geometric modeling with splines: an
introduction, AK Peters, Ltd., 2001.
[35] B. O’Neill, Elementary differential geometry, 2nd Edition, Academic
press, 2006.
38
[36] T. Maekawa, F. Wolter, N. Patrikalakis, Umbilics and lines of curvature
for shape interrogation, Computer Aided Geometric Design 13 (2) (1996)
133–161.
[37] T. Maekawa, N. Patrikalakis, Interrogation of differential geometry properties for design and manufacture, The Visual Computer 10 (4) (1994)
216–237.
[38] G. Elber, M. Kim, Geometric constraint solver using multivariate rational spline functions, in: Proceedings of the sixth ACM symposium on
Solid modeling and applications, ACM New York, NY, USA, 2001, pp.
1–10.
[39] G. Elber, T. Grandine, Efficient solution to systems of multivariate polynomials using expression trees, in: IEEE International Conference on
Shape Modeling and Applications, 2008. SMI 2008, 2008, pp. 163–169.
[40] D. Johnson, E. Cohen, An improved method for haptic tracing of sculptured surfaces, in: Symp. on Haptic Interfaces, ASME International
Mechanical Engineering Congress and Exposition, Anaheim, CA, 1998.
[41] X. Liu, L. Yang, J. Yong, H. Gu, J. Sun, A torus patch approximation
approach for point projection on surfaces, Computer Aided Geometric
Design 26 (5) (2009) 593–598.
[42] G. Elber. The IRIT modeling environment, version 10.0 [online] (2008).
[43] D. Hastings, P. Dunbar, G. Elphingstone, M. Bootz, H. Murakami,
H. Maruyama, H. Masaharu, P. Holland, J. Payne, N. Bryant, et al.,
The global land one-kilometer base elevation (GLOBE) digital elevation
model. Version 1.0. National Oceanic and Atmospheric Administration,
National Geophysical Data Center, Boulder, Colorado, National Geophysical Data Center, Digital data base on the World Wide Web (URL:
http://www.ngdc.noaa.gov/mgg/topo/globe.html) and CD-ROMs.
[44] S. Musuvathy, E. Cohen, Extracting Principal Curvature Ridges from
B-Spline Surfaces with Deficient Smoothness, Advances in Visual Computing (2009) 101–110.
39