[Index] [Project Info] [Overview] ([Tracking Algorithm]) [Hardware] [Acknowledgements] [Download]
[Tracking Algorithm]
The key part of this project was to develop a tracking algorithm that can be implemented in hardware and needs little RAM. This was quickly discussed earlier, but this section will detail more specifics about the tracking algorithm.

The first step is to lock onto the object. When the user holds down the left mouse button, there are two frequency tables started. One will contain the eight most common colours that occur inside the tracking box (the cross-hair with box around it), the other will have the eight most common colours that occur outside the tracking box.
Then the most common colour inside the box would be compared with the top occurring colours outside the box. For example the grey highway would be one of the top colours that occurred in this example outside the tracking box. So grey would be ignored inside the box since it is not unique enough.

The next step is to split the tracking box into four quadrants. Then the amount of the colour that was identified in step 1 as unique can be counted. Depending on the object shape this amount will differ slightly, so by trying to keep the ratio the same, this will keep the tracking box on the object.

Once the ratio is established, the system will loop between counting the current ratio of the colour of interest and moving the bounding box. In this example the car on the highway has moved a bit to the right and up. Now the top right quadrant has almost all of the colour of interest. Then an error value is generated based on the current pixels of interest inside the tracking box. For example, it needs to move 35% of the pixels into the lower right quadrant, 17% to the lower left quadrant, and 8% more to the upper left quadrant.
Since the system will always be adjusting the location of the box, the exact error amount is not too important - the error just has to be related to how many pixels need to be 'moved'. It does not have to do everything in one frame. For example the jump from figure 8 to figure 9 would not happen in real life. The tracking box would instead be slowly moving its way up the object, as each time it occurred the upper right quadrant would still have too high a percentage of the red colour in it.

Since the system only moves the tracking box, it would actually be very hard to confuse other objects with the one of interest. For example if a second red car appeared, it would not even be seen unless it drove very close to the target car and part of it appeared inside the tracking box.
This tracking system requires no frame buffer, as it does not need to go back in the frame and compare data. Instead important information is recorded as it appears, for example a running total is kept of what colours have occurred how many times.
[Index] [Project Info] [Overview] ([Tracking Algorithm]) [Hardware] [Acknowledgements] [Download]