RandomSampleConsensus представляет собой реализацию алгоритма RANSAC (RANdom SAmple Consensus), описанного в работе: «Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography», Martin A. Подробнее...
#include <pcl/sample_consensus/ransac.h>
Публичные типы | |
| using | Ptr = shared_ptr< RandomSampleConsensus< PointT > > |
| using | ConstPtr = shared_ptr< const RandomSampleConsensus< PointT > > |
|
| |
| using | Ptr = shared_ptr< SampleConsensus< PointT > > |
| using | ConstPtr = shared_ptr< const SampleConsensus< PointT > > |
Публичные функции-члены | |
| RandomSampleConsensus (const SampleConsensusModelPtr &model) | |
| Основной конструктор RANSAC (RANdom SAmple Consensus). Подробнее... |
|
| RandomSampleConsensus (const SampleConsensusModelPtr &model, double threshold) | |
| Основной конструктор RANSAC (RANdom SAmple Consensus). Подробнее... |
|
| bool | computeModel (int debug_verbosity_level=0) override |
| Вычислить модель и найти внутренние точки. Подробнее... |
|
|
| |
| SampleConsensus (const SampleConsensusModelPtr &model, bool random=false) | |
| Конструктор базового SAC. Подробнее... |
|
| SampleConsensus (const SampleConsensusModelPtr &model, double threshold, bool random=false) | |
| Конструктор базового SAC. Подробнее... |
|
| void | setSampleConsensusModel (const SampleConsensusModelPtr &model) |
| Задать используемую модель консенсуса по выборке. Подробнее... |
|
| SampleConsensusModelPtr | getSampleConsensusModel () const |
| Получить используемую модель консенсуса по выборке. Подробнее... |
|
| virtual | ~SampleConsensus ()=default |
| Деструктор базового SAC. Подробнее... |
|
| void | setDistanceThreshold (double threshold) |
| Задать порог расстояния до модели. Подробнее... |
|
| double | getDistanceThreshold () const |
| Получить установленный пользователем порог расстояния до модели. Подробнее... |
|
| void | setMaxIterations (int max_iterations) |
| Задать максимальное число итераций. Подробнее... |
|
| int | getMaxIterations () const |
| Получить установленное пользователем максимальное число итераций. Подробнее... |
|
| void | setProbability (double probability) |
| Задать требуемую вероятность выбора хотя бы одной выборки без выбросов. Подробнее... |
|
| double | getProbability () const |
| Получить установленную пользователем вероятность выбора хотя бы одной выборки без выбросов. Подробнее... |
|
| void | setNumberOfThreads (const int nr_threads=-1) |
| Задать число потоков для использования или отключить параллельное выполнение. Подробнее... |
|
| int | getNumberOfThreads () const |
| Получить установленное пользователем число потоков. Подробнее... |
|
| virtual bool | refineModel (const double sigma=3.0, const unsigned int max_iterations=1000) |
| Уточнить найденную модель. Подробнее... |
|
| void | getRandomSamples (const IndicesPtr &indices, std::size_t nr_samples, std::set< index_t > &indices_subset) |
| Получить набор случайно выбранных индексов. Подробнее... |
|
| void | getModel (Indices &model) const |
| Вернуть лучшую найденную на данный момент модель. Подробнее... |
|
| void | getInliers (Indices &inliers) const |
| Вернуть лучший набор внутренних точек, найденный для этой модели на данный момент. Подробнее... |
|
| void | getModelCoefficients (Eigen::VectorXf &model_coefficients) const |
| Вернуть коэффициенты лучшей найденной на данный момент модели. Подробнее... |
|
Дополнительные унаследованные члены | |
|
| |
| double | rnd () |
| Генератор случайных чисел на основе Boost. Подробнее... |
|
|
| |
| SampleConsensusModelPtr | sac_model_ |
| Используемая базовая модель данных (например, Подробнее... |
|
| Indices | model_ |
| Модель, найденная при последнем вызове computeModel (), в виде индексов облака точек. Подробнее... |
|
| Indices | inliers_ |
| Индексы точек, выбранных в качестве внутренних точек при последнем вызове computeModel (). Подробнее... |
|
| Eigen::VectorXf | model_coefficients_ |
| Коэффициенты модели, вычисленные непосредственно по найденной модели. Подробнее... |
|
| double | probability_ |
| Требуемая вероятность выбора хотя бы одной выборки, не содержащей выбросов. Подробнее... |
|
| int | iterations_ |
| Общее число выполненных на данный момент итераций внутреннего цикла. Подробнее... |
|
| double | threshold_ |
| Пороговое расстояние до модели. Подробнее... |
|
| int | max_iterations_ |
| Максимальное число итераций до прекращения работы. Подробнее... |
|
| int | threads_ |
| Число потоков, которое должен использовать планировщик; отрицательное значение отключает распараллеливание. Подробнее... |
|
| boost::mt19937 | rng_alg_ |
| Алгоритм генератора случайных чисел на основе Boost. Подробнее... |
|
| std::shared_ptr< boost::uniform_01< boost::mt19937 > > | rng_ |
| Распределение генератора случайных чисел на основе Boost. Подробнее... |
|
Подробное описание
template<typename PointT>
class pcl::RandomSampleConsensus< PointT >
RandomSampleConsensus представляет собой реализацию алгоритма RANSAC (RANdom SAmple Consensus), описанного в работе: «Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography», Martin A.
Fischler и Robert C. Bolles, Comm. Of the ACM 24: 381–395, июнь 1981 г. Доступен параллельный вариант, который включается с помощью setNumberOfThreads. По умолчанию распараллеливание отключено.
Алгоритм работает следующим образом:
- случайным образом выбрать из облака столько точек, сколько необходимо для определения модели
- вычислить коэффициенты модели по выбранным точкам
- подсчитать количество точек облака, соответствующих модели с учётом заданного порога. Они называются внутренними точками
- повторять, пока не будет найдена подходящая модель или не будет достигнуто максимальное число итераций
- вернуть модель с наибольшим числом внутренних точек
Описание псевдонимов типов-членов
ConstPtr
| using pcl::RandomSampleConsensus< PointT >::ConstPtr = shared_ptr<const RandomSampleConsensus<PointT> > |
Ptr
| using pcl::RandomSampleConsensus< PointT >::Ptr = shared_ptr<RandomSampleConsensus<PointT> > |
Описание конструкторов и деструкторов
RandomSampleConsensus() [1/2]
| inline |
RandomSampleConsensus() [2/2]
| inline |
Описание функций-членов
computeModel()
| overridevirtual |
Вычислить фактическую модель и найти внутренние точки.
- Параметры
-
[in] debug_verbosity_level включить или отключить отображение отладочной информации на экране и задать уровень подробности
Реализует pcl::SampleConsensus< PointT >.
Определение в строке 57 файла ransac.hpp.
Используется в pcl::registration::CorrespondenceRejectorSampleConsensus2D< PointT >::getRemainingCorrespondences() и pcl::registration::CorrespondenceRejectorSampleConsensus< PointT >::getRemainingCorrespondences().
Документация этого класса создана на основе следующих файлов:
- pcl/sample_consensus/ransac.h
- pcl/sample_consensus/impl/ransac.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_random_sample_consensus.html