Active contours, or snakes [
10
] have found many applications in image analysis and computer vision. A
snake is a parametric contour
, in the image plane (
x
,
y
). The snake evolves under internal and external ``forces'', usually
described by energy terms
and
. The internal forces keep the snake smooth and the external forces
couple the snake to the image
I
(
x
,
y
), attracting the snake to features of interest (for segmentation
applications, these features would be object boundaries). The internal
forces usually take the form
The
term controls the ``tension'' of the snake while the
term controls its ``rigidity''. The external forces take a similar form:
where
P
(
x
,
y
) is a scalar potential function designed so that local minima of the
function coincide with image features of interest. For instance, if we
are trying to detect boundaries which are characterised by high
intensity gradients, then a suitable potential would be
, where
is a 2D Gaussian kernel with standard deviation
pixels.
Starting from an initial position, the snake evolves under the influence
of the combined field
. In practical implementations, the snake is split into piecewise linear
segments and local forces are calculated at each vertex. The motion of
the snake is computed using gradient descent [
10
] or Lagrangian dynamics [
11
]. For segmentation applications, the idea is that the equilibrium
position of the snake provides the desired segmentation. If
I
(
x
,
y
) changes, the snake can also be used to
track
a boundary over time, providing motion as well as shape information [
3
].
The main reason for using snakes in segmentation is that they allow the incorporation of geometric constraints. In particular, they exploit (in fact they rely on) prior boundary estimates obtained manually or from the previous image in a sequence. Such an approach sensibly combines the strengths of human operators (initial boundary recognition ) and computer algorithms (accurate boundary delineation ). Snakes have proved very successful for medical image segmentation [ 12 ]. In particular, snakes have been shown to give state-of-the-art performance for segmenting intra-vascular ultrasound images [ 4 ].
An alternative way to enforce the smoothness constraint is to use cubic
B-spline snakes [
6
]. A cubic B-spline is specified by
m
+1 control points
and comprises
m
-2 cubic polynomial curve segments
. The joining points between each curve segment are known as
knots
. The equation of each segment is \
for
and
. For notational convenience we can re-parameterise the spline over a
single parameter
s
:
where
are the spline basis functions and
. The representation
is more compact than the long list of vertices in piecewise linear
formulations. Moreover, the internal forces are no longer required: the
smoothness of the snake is implicit in the B-spline formulation.
B-splines may be open or closed as required, and are defined with
continuity properties at each knot. The flexibility of the curve
increases as more control points are added: each additional control
point allows one more inflection. It is also possible to use multiple
knots to reduce the continuity at knots [
14
].
However, what makes B-splines especially useful for segmentation is that
they exhibit local control: modifying the position of one control point
causes only a small part of the curve to change. This leads to an
effective and simple algorithm for computing the motion of the snake
under the influence of image forces -- see Figure
1
. Local forces are computed at
n
sample points
distributed evenly around the spline. At each sample point, a
one-dimensional search is performed normal to the spline for a local
minimum
of
P
(
x
,
y
): we shall refer to the points
as
target points
. A force is applied at each sample point proportional to the distance
between the sample and the target points, ie:
The positions of the control points are then updated to minimize
using linear least squares [
6
]. The one-dimensional search and re-estimation of the control points is
repeated until the snake attains equilibrium.
Figure 1:
B-spline snakes.
The snake evolves under a set of ``forces'' applied at a set of sample
points. Each force is proportional to the distance between the sample
point and the target point. The target point is found by a
one-dimensional search normal to the spline for an image feature of
interest. At equlibrium the snake provides a compact representation of
the boundary.
The main drawback of both piecewise linear and B-spline snakes is the
difficulty in specifying
a-priori
the correct smoothness parameters (ie. setting
and
, or specifying the correct number of control points). Techniques have
been proposed to automatically introduce the ``best'' number of control
points [
5
], though such techniques tend to be computationally expensive. Here we
propose an extremely straightforward, novel work-around. We use a
B-spline formulation with a fairly small number of control points. While
this tends to give overly smoothed contours, we base our segmentation
not on the B-spline
but on a piecewise linear contour with vertices
. The target points provide a good segmentation, while the B-spline
formulation constrains the search for the target points and therefore
stops the snake becoming too ``bent'' and intersecting itself.
A.H. Gee