All Projects → danini → Graph Cut Ransac

danini / Graph Cut Ransac

Licence: other
The Graph-Cut RANSAC algorithm proposed in paper: Daniel Barath and Jiri Matas; Graph-Cut RANSAC, Conference on Computer Vision and Pattern Recognition, 2018. It is available at http://openaccess.thecvf.com/content_cvpr_2018/papers/Barath_Graph-Cut_RANSAC_CVPR_2018_paper.pdf

Projects that are alternatives of or similar to Graph Cut Ransac

Server Configs Apache
Apache HTTP server boilerplate configs
Stars: ✭ 2,916 (+1243.78%)
Mutual labels:  robust
Rhodium
Python Library for Robust Decision Making and Exploratory Modelling
Stars: ✭ 77 (-64.52%)
Mutual labels:  robust
Kube Aws Iam Controller
Distribute different AWS IAM credentials to different pods in Kubernetes via secrets.
Stars: ✭ 137 (-36.87%)
Mutual labels:  robust
Robust
Robust is an Android HotFix solution with high compatibility and high stability. Robust can fix bugs immediately without a reboot.
Stars: ✭ 4,125 (+1800.92%)
Mutual labels:  robust
Polysnap
A work in progress polygon operations library with integer snap-rounding
Stars: ✭ 14 (-93.55%)
Mutual labels:  robust
Server Configs Nginx
Nginx HTTP server boilerplate configs
Stars: ✭ 9,457 (+4258.06%)
Mutual labels:  robust
pheniqs
Fast and accurate sequence demultiplexing
Stars: ✭ 14 (-93.55%)
Mutual labels:  robust
Failsafe.js
A jQuery Plugin to make your App Robust
Stars: ✭ 190 (-12.44%)
Mutual labels:  robust
Altair
Lightweight and Robust API Gateway written in Go
Stars: ✭ 34 (-84.33%)
Mutual labels:  robust
Dasynq
Thread-safe cross-platform event loop library in C++
Stars: ✭ 127 (-41.47%)
Mutual labels:  robust
Browser
🌍 Take back your privacy with Dot Browser, the privacy-conscious web browser that protects you from being tracked and monitored online.
Stars: ✭ 475 (+118.89%)
Mutual labels:  robust
Tinker Manager
微信tinker补丁管理,后端代码+客户端sdk
Stars: ✭ 670 (+208.76%)
Mutual labels:  robust
Conserve
[beta] robust portable backup tool in Rust
Stars: ✭ 107 (-50.69%)
Mutual labels:  robust
React Bolt
⚡ The most simple & robust boilerplate for your React projects.
Stars: ✭ 298 (+37.33%)
Mutual labels:  robust
Statsexpressions
Expressions and dataframes with statistical details 📉 📜🔣✅
Stars: ✭ 144 (-33.64%)
Mutual labels:  robust
micro-MVC
An agile, small, productive and robust MVC framework for PHP with high-quality JS extensions and integrated AJAX support.
Stars: ✭ 33 (-84.79%)
Mutual labels:  robust
Robust Tube Mpc
Robust model predictive control using tube
Stars: ✭ 83 (-61.75%)
Mutual labels:  robust
Correlation
🔗 Methods for Correlation Analysis
Stars: ✭ 192 (-11.52%)
Mutual labels:  robust
Diffai
A certifiable defense against adversarial examples by training neural networks to be provably robust
Stars: ✭ 171 (-21.2%)
Mutual labels:  robust
Free adv train
Official TensorFlow Implementation of Adversarial Training for Free! which trains robust models at no extra cost compared to natural training.
Stars: ✭ 127 (-41.47%)
Mutual labels:  robust

Graph-Cut RANSAC

The Graph-Cut RANSAC algorithm proposed in paper: Daniel Barath and Jiri Matas; Graph-Cut RANSAC, Conference on Computer Vision and Pattern Recognition, 2018. It is available at http://openaccess.thecvf.com/content_cvpr_2018/papers/Barath_Graph-Cut_RANSAC_CVPR_2018_paper.pdf

The method is explained in the Latest developments in RANSAC presentation from CVPR tutorial RANSAC in 2020.

Experiments on homography, fundamental matrix, essential matrix, and 6D pose estimation are shown in the corresponding presentation from the tutorial RANSAC in 2020.

Installation C++

To build and install C++ only GraphCutRANSAC, clone or download this repository and then build the project by CMAKE.

$ git clone https://github.com/danini/graph-cut-ransac
$ cd build
$ cmake ..
$ make

Install Python package and compile C++

python3 ./setup.py install

or

pip3 install -e .

Example project

To build the sample project showing examples of fundamental matrix, homography and essential matrix fitting, set variable CREATE_SAMPLE_PROJECT = ON when creating the project in CMAKE. Then

$ cd build
$ ./SampleProject

Requirements

  • Eigen 3.0 or higher
  • CMake 2.8.12 or higher
  • OpenCV 3.0 or higher
  • A modern compiler with C++17 support

Example of usage in python

import pygcransac
h1, w1 = img1.shape
h2, w2 = img2.shape
H, mask = pygcransac.findHomography(src_pts, dst_pts, h1, w1, h2, w2, 3.0)
F, mask = pygcransac.findFundamentalMatrix(src_pts, dst_pts, h1, w1, h2, w2, 3.0)

Jupyter Notebook example

The example for homography fitting is available at: notebook.

The example for fundamental matrix fitting is available at: notebook.

The example for essential matrix fitting is available at: notebook.

The example for 6D pose fitting is available at: notebook.

Requirements

  • Python 3
  • CMake 2.8.12 or higher
  • OpenCV 3.4
  • A modern compiler with C++11 support

Acknowledgements

When using the algorithm, please cite

@inproceedings{GCRansac2018,
	author = {Barath, Daniel and Matas, Jiri},
	title = {Graph-cut {RANSAC}},
	booktitle = {Conference on Computer Vision and Pattern Recognition},
	year = {2018},
}

If you use it together with Progressive NAPSAC sampling or DEGENSAC, please cite

@inproceedings{PNAPSAC2020,
	author = {Barath, Daniel and Noskova, Jana and Ivashechkin, Maksym and Matas, Jiri},
	title = {{MAGSAC}++, a Fast, Reliable and Accurate Robust Estimator},
	booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
	month = {June},
	year = {2020}
}

@inproceedings{Degensac2005,
	author = {Chum, Ondrej and Werner, Tomas and Matas, Jiri},
	title = {Two-View Geometry Estimation Unaffected by a Dominant Plane},
	booktitle = {Conference on Computer Vision and Pattern Recognition},
	year = {2005},
}

The Python wrapper part is based on the great Benjamin Jack python_cpp_example.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].