pcl::MaximumLikelihoodSampleConsensus< PointT > Class Template Reference
Module sample_consensus

MaximumLikelihoodSampleConsensus represents an implementation of the MLESAC (Maximum Likelihood Estimator SAmple Consensus) algorithm, as described in: "MLESAC: A new robust estimator with application to estimating image geometry", P.H.S. More...

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

Inheritance diagram for pcl::MaximumLikelihoodSampleConsensus< PointT >:

## Public Types

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

## Public Member Functions

| MaximumLikelihoodSampleConsensus (const SampleConsensusModelPtr &model)
| MLESAC (Maximum Likelihood Estimator SAmple Consensus) main constructor. More...
| MaximumLikelihoodSampleConsensus (const SampleConsensusModelPtr &model, double threshold)
| MLESAC (Maximum Likelihood Estimator SAmple Consensus) main constructor. More...
bool | computeModel (int debug_verbosity_level=0) override
| Compute the actual model and find the inliers. More...
void | setEMIterations (int iterations)
| Set the number of EM iterations. More...
int | getEMIterations () const
| Get the number of EM iterations. 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 ()
| 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< int > &indices_subset)
| Get a set of randomly selected indices. More...
void | getModel (std::vector< int > &model) const
| Return the best model found so far. More...
void | getInliers (std::vector< int > &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...

## Protected Member Functions

double | computeMedianAbsoluteDeviation (const PointCloudConstPtr &cloud, const IndicesPtr &indices, double sigma) const
| Compute the median absolute deviation: More...
void | getMinMax (const PointCloudConstPtr &cloud, const IndicesPtr &indices, Eigen::Vector4f &min_p, Eigen::Vector4f &max_p) const
| Determine the minimum and maximum 3D bounding box coordinates for a given set of points. More...
void | computeMedian (const PointCloudConstPtr &cloud, const IndicesPtr &indices, Eigen::Vector4f &median) const
| Compute the median value of a 3D point cloud using a given set point indices and return it as a Point32. More...
Protected Member Functions inherited from pcl::SampleConsensus< PointT >
double | rnd ()
| Boost-based random number generator. More...

## Additional Inherited Members

Protected Attributes inherited from pcl::SampleConsensus< PointT >
SampleConsensusModelPtr | sac_model_
| The underlying data model used (i.e. More...
std::vector< int > | model_
| The model found after the last computeModel () as point cloud indices. More...
std::vector< int > | 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::MaximumLikelihoodSampleConsensus< PointT >

MaximumLikelihoodSampleConsensus represents an implementation of the MLESAC (Maximum Likelihood Estimator SAmple Consensus) algorithm, as described in: "MLESAC: A new robust estimator with application to estimating image geometry", P.H.S.

Torr and A. Zisserman, Computer Vision and Image Understanding, vol 78, 2000.

Note
  MLESAC 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 57 of file mlesac.h.

## Member Typedef Documentation

## ConstPtr

template<typename PointT >

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

Definition at line 64 of file mlesac.h.

## Ptr

template<typename PointT >

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

Definition at line 63 of file mlesac.h.

## Constructor & Destructor Documentation

## MaximumLikelihoodSampleConsensus() [1/2]

template<typename PointT >

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

inline

MLESAC (Maximum Likelihood Estimator SAmple Consensus) main constructor.

Parameters

  [in] | model | a Sample Consensus model

Definition at line 78 of file mlesac.h.

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

## MaximumLikelihoodSampleConsensus() [2/2]

template<typename PointT >

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

inline

MLESAC (Maximum Likelihood Estimator SAmple Consensus) main constructor.

Parameters

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

Definition at line 90 of file mlesac.h.

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

## Member Function Documentation

## computeMedian()

template<typename PointT >

void pcl::MaximumLikelihoodSampleConsensus< PointT >::computeMedian | ( | const PointCloudConstPtr & | cloud,
|  | const IndicesPtr & | indices,
|  | Eigen::Vector4f & | median
| ) |  | const

protected

Compute the median value of a 3D point cloud using a given set point indices and return it as a Point32.

Parameters

  [in] | cloud | the point cloud data message
  [in] | indices | the point indices
  [out] | median | the resultant median value

Definition at line 264 of file mlesac.hpp.

## computeMedianAbsoluteDeviation()

template<typename PointT >

double pcl::MaximumLikelihoodSampleConsensus< PointT >::computeMedianAbsoluteDeviation | ( | const PointCloudConstPtr & | cloud,
|  | const IndicesPtr & | indices,
|  | double | sigma
| ) |  | const

protected

Compute the median absolute deviation:

Note
  Sigma needs to be chosen carefully (a good starting sigma value is 1.4826)

Parameters

  [in] | cloud | the point cloud data message
  [in] | indices | the set of point indices to use
  [in] | sigma | the sigma value

Definition at line 207 of file mlesac.hpp.

## computeModel()

template<typename PointT >

bool pcl::MaximumLikelihoodSampleConsensus< 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 49 of file mlesac.hpp.

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

## getEMIterations()

template<typename PointT >

int pcl::MaximumLikelihoodSampleConsensus< PointT >::getEMIterations | ( |  | ) | const

inline

Get the number of EM iterations.

Definition at line 112 of file mlesac.h.

## getMinMax()

template<typename PointT >

void pcl::MaximumLikelihoodSampleConsensus< PointT >::getMinMax | ( | const PointCloudConstPtr & | cloud,
|  | const IndicesPtr & | indices,
|  | Eigen::Vector4f & | min_p,
|  | Eigen::Vector4f & | max_p
| ) |  | const

protected

Determine the minimum and maximum 3D bounding box coordinates for a given set of points.

Parameters

  [in] | cloud | the point cloud message
  [in] | indices | the set of point indices to use
  [out] | min_p | the resultant minimum bounding box coordinates
  [out] | max_p | the resultant maximum bounding box coordinates

Definition at line 240 of file mlesac.hpp.

## setEMIterations()

template<typename PointT >

void pcl::MaximumLikelihoodSampleConsensus< PointT >::setEMIterations | ( | int | iterations | ) |

inline

Set the number of EM iterations.

Parameters

  [in] | iterations | the number of EM iterations

Definition at line 108 of file mlesac.h.

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

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