This is a header-only, multi-threaded implementation of the RANSAC algorithm, used widely in computer vision.
Unlikely most other implementations, this is a generic implementation which can be adopted for any problem. The user has to implement a class that inherits the AbstractModel class. Using RANSAC afterwards should just work.
This library uses C++11 features, so a suitable compiler is required (GCC 4.7+, Visual Studio 2013+). Additionally, OpenMP is needed for multi-threading.
Optionally, to build the line fiting example, OpenCV and CMake are required.
Just include the header GRANSAC.hpp in your application. The AbstractModel class needs to be inherited to implement a suitable model for your application.
the following commands will create binary of samples:
cd $(GRANSAC_HOME)
mkdir build && cd build
cmake ..
make
Running sample_0_fitting_line should generate random 2D points around the diagonal and get the line which would fit the distribution best through RANSAC algorithm.
Running sample_1_fitting_lines should load the contour of pre-processed sentences segmentation and get the line which would fit the distribution best through RANSAC algorithm.
Running sample_2_vanishing_point should load some lines and get the vanishing point of them (the most probable intersection point of these lines, as much as better) through RANSAC algorithm.
GRANSAC is released under an MIT License.
Srinath Sridhar ([email protected]) Max Planck Institute for Informatics