Snakes , or active contours, are curves defined within an image domain, which can move under the influence of internal forces within the curve itself and external forces derived from the image data. The internal and external forces are defined so that the snake will conform to an object boundary or other desired features within an image. Snakes are widely used in many applications, including edge detection , shape modeling [2,3,4], segmentation [5,6,7], and motion tracking [5,8].
There are two general types of active contour models in the literature today: parametric active contours and geometric active contours. Parametric active contours were originally developed by Kass, Witkin, and Terzopoulos . In their formulation, the image data are used to define potential functions over the image domain. Usually, these potential functions have local minima at the image intensity edges that occur at object boundaries. Parametric curves are then synthesized within the image domain, and are forced to move toward the potential function minima. The forces that move the curve are formed in part by the negative of the gradient of the potential function itself; we will call these forces potential forces. Additional forces, such as pressure forces, together with the potential forces comprise all the external forces. In addition, there are internal forces designed to hold the curve together (elasticity forces) and to keep it from bending too much (bending forces).
More recently, geometric active contour models were proposed by Caselles et al.  and Malladi et al. . Based on the theory of curve evolution and geometric flows [11,12,13,14], these models define a geometric active contour as a level-set of an evolving scalar function defined on a spatial domain. The computations causing the scalar function to change are based on a numerical algorithm proposed by Osher and Sethian .
Caselles  has shown that parametric active contours and geometric contours are basically equivalent, and that one formulation can be derived from the other. One basic difference, however, is in the handling of what is sometimes called ``the topology problem''. In particular, when there are several objects in the scene, the topology of the final curve is object-dependent, and the algorithm must adjust. In the geometric active contour formulation, this is handled automatically, since the parameterization of the level-set is calculated only after convergence . In the parametric active contour formulation, more extensive measures need to be taken to split active contours into two or more pieces [7,17] or to instantiate separate active contours at different locations [18,19]. Except for topological differences, however, the behavior of both active contour models is fundamentally characterized by the external and internal forces of the formulation. We focus our discussion in this paper on the parametric active contour viewpoint.
There are three key difficulties with active contour algorithms. First, it is well known that the initial contour, in general, must be placed close to the boundary or else it will likely converge to the wrong result. Several methods have been proposed to address this problem including scale-space methods  and pressure forces . The basic idea is to increase the ``capture range'' of the external fields and to guide the contour toward the desired boundary. The second problem is that active contours are known to have difficulties progressing into concave boundary regions, often leaving the contour split across the concave region . There is no satisfactory solution to this problem, although pressure forces , control points , adding nodes , and using solenoidal external fields  have been proposed. The third problem stems from the fact that that most algorithms use potential forces derived from a low-pass filtered image in order to increase the capture range. Unfortunately, this filtering also blurs the boundary detail, leaving the snake to converge to a blurry boundary. While multi-resolution approaches have addressed this problem , determining the required resolution for a given snake position is difficult to determine, and leads to ad-hoc methods.
In this paper, we present a new class of external forces for active contour models which addresses all three problems listed above. These fields, which we call gradient vector flow (GVF) fields, are dense vector fields derived from images by minimizing a certain energy functional in a variational framework. The minimization is achieved by solving a pair of decoupled linear partial differential equations which diffuses the gradient vectors of an edge map computed from the image. The GVF field assigns to every point in the image a vector that would move a particle placed at that point toward a nearby edge in the image. We will call the active contour that uses the GVF field as its external force a GVF snake. Particular advantages of the GVF snake over a traditional snake are its insensitivity to initialization and ability to move into concave boundary regions. Unlike the pressure forces associated with balloon snakes, the GVF snake does not need to ``know'' whether to shrink or grow towards the boundary. We will also show how the GVF field itself has some interesting properties related to the medial axis analysis of shape.
This paper is organized as follows. In Section 2, we give a brief introduction to parametric snakes. In Section 3, we describe the GVF field and GVF snake, and in Section 4 we give several examples of GVF fields and GVF snakes applied to simple shapes. Section 5 demonstrates GVF on two noisy gray-level images and on a simple shape in three dimensions. In Section 6, we describe an interesting connection between the GVF field and medial axis properties of shapes. Finally, in Section 7, we summarize our results and discuss possible future research directions.