Loading...
Searching...
No Matches
pcl::RandomizedRandomSampleConsensus< PointT > Class Template Reference
Module sample_consensus

RandomizedRandomSampleConsensus represents an implementation of the RRANSAC (Randomized RANdom SAmple Consensus), as described in "Randomized RANSAC with Td,d test", O. More...

`#include <pcl/sample_consensus/rransac.h>`

Inheritance diagram for pcl::RandomizedRandomSampleConsensus< PointT >:

## Public Types

using | Ptr = shared_ptr<RandomizedRandomSampleConsensus<PointT> >
using | ConstPtr = shared_ptr<const RandomizedRandomSampleConsensus<PointT> >
Public Types inherited from pcl::SampleConsensus< PointT >
using | Ptr
using | ConstPtr

## Public Member Functions

| RandomizedRandomSampleConsensus (const SampleConsensusModelPtr &model)
| RRANSAC (Randomized RANdom SAmple Consensus) main constructor.
| RandomizedRandomSampleConsensus (const SampleConsensusModelPtr &model, double threshold)
| RRANSAC (Randomized RANdom SAmple Consensus) main constructor.
bool | computeModel (int debug_verbosity_level=0) override
| Compute the actual model and find the inliers.
void | setFractionNrPretest (double nr_pretest)
| Set the percentage of points to pre-test.
double | getFractionNrPretest () const
| Get the percentage of points to pre-test.
void | setNrSamplesPretest (std::size_t nr_pretest)
| Set the absolute number of points to pre-test.
std::size_t | getNrSamplesPretest () const
| Get the absolute number of points to pre-test.
Public Member Functions inherited from pcl::SampleConsensus< PointT >
void | setSampleConsensusModel (const SampleConsensusModelPtr &model)
| Set the Sample Consensus model to use.
SampleConsensusModelPtr | getSampleConsensusModel () const
| Get the Sample Consensus model used.
virtual | ~SampleConsensus ()=default
| Destructor for base SAC.
void | setDistanceThreshold (double threshold)
| Set the distance to model threshold.
double | getDistanceThreshold () const
| Get the distance to model threshold, as set by the user.
void | setMaxIterations (int max_iterations)
| Set the maximum number of iterations.
int | getMaxIterations () const
| Get the maximum number of iterations, as set by the user.
void | setProbability (double probability)
| Set the desired probability of choosing at least one sample free from outliers.
double | getProbability () const
| Obtain the probability of choosing at least one sample free from outliers, as set by the user.
void | setNumberOfThreads (const int nr_threads=-1)
| Set the number of threads to use or turn off parallelization.
int | getNumberOfThreads () const
| Get the number of threads, as set by the user.
virtual bool | refineModel (const double sigma=3.0, const unsigned int max_iterations=1000)
| Refine the model found.
void | getRandomSamples (const IndicesPtr &indices, std::size_t nr_samples, std::set< index_t > &indices_subset)
| Get a set of randomly selected indices.
void | getModel (Indices &model) const
| Return the best model found so far.
void | getInliers (Indices &inliers) const
| Return the best set of inliers found so far for this model.
void | getModelCoefficients (Eigen::VectorXf &model_coefficients) const
| Return the model coefficients of the best model found so far.

## Additional Inherited Members

Protected Member Functions inherited from pcl::SampleConsensus< PointT >
double | rnd ()
| Boost-based random number generator.
Protected Attributes inherited from pcl::SampleConsensus< PointT >
SampleConsensusModelPtr | sac_model_
| The underlying data model used (i.e.
Indices | model_
| The model found after the last computeModel () as point cloud indices.
Indices | inliers_
| The indices of the points that were chosen as inliers after the last computeModel () call.
Eigen::VectorXf | model_coefficients_
| The coefficients of our model computed directly from the model found.
double | probability_
| Desired probability of choosing at least one sample free from outliers.
int | iterations_
| Total number of internal loop iterations that we've done so far.
double | threshold_
| Distance to model threshold.
int | max_iterations_
| Maximum number of iterations before giving up.
int | threads_
| The number of threads the scheduler should use, or a negative number if no parallelization is wanted.
boost::mt19937 | rng_alg_
| Boost-based random number generator algorithm.
std::shared_ptr< boost::uniform_01< boost::mt19937 > > | rng_
| Boost-based random number generator distribution.

## Detailed Description

template<typename PointT>
class pcl::RandomizedRandomSampleConsensus< PointT >

RandomizedRandomSampleConsensus represents an implementation of the RRANSAC (Randomized RANdom SAmple Consensus), as described in "Randomized RANSAC with Td,d test", O.

Chum and J. Matas, Proc. British Machine Vision Conf. (BMVC '02), vol. 2, BMVA, pp. 448-457, 2002.

The algorithm works similar to RANSAC, with one addition: after computing the model coefficients, randomly select a fraction of points. If any of these points do not belong to the model (given a threshold), continue with the next iteration instead of checking all points. This may speed up the finding of the model if the fraction of points to pre-test is chosen well.

Note
  RRANSAC is useful in situations where most of the data samples belong to the model, and a fast outlier rejection algorithm is needed.

Author
  Radu B. Rusu

Definition at line 60 of file rransac.h.

## Member Typedef Documentation

## ConstPtr

template<typename PointT>

using pcl::RandomizedRandomSampleConsensus< PointT >::ConstPtr = shared_ptr<const RandomizedRandomSampleConsensus<PointT> >

Definition at line 66 of file rransac.h.

## Ptr

template<typename PointT>

using pcl::RandomizedRandomSampleConsensus< PointT >::Ptr = shared_ptr<RandomizedRandomSampleConsensus<PointT> >

Definition at line 65 of file rransac.h.

## Constructor & Destructor Documentation

## RandomizedRandomSampleConsensus() [1/2]

template<typename PointT>

pcl::RandomizedRandomSampleConsensus< PointT >::RandomizedRandomSampleConsensus | ( | const SampleConsensusModelPtr & | model | ) |

inline

RRANSAC (Randomized RANdom SAmple Consensus) main constructor.

Parameters

  [in] | model | a Sample Consensus model

Definition at line 80 of file rransac.h.

References pcl::SampleConsensus< PointT >::max_iterations_.

## RandomizedRandomSampleConsensus() [2/2]

template<typename PointT>

pcl::RandomizedRandomSampleConsensus< PointT >::RandomizedRandomSampleConsensus | ( | const SampleConsensusModelPtr & | model,
|  | double | threshold )

inline

RRANSAC (Randomized RANdom SAmple Consensus) main constructor.

Parameters

  [in] | model | a Sample Consensus model
  [in] | threshold | distance to model threshold

Definition at line 93 of file rransac.h.

References pcl::SampleConsensus< PointT >::max_iterations_.

## Member Function Documentation

## computeModel()

template<typename PointT>

bool pcl::RandomizedRandomSampleConsensus< PointT >::computeModel | ( | int | debug_verbosity_level = 0 | ) |

override virtual

Compute the actual model and find the inliers.

Parameters

  [in] | debug_verbosity_level | enable/disable on-screen debug information and set the verbosity level

Implements pcl::SampleConsensus< PointT >.

Definition at line 48 of file rransac.hpp.

References pcl::SampleConsensus< PointT >::getRandomSamples(), pcl::SampleConsensus< PointT >::inliers_, pcl::SampleConsensus< PointT >::iterations_, pcl::SampleConsensus< PointT >::max_iterations_, pcl::SampleConsensus< PointT >::model_, pcl::SampleConsensus< PointT >::model_coefficients_, pcl_lrint, pcl::SampleConsensus< PointT >::probability_, pcl::SampleConsensus< PointT >::sac_model_, and pcl::SampleConsensus< PointT >::threshold_.

## getFractionNrPretest()

template<typename PointT>

double pcl::RandomizedRandomSampleConsensus< PointT >::getFractionNrPretest | ( |  | ) | const

inline

Get the percentage of points to pre-test.

Definition at line 121 of file rransac.h.

## getNrSamplesPretest()

template<typename PointT>

std::size_t pcl::RandomizedRandomSampleConsensus< PointT >::getNrSamplesPretest | ( |  | ) | const

inline

Get the absolute number of points to pre-test.

Definition at line 136 of file rransac.h.

## setFractionNrPretest()

template<typename PointT>

void pcl::RandomizedRandomSampleConsensus< PointT >::setFractionNrPretest | ( | double | nr_pretest | ) |

inline

Set the percentage of points to pre-test.

This is an alternative to setNrSamplesPretest.

Parameters

  [in] | nr_pretest | percentage of points to pre-test

Definition at line 113 of file rransac.h.

## setNrSamplesPretest()

template<typename PointT>

void pcl::RandomizedRandomSampleConsensus< PointT >::setNrSamplesPretest | ( | std::size_t | nr_pretest | ) |

inline

Set the absolute number of points to pre-test.

This is an alternative to setFractionNrPretest.

Parameters

  [in] | nr_pretest | absolute number of points to pre-test

Definition at line 128 of file rransac.h.

The documentation for this class was generated from the following files:

- pcl/sample_consensus/rransac.h
- pcl/sample_consensus/impl/rransac.hpp