An interface for RANSAC model fitting.
More...
#include <RANSACModel.hpp>
|
|
| RANSACModel () |
| | Constructor.
|
| |
|
virtual MODEL | make (const std::vector< DATA > &data) const |
| | Creates a new model of this type using provided data.
|
| |
|
virtual | ~RANSACModel () |
| | Destructor.
|
| |
| bool | operator< (const MODEL &model) const |
| | 'Worse than' operator. More...
|
| |
| bool | operator> (const MODEL &model) const |
| | 'Better than' operator. More...
|
| |
|
virtual double | fitError (const DATA &sample) const =0 |
| | Calculates the fitting error of a sample.
|
| |
| virtual bool | belongsTo (const DATA &sample, double threshold) const |
| | Check whether a sample belongs to the model. More...
|
| |
|
virtual bool | invalid () const =0 |
| | Checks whether the model is invalid.
|
| |
| virtual double | refit (const std::vector< DATA > &data)=0 |
| | Recalculates the model based on provided samples. More...
|
| |
| virtual int | getMinReqData () const =0 |
| | Returns the number of samples required to create the model. More...
|
| |
| virtual bool | same (const MODEL &model, double threshold) const =0 |
| | Tests whether the model is same to a threshold of another model. More...
|
| |
|
size_t | getNumberOfInliers () const |
| | Get the number of inliers.
|
| |
| double | getQuality () const |
| | Get the model quality. More...
|
| |
| void | setQuality (double quality) |
| | Set the model quality. More...
|
| |
|
std::vector< DATA > & | getData () |
| | Access data.
|
| |
|
const std::vector< DATA > & | getData () const |
| | Access data.
|
| |
| std::vector< size_t > | getInlierIndices () const |
| | Get the vector of inlier indices. More...
|
| |
|
| static std::vector< MODEL > | findModels (const std::vector< DATA > &data, int maxIterations, int dataRequired, double dataThreshold, double modelThreshold) |
| | Find models fitting a set of observations. More...
|
| |
| static MODEL | bestModel (const std::vector< MODEL > &models) |
| | Select the model with the largest number of inliers. More...
|
| |
| static MODEL | likelyModel (const std::vector< MODEL > &models) |
| | Select a model randomly, with a chance based on the number of inliers. More...
|
| |
|
|
std::vector< DATA > | _data |
| |
|
double | _quality |
| |
|
std::vector< size_t > | _indices |
| |
template<class MODEL, class DATA>
class rwlibs::algorithms::RANSACModel< MODEL, DATA >
An interface for RANSAC model fitting.
- Todo:
- A model needs to remember the indices of inliers from the set of data...
◆ belongsTo()
| virtual bool belongsTo |
( |
const DATA & |
sample, |
|
|
double |
threshold |
|
) |
| const |
|
inlinevirtual |
Check whether a sample belongs to the model.
Returns true when the sample is within a threshold distance of the model.
◆ bestModel()
| static MODEL bestModel |
( |
const std::vector< MODEL > & |
models | ) |
|
|
inlinestatic |
Select the model with the largest number of inliers.
In case of ties, pick the model with better quality.
◆ findModels()
| static std::vector<MODEL> findModels |
( |
const std::vector< DATA > & |
data, |
|
|
int |
maxIterations, |
|
|
int |
dataRequired, |
|
|
double |
dataThreshold, |
|
|
double |
modelThreshold |
|
) |
| |
|
inlinestatic |
Find models fitting a set of observations.
Function performs maxIterations iterations and finds a number of initial models. The models are then filtered, and those within a distance of modelThreshold are merged together.
- Parameters
-
| data | [in] set of data points to find a model for |
| maxIterations | [in] number of iterations to perform |
| dataRequired | [in] a number of data points required to fit into model to consider it plausible |
| dataThreshold | [in] a threshold for fitting error of a data point |
| modelThreshold | [in] a difference between models neccesary to consider them different |
- Returns
- a vector of fitted models
◆ getInlierIndices()
| std::vector<size_t> getInlierIndices |
( |
| ) |
const |
|
inline |
Get the vector of inlier indices.
- Returns
- a vector of indices of inliers in the data vector supplied to findModels function.
◆ getMinReqData()
| virtual int getMinReqData |
( |
| ) |
const |
|
pure virtual |
◆ getQuality()
| double getQuality |
( |
| ) |
const |
|
inline |
Get the model quality.
The model quality is a sum of fitting errors for all its inliers.
◆ likelyModel()
| static MODEL likelyModel |
( |
const std::vector< MODEL > & |
models | ) |
|
|
inlinestatic |
Select a model randomly, with a chance based on the number of inliers.
Given a vector of models {model1(45 inliers), model2(30 inliers), model3(20 inliers), model4(5 inliers)}, it will pick:
- model1 - 45% chance,
- model2 - 30% chance,
- model3 - 20% chance,
- model4 - 5% chance
◆ operator<()
| bool operator< |
( |
const MODEL & |
model | ) |
const |
|
inline |
'Worse than' operator.
Used for sorting. Compares the number of inliers the models have. In case of ties, compares quality.
◆ operator>()
| bool operator> |
( |
const MODEL & |
model | ) |
const |
|
inline |
'Better than' operator.
Used for sorting. Compares the number of inliers the models have. In case of ties, compares quality.
◆ refit()
| virtual double refit |
( |
const std::vector< DATA > & |
data | ) |
|
|
pure virtual |
Recalculates the model based on provided samples.
- Returns
- Fit error on a set of provided samples.
◆ same()
| virtual bool same |
( |
const MODEL & |
model, |
|
|
double |
threshold |
|
) |
| const |
|
pure virtual |
◆ setQuality()
| void setQuality |
( |
double |
quality | ) |
|
|
inline |
Set the model quality.
- Parameters
-
| quality | [in] fitting error of the model |
The documentation for this class was generated from the following file: