|
Point Cloud Library (PCL)
1.15.1-dev
|
LeastMedianSquares represents an implementation of the LMedS (Least Median of Squares) algorithm. More...
#include <pcl/sample_consensus/lmeds.h>
Inheritance diagram for pcl::LeastMedianSquares< PointT >:
Collaboration diagram for pcl::LeastMedianSquares< PointT >:Public Types | |
| using | Ptr = shared_ptr< LeastMedianSquares< PointT > > |
| using | ConstPtr = shared_ptr< const LeastMedianSquares< PointT > > |
Public Types inherited from pcl::SampleConsensus< PointT > | |
| using | Ptr = shared_ptr< SampleConsensus< PointT > > |
| using | ConstPtr = shared_ptr< const SampleConsensus< PointT > > |
Public Member Functions | |
| LeastMedianSquares (const SampleConsensusModelPtr &model) | |
| LMedS (Least Median of Squares) main constructor. More... | |
| LeastMedianSquares (const SampleConsensusModelPtr &model, double threshold) | |
| LMedS (Least Median of Squares) 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... | |
| const Indices & | getModel () 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... | |
| const Indices & | getInliers () 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... | |
| const Eigen::VectorXf & | getModelCoefficients () 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... | |
LeastMedianSquares represents an implementation of the LMedS (Least Median of Squares) algorithm.
LMedS is a RANSAC-like model-fitting algorithm that can tolerate up to 50% outliers without requiring thresholds to be set. See Andrea Fusiello's "Elements of Geometric Computer Vision" (http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/FUSIELLO4/tutorial.html#x1-520007) for more details. In contrast to RANSAC, LMedS does not divide the points into inliers and outliers when finding the model. Instead, it uses the median of all point-model distances as the measure of how good a model is. A threshold is only needed at the end, when it is determined which points belong to the found model.
| using pcl::LeastMedianSquares< PointT >::ConstPtr = shared_ptr<const LeastMedianSquares<PointT> > |
| using pcl::LeastMedianSquares< PointT >::Ptr = shared_ptr<LeastMedianSquares<PointT> > |
|
inline |
LMedS (Least Median of Squares) main constructor.
| [in] | model | a Sample Consensus model |
Definition at line 78 of file lmeds.h.
References pcl::SampleConsensus< PointT >::max_iterations_.
|
inline |
LMedS (Least Median of Squares) main constructor.
| [in] | model | a Sample Consensus model |
| [in] | threshold | distance to model threshold |
Definition at line 89 of file lmeds.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 49 of file lmeds.hpp.
References pcl::computeMedian(), and pcl::geometry::distance().