Tools and Results page


Tools


As a programming IDE, I have been using either Visual Studio Express 2010 and Eclipse (using the GCC (Gnu Compiler Collections)), working with C++. The project is meant to work on both Windows and Linux operating systems.
I have also been using the OpenCV platform. Since I am programming a few modules to be integrated in the main repository, I have abide by a few restrictions, among them is the use of version 1.0 of OpenCV, so all of the descriptor implementations are from third partys.

SURF descriptor - Loosely based on the OpenSURF.
HOG descriptor - used the one made available by http://d.hatena.ne.jp/poor_code/20091111/1257944372.

I was very surprised to find that, being such a standard measure, I couldn't locate any implementation of the Chi-Squared distance in C++.
Therefore, to anyone who has the same problem I had, you can have a look at a simple code snippet I wrote here.
It is based on http://www.busim.ee.boun.edu.tr/~sankur/SankurFolder/VCIP03.pdf.


Results

  • Even though it is one of the top performing descriptors, the results using SURF were disappointing. The tracked object's bounding box was too small, so enough keypoints could't be detected. Still, the improvement in speed over SIFT was great.
  • The use of Grid Points greatly enhances the performance of the descriptor. Achieved good results.
  • Against what I was expecting, the HOG descriptor is the better performing up until this stage (both in terms of speed and the general outcome).
  • The use of the dictionary-based models doesn't enhance the results. As a matter of fact, the tracking algorithm actually performs worse (also there are a few memory leaking problems).
  • The FIRST descriptors are really fast. Extraction time is even better than using SURF. Poor tracking results though.
  • A color-histogram approach, being so basic, actually performs well.