The development of active contour models results from the work of Kass,
Witkin, and Terzopoulos.
Active contour models may be used in image segmentation and understanding,
and are also suitable for analysis of dynamic image data or 3D image data.
The active contour model, or snake, is defined as an energy
minimizing spline - the snake's energy depends on its shape and location
within the image.
Local minima of this energy then correspond to desired image properties.
Snakes may be understood as a special case of a more general technique
of matching a deformable model to an image by means of energy minimization.
Snakes do not solve the entire problem of finding contours in images,
but rather, they depend on other mechanisms like interaction with a user,
interaction with some higher level image understanding process, or information
from image data adjacent in time or space.
This interaction must specify an approximate shape and starting position
for the snake somewhere near the desired contour.
A priori information is then used to push the snake toward an appropriate
solution.
The energy functional which is minimized is a weighted combination
of internal and external forces.
The internal forces emanate from the shape of the snake, while the
external forces come from the image and/or from higher level image understanding
processes.
The snake is parametrically defined as v(s)=(x(s),y(s)) where
x(s),y(s) are x,y co-ordinates along the contour and s
is from [0,1].
The energy functional to be minimized is
The internal spline energy can be written
where alpha(s),beta(s) specify the elasticity and stiffness
of the snake.
Note that setting beta(sk)=0 at a point sk allows the snake to become
second-order discontinuous at that point, and develop a corner.
The second term of the energy integral is derived from the image
data over which the snake lies.
As an example, a weighted combination of three different functionals
is presented which attracts the snake to lines, edges, and terminations
The line-based functional may be very simple
where f(x,y) denotes image gray levels at image location (x,y).
The sign of wline specifies whether the snake is attracted to light
or dark lines.
The edge-based functional attracts the snake to contours with large
image gradients - that is, to locations of strong edges:
Line terminations and corners may influence the snake using a weighted
energy functional Eterm
The snake behavior may be controlled by adjusting the weights wline,
wedge, wterm.
The third term of the energy integral comes from external constraints
imposed either by a user or some other higher level process which may force
the snake toward or away from particular features.
If the snake is near to some desirable feature, the energy minimization
will pull the snake the rest of the way.
However, if the snake settles in a local energy minimum that a higher
level process determines as incorrect, an area of energy peak may be made
at this location to force the snake away to a different local minimum.
A contour is defined to lie in the position in which the snake reaches
a local energy minimum.
Originally, a resolution minimization method was proposed; partial
derivatives in s and t were estimated by the finite differences method.
Later, a dynamic programming approach was proposed which allows `hard'
constraints to be added to the snake.
Further, a requirement that the internal snake energy must be a continuous
function may thus be eliminated and some snake configurations may be prohibited
(that is, have infinite energy) allowing more a priori knowledge to be
incorporated.
Difficulties with the numerical instability of the original method
were overcome by Berger by incorporating an idea of snake growing.
A single primary snake may begin which later divides itself into pieces.
The pieces of very low energy are allowed to grow in directions of
their tangents while higher energy pieces are eliminated.
After each growing step, the energy of each snake piece is minimized
(the ends are pulled to the true contour and the snake growing process
is repeated.
Further, the snake growing method may overcome the initialization problem.
The primary snake may fall into an unlikely local minimum but parts
of the snake may still lie on salient features.
The very low energy parts (the probable pieces) of the primary snake
are used to initialize the snake growing in later steps.
This iterative snake growing always converges and the numerical solution
is therefore stable - the robustness of the method is paid for by an increase
in the processing cost of the algorithm.
A different approach to the energy integral minimization that is based
on a Galerkin solution of the finite element method and has the advantage
of greater numerical stability and better efficiency.
This approach is especially useful in the case of closed or nearly
closed contours.
An additional pressure force is added to the contour interior by considering
the curve as a balloon which is inflated.
This allows the snake to overcome isolated energy valleys resulting
from spurious edge points giving better results.
Deformable models based on active contours were generalized to three
dimensions by Terzopoulos and 3D balloons were introduced by Cohen.