OpenCV Feature Points Comparison Program (Executable + Source Code)

This program allows you to benchmark algorithms in OpenCV related to object detection using key points. It allows you to set all the required parameters using a simple interface and search for an object in a scene and view the results. This program is written in C++ using Qt and it uses OpenCV libraries.
Please note that this program should only be used for educational purposes. In my case I was using it for research purposes and as a tool for deciding which algorithm I should use in my programs.



Following are the calculation steps that are being performed in this program:
1. Input an object and a scene image (User simply browses for files)
2. Detect key points
3. Extract feature descriptors
4. Match descriptors
5. Find homography change using RANSAC algorithm
6. Draw best matches
7. Save and display the results (Saved under program’s folder “output.png”)

To be specific, following algorithms and parameters can be tested using this program.
SIFT:
Contrast Threshold, Edge Threshold, Number of Features, Number of Octave Layers, Sigma
SURF:
Hessian Threshold, Number of Octaves, Number of Octave Layers, Extended, Upright
BRIEF:
Descriptor Length in Bytes
ORB:
Number of Features, Scale Factor, Number of Levels, Edge Threshold, First Level, WTA K, Score Type, Patch Size

Note that for any algorithm it is possible to select Brute Force Matching instead of FLANN Based Matching.



Below you can find screenshots and result examples of my program. Please note that this program has nothing to do with Face Detection or Face Recognition algorithms and it uses key point extraction and matching methods to find any object in any scene.

You can download source codes from here:

Download
Source Codes

You can also download the binary (ready to run) files from here:

Download
Binary
For any questions or bugs and problems you may find in the program, or if you are facing problems in building it from source please use this link to contact me.



Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.