<< Chapter < Page Chapter >> Page >
This module contains the background of our object detection algorithm and 3-D sound synthesis system.

Object detection

Finding an object in an image can be done in various ways. One of the most common methods used is matching certain features in the image to those in the object that is being searched for. Traditionally, these features have included mostly edges and corners because these are relatively easy to find, but unfortunately these features are also often sensitive to even small amounts of noise and are also often neither scale nor rotation invariant. Another method of object detection in an image is color matching. This method works reliably and efficiently, but is very sensitive to things in the background and thus, in general, a very plain background must be used in order to track the desired object correctly. For this reason, we found that a good tradeoff between speed of computation and sensitivity to noise was the Speeded Up Robust Features (SURF) algorithm. Using this algorithm allows the program to track an object by simply providing a picture of the desired object, and it works both outdoors and indoors without any overly tight constraints on the environment.

Procedure

The SURF algorithm is actually based on the earlier Scale Invariant Feature Transform (SIFT) algorithm, but has a few modifications that make the former a lot faster to compute. In order to use these algorithms, one first simply takes a picture of the object that is to be tracked; this image is called the "template." Then, the algorithm finds "keypoints" on another image; these are places with interesting features that might be useful for tracking an object, but not necessarily the object we're looking for. Each of these keypoints includes a scale, orientation, coordinates, and other identifying information ("descriptors"). In order to actually find where the object we're looking for is, one finds the keypoints whose descriptors are closest to those calculated for the template image. This is usually done by finding the keypoints in the test image with the least squares difference in their descriptor values as compared to those in the template descriptors.

SIFT will be described first because it is simpler, and then the differences between SIFT and SURF will be noted.

Creating the Scale-Space

The first step in the SIFT algorithm is to create what is known as a "scale-space." This basically creates a set of images that consist of versions of the original image, blurred to different extents. This is important because oftentimes there are objects of very different scales in an image. An example of this would be a large tree with lots of small leaves on it. Adding higher amounts of blur means that only larger objects will remain detectable while small amounts of blur will preserve small details. Additionally, this step is critical for maintaining scale invariance so that the object can be detected when it is farther or closer to the camera in the video than when the template image was taken. Blurring of the image is done by taking the 2-D convolution of the image with a Gaussian function. This has the same effect as passing the image through a low pass filter in the frequency domain. It is important to note that most current methods of generating scale-spaces use the Gaussian and not other types of low pass filters to perform this blurring because it has been mathematically proven that the Gaussian filter does not add any features to the source image that were not originally there. Other types of filters might potentially add things like edges in places where there were originally none.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Dwts - dancing with three-dimensional sound. OpenStax CNX. Dec 14, 2012 Download for free at http://cnx.org/content/col11466/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Dwts - dancing with three-dimensional sound' conversation and receive update notifications?

Ask