A very general purpose tracker of small connected objects, preferably circular or rectangular in shape.
The basic cluster tracker tracks multiple moving objects. It does this by using a model of an object as a spatially-connected rectangular source of events. As the objects move they generate events. These events are used to move the clusters. The key advantages of the cluster tracker are
The cluster has a size that is fixed but can be a function of location in the image.
In some scenarios such as looking down from a highway overpass, the class of objects is rather small, consisting of cars, trucks and motorcycles, and these can all be clumped into a single size. This size in the image plane is a function of height in the image because the vehicles near the horizon are small and the ones passing under the bridge are maximum size. Additionally, the vehicles near the horizon are all about the same size because they are viewed head-on.
In other scenarios, all the objects are nearly the same size. Such is the case of looking at particles in a hydrodynamic tank experiment or falling raindrops. In other scenarios, objects fall into a distinct and small set of classes, e.g. cars and pedestrians, but we have not developed a cluster tracker that can distinguish these classes.
The steps for the cluster tracker are outlined as follows. For each packet of events:
The tracker has been used as part of Goalie and several other robotic implementations that achieve a effective frame rate of >1k FPS and a reaction latency of ~3ms with a 4% processor load, using standard USB interfaces.
Has a very large number of configuration options.
TODO configuration