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

Uploaded Source

Built Distributions

pymagsac-0.2.2-cp313-cp313-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.13Windows x86-64

pymagsac-0.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11Windows x86-64

pymagsac-0.2.2-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.2-cp310-cp310-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.10Windows x86-64

pymagsac-0.2.2-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.2-cp39-cp39-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.9Windows x86-64

pymagsac-0.2.2-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

File details

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

File metadata

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

File hashes

Hashes for pymagsac-0.2.2.tar.gz
Algorithm Hash digest
SHA256 226e75d2e459712df0f5f6e1a0a3db7782c5874ebeb46219632fc1cc61bf8d2b
MD5 532fe29fc92ee5e83169bdf2053f2808
BLAKE2b-256 6c562563f0f4d833afd038542570e791e658efd4ca4f1d328ec8eb927b8551c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymagsac-0.2.2.tar.gz:

Publisher: build-and-deploy.yml on danini/magsac

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymagsac-0.2.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pymagsac-0.2.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pymagsac-0.2.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2ec94c3b29a1a7b67adf2222a693b668d4a74d7664846802eb3251f6271c6da4
MD5 58f3de05b7ac4059f29aa2053302f1ec
BLAKE2b-256 18eb36ebbf647d5f67b74d1474fe661ec62cb0507b6beacb8792ce58169e724d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymagsac-0.2.2-cp313-cp313-win_amd64.whl:

Publisher: build-and-deploy.yml on danini/magsac

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymagsac-0.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pymagsac-0.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9bb6e231be892bbbd4f1c912f8e47ab8b371df13bc3aed65fc0b05a5464e03b4
MD5 dd980342d45e96932b364e40829ded1f
BLAKE2b-256 efdb973d4bb6075a4320c48cf9bbe9f96007114d7b327855c16a6db8add9f696

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymagsac-0.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-and-deploy.yml on danini/magsac

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: pymagsac-0.2.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pymagsac-0.2.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7fbe115c18ff3605d095868de27ec847109b981626a610840bcae3f76c3b7176
MD5 4e45c475e5bf5a89f87d13ce170b28fd
BLAKE2b-256 e11367e61670c8e891e55578e6a3318326126a87480cf2708cc2d0576b344a0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymagsac-0.2.2-cp312-cp312-win_amd64.whl:

Publisher: build-and-deploy.yml on danini/magsac

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pymagsac-0.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e0d27475ecaeb5622c4132d3506b08c8d6471459032c09b76d7cdb2b106d1780
MD5 8307c9a67a862fac8bac6d0d7e68cf86
BLAKE2b-256 77caf033f9ea15b71a09b2ea8e077a5a993d7cf13bec4c4cb41a9f14e0e2006f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymagsac-0.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-and-deploy.yml on danini/magsac

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: pymagsac-0.2.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pymagsac-0.2.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 046feb2263b79e3ff747ba49fc8deb6b0aa53bda146420786f37f28cafa6c0b6
MD5 d598bab5a041714ef25c209f59b988f4
BLAKE2b-256 c35ae4c2fc32bc303138f1616dbfb484d9f63ecf8b6f3bb60076632e2a46f33d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymagsac-0.2.2-cp311-cp311-win_amd64.whl:

Publisher: build-and-deploy.yml on danini/magsac

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pymagsac-0.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 23182816950837b0d31df37194a23f143184df969aa4479a3e07de7f32b222fe
MD5 7c5e373f053572d84ae827c62faaa3b5
BLAKE2b-256 71f48eb38245e5e6faa3fb4e3b491dd440417eda6dbcc09ed633d2ab7ea094ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymagsac-0.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-and-deploy.yml on danini/magsac

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: pymagsac-0.2.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pymagsac-0.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1c712187e4edc671225effa759f925d4c983d1e585fa01806a45ad31129db9f6
MD5 ea6d3b8d1e4c8a1b2c2dd0f81cf3056e
BLAKE2b-256 f79f78223fbd0a96559ff85a2ee166a4625542dbadcaa5bd20eb2f15bddb2ba4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymagsac-0.2.2-cp310-cp310-win_amd64.whl:

Publisher: build-and-deploy.yml on danini/magsac

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pymagsac-0.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a5f9dabe436f4c8183742a61a2417be0247eb8c76fb2f8f8e0ac0efb894a87ef
MD5 b719f814d8d8d151406e50a931b1a34e
BLAKE2b-256 c19187e57894bf9975032adfa6eaa6b55668a42ddb6ecb112031499fc95dc700

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymagsac-0.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-and-deploy.yml on danini/magsac

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: pymagsac-0.2.2-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/5.1.1 CPython/3.12.7

File hashes

Hashes for pymagsac-0.2.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 5563961073d6a31e2d48caff7227d5570a2d5e0083e9a065c5eee48cc2dc13e6
MD5 169880caacd059f438ddeae968d9283f
BLAKE2b-256 75b12a064350d28006c6599a127a3b16652aaa7635f53fa3be154e4eceb4551e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymagsac-0.2.2-cp39-cp39-win_amd64.whl:

Publisher: build-and-deploy.yml on danini/magsac

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for pymagsac-0.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 221cac03fe16d697f14c40bf3e4aa9d200a5bf8c79548886b6e68d3981e99efe
MD5 e38c85e187e761ddce46a623015ee0e4
BLAKE2b-256 099358024457f7ac17cd8c3ca2faf26e13dd0aa74808edf3c0ff6899a99017a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymagsac-0.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build-and-deploy.yml on danini/magsac

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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