Author: Steffen Urban (urbste at googlemail.com) This repository contains a method to distort binary descriptors using calibrated cameras. In addition, masks can be learned online.
- Paper
- 28/10/2016 first commit
This repository contains the following methods:
- dBrief and mdBrief a distorted and masked version of binary descriptors
- BOLD
- Offline ORB-like training code for uncorrelated binary test sets
- Evaluation Code for the sRD-SIFT dataset
@Article{UrbanMultiColSLAM16,
Title={{mdBrief} - A Fast Online Adaptable, Distorted Binary Descriptor for Real-Time Applications Using Calibrated Wide-Angle Or Fisheye Cameras},
Author={Urban, Steffen and Hinz, Stefan},
Journal={arXiv preprint arXiv:1610.07804},
Year={2016}}
Most of this Code is written in Matlab and C++. To access feature detectors and descriptors and to speed up the matching and offline learning, we use mexopencv as a bridge between C++ and Matlab.
- Matlab
- OpenCV 3.1
- C++ Compiler
- mexopencv link
- First install/compile mexopencv by following the installation instructions on link
- Once you have compiled mexopencv, copy the .cpp and .h files from the mdBrief/ to mexopencv/src/+cv
- Then run the compilation script of mexopencv once again. This will compile mdBRIEF, BOLD and so on
Here we are using the VOC2012 dataset as done for the ORB descriptor. You can try this with every image dataset, or even train it on your set of images from a specific application
- Download and extract link
- Adjust the path in ExtractKeypointsAndPatches.m to point to the VOCdevkit/VOC2012/JPEGImages/img folder
- Run the script ExtractKeypointsAndPatches.m
- This will create 3 .mat files
- Download sRD-SIFT dataset: Download
- Extract archive.
- Open evaluateFireWire.m and set the paths to the dataset and the ground truth homographies
- Run the script. To avoid to long runtimes and to test the descriptor, you can set the variable maxComb which regulates the number of image pairs. Maximum is 78.