Observations

Overall Results

Bar chart above depicts relative efficacy of active contour models (blue) compared with more traditional method of region growing (red) for all our test image sequences.


Analysis of efficacy of ACM on motion tracking
We noted that the snake algorithm worked very well for our simple images – something expected since the images have no noise and the snake is initialized close to the boundary.


However, we did identify the need for sufficient amount of points to define the boundary, since the lack of sufficient points in the case of the ellipse caused the boundary to be slightly distorted despite all the points adhering close to the boundary. This is because the region we get from the snake obtained with a polyline algorithm with the control points acting as knot points. With these two images, we determined our parameters as alpha=1.0, beta=1.0 and gamma=1.5 , and acknowledged that our snake algorithm was working properly.


The snake did very well on the image of the circle changing shape. In particular, it really out-performed the region growing algorithm when the image was noisy. This was because once the snake was locked on an edge, it tends to stay locked, allowing it to work well even with the gradually decreasing information available to it. The inaccuracy was mainly due to insufficient control points used, resulting in regions being unsegmented even when the control points are near the edge of the circle


Due to the above, we decided to vastly increase the amount of points used for our real-life image sequence since we were concerned with the actual representation of the image boundary. We decided to use 59 control points for our first test on Sequence 1. As mentioned before, Sequence 1 involved a square object undergoing a relatively swift ‘shape transformation’ as the camera vantage point is rotated.


We quickly realized that the snake was not performing well for this image sequence. This suggested several issues with the snake that we had previously overlooked.


(1) Point Invariance Phenomena
We realized that merely placing a lot of points to define the boundary of the tracked object actually made the algorithm perform poorly. This is easy to understand when we review the image sequence in Fig 4. We see starting in frame 2 that the left portion of the roof boundary has detached from the roof and is literally lost amidst a sea of pixels with uniform intensity. This persists across the later frames (in what we later explain as error propagation phenomena) and the points, without any edge information, are literally stuck at those coordinates as the roof moves further away.


What we might have expected to combat this problem is the internal energies striving to pull these points away from the uniform pixel intensity region as the other correctly ‘locked-on’ points move along with the roof. However, the problem with having too many points is that it creates a large amount of inertia especially when a significant amount of points have lost their lock on the boundary and are ‘lost’. Hence, these points reinforce each other’s inertia, resulting in a general dead zone that cannot be removed. We later attempt to resolve this phenomenon by reducing the number of points.


(2) Error Propagation Phenomena
We also realized that whilst prior information of possibly location of boundaries are potentially good, erroneous information does no good to the snake particularly because of the fact that the snake is a local operator. Any errors introduced in previous frames tend to accumulate and worsen, particularly since we do not expect the tracked object to reverse, or move back to its previous location. In a sense, once the snake has lost it’s lock on the boundary of the object, it has a very slim chance of ever getting it back.


Furthermore, since a snake is a local operator, any new object that swerves into the lost control point’s neighborhood would be immediately noticed and the snake would quickly latch on to the point, further increasing the error of the segmented region. As can be seen in Frame 3, the region starts incorporating the boundary of the circle located in the middle of the house front which then persists across later images. Similarly, in Frame 4, several ‘lost’ control points suddenly find the edge of the cup to latch on and swiftly lock on to it, further distorting the segmented region. This error is similarly propagated down the frames.


This is a critical flaw of our implementation of the snake algorithm since we had assumed that the initial control points would be close to the actual boundary and had discarded the idea of gradient vector flow. This also suggests that careful modifications must be implemented on the snake to resolve this issue of error propagation, since wrong information would definitely make the snake perform much worse than even traditional region detectors.


Hence, our next step was to attempt to reduce the number of control points, but still maintaining a good region boundary, and perform the algorithm again. We used 16 control points for the second experiment.


With lesser control points, we indeed have solved the issue of point invariance, as we see relatively better results for Frames 1 – 4. However, we see huge distortions from Frame 5 onwards, particularly because the snake has latched on the edge of the cup again. Hence, using lesser control points solves issue (1) but fails to solve issue (2). This yet again suggests critical flaws with the snakes algorithm for motion tracking – that of error propagation. Note that the latching of the snake onto the cup is pretty much unavoidable in the case of our image sequence, since the cup appears in Frame 5 pretty much in the vicinity of the previous location of the roof. This yet again highlights another flaw of snakes in motion tracking.