https://github.com/akaszynski/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

https://github.com/akaszynski/graph-cut-ransac

Science Score: 10.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: ieee.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.0%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

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

Basic Info
  • Host: GitHub
  • Owner: akaszynski
  • License: other
  • Language: C++
  • Default Branch: master
  • Homepage:
  • Size: 248 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Fork of danini/graph-cut-ransac
Created almost 3 years ago · Last pushed almost 3 years ago
Metadata Files
Readme License

README.md

Important news

I am happy to announce that Graph-Cut RANSAC had been included in OpenCV. You can check the documentation at link.

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/contentcvpr2018/papers/BarathGraph-CutRANSACCVPR2018_paper.pdf

The journal paper with updated spatial coherence term and additional experiments is available at https://ieeexplore.ieee.org/document/9399280

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.

Install from PyPI with pip

There are pre-compiled wheels for Windows and Linux for Python 3.8 - 3.11 that you can install with:

pip install pygcransac

Installation C++

To build and install C++ only GraphCutRANSAC, clone or download this repository and then build the project by CMAKE. shell $ git clone https://github.com/danini/graph-cut-ransac $ cd build $ cmake .. $ make

Install Python package and compile C++

bash python3 ./setup.py install

or

bash 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 shell $ 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

```python import pygcransac h1, w1 = img1.shape h2, w2 = img2.shape H, mask = pygcransac.findHomography(srcpts, dstpts, h1, w1, h2, w2, 3.0) F, mask = pygcransac.findFundamentalMatrix(srcpts, dstpts, 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 essential matrix fitting with planar motion assumption is available at: notebook.

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

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

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

An example comparing different samplers on fundamental matrix fitting: notebook.

Jupyter Notebook example (Affine and SIFT correspondence-based solvers)

The example for homography fitting to SIFT correspondences is available at: notebook.

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

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

The example for homography fitting to affine correspondences is available at: notebook.

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

The example for fundamental matrix fitting to affine correspondences 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}, }

```

If you use with Space Partitioning turned on, please cite

``` @inproceedings{spaceransac2021, author = {Barath, Daniel and Valasek, Gabor}, title = {Space-Partitioning {RANSAC}}, journal={arXiv preprint arXiv:2111.12385}, year = {2021} }

```

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

Owner

  • Name: Alex Kaszynski
  • Login: akaszynski
  • Kind: user

GitHub Events

Total
Last Year