Object Recognition Using Sparse Representation

If you were asked to look at a picture and tell whether you see an airplane or a motorcycle, your answer obviously will be correct. It would consume almost no effort at all, and will be given in almost no time, and still—will classify the object you see in front of you right. Though that simple for us, for a computer this task may not be easy at all.

As you probably know - A frame, or a picture - is a collection of pixels. Keeping each and every pixel of a frame consumes lots of space, and manipulating all of the pixels in order to classify the object in it would consume lots of computing time. Sometimes, not all of the frame is actually needed in order to determine which object is in it. Therefore, there is a need for an alternative way to describe the image with less data, but still have enough of it to determine what object is there.

The SIFT algorithm, invented by David Lowe, is used exactly for this purpose, and allows to save much less information to describe an image. Classifying an image using SIFTS is a common way which works very well and is probably the best technique being used these days.

In this project I would try to take another step further, and make an even more compact representation of Lowe’s SIFTS via Sparse Representation. Sparse representation is a technique used to save much less information to represent a matrix. The basic idea behind it is to describe the given data using a dictionary, and then representing each data vector with a smaller vector under the condition that only ‘N’ atoms (each vector in the dictionary is called an atom) are allowed to be used—in other words—the new vector will have only ‘N’ element that are non-zeros. This way, the data can be saved with sparse representation method which takes less space and as a result—may also improve the computation time.