#consensus-algorithm #consensus #sample #model #estimator #computer-vision #ransac

no-std sample-consensus

Abstractions for sample consensus algorithms such as RANSAC

5 releases (3 stable)

1.0.2 Jul 20, 2021
1.0.1 Jun 20, 2020
0.2.0 Dec 27, 2019
0.1.0 Nov 2, 2019

#1620 in Algorithms

Download history 447/week @ 2023-12-15 285/week @ 2023-12-22 339/week @ 2023-12-29 414/week @ 2024-01-05 502/week @ 2024-01-12 463/week @ 2024-01-19 489/week @ 2024-01-26 458/week @ 2024-02-02 455/week @ 2024-02-09 530/week @ 2024-02-16 361/week @ 2024-02-23 477/week @ 2024-03-01 238/week @ 2024-03-08 304/week @ 2024-03-15 418/week @ 2024-03-22 378/week @ 2024-03-29

1,397 downloads per month
Used in 11 crates (3 directly)

MIT license

9KB

sample-consensus

Crates.io MIT/Apache docs.rs LoC

sample-consensus provides abstractions for sample consensus algorithms such as RANSAC.

An example of how to use these abstractions is present in the ARRSAC repository.

When using sample-consensus, make sure that you shuffle your input data. You can use SliceRandom::shuffle to do this.

This allows one to create a RANSAC algorithm (Consensus or MultiConsensus) that is independent of the underlying system. You can also create a Model and an Estimator for different systems. An Estimator only needs to estimate a model from a subset of some data. With this system, you can quickly define an Estimator based on an algorithm, like the 8-point algorithm, and you don't have to worry about the details of how the sample consensus algorithm works. It will just find a model that fits the data based on that estimation algorithm. Crates may exist that create instantiations of any one of those three things.

The design of this system is directly and highly inspired by the information on this page from TheiaSfM. This crate deviates in some ways by avoiding the requirement of making any memory allocation so it can run on embedded. It does this through the use of trait method type parameters so that the caller gets to choose how the data is provided. A big thanks to Chris Sweeney for starting and maintaining TheiaSfM.

No runtime deps