Abstract:
A computer-implemented method and apparatus for tracking an image object within successive first and second image frames. The first frame has a first contour model which defines the image object within the first frame. The first contour model has a global motion parameter which defines global motion of the image object between the first frame and at least one frame preceding the first frame. A second contour model is defined in the second frame based upon the global motion parameter. Image blocks that are associated with points on the first contour model are matched with image blocks associated with points on the second frame to produce motion probabilities associated with each contour point. The motion probabilities are based upon the amount of displacement between respective matched image blocks of the first and second contour models. The shape of the second contour model is locally adjusted based upon the motion probabilities to produce a locally adjusted second contour model.

Description:
BACKGROUND OF THE INVENTION 
     1.0 Technical Field 
     The present invention relates generally to computerized video image tracking and more particularly to tracking deformable objects with a computerized active contour model. 
     2.0 Discussion 
     Tracking and extraction of deformable objects from a video sequence have significant uses for multimedia systems and image analysis. Its applications include content-based video indexing, image and video manipulation, and model-based video compression. Two principle reasons exist for why object deformation needs to be taken into consideration in those applications. First, most natural objects of interest are non-rigid. Some of them are articulated (e.g., humans, animals, trees, etc.) and others are deformable or elastic. Secondly, rigid objects can also appear to be &#34;deformed&#34; in two-dimensional images, due to the perspective projection and lens distortion effects. 
     The tracking of deformable objects encounters several problems. A deformable object&#39;s structure can change over time and no single motion description can accurately describe the local motion for each subpart of the object. On the other hand, occlusion can cause even more problems during the tracking. The disappearance or re-appearance of a certain part of the object can change the neighborhood characteristic of the contour points which define the contour of an object. This situation usually results in misleading the tracking of the object. 
     Different models have been suggested to represent deformable objects. Meshes can be used to model object deformation by estimating the motion of each nodal point constrained by a mesh structure. Deformable templates have also been used to find similar objects after some kind of deformation in a video frame (see: A. K. Jain, Y. Zhong, and S. Lakshmanan, Object Matching Using Deformable Templates, IEEE Trans. on Pattern Analysis and Machine Intelligence, March 1996). 
     Also, the snake approach has been used in extracting objects from still images. A snake is an elastic curve placed on an image object that converges toward image object features that satisfy certain smoothness constraints. To extend it to tracking image objects in image sequences, a reliable motion estimation algorithm is needed and is lacking in past works. 
     Several researchers have studied snakes combined with motion prediction and estimation for deformable objects contours. Terzopoulos and Szeliski proposed the Kalman snake, which incorporates the dynamic snake into the Kalman filter system for tracking rigid or non-rigid objects (see: D. Terzopoulos and R. Szeliski, Tracking With Kalman Snakes, A. Blake and A. Yuille, editors, Active Vision. MIT Press, Cambridge, Mass., 1992). Ngo et al. proposed the generalized active contour model (called g-snake) for tracking the object boundaries (see: C. W. Ngo, S. Chan and K. F. Lai, Motion Tracking And Analysis Of Deformable Objects By Generalized Active Contour Model, Second Asian Conference on Computer Vision, pages 442-446, 1995). Temporal motion information is used for adaptive global motion prediction of the target object. However, only global motion prediction is used and the lack of local motion estimation can still lead to tracking failure, especially when the image contains complicated edge structures or when the object has significant local deformation. 
     SUMMARY OF THE INVENTION 
     The present invention is a computer-implemented method of tracking an image object within successive first and second image frames. The first frame has a first contour model which defines the image object within the frame. The first contour model has a global motion parameter which defines the global motion of the image object between the first frame and at least one frame preceding the first frame. 
     First, the present invention defines a second contour model in the second frame based upon the global motion parameter. Next, image blocks which are associated with points on the first contour model with image blocks associated with points on the second frame are matched in order to produce motion probabilities associated with each contour point. The motion probabilities are based upon the amount of displacement between the respective matched image blocks of the first and second contour models. 
     The shape of the second contour model is then locally adjusted based upon the motion probabilities to produce a locally adjusted second contour model. The locally adjusted second contour model is refined by converging the second contour model towards the image object within the second image frame based upon predefined smoothness constraints and upon the motion probability data. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Additional advantages and features of the present invention will become apparent from the subsequent description and the appended claims, taken in conjunction with the accompanying drawings, in which: 
     FIG. 1 is a flow chart showing the steps for tracking an object image within a video frame; 
     FIGS. 2a-2b illustrate the block matching algorithm with relaxation labeling technique for tracking object images within video frames; 
     FIGS. 3a-3c are flow charts which depict the steps in tracking an object image within video frames; 
     FIGS. 4a-4c are video frames showing the tracking of an object image over three video frames; 
     FIG. 5a is a graph depicting the affine transformed error over a number of frames; and 
     FIG. 5b is a graph depicting the total snake energy over a number of frames. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     An overview of the functions of the present invention is presented in FIG. 1. At block 30, the user defines an initial object contour to start the tracking process. For the preferred embodiment, the initial contour should be close to the object boundary to ensure good tracking, especially when the background and/or the object contain a lot of edges. 
     After the initial input, a simple snake algorithm without motion estimation is applied at block 34 to move the initial contour for smoothness and to lock on desired features (edges). Block 38 obtains the next video frame. 
     Block 42 examines previous frames to determine the general motion of the object and to establish a rough estimate of the new positions of the snake points of the object within the newly acquired video frame. Based upon this rough estimate, the local motion of each snake point is determined at block 46 for each snake point. Block 46 uses a technique which focuses on the motion local to each snake point to determine the likelihood that a snake point has moved to a location within the next frame. For the preferred embodiment, the technique of block 46 uses a block matching algorithm with relaxation labeling. 
     The motion-compensated contour is used as the initial estimate for the snake energy minimization process for the new frame. This motion estimation and snake energy minimization processes are performed sequentially for each video frame. 
     The present invention automatically generates two different degradation measures for monitoring the contour tracking performance. Block 50 performs an affine transformation in order to represent the object&#39;s motion and calculates the affine warped matching error. Block 54 generates the second one which is based on the total snake energy for each estimated contour. Such error measures are useful for interactive object tracking systems, which require the system to have some intelligence in terms of self-monitoring for any significant performance degradation. In the preferred embodiment, the system alarms the user and asks for user input to restart the tracking once the degradation has exceeded a predetermined threshold. These steps are now discussed in greater detail. 
     Snake Calculation Without Motion Information 
     Each snake (contour) is represented by an ordered set of points, V=[v 1 , v 2 , . . . , v n  ] where v i  =(x i ,y i ). Once an initial contour is defined, the contour is modified iteratively through an energy minimization process. For each snake point, the energy E i  is a weighted sum of three terms representing continuity, curvature, and image forces, respectively: ##EQU1## 
     During the iteration process, a neighborhood of each snake point is examined. The point in the neighborhood which gives the smallest energy is chosen as the new location for that point. 
     The first continuity term is designed to encourage the distance between adjacent snake points to be equal: 
     
         E.sub.cont (v.sub.i)=|d-d(v.sub.i,v.sub.i-1)| 
    
     where d(v i ,v i-1 ) denotes the average distance between v i  and v i-1 , and d is the average distance for all such pairs. 
     For contour smoothness, the curvature is used and is estimated at each snake point as: 
     
         E.sub.curv (v.sub.i)=|v.sub.i-1 -2v.sub.i +v.sub.i+1 | 
    
     Both E cont  and E curv  are normalized to [0,1]. 
     Finally, the image force is defined by the gradient magnitude of edge pixels. The gradient magnitude, g, in the neighborhood of a snake point is first calculated and normalized. The gradient maximum g max  and minimum g min  are determined. For each point, the energy from image force is defined as ##EQU2## 
     The minus sign at the right hand side of the equation indicates that the energy is low when the gradient value is large. Also, to ensure a small image force for a homogeneous neighborhood, the value &#34;5&#34; is used in the denominator when g max  -g min  is less than the value &#34;5&#34;. 
     Snake Tracking with Motion Estimation 
     The present invention addresses the motion estimation problem for deformable objects by integrating information from four different sources: motion prediction from previous frames; local motion estimation; global motion estimation; and snake energy minimization. 
     Global Motion Prediction 
     The purpose of global motion prediction is to provide a good initial estimate for the subsequent motion estimation algorithms. A first-order prediction is employed. The first-order prediction assumes a constant velocity for each point. Let d i  (t) denote the displacement of point i from time t-1 to t, and d(t+1) be the estimate of the displacement from time t to t+1. Initially, 
     
         d.sub.i (0)=0 
    
     For subsequent frames (t&gt;0), 
     
         d.sub.i (t)=d.sub.i (t-1), 
    
     where d i  (t-1) is computed after the end of each motion estimation loop. The preferred embodiment uses the previous three image frames in order to calculate the global motion. More complicated smoothing and prediction algorithms, such as Kalman filtering, may also be used to provide more reliable tracking (see: D. Terzopoulos and R. Szeliski, Tracking With Kalman Snakes, A. Blake and A. Yuille, editors, Active Vision, MIT Press, Cambridge, Mass., 1992). 
     Local Motion Estimation by Modified Block Matching 
     In the presence of local deformation, each snake point is analyzed separately for correct tracking. However, as a whole the point motions are to satisfy some (perhaps weak) global constraints. The present invention uses a modified Block Matching Algorithm. The conventional block matching algorithm (BMA) searches within a pre-defined range to find the best match for each block, so that the displaced block difference (in the form of mean square error) is minimized. This approach typically does not work well for tracking the snake points because it does not impose any kind of global constraints on the point motion. In the general motion estimation problem, the motion continuity assumption has been used as a good global constraint. In the contour tracking problem, a neighborhood consistency property is used to improve the BMA. 
     The BMA is extended to incorporate relaxation labeling for motion estimation of each snake point. Each candidate motion vector within the search range is assigned a probability measure. These probabilities are calculated from the displaced block difference (DBD) of a snake point and its adjacent neighbors, and they are used to find the correct point motion. 
     FIGS. 2a-2b illustrate the BMA technique. FIG. 2a shows a current frame which contains an object 100 and a snake point 104. The snake point 104 is used to define a portion of the contour of the object 100. The snake point 104 has a snake feature block 108 associated with it. Within the scope of the present invention, the term snake feature block is synonymous with the term image block. 
     FIG. 2b shows a frame which is sequentially after the frame of FIG. 2a. The snake point 104 of FIG. 2a is shown on FIG. 2b in order to depict the relationship of snake points between frames. Referring to FIG. 2b, the BMA technique determines the likelihood that snake point 104 has moved to another position on object 100 within the frame of FIG. 2b. The BMA technique determines what blocks on FIG. 2b are approximately similar to the snake feature block of snake point 104. Accordingly, the BMA technique constructs blocks for points with similar features as those of snake point 104, as shown in way of an example, as the blocks associated with points 112, 116, and 120. 
     Each snake feature block b i  (t) is a 9 by 9 square centered at the snake point v i  (t). In local motion estimation, the goal is to find the best motion vector Δv i  *(t)=(Δx i  *(t),Δy i  *(t)) for each snake point in the current frame so that: 
     
         v.sub.i (t+1)=v.sub.i (t)+d(t)+Δv.sub.i *(t) 
    
     is the best initial estimate of the same snake point in the next frame. 
     In order to find the best motion vector Δv i  *(t) for each snake point v i  (t), an initial probability, p i  (Δv i ), is assigned to each possible motion vector Δv i  (t). The conditions to be satisfied are: ##EQU3## These probability estimates are iteratively updated by using the neighborhood consistency property. In other words, if the nearby snake points have a high probability of containing motion vectors similar to Δv i , then p i  (Δv i ) will gradually increase (reinforced by its neighbors). Otherwise p i  (Δv i ) will decrease. At the end of computation, the motion vector with the highest probability is selected as the best motion vector: 
     It is used to find the new position of the snake point and to define the initial contour ##EQU4## V(t+1)=[v 1  (t+1), v 2  (t+1), . . . , v n  (t+1)] for the next frame. 
     The initial probabilities ##EQU5## are based on the DBD (displaced block difference) of the snake block b i  (t) centered on the snake point v i  (t) and the candidate block centered on v i  (t)+Δv i  (t) in the next frame. The DBD is denoted by r i  (Δv i ) and the &#34;weight&#34; of motion vector Δv i  is defined to be: ##EQU6## where c is a positive constant. The term w i  (Δv i ) is inversely proportional to the DBD r i  (Δv i ). Therefore, the larger r i  (Δv i ) is, the smaller the weight is. These weights bear a proper qualitative behavior for probability estimates. They range from 0 to 1 and are normalized to yield the initial probability measures: ##EQU7## The initial probabilities depend only on the DBD for each possible motion vector within the search range N i . The notion of neighborhood consistency property is employed by using the probability measures from the neighboring snake points to update the probability measures of motion vectors associated with v i  (t). The two adjacent snake points v i-1  (t) and v i+1  (t) are considered at this place in the present invention. At the k-th iteration, the probability p i   k  (Δv i ) increases if neighboring snake points v i-1  and v i+1  also have a high probability for a motion vector similar to (but does not have to be the same as) Δv i . 
     Two motion vectors Δ a  =(x a ,y a ) and Δ b  =(x b ,y b ) are considered &#34;similar&#34; if 
     
         ∥Δ.sub.a -Δ.sub.b ∥=max(|x.sub.a -x.sub.b |,|y.sub.a -y.sub.b |)≦1 
    
     For a snake point v i  to update the probability measures of all its motion vectors Δv i  in N i , first the current probabilities of all &#34;similar&#34; motion vectors for v i  and its two adjacent neighbors v i-1  and v i+1  are summed. ##EQU8## To update p i   k  (Δv i  &#39;), 
     
         p.sub.i.sup.k+1 (Δv.sub.i)=p.sub.i.sup.k (Δv.sub.i)×(k.sub.1 +k.sub.2 ×q.sub.i.sup.k (Δv.sub.i)) 
    
     Here k 1  and k 2  are two positive constants which control the rate of convergence. Then the probabilities are normalized. 
     For the preferred embodiment c=10, k 1  =0.3, k 2  =3 are used and executed with 10 iterations. At the end of the computation, the Δv i  * with the highest probability is chosen. ##EQU9## For the preferred embodiment, the three candidate motion vectors with the highest motion probabilities are retained and used in the subsequent Affine Transformation Step. 
     Affine Transformation Motion Correction After the local motion estimation based on block matching, the global motion is calculated by using object contours and image intensity information in two frames. The affine transformation is used to model the global motion. These affine parameters represent information extracted from the whole object and are used to correct the possible errors generated in the block matching process under certain conditions discussed below. 
     The BMA with relaxation labeling provides a new position of each snake point v i  (t) which results in an estimate of V(t+1)=[v 1  (t+1),v 2  (t+1), . . . ,v n  (t+1)]. The initial estimate of the affine parameters can be calculated from the correspondences between each v i  (t)=(x i  (t),y i  (t)) and v i  (t+1)=(x i  (t+1),y i  (t+1)) according to: ##EQU10## 
     The least square solution for [A|B] can be found: ##EQU11## where [ ] +   stands for the generalized inverse of a matrix. 
     However, v i  (t) at time &#34;t&#34; in general may not correspond to the same point represented by v i  (t+1) at time &#34;t+1&#34;. After some object motion, the original boundary points may become interior points or disappear altogether due to occlusion. Experimental results show that the &#34;re-appearance&#34; of previous occluded part cause most of the failure of past approaches. Therefore, to improve the quality of the initial estimate, the greatest descent method is applied in the preferred embodiment. 
     The interior of the contours is used to calculate the error and gradients. The gradients may come from any gradient operator by including the sign (indicating the direction) of the gradient. By assuming that most parts of the object contain a dominant motion which can be approximated by affine transformation, the updated affine parameters can approximately describe the object&#39;s motion. 
     Let O denote the interior area of the object defined by contour V(t). I(x,y,t) and I(x&#39;,y&#39;,t+1) denote intensity value of pixel (x,y) at time t and pixel (x&#39;,y&#39;) at time t+1 respectively. (x&#39;,y&#39;) is the affine transformed position of pixel (x,y). The affine transformed mean square error (MSE) is: ##EQU12## where N(O) is the total number of pixels in the region O. The (k+1) th  iteration of any affine parameter a i  (a i  can be any element from [a 11 , a 12 , a 21 , a 22 , b 1 , b 2  ]) is ##EQU13## where λ is the step size in the greatest descent computation. 
     After the greatest descent computation converges, the best affine parameters are obtained for minimizing image difference. This motion estimation is integrated with the current estimate. 
     The affine motion correction is applied when the following conditions are satisfied: 
     (1) The probability of certain motion vectors is too small (i.e., below a predetermined threshold), and 
     (2) The difference between BMA estimation and affine estimated motion vector is too large (i.e., above a predetermined threshold). 
     These conditions indicate possible errors in the BMA motion estimation, which can be corrected by including the global motion estimates. An averaging technique is used to combine the two estimates: 
     
         v.sub.i,combined (t)=p.sub.i (t)(v.sub.i,BMA (t))-(1-p.sub.i (t))v.sub.i,affine (t), 
    
     where p i  (t) is the probability of the BMA motion estimate for point i. 
     Snake with Motion Estimation 
     In this step, a fourth term is added to the energy function, which represents the effect of motion and is based on the motion probability: where: ##EQU14## A negative sign before the probability p i  (Δv i  (t)) is used since a high probability estimate yields a smaller snake energy. Again, E match  is normalized to [-1,0]. 
     The motion estimation confidence is incorporated into the snake energy function to restrict the snake to lock on positions with a high probability on motion estimation. 
     To minimize E snake , a &#34;greedy&#34; algorithm is used to iteratively find the minimum (see: A. P. Paplinski and J. F. Boyce, An Implementation Of The Active Contour Method For Noisy Images Using A Local Minimization Algorithm, Technical Report TR-95-1, Department of Robotics and Digital Technology, Monash University, Clayton, Australia, January 1995; and see: D. Williams and M. Shah; A Fast Algorithm For Active Contour, The 3rd IEEE International Conference on Computer Vision, pages 592-595, December. 1990). 
     For the first frame, η is set to zero since motion estimation is not applied yet. After the snake process finds the contour estimate for the first frame, the tracking process starts. 
     For each snake point v i  (t), E match  (v i  (t)) is calculated first within a search region of 9×9. Each snake point is moved to the position which has maximum E match  as the initial guess of the new contour. Then each snake point searches within a small window (3×3) to stabilize at a new position which gives the minimum energy. After enough iterations when the majority of the snake points stop changing their final location, the estimate of the new contour is obtained. For the preferred embodiment, the search region of 9×9 includes an area of image points (i.e., a square) on the image frame. 
     Degradation Measure 
     After the user defines the initial contour, no user input is required for tracking object deformation. However, without the a priori knowledge of object shape, type of deformation, or the location of occlusion, the contour tracking performance typically gradually degrades and eventually becomes unacceptable. The present invention is able to detect such failure, notify the user, and ask for human assistance so that the tracking can be restarted. The present invention uses two types of degradation measures, and both measures can be acquired from the contour tracking computation. 
     Affine Transformed Error 
     During the contour tracking, the (global) object motion is calculated by using object contours and image intensity in two frames. In the global motion estimation stage, the best affine parameters are computed for minimizing image difference. These affine parameters are used to warp the interior of the current contour to match the interior of the next contour under certain conditions. The warped matching error is used as one indication of the tracking accuracy. Since the affine parameters have been updated based on the intensity maps, as long as the most of the object preserves rigidity, the affine estimates are representative of the object motion. This matching error may be large due to either one of the following cases: 
     (1) The object contains a large percentage of deformed area where the affine estimates are not valid. 
     (2) The contour grows too much by falsely including some background areas to be the interior of the object, or the contour shrinks too much by falsely excluding some object areas to be the exterior of the object. 
     The first case constitutes false alarms and may consequently result in more frequent requests to the user which ask the user for a new initial contour. The second case, on the other hand, are situations wherein user involvement is actually needed. 
     Total Snake Energy 
     The affine warped matching error may misinterpret object deformation to be error. Thus, the total contour energy is used as a second degradation measure to represent the local tracking accuracy. The &#34;rule of thumb&#34; is that the better the tracking is, the lower the total snake energy should be. Therefore, the total snake energy is used to monitor the tracking performance. One advantage of using this measure is that no additional computation is required. Consequently, two complementary degradation measures for automatic performance monitoring are used during the tracking process. The affine transformed error finds the correlation between the object interiors after an affine warping. It is useful when the object conducts a global motion trend describable by affine transformation. The total snake energy, on the other hand, is an indication of how well the local tracking is. Both measures are used to indicate to the user when the tracking begins to degrade beyond tolerance conditions. 
     FIGS. 3a-3c are flow charts showing the various steps used by the present invention in order to track objects with the active contour model. The start block 200 indicates that the image frames at &#34;t-1&#34; and &#34;t&#34; at input block 204 are entered into block 208. Block 208 is the object contour definer wherein the contour of the object with an image frame &#34;t-1&#34; is defined with a snake. For the preferred embodiment, the user indicates the contour of the object. However, it is to be understood that the present invention is not limited to only the user defining the contour of the object at this initial step, but includes other techniques for outlining the contour of an object within a frame. 
     After the contour of the object is defined, block 212 performs a snake calculation upon the contour of the object at &#34;t-1&#34; frame, but without motion information. Block 212 considers the E-continuity factor 216, the E-curvature factor 220, and the E-image forces 224. A global contour definer 228 performs a global motion estimation using a first order prediction of object displacement which is based upon the global motion of the objects from previous frames (as shown at block 232). 
     The global contour definer 228 provides the initial estimation of the contour for use in the local contour adjuster 236. The local contour adjuster 236 performs block matching with relaxation labeling which focuses on the local motion of the points on the object. For the preferred embodiment, the local contour adjuster 236 uses an extended BMA for motion estimation of each snake point using a relaxation labeler in block matcher 240. Block matcher 240 bases its calculations upon candidate motion vectors 244 which themselves are based upon the snake points within a feature block 248. A probability (at block 252) is calculated with respect to the candidate motion vectors 244 relative to the snake point feature block 248. The probability (at block 252) uses the neighborhood consistency property 256 and has initial probabilities based upon DBDs 260. The top three candidates are retained for use in the affine transformation steps. After the local contour adjuster 236 performs the block matching with relaxation labeling, the processing continues at continuation block A 264. 
     Referring to FIG. 3b, continuation block A 264 indicates that the affine motion corrector 270 is to be executed. The affine motion corrector 270 performs an affine motion correction which focuses on the global motion of the overall object. The affine motion corrector 270 performs this calculation by using object contours and image intensity information in the two frames as depicted in block 274. Moreover, the affine motion corrector 270 determines the best affine parameters for minimizing the image difference as depicted at block 278. 
     After the affine motion corrector 270 completes its processing, decision block 282 inquires whether the probability of certain motion vectors are less than a predetermined threshold and whether the difference between the BMA estimation and the affine estimated motion vector is greater than another predetermined threshold. If decision block 282 determines that it is not, then the BMA motion estimation is used by the local motion contour refiner 286. However, if decision block 282 does determine that the conditions are true, then the affine motion correction with BMA motion estimation data is used by the local motion contour refiner 286. 
     The local motion contour refiner 286 uses the data as provided by decision block 282 in order to perform a snake calculation with motion estimation. The local motion contour refiner 286 focuses upon the local motion of the snake points on the object. The local motion contour refiner 286 uses the following factors in its calculation: E-continuity 290, E-curvature 294, E-image forces 298, and E-match factor 302. The E-match factor 302 represents the local motion estimation accuracy as viewed from a normalized probability measure. The local motion contour refiner 286 produces a tracked image frame at &#34;t&#34; as shown by output block 306. Processing continues at continuation block B 310. 
     Referring to FIG. 3c, continuation block B 310 indicates that block 314 is to be performed. Block 314 measures the degradation based upon the affine transformed error as determined by the affine transformed error measurer 318 and the total snake energy as determined by the total snake energy measurer 322. Decision block 326 determines whether the degradation as determined by block 314 is above a predetermined threshold. If the degradation is above a predetermined threshold, then processing continues at continuation block C 330 wherein the contour of the object is redefined before processing continues. 
     If decision block 326 does determine that the degradation is not above a predetermined threshold, then processing continues at block 334. Block 334 attempts to obtain the next frame to process. If there are more frames to process, then processing continues at continuation block D 338. If there are no more frames to process, then processing terminates at block 342. 
     EXAMPLE 
     The following example depicts the results of image tracking using the present invention. The example includes a set of image sequences depicting a bird on a lake. 
     FIG. 4a shows the user-input initial contour of a bird in a lake. FIG. 4a shows an user-interface object contour definer which is used to define the contour of the image within the frame. FIG. 4b shows the result of tracking the bird with the present invention after four frames of tracking. FIG. 4c shows the result of tracking the bird with the present invention after eight frames of tracking. As the frame number increases, the snake around the object begins to noticeably degrade. From the degradation measures shown in FIG. 5a, it is apparent that when the tracking starts to degrade, the affine transformed error tends to have a local maximum. On the other hand, the error measure may sometimes give a false alarm. Thus, the snake energy is also used. The snake energy has a consistent trend to increase when the tracked number of frames increases as shown in FIG. 5b. 
     Criteria Used Within The Preferred Embodiment 
     For the preferred embodiment, the number of iterations for determining when the majority of snake points has stopped changing their final location is 20. For the preferred embodiment, the &#34;majority of the snake points&#34; percentage is 90%. 
     With respect to whether the affine motion correction is to be applied, the probability value used to indicate that a certain motion vector is too small was 0.3. Also, the probability of certain motion vectors being too small refers to those motion vectors associated with the snake points. With respect to whether the affine motion correction is to be applied, the difference between BMA estimation affine estimated motion vector being too large was the value of 8. 
     The embodiment which has been set forth above was for the purpose of illustration and was not intended to limit the invention. It will be appreciated by those skilled in the art that various changes and modifications may be made to the embodiment described in this specification without departing from the spirit and scope of the invention as defined by the appended claims.