Zhe-LIU-Imagine / KVLD

KVLD open source library implements Virtual Line Descriptor and Semi-Local Matching Method for Reliable Feature Correspondence in BMVC 2012
BSD 2-Clause "Simplified" License
46 stars 21 forks source link
                  KVLD Library
           Zhe Liu and Pierre Moulon

ABOUT The KVLD open source library implements the Kth virtual line descriptor matching method introduced in the paper with minor modifications:

Z,Liu and R,Marlet. Virtual Line Descriptor and Semi-Local Matching Method for Reliable Feature Correspondence in BMVC 2012

KVLD is distributed under the BSD license (see the COPYING file).

PERFORMANCE WARMING:

  1. Some Linux setup may suffer performance degradation, one way to test is to use provided image pair 2, the algorithm should generate 358 matches. The best way is to compare result under windows.
  2. If you use openCV library, please download the last version from GitHub, for openCV of version earlier than 2.4, descriptors' orientation may be reversed! (Bug in openCV 2.3) An easy way to test is to process an image with its rotated projection.
  3. We use integral image instead of Gaussian blurring process to calculate gradients, which is less discriminant but is easier and faster in practice

INSTALLING This implementation is on C++ and depends on openCV library, whose installation guild is available online. You will need Cmake 2.6 or later to compile the program. However the kvld library is independent of openCV, and if you develop your own applications using kvld, please include folders as OrsaHomography and kvld modify the CMakeLists.txt file to remove openCV library (see CMakeLists.txt) *include kvld in your code by adding #include "kvld/kvld.h"

FOLDERS: Kvld: containing all KVLD algorithm, some structures depend on OrsaHomography library, so please include both of them to make KVLD running. OrsaHomography: containing ORSA algorithm implemented by Pierre Moulon. It also offers basic structures for KVLD algorithm. demo_image: some illustrating pairs of images for different applications. demo_output: results of demos are sent here, including (? means the index)

APPLICATIONS

NOTE: two images shold have the same width to be illustrated, otherwise, please desactivate the illustration part.

The code contains three main applications (KVLD_Deformable, KVLD_Calibrate and KVLD_Interface). They come with demonstration using images in demo_image folder. All the outputs are sent to the demo_output folder.

KVLD_Deformable: To establish correspondence of points in a deformable object, KVLD can efficiently retrieve correct matches among a large number of false matches.

KVLD_Calibration: For image calibration, KVLD generates filtered matches, then ORSA (Ransac variant) estimate homography or fundamental matrix using those (less contaminated) matches.

KVLD_Interface: This allow you to feed KVLD with your own detectors and initial matches with the original images and let KVLD generates filtered matches. You need to provide the following three files.

For more information, please contact zhe.liu@enpc.fr