Point Cloud Library (PCL)  1.14.1-dev
List of all members | Public Types | Public Member Functions
pcl::RandomizedMEstimatorSampleConsensus< PointT > Class Template Reference

RandomizedMEstimatorSampleConsensus represents an implementation of the RMSAC (Randomized M-estimator SAmple Consensus) algorithm, which basically adds a Td,d test (see RandomizedRandomSampleConsensus) to an MSAC estimator (see MEstimatorSampleConsensus). More...

#include <pcl/sample_consensus/rmsac.h>

+ Inheritance diagram for pcl::RandomizedMEstimatorSampleConsensus< PointT >:
+ Collaboration diagram for pcl::RandomizedMEstimatorSampleConsensus< PointT >:

Public Types

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

Public Member Functions

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

Additional Inherited Members

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

Detailed Description

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

RandomizedMEstimatorSampleConsensus represents an implementation of the RMSAC (Randomized M-estimator SAmple Consensus) algorithm, which basically adds a Td,d test (see RandomizedRandomSampleConsensus) to an MSAC estimator (see MEstimatorSampleConsensus).

Note
RMSAC 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 56 of file rmsac.h.

Member Typedef Documentation

◆ ConstPtr

template<typename PointT >
using pcl::RandomizedMEstimatorSampleConsensus< PointT >::ConstPtr = shared_ptr<const RandomizedMEstimatorSampleConsensus<PointT> >

Definition at line 62 of file rmsac.h.

◆ Ptr

Definition at line 61 of file rmsac.h.

Constructor & Destructor Documentation

◆ RandomizedMEstimatorSampleConsensus() [1/2]

template<typename PointT >
pcl::RandomizedMEstimatorSampleConsensus< PointT >::RandomizedMEstimatorSampleConsensus ( const SampleConsensusModelPtr &  model)
inline

RMSAC (Randomized M-estimator SAmple Consensus) main constructor.

Parameters
[in]modela Sample Consensus model

Definition at line 76 of file rmsac.h.

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

◆ RandomizedMEstimatorSampleConsensus() [2/2]

template<typename PointT >
pcl::RandomizedMEstimatorSampleConsensus< PointT >::RandomizedMEstimatorSampleConsensus ( const SampleConsensusModelPtr &  model,
double  threshold 
)
inline

RMSAC (Randomized M-estimator SAmple Consensus) main constructor.

Parameters
[in]modela Sample Consensus model
[in]thresholddistance to model threshold

Definition at line 89 of file rmsac.h.

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

Member Function Documentation

◆ computeModel()

template<typename PointT >
bool pcl::RandomizedMEstimatorSampleConsensus< PointT >::computeModel ( int  debug_verbosity_level = 0)
overridevirtual

Compute the actual model and find the inliers.

Parameters
[in]debug_verbosity_levelenable/disable on-screen debug information and set the verbosity level

Implements pcl::SampleConsensus< PointT >.

Definition at line 48 of file rmsac.hpp.

References pcl::geometry::distance(), and pcl_lrint.

◆ getFractionNrPretest()

template<typename PointT >
double pcl::RandomizedMEstimatorSampleConsensus< PointT >::getFractionNrPretest ( ) const
inline

Get the percentage of points to pre-test.

Definition at line 117 of file rmsac.h.

◆ getNrSamplesPretest()

template<typename PointT >
std::size_t pcl::RandomizedMEstimatorSampleConsensus< PointT >::getNrSamplesPretest ( ) const
inline

Get the absolute number of points to pre-test.

Definition at line 132 of file rmsac.h.

◆ setFractionNrPretest()

template<typename PointT >
void pcl::RandomizedMEstimatorSampleConsensus< PointT >::setFractionNrPretest ( double  nr_pretest)
inline

Set the percentage of points to pre-test.

This is an alternative to setNrSamplesPretest.

Parameters
[in]nr_pretestpercentage of points to pre-test

Definition at line 109 of file rmsac.h.

◆ setNrSamplesPretest()

template<typename PointT >
void pcl::RandomizedMEstimatorSampleConsensus< 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_pretestabsolute number of points to pre-test

Definition at line 124 of file rmsac.h.


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