JiaWang Bian, Wen-Yan Lin, Yasuyuki Matsushita, Sai-Kit Yeung, Tan Dat Nguyen, Ming-Ming Cheng
GMS: Grid-based Motion Statistics for Fast, Ultra-robust Feature Correspondence IEEE CVPR, 2017
[Project Page] [pdf] [Bib] [Code] [Youtube]
The method has been integrated into OpenCV library (see xfeatures2d in opencv_contrib).
The paper was selected and reviewed by Computer Vision News.
More experiments are shown in MatchBench.
Requirement:
1.OpenCV 3.0 or later (for IO and ORB features, necessary)
2.cudafeatures2d module(for gpu nearest neighbor, optional)
C++ Example:
Image pair demo in demo.cpp.
Matlab Example
You should compile the code with opencv library firstly(see the 'Compile.m').
Python Example:
Use Python3 to run gms_matcher script.
Tune Parameters:
In demo.cpp
1. #define USE_GPU" (need cudafeatures2d module)
using cpu mode by commenting it.
2. For high-resolution images, we suggest using 100K features with setFastThreshod(5);
3. For low-resolution (like VGA) images, we suggest using 10K features with setFastThreshod(0);
In gms_matcher.h
2. #define THRESH_FACTOR 6
The higher, the less matches。
3. int GetInlierMask(vector<bool> &vbInliers, bool WithScale = false, bool WithRotation = false)
Set WithScale to be true for unordered image matching and false for video matching.
@inproceedings{bian2017gms,
title={GMS: Grid-based Motion Statistics for Fast, Ultra-robust Feature Correspondence},
author={JiaWang Bian and Wen-Yan Lin and Yasuyuki Matsushita and Sai-Kit Yeung and Tan Dat Nguyen and Ming-Ming Cheng},
booktitle={IEEE Conference on Computer Vision and Pattern Recognition},
year={2017}
}