The Secret Vision Strategies
of the Interrupting Cows

Who we are:

The Interrupting Cows are a vision system created to track orange-shirted people in the front of College of Computing room 102, Classroom 2000.

How we do it:

The tracking determines the background through a rigorous estimator (namely, the median :) ) and then subtracts the non-orange components of this image from the current frame.

The resulting orange blob is used to determine the placement of the tracking interrupting cow.

What was attempted, but failed:

Our first reaction was to simply set everything in the picture that was not orange to black. This failed due to the variations in lighting which caused noise.

Next we compared successive frames to pick up the image differences. We used this information to find moving objects, our hypothesis being that the orange-shirted person should be the only moving thing. Unfortuantely the variations in lighting also caused this to fail. This also would not have worked had the students in the front rows been in motion.

Then we attempted to take the average of the pixels in order to determine the background. Our theory being that once we were able to determine the background we could subtract it out, find the remaining orange blob, and then place the tracking object. The average was unsuccessful, however, because the orange weighed in too heavily so a shadow appeared on the image.

What worked:

Our final and most successful attempt was using a weighted median. Each time a new frame is retrieved, the image is traversed, and the pixel colors are "stored" in bins. Each bin has eight values, and if the pixel color falls in that range the bin number is incremented. Colors which are not orange are weighted more than orange itself. The red, blue, and green values are stored in three separate arrays. Once this is done, the array is traversed and the median color for each pixel found. If this color is not orange and has not significantly changed from the last image, the pixel is set to black. When this is finished, we have a black image containing an orange blob. This image is traversed and the center of the blob is found. This value is used to place an interrupting cow over the orange-shirted person on the originial image. This image is then displayed to the screen.

How this may be improved:

This algorithm may be improved by adding adaptive thresholding and adaptive bins. It could also use some smoothing out to allow for smoother camera movement.

The Code:

vision tar ball

The Creators:

The algorithms for the Vision Interrupting Cows were developed by Gary Yngve and Alison Smith, junior computer science majors at Georgia Tech.
Gary may be contacted at
Alison may be contacted at

Back to the Interrupting Cows' Homepage