Skip to main content

MAGSAC and MAGSAC++

Project description

Important news

I am happy to announce that MAGSAC++ had been included in OpenCV. You can check the documentation at link. A comparison of OpenCV MAGSAC++ with the other robust estimators is at link thanks to Dmytro Mishkin.

OpenCV USAC Benchmark

The MAGSAC and MAGSAC++ algorithms for robust model fitting without using a single inlier-outlier threshold

The MAGSAC and MAGSAC++ algorithms proposed for robust model estimation without a single inlier-outlier threshold.

The MAGSAC paper is available at Link.

The MAGSAC++ available at Link.

Both methods are 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.

Tested on OpenCV 3.46 and 4.3. To run the executable with the examples, copy the "data" folder next to the executable or set the path in the main() function.

If you use the algorithm, please cite

@inproceedings{barath2019magsac,
	author = {Barath, Daniel and Matas, Jiri and Noskova, Jana},
	title = {{MAGSAC}: marginalizing sample consensus},
	booktitle = {Conference on Computer Vision and Pattern Recognition},
	year = {2019},
}

@inproceedings{barath2019magsacplusplus,
	author = {Barath, Daniel and Noskova, Jana and Ivashechkin, Maksym and Matas, Jiri},
	title = {{MAGSAC}++, a fast, reliable and accurate robust estimator},
	booktitle = {Conference on Computer Vision and Pattern Recognition},
	year = {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 magsac

Thanks to @akaszynski for his contributions.

Installation C++

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

$ git clone https://github.com/danini/magsac --recursive
$ 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.

Next to the executable, copy the data folder and, also, create a results folder.

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.

An example comparing different samplers on fundamental matrix estimation is available at: notebook.

Requirements

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

Performance of MAGSAC++

MAGSAC++ is the state of the art according to "RANSAC in 2020" CVPR tutorial's experiments.

Performance of MAGSAC

MAGSAC is the state of the art according to the recent study Yin et.al."Image Matching across Wide Baselines: From Paper to Practice", 2020.

IMW-benchmark

IMW-Challenge

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymagsac-0.2.1.tar.gz (3.2 MB view details)

Uploaded Source

Built Distributions

pymagsac-0.2.1-cp312-cp312-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.12 Windows x86-64

pymagsac-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pymagsac-0.2.1-cp311-cp311-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.11 Windows x86-64

pymagsac-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pymagsac-0.2.1-cp310-cp310-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.10 Windows x86-64

pymagsac-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pymagsac-0.2.1-cp39-cp39-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.9 Windows x86-64

pymagsac-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pymagsac-0.2.1-cp38-cp38-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.8 Windows x86-64

pymagsac-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

File details

Details for the file pymagsac-0.2.1.tar.gz.

File metadata

  • Download URL: pymagsac-0.2.1.tar.gz
  • Upload date:
  • Size: 3.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for pymagsac-0.2.1.tar.gz
Algorithm Hash digest
SHA256 2ba2f8d29d650053ff56a44ac481288c6357beea9465947294f9aae38a0df084
MD5 71909955d43beb70c32ee793cbafa03c
BLAKE2b-256 31386866a17e4716611457f2666556fa766823ab24036dd87f5a9e9e6404ce3d

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pymagsac-0.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b0f74c85fb86f9273d7bd3719244de59925462567886eca223dc15ef3b115e98
MD5 787da1038c113f4e34e6c4275043a45d
BLAKE2b-256 11a4daca63ff43da01473721ea35e384fb79e2e9c506344de549ee393a24d43b

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pymagsac-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1c7814c442e1eaf465f54ba23b284f0eddaa10974ffe0f842fb6d14c750c37ea
MD5 4b3ef87e222c64a7d9882c9f2b454e3a
BLAKE2b-256 ece3e6b10d86eadcd34967913a2c43befb63e28b4399b73a8f4e7e4189994cd0

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pymagsac-0.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 02b564f839f09b5f65ab904ddcca1e13cd45752c3e8f1b20c2088f468e6e0650
MD5 b87f7096858cc815d0b972e3d4dfb3e3
BLAKE2b-256 c8d0e649680fbdd07156ee1cd5353ba575e7a1a7380b85e49283b8376aa4c24f

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pymagsac-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7c9e380be90368111ef5b2050f0e505e1cd66b7f23dbdaae2fc4b9680587e74d
MD5 cde57e201fae9a5f322de5cb6f7910d3
BLAKE2b-256 dc861ee301129dbda1bfb3d247c47d469cd617a7cb4af193263f3760803a44e4

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pymagsac-0.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 45c9388a401f1fd911933887cce8267d06e9a5b9c5aeea424bb0b9e20d57ccb6
MD5 700c4827cd0eceecfd3cd48c5a2db74d
BLAKE2b-256 daaaaa4956bf323e1cd69eb163b0023fb565fe672a6d8ce22b5455fff6f32490

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pymagsac-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d86214d713c96375df5467306d37aeabb4260a4534550fa3e657707f8e104e92
MD5 cf0c4a5d543ff721e52d5a96dc2661a2
BLAKE2b-256 d8f08eecf559fe1dc26d0706ace656a86b0ae613ef455d9ca21755a850168102

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pymagsac-0.2.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for pymagsac-0.2.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a8fc3d44592056ec3cab0c791c078549013b0ad25123a3ba11f80f6b9527df0c
MD5 a002cd054f68b79ed8e0ccfa435908b9
BLAKE2b-256 c591025c9f2987e77daf8a68f2d35416e44935d79bef5d53a57655b902f8ea14

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pymagsac-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 180b61c8b7847cbc7f6139d7e292a5f3346db1d198d180844a2f951420912abd
MD5 4ef5762cbb8952ea3aa74b035d725270
BLAKE2b-256 17ba3753cd8ac4c8dfc27b9e66a838ceea237b7eb49fc2bfa9a6437ece900118

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pymagsac-0.2.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for pymagsac-0.2.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 03dda10a681efcab99712b2134e863ebea338b9dea0b4587c4276c826a6b88e9
MD5 a4df88910795bec0b547390ce0729007
BLAKE2b-256 3fa759a7959ffdbee841353b03e4dad6d0da3e8dfb771103287c767b128f031d

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pymagsac-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 609e6b1f1693a28c1423acf4afa7cd15c22afe9fdcb2cec0ea6e2c42e80cf0e6
MD5 c9a261f6ebb89173aa8965a9e21fb9cb
BLAKE2b-256 a96e1693bf3aeabda15baf3140197765f26c3ed796d441d34c58ed415a715579

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page