You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If you find this work useful in your research, please consider citing our paper:
@article{Bian2020gms,
title={{GMS}: Grid-based Motion Statistics for Fast, Ultra-Robust Feature Correspondence},
author={Bian, JiaWang and Lin, Wen-Yan and Liu, Yun and Zhang, Le and Yeung, Sai-Kit and Cheng, Ming-Ming and Reid, Ian},
journal={International Journal of Computer Vision (IJCV)},
year={2020}
}
Usage
Requirement:
1.OpenCV 3.0 or later (for ORB features, necessary)
2.cudafeatures2d module(for gpu nearest neighbor, optional)
3.OpenCV xfeatures2D moudle (if using the opencv built-in GMS function)
C++ Example:
See src/demo.cpp
Python Example:
Go to "python" folder. Run "python3 opencv_demo.py".
(You need install opencv_contrib by "pip install opencv-contrib-python")
Matlab Example:
1. Go to "matlab" folder. Compile the code with OpenCV ('Compile.m'), and run 'demo.m'.
In src/demo.cpp
1. #define USE_GPU" (need cudafeatures2d module)
using cpu mode by commenting it.
2. We suggest using SIFT features for accuracy, and using ORB features for speed.
In gms_matcher.h
2. #define THRESH_FACTOR 6
Set it higher for more input matches, and lower for the fewer input matches.
Often 6 for ORB all matches, and 4 or 3 for SIFT matches (after ratio test).
3. int GetInlierMask(vector<bool> &vbInliers, bool WithScale = false, bool WithRotation = false)
Set WithScale to be true for wide-baseline matching and false for video matching.
Set WithRotation to be true if images have significant reative rotations.
Related projects
FM-Bench (BMVC 2019, More evaluation details for GMS.)