0% found this document useful (0 votes)
61 views7 pages

Deformable/Active Contours (Or Snakes) : - Procedure

Snakes, or deformable contours, are algorithms that find object boundaries by evolving an initial contour placed near the object boundary. The contour evolves under the influence of internal forces that maintain smoothness and external forces from image gradients that pull it towards edges. The contour evolution minimizes an energy functional composed of internal continuity and curvature terms and an external image term. A greedy algorithm iteratively moves points to locally minimize the energy until convergence.

Uploaded by

NITHIN NAKULAN
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views7 pages

Deformable/Active Contours (Or Snakes) : - Procedure

Snakes, or deformable contours, are algorithms that find object boundaries by evolving an initial contour placed near the object boundary. The contour evolves under the influence of internal forces that maintain smoothness and external forces from image gradients that pull it towards edges. The contour evolution minimizes an energy functional composed of internal continuity and curvature terms and an external image term. A greedy algorithm iteratively moves points to locally minimize the energy until convergence.

Uploaded by

NITHIN NAKULAN
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Deformable/Active Contours (or Snakes)

(Trucco, Chapt 4)

- The goal is to find a contour that best approximates the perimeter of an object.

- It is helpful to visualize it as a rubber band of arbitrary shape that is capable of


deforming during time, trying to get as close as possible to the target contour.

- It is applied to the gradient magnitude of the image, not to the edge points (e.g.,
like the Hough transform).

• Procedure

- Snakes do not solve the entire problem of finding contours in images.

- They depend on other mechanisms such as interaction with a user or with some
other higher-level computer vision mechanism:

(1) First, the snake is placed near the image contour of interest.

(2) During an iterative process, the snake is attracted towards the target con-
tour by various forces that control the shape and location of the snake within
the image.
-2-

• Approach

- It is based on constructing an energy functional which measures the appropriate-


ness of the contour.

- Good solutions correspond to minima of the functional.

- The goal is to minimize this functional with respect to the contour parameters.

• Contour parameterization

- The snake is a contour represented parametrically as c(s) = (x(s), y(s)) where


x(s) and y(s) are the coordinates along the contour and s ∈ [0,1]

• The energy functional

- The energy functional used is a sum of several terms, each corresponding to some
force acting on the contour.

- A suitable energy functional is the sum the following three terms:

E = ∫ ( (s)E cont + (s)E curv + (s)E image )ds




- The parameters , , and control the relative influence of the corresponding




energy terms and can vary along c.


-3-

• Interpretation of the functional’s terms

- Each energy term serves a different purpose:

E image : it attracts the contour toward the closest image edge.

E cont : it forces the contour to be continuous.

E curv : it forces the contour to be smooth.

- E cont and E curv are called internal energy terms.

- E image is called external energy term.

• The continuity term

- Minimize the first derivative:

dc 2
E cont = || ||
ds
- In the discrete case, the contour is approximated by N points p1 , p2 , . . . , p N and
the first derivative is approximated by a finite difference:

E cont = || pi − pi−1 ||2 or

E cont = (x i − x i−1 )2 + (y i − y i−1 )2

- This term tries to minimize the distance between the points, however, it has the
effect of causing the contour to shrink.

- A better form for E cont is the following:

E cont = (d − || pi − pi−1 ||)2

where d is the average distance between the points of the snake.

- The new E cont attempts to keep the points at equal distances (i.e, spread them
equally along the snake).
-4-

• The smoothness term

- The purpose of this term is to enforce smoothness and avoid oscillations of the
snake by penalizing high contour curvatures.

- Minimize the second derivative (curvature):

d2c 2
E curv = || 2 ||
ds

- In the discrete case, the curvature can be approximated by the following finite dif-
ference:
E curv = || pi−1 − 2 pi + pi+1 ||2 or

E curv = (x i−1 − 2x i + x i+1 )2 + (y i−1 − 2y i + y i+1 )2

• The edge attraction term

- The purpose of this term is to attract the contour toward the target contour.

- This can be achieved by the following function:

E image = − ||∇I ||

where ∇I is the gradient of the intensity computed at each snake point.

- Note that E image becomes very small when the snake points get close to an edge.
-5-

• Discrete formulation of the problem

Assumptions

Let I be an image and p1 , ..., p N the initial locations of the snake (evenly spaced,
chosen close to the contour of interest).

Problem Statement

Starting from p1 , ..., p N , find the deformable contour p1 , ..., p N which fits the tar-
get contour by minimizing the energy functional:

N
Σ(
i=1


i E cont + 

i E curv + 

i E image )

• A greedy algorithm

- A greedy algorithm makes locally optimal choices, hoping that the final solution
will be globally optimum.

Step1 (greedy minimization): each point of the snake is moved within a small
neighborhood (e.g., MxM) to the point which minimizes the energy functional

Step 2 (corner elimination): search for corners (curvature extrema) along the con-
tour; if a corner is found at point p j , set j to zero.
-6-

Algorithm
The input is an intensity image I containing the target contour and points
p1 ,..., p N , defining the initial position and shape of the snake.

1. For each pi , i = 1, . . , N , search its MxM neighborhood to find the location


that minimizes the energy functional; move pi to that location.

2. Estimate the curvature of the snake at each point and look for local maxima
(i.e., corners); Set j to zero for each p j at which the curvature is a local max-


imun and exceeds a threshold.

3. Update the value of d.

Repeat steps 1-3 until only a very small fraction of snake points move in an iter-
ation.
-7-

• Implementation details

- It is important to normalize the contribution or each term for correct implementa-


tion:

(1) For E cont and E curv , it is sufficient to divide by the largest value in the
neighborhood in which the point can move.

||∇I || − min
(2) normalize ||∇I || as where min and max are the minimum and
max − min
maximum gardient values in the neighborhood.

• Comments

- This approach is simple and has low computational requirements (O(MN ).

- It does not guarantee convergence to the global minimum of the functional.

- Works very well as far as the initial snake is not too far from the desired solution.

You might also like