« Cameras | Main | Design Review »
March 01, 2007
Tracking update
We've mentioned cameras and infrared LEDs, but how does all of that turn into a tracking system that monitors blimps flying around in a 3D environment? To be honest, we're not even totally sure yet, but we can at least describe the basic plans.
- Experiment with our cameras and figure out how much they distort images. The fanciest cameras out there still turn straight lines into curves, particularly near the outer edges of an image. We can summarize this distortion in the K matrix from the last post.
- Once we've placed the cameras in a room, figure out exactly where they are positioned and what direction they face. We will do this by positioning one or more objects at known locations, and use matrix operations to solve for the camera details.
- Now we need to look at the camera video and see whether we can find any blimps. First we perform a feature detection pass on the whole image using an algorithm called SIFT or SURF, which finds distinct points of interest in the image. We may also use specialized convolutions to look for bright spots if we employ IR LEDs. We then try to match features in the image to those found in pre-processed images of our blimps. Each match constitutes a "vote" for a particular location of a blimp. We tally up the votes, and cluster them, to see whether a large number of votes pool up one or more areas. We store these groups for the next step. We'll perform the clustering with either the K-means algorithm or a heavily discretized Hough transform.
- We take our possible matches, and verify that they actually appear to be a blimp by trying to find an affine transform or a homography that maps the known blimp points to the measured ones. This can account for rotations and stretching/skewing, since the blimp will be viewed from a variety of angles.

- If this succeeds, we store our best guess for the front and the back of the blimps that are detected and send them over the network to a central computer.
- The central computer waits for data from all of our cameras, and uses the information we extracted in (1) and (2) to estimate the position and orientation or each blimp. The central computer will use the technique of Kalman filtering to smooth out irregularities and develop an estimate for the velocity of the blimps as well.
- Finally, we can send this information into a controller, which transforms the blimp locations into the terms it needs to control the blimp.
Posted by jrpowers at March 1, 2007 01:24 PM