Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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

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

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.dev0.tar.gz (3.2 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.8Windows x86-64

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

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

File details

Details for the file pymagsac-0.2.dev0.tar.gz.

File metadata

  • Download URL: pymagsac-0.2.dev0.tar.gz
  • Upload date:
  • Size: 3.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for pymagsac-0.2.dev0.tar.gz
Algorithm Hash digest
SHA256 bf2addc6e026934052af2c8588c5d8c7d4c2a4fd68ae7e30e7667eb9956400a8
MD5 2558e012c42e14ffbb0937d89aef2adb
BLAKE2b-256 50afdd8e2e03327906dba28b6e12818d543b45793487173915743bc92802a729

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.dev0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pymagsac-0.2.dev0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 56bd4c7da2c826fb458740afe596513ec576b80cda53c10882e1eb11f9894308
MD5 6986299e6aa0b0bd1bccd5c5b722a061
BLAKE2b-256 b40d2ce8f88cf8c9893f6d790220ece9369ae23a8ec2f24e0d7336ce21bf59ac

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.dev0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pymagsac-0.2.dev0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 604849fec4f4fbb854f550e29219f97d5bebf17067da1bd7e41cd57149677e68
MD5 5ce27ecfb5cc4d690935bf9e77dc9793
BLAKE2b-256 7cf16b8c1e21f77009c7eb281de8a929ccb2ff617ea224b3627c9e5bc15c8bea

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.dev0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pymagsac-0.2.dev0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f2688cd3962b94ade4c5c891ab35aae0fa2ced8f3fa2ef0e9b244186199f9392
MD5 e0cd6af8765b8378fb49772e2c491094
BLAKE2b-256 b6bbb6b7d38642b77c633b489130a739ce34fd7d5c69957ad9d77a8a3d78fdbe

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.dev0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pymagsac-0.2.dev0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6c1246812f320440d35100a6c3761cf722f51d4b1ff491b8ad19f6c410612a75
MD5 9a27cf37373e336a4b1c0842de2a31d8
BLAKE2b-256 56aaf873950af24419e092643e40482db538c91dd0e453618d7be95e78cdcd39

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.dev0-cp39-cp39-win_amd64.whl.

File metadata

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

File hashes

Hashes for pymagsac-0.2.dev0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 353d0efc6bb2f63a16c6e20125a9125621d942dc51d719ddaa8f32eb3e081c02
MD5 0150dd91435a5d211c52feebc1f08da9
BLAKE2b-256 673a06d8f8304ae6a0abb8186f52aa6aef35e61334e7f1fe7ce659d8832f8c1e

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.dev0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pymagsac-0.2.dev0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0e147fad59c07ad6a2a2929ae2aef206430cc2c41eed6febd14598ea1b80e94a
MD5 f302c40bcac825a06e7b3b4a1515d7cd
BLAKE2b-256 55517b96852d395591ae76f8493e6f0b716a83fb1b98651e3c875c2eec596437

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.dev0-cp38-cp38-win_amd64.whl.

File metadata

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

File hashes

Hashes for pymagsac-0.2.dev0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f0dd0e8c4767c881ad8b92afb08b1b05dc991efcbbfddc7ccb06d413616f351c
MD5 a85a4239ab28df356fa18ec4bef1d977
BLAKE2b-256 76702df77c27635b846eba80e17f950bddb29a4d9bd862cb2acde96c050d5e8f

See more details on using hashes here.

File details

Details for the file pymagsac-0.2.dev0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pymagsac-0.2.dev0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ea099c15f8cdd803a007541ff51f4e99370270a56889b8f62a65b9233a5060b1
MD5 3715c098a4a165808b460c95b8e252c2
BLAKE2b-256 74e2a8ecf71b38bc8c5a69519fda909455caf5e8ab84bdfd71a7fed4cb7eb9fa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page