Point Cloud Library (PCL)
1.14.1-dev
|
MEstimatorSampleConsensus represents an implementation of the MSAC (M-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/msac.h>
Public Types | |
using | Ptr = shared_ptr< MEstimatorSampleConsensus< PointT > > |
using | ConstPtr = shared_ptr< const MEstimatorSampleConsensus< PointT > > |
Public Types inherited from pcl::SampleConsensus< PointT > | |
using | Ptr = shared_ptr< SampleConsensus< PointT > > |
using | ConstPtr = shared_ptr< const SampleConsensus< PointT > > |
Public Member Functions | |
MEstimatorSampleConsensus (const SampleConsensusModelPtr &model) | |
MSAC (M-estimator SAmple Consensus) main constructor. More... | |
MEstimatorSampleConsensus (const SampleConsensusModelPtr &model, double threshold) | |
MSAC (M-estimator SAmple Consensus) main constructor. More... | |
bool | computeModel (int debug_verbosity_level=0) override |
Compute the actual model and find the inliers. 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... | |
MEstimatorSampleConsensus represents an implementation of the MSAC (M-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. The difference to RANSAC is how the quality of a model is computed: RANSAC counts the number of inliers, given a threshold. The more inliers, the better the model is - it does not matter how close the inliers actually are to the model, as long as they are within the threshold. MSAC changes this by using the sum of all point-model distances as the quality measure, however outliers only add the threshold instead of their true distance. This method can lead to better results compared to RANSAC.
using pcl::MEstimatorSampleConsensus< PointT >::ConstPtr = shared_ptr<const MEstimatorSampleConsensus<PointT> > |
using pcl::MEstimatorSampleConsensus< PointT >::Ptr = shared_ptr<MEstimatorSampleConsensus<PointT> > |
|
inline |
MSAC (M-estimator SAmple Consensus) main constructor.
[in] | model | a Sample Consensus model |
Definition at line 80 of file msac.h.
References pcl::SampleConsensus< PointT >::max_iterations_.
|
inline |
MSAC (M-estimator SAmple Consensus) main constructor.
[in] | model | a Sample Consensus model |
[in] | threshold | distance to model threshold |
Definition at line 91 of file msac.h.
References pcl::SampleConsensus< PointT >::max_iterations_.
|
overridevirtual |
Compute the actual model and find the inliers.
[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 msac.hpp.
References pcl::geometry::distance().