This is a C++ project that imcludes the implementations of the traditional image keypoint detectors and descriptors.
Nowadays, traditional image keypoint detectors and descriptors are no longer popular as they were in 2000s. They have given place to the deep features, which become increasingly popular since 2012. However, the theories upon which the traditional detectors and descriptors are built are still shiny in nowadays. The scale-space theory from Dr. Tony Lindberg is beautiful. I learned a lot from his papers and book. It took me hundreds of weekends to implement all the detectors and descriptors in this project. This project also saw the birth of 'Flip invariant SIFT', which is my proposal. It well addressed the sensitivity issue of SIFT to flip transformation. The project name was given by my PhD supervisor as this project was started during my PhD in VIREO research group in City University of Hong Kong.
The included detectors are Hessian, laplacian-of-Gaussian, Harris and SURF. The included descriptors are SIFT, LJET, Flip-invariant SIFT, RIFT, and SPIN. Please find out more details from the manual.
Detectors: Difference-of-Gaussian (DoG), Laplacian-of-Gaussian (LoG), Hessian, Hessian-Laplacian, Harris, Harris-Laplacian, SURF, and Hessian-Affine
This project can be smoothly compiled under Ubuntu and MacOS, while it is also possible to be compiled successfully (by MinGW) under Windows with only minor changes. For Windows, user should install MinGW first, then edit "iotool.cpp" and "config.h", comment out the following lines in the files
#ifndef LINUX
#define LINUX
#endif
Step 1. Download libjpeg, zlib and libpng packages and compile them respectively, copy libjpeg.a, zlib.a and libpng.a to "libs/" folder
Step 2. Go to zlib folder and libpng folder respectively, run "make install" for zlib and libpng on your system
$ cd lip-vireo
$ make release