Класс, выполняющий регистрацию двух облаков точек на основе их наборов PPFSignatures. Подробнее...
#include <pcl/registration/ppf_registration.h>
Вложенные классы | |
| struct | PoseWithVotes |
| Структура для хранения позы (представленной как Eigen::Affine3f) и целого числа для подсчёта голосов. Подробнее... |
|
Открытые функции-члены | |
| PPFRegistration () | |
| Пустой конструктор, который инициализирует все параметры алгоритма значениями по умолчанию. Подробнее... |
|
| void | setPositionClusteringThreshold (float clustering_position_diff_threshold) |
| Метод для задания параметра кластеризации разницы положений. Подробнее... |
|
| float | getPositionClusteringThreshold () |
| Возвращает параметр, задающий кластеризацию разницы положений. Подробнее... |
|
| void | setRotationClusteringThreshold (float clustering_rotation_diff_threshold) |
| Метод для задания параметра кластеризации поворотов. Подробнее... |
|
| float | getRotationClusteringThreshold () |
| Возвращает параметр, задающий порог кластеризации поворотов. Подробнее... |
|
| void | setSceneReferencePointSamplingRate (unsigned int scene_reference_point_sampling_rate) |
| Метод для задания частоты выборки опорных точек сцены. Подробнее... |
|
| unsigned int | getSceneReferencePointSamplingRate () |
| Возвращает параметр, задающий частоту выборки опорных точек сцены для алгоритма. Подробнее... |
|
| void | setSearchMethod (PPFHashMapSearch::Ptr search_method) |
| Функция, задающая метод поиска для алгоритма. Подробнее... |
|
| PPFHashMapSearch::Ptr | getSearchMethod () |
| Функция получения метода поиска класса. Подробнее... |
|
| void | setInputTarget (const PointCloudTargetConstPtr &cloud) override |
| Задаёт указатель на входное целевое облако точек (например, облако точек, к которому нужно совместить входное исходное облако). Подробнее... |
|
| PoseWithVotesList | getBestPoseCandidates () |
| Возвращает наиболее перспективные кандидаты позы после кластеризации. Подробнее... |
|
|
| |
| Registration () | |
| Пустой конструктор. Подробнее... |
|
| ~Registration () override=default | |
| Деструктор. Подробнее... |
|
| void | setTransformationEstimation (const TransformationEstimationPtr &te) |
| Задаёт указатель на объект оценки преобразования. Подробнее... |
|
| void | setCorrespondenceEstimation (const CorrespondenceEstimationPtr &ce) |
| Задаёт указатель на объект оценки соответствий. Подробнее... |
|
| virtual void | setInputSource (const PointCloudSourceConstPtr &cloud) |
| Задаёт указатель на входное исходное облако (например, облако точек, которое нужно совместить с целевым). Подробнее... |
|
| PointCloudSourceConstPtr const | getInputSource () |
| Возвращает указатель на целевой набор входных облаков точек. Подробнее... |
|
| PointCloudTargetConstPtr const | getInputTarget () |
| Возвращает указатель на целевой набор входных облаков точек. Подробнее... |
|
| void | setSearchMethodTarget (const KdTreePtr &tree, bool force_no_recompute=false) |
| Задаёт указатель на поисковый объект, используемый для поиска соответствий в целевом облаке. Подробнее... |
|
| KdTreePtr | getSearchMethodTarget () const |
| Возвращает указатель на метод поиска, используемый для поиска соответствий в целевом облаке. Подробнее... |
|
| void | setSearchMethodSource (const KdTreeReciprocalPtr &tree, bool force_no_recompute=false) |
| Задаёт указатель на поисковый объект, используемый для поиска соответствий в исходном облаке (обычно применяется при поиске взаимных соответствий). Подробнее... |
|
| KdTreeReciprocalPtr | getSearchMethodSource () const |
| Возвращает указатель на метод поиска, используемый для поиска соответствий в исходном облаке. Подробнее... |
|
| Matrix4 | getFinalTransformation () |
| Возвращает итоговую матрицу преобразования, вычисленную методом регистрации. Подробнее... |
|
| Matrix4 | getLastIncrementalTransformation () |
| Возвращает последнюю матрицу инкрементального преобразования, вычисленную методом регистрации. Подробнее... |
|
| void | setMaximumIterations (int nr_iterations) |
| Задаёт максимальное число итераций внутренней оптимизации. Подробнее... |
|
| int | getMaximumIterations () |
| Возвращает заданное пользователем максимальное число итераций внутренней оптимизации. Подробнее... |
|
| void | setRANSACIterations (int ransac_iterations) |
| Задаёт число итераций алгоритма RANSAC. Подробнее... |
|
| double | getRANSACIterations () |
| Возвращает заданное пользователем число итераций RANSAC. Подробнее... |
|
| void | setRANSACOutlierRejectionThreshold (double inlier_threshold) |
| Задаёт порог расстояния для внутренних точек во внутреннем цикле отбрасывания выбросов RANSAC. Подробнее... |
|
| double | getRANSACOutlierRejectionThreshold () |
| Возвращает заданный пользователем порог расстояния для внутренних точек во внутреннем цикле отбрасывания выбросов. Подробнее... |
|
| void | setMaxCorrespondenceDistance (double distance_threshold) |
| Задаёт максимальный порог расстояния между двумя соответствующими точками исходного и целевого облаков. Подробнее... |
|
| double | getMaxCorrespondenceDistance () |
| Возвращает максимальный порог расстояния между двумя соответствующими точками исходного и целевого облаков. Подробнее... |
|
| void | setTransformationEpsilon (double epsilon) |
| Задаёт эпсилон преобразования (максимально допустимую разность квадратов перемещений между двумя последовательными преобразованиями), при которой оптимизация считается сошедшейся к окончательному решению. Подробнее... |
|
| double | getTransformationEpsilon () |
| Возвращает заданный пользователем эпсилон преобразования (максимально допустимую разность квадратов перемещений между двумя последовательными преобразованиями). Подробнее... |
|
| void | setTransformationRotationEpsilon (double epsilon) |
| Задаёт эпсилон поворота преобразования (максимально допустимую разницу углов поворота между двумя последовательными преобразованиями), при которой оптимизация считается сошедшейся к окончательному решению. Подробнее... |
|
| double | getTransformationRotationEpsilon () |
| Возвращает заданный пользователем эпсилон поворота преобразования (максимально допустимую разницу между двумя последовательными преобразованиями; эпсилон — это cos(угла) в представлении «ось—угол»). Подробнее... |
|
| void | setEuclideanFitnessEpsilon (double epsilon) |
| Задаёт максимально допустимую евклидову ошибку между двумя последовательными шагами цикла ICP, при достижении которой алгоритм считается сошедшимся. Подробнее... |
|
| double | getEuclideanFitnessEpsilon () |
| Возвращает заданный пользователем максимально допустимый порог ошибки расстояния, при достижении которого алгоритм считается сошедшимся. Подробнее... |
|
| void | setPointRepresentation (const PointRepresentationConstPtr &point_representation) |
| Задаёт общий указатель boost на PointRepresentation, который будет использоваться при сравнении точек. Подробнее... |
|
| bool | registerVisualizationCallback (std::function< UpdateVisualizerCallbackSignature > &visualizerCallback) |
| Зарегистрировать пользовательскую функцию обратного вызова, которая будет вызываться из потока регистрации для обновления облака точек, полученного после каждой итерации. Подробнее... |
|
| double | getFitnessScore (double max_range=std::numeric_limits< double >::max()) |
| Получить евклидову оценку качества (например, среднее значение квадратов расстояний от исходного набора до целевого). Подробнее... |
|
| double | getFitnessScore (const std::vector< float > &distances_a, const std::vector< float > &distances_b) |
| Получить евклидову оценку качества (например, среднее значение квадратов расстояний от исходного набора до целевого) по двум наборам расстояний между соответствующими точками (расстояний между точками исходного и целевого наборов). Подробнее... |
|
| bool | hasConverged () const |
| Возвращает состояние сходимости после последнего запуска выравнивания. Подробнее... |
|
| void | align (PointCloudSource &output) |
| Запускает алгоритм регистрации, который оценивает преобразование и возвращает преобразованный исходный набор (входные данные) в output. Подробнее... |
|
| void | align (PointCloudSource &output, const Matrix4 &guess) |
| Запускает алгоритм регистрации, который оценивает преобразование и возвращает преобразованный исходный набор (входные данные) в output. Подробнее... |
|
| const std::string & | getClassName () const |
| Метод получения имени абстрактного класса. Подробнее... |
|
| bool | initCompute () |
| Инициализация внутренних вычислений. Подробнее... |
|
| bool | initComputeReciprocal () |
| Внутренние вычисления, необходимые для взаимного поиска. Подробнее... |
|
| void | addCorrespondenceRejector (const CorrespondenceRejectorPtr &rejector) |
| Добавить новый фильтр соответствий в список. Подробнее... |
|
| std::vector< CorrespondenceRejectorPtr > | getCorrespondenceRejectors () |
| Получить список фильтров соответствий. Подробнее... |
|
| bool | removeCorrespondenceRejector (unsigned int i) |
| Удалить i-й фильтр соответствий из списка. Подробнее... |
|
| void | clearCorrespondenceRejectors () |
| Очистить список фильтров соответствий. Подробнее... |
|
|
| |
| PCLBase () | |
| Конструктор без параметров. Подробнее... |
|
| PCLBase (const PCLBase &base) | |
| Конструктор копирования. Подробнее... |
|
| virtual | ~PCLBase ()=default |
| Деструктор. Подробнее... |
|
| virtual void | setInputCloud (const PointCloudConstPtr &cloud) |
| Передать указатель на входной набор данных. Подробнее... |
|
| PointCloudConstPtr const | getInputCloud () const |
| Получить указатель на входной набор облака точек. Подробнее... |
|
| virtual void | setIndices (const IndicesPtr &indices) |
| Передать указатель на вектор индексов, представляющий входные данные. Подробнее... |
|
| virtual void | setIndices (const IndicesConstPtr &indices) |
| Передать указатель на вектор индексов, представляющий входные данные. Подробнее... |
|
| virtual void | setIndices (const PointIndicesConstPtr &indices) |
| Передать указатель на вектор индексов, представляющий входные данные. Подробнее... |
|
| virtual void | setIndices (std::size_t row_start, std::size_t col_start, std::size_t nb_rows, std::size_t nb_cols) |
| Задать индексы точек, находящихся в области интереса облака точек. Подробнее... |
|
| IndicesPtr | getIndices () |
| Получить указатель на используемый вектор индексов. Подробнее... |
|
| IndicesConstPtr const | getIndices () const |
| Получить указатель на используемый вектор индексов. Подробнее... |
|
| const PointSource & | operator[] (std::size_t pos) const |
| Переопределить оператор PointCloud operator[] для сокращения кода. Подробнее... |
|
Дополнительные унаследованные элементы | |
|
| |
| bool | searchForNeighbors (const PointCloudSource &cloud, int index, pcl::Indices &indices, std::vector< float > &distances) |
| Поиск ближайшего соседа для заданной точки. Подробнее... |
|
| virtual void | computeTransformation (PointCloudSource &output, const Matrix4 &guess)=0 |
| Абстрактный метод вычисления преобразования с начальным приближением. Подробнее... |
|
|
| |
| bool | initCompute () |
| Этот метод следует вызвать перед началом фактических вычислений. Подробнее... |
|
| bool | deinitCompute () |
| Этот метод следует вызвать после завершения фактических вычислений. Подробнее... |
|
|
| |
| std::string | reg_name_ |
| Имя метода регистрации. Подробнее... |
|
| KdTreePtr | tree_ |
| Указатель на объект пространственного поиска. Подробнее... |
|
| KdTreeReciprocalPtr | tree_reciprocal_ |
| Указатель на объект пространственного поиска для исходного облака. Подробнее... |
|
| int | nr_iterations_ {0} |
| Количество итераций внутренней оптимизации (используется внутри класса). Подробнее... |
|
| int | max_iterations_ {10} |
| Максимальное число итераций внутренней оптимизации. Подробнее... |
|
| int | ransac_iterations_ {0} |
| Количество итераций алгоритма RANSAC. Подробнее... |
|
| PointCloudTargetConstPtr | target_ |
| Входной набор точек целевого облака. Подробнее... |
|
| Matrix4 | final_transformation_ |
| Итоговая матрица преобразования, оценённая методом регистрации после N итераций. Подробнее... |
|
| Matrix4 | transformation_ |
| Матрица преобразования, оценённая методом регистрации. Подробнее... |
|
| Matrix4 | previous_transformation_ |
| Предыдущая матрица преобразования, оценённая методом регистрации (используется внутри класса). Подробнее... |
|
| double | transformation_epsilon_ {0.0} |
| Максимальная разница между двумя последовательными преобразованиями, при которой считается, что достигнута сходимость (задаётся пользователем). Подробнее... |
|
| double | transformation_rotation_epsilon_ {0.0} |
| Максимальная разница углов поворота между двумя последовательными преобразованиями, при которой считается, что достигнута сходимость (задаётся пользователем). Подробнее... |
|
| double | euclidean_fitness_epsilon_ |
| Максимально допустимая евклидова ошибка между двумя последовательными шагами цикла ICP, при превышении которой алгоритм считается сошедшимся. Подробнее... |
|
| double | corr_dist_threshold_ |
| Максимальный порог расстояния между двумя соответствующими точками исходного и целевого облаков. Подробнее... |
|
| double | inlier_threshold_ {0.05} |
| Порог расстояния до внутренней точки для внутреннего цикла отбраковки выбросов RANSAC. Подробнее... |
|
| bool | converged_ {false} |
| Хранит внутреннее состояние сходимости с учётом параметров пользователя. Подробнее... |
|
| unsigned int | min_number_correspondences_ {3} |
| Минимальное количество соответствий, необходимое алгоритму для оценки преобразования. Подробнее... |
|
| CorrespondencesPtr | correspondences_ |
| Набор соответствий, определённых на данном шаге ICP. Подробнее... |
|
| TransformationEstimationPtr | transformation_estimation_ |
| Объект TransformationEstimation, используемый для вычисления жёсткого преобразования 4x4. Подробнее... |
|
| CorrespondenceEstimationPtr | correspondence_estimation_ |
| Объект CorrespondenceEstimation, используемый для определения соответствий между исходным и целевым облаками. Подробнее... |
|
| std::vector< CorrespondenceRejectorPtr > | correspondence_rejectors_ |
| Список используемых средств отбраковки соответствий. Подробнее... |
|
| bool | target_cloud_updated_ {true} |
| Переменная, указывающая, появилось ли новое целевое облако, которое необходимо предварительно обработать заново. Подробнее... |
|
| bool | source_cloud_updated_ {true} |
| Переменная, указывающая, появилось ли новое исходное облако, которое необходимо предварительно обработать заново. Подробнее... |
|
| bool | force_no_recompute_ {false} |
| Флаг, который при установке запрещает повторное вычисление дерева для целевого облака. Подробнее... |
|
| bool | force_no_recompute_reciprocal_ {false} |
| Флаг, который при установке запрещает повторное вычисление дерева для исходного облака. Подробнее... |
|
| std::function< UpdateVisualizerCallbackSignature > | update_visualizer_ |
| Функция обратного вызова для обновления положения промежуточного исходного облака точек при его регистрации относительно целевого облака точек. Подробнее... |
|
|
| |
| PointCloudConstPtr | input_ |
| Входной набор точек. Подробнее... |
|
| IndicesPtr | indices_ |
| Указатель на вектор используемых индексов точек. Подробнее... |
|
| bool | use_indices_ |
| Установите значение true, если используются индексы точек. Подробнее... |
|
| bool | fake_indices_ |
| Если набор индексов не задан, создаётся фиктивный набор индексов, соответствующий входному облаку PointCloud. Подробнее... |
|
Подробное описание
template<typename PointSource, typename PointTarget>
class pcl::PPFRegistration< PointSource, PointTarget >
Класс, регистрирующий два облака точек на основе их наборов PPFSignatures.
Дополнительные сведения см. в следующей публикации: B. Drost, M. Ulrich, N. Navab, S. Ilic «Глобальное моделирование, локальное сопоставление: эффективное и надёжное распознавание трёхмерных объектов», конференция IEEE по компьютерному зрению и распознаванию образов (CVPR), 13–18 июня 2010 г., Сан-Франциско, Калифорния.
- Примечание
- Этот класс работает совместно с классом PPFEstimation
Определение находится в строке 182 файла ppf_registration.h.
Документация псевдонимов типов-членов
PointCloudSource
| using pcl::PPFRegistration< PointSource, PointTarget >::PointCloudSource = pcl::PointCloud<PointSource> |
Определение находится в строке 208 файла ppf_registration.h.
PointCloudSourceConstPtr
| using pcl::PPFRegistration< PointSource, PointTarget >::PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr |
Определение в строке 210 файла ppf_registration.h.
PointCloudSourcePtr
| using pcl::PPFRegistration< PointSource, PointTarget >::PointCloudSourcePtr = typename PointCloudSource::Ptr |
Определение в строке 209 файла ppf_registration.h.
PointCloudTarget
| using pcl::PPFRegistration< PointSource, PointTarget >::PointCloudTarget = pcl::PointCloud<PointTarget> |
Определение в строке 212 файла ppf_registration.h.
PointCloudTargetConstPtr
| using pcl::PPFRegistration< PointSource, PointTarget >::PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr |
Определение в строке 214 файла ppf_registration.h.
PointCloudTargetPtr
| using pcl::PPFRegistration< PointSource, PointTarget >::PointCloudTargetPtr = typename PointCloudTarget::Ptr |
Определение в строке 213 файла ppf_registration.h.
PoseWithVotesList
| using pcl::PPFRegistration< PointSource, PointTarget >::PoseWithVotesList = std::vector<PoseWithVotes, Eigen::aligned_allocator<PoseWithVotes> > |
Определение в строке 197 файла ppf_registration.h.
Документация конструкторов и деструктора
PPFRegistration()
| inline |
Конструктор без параметров, инициализирующий все параметры алгоритма значениями по умолчанию.
Определение в строке 218 файла ppf_registration.h.
Документация функций-членов
getBestPoseCandidates()
| inline |
Возвращает наиболее перспективные кандидаты поз после кластеризации.
Поза с наибольшим количеством голосов является результатом регистрации. Если регистрация не дала правильного результата или существует несколько правильных результатов, имеет смысл проверить следующие лучшие кандидаты поз. Перед вызовом этой функции необходимо вызвать функцию align.
Определение в строке 312 файла ppf_registration.h.
getPositionClusteringThreshold()
| inline |
Возвращает параметр, задающий порог кластеризации по разнице положений.
- порог расстояния, ниже которого две позы считаются достаточно близкими, чтобы принадлежать одному кластеру (на этапе кластеризации алгоритма)
Определение в строке 239 файла ppf_registration.h.
getRotationClusteringThreshold()
| inline |
Возвращает параметр, задающий порог кластеризации по углу поворота.
Определение в строке 258 файла ppf_registration.h.
getSceneReferencePointSamplingRate()
| inline |
Возвращает параметр, задающий частоту выборки опорных точек сцены для алгоритма.
Определение в строке 276 файла ppf_registration.h.
getSearchMethod()
| inline |
Функция получения метода поиска, используемого классом.
Определение в строке 294 файла ppf_registration.h.
setInputTarget()
| |
Передаёт указатель на входное целевое облако (например, облако точек, к которому необходимо выровнять входное исходное облако).
- Параметры
-
cloud входное целевое облако точек
Переопределяет метод из pcl::Registration< PointSource, PointTarget, Scalar >.
Определение в строке 53 файла ppf_registration.hpp.
setPositionClusteringThreshold()
|
Метод для задания параметра кластеризации по разнице положений.
- Параметры
-
clustering_position_diff_threshold порог расстояния, ниже которого две позы считаются достаточно близкими, чтобы принадлежать одному кластеру (на этапе кластеризации алгоритма)
Определение в строке 229 файла ppf_registration.h.
setRotationClusteringThreshold()
|
Метод для задания параметра кластеризации по углу поворота.
- Параметры
-
clustering_rotation_diff_threshold порог разницы углов поворота, ниже которого две позы считаются принадлежащими одному кластеру (на этапе кластеризации алгоритма)
Определение в строке 250 файла ppf_registration.h.
setSceneReferencePointSamplingRate()
|
Метод для задания частоты выборки опорных точек сцены.
- Параметры
-
scene_reference_point_sampling_rate частота выборки опорных точек сцены
Определение в строке 268 файла ppf_registration.h.
setSearchMethod()
|
Функция, задающая метод поиска для алгоритма.
- Примечание
- В настоящее время доступен только метод, изначально предложенный авторами: использование хеш-таблицы с дискретизированными векторами признаков.
- Параметры
-
search_method умный указатель на задаваемый метод поиска
Определение в строке 287 файла ppf_registration.h.
Документация для этого класса создана на основе следующих файлов:
- pcl/registration/ppf_registration.h
- pcl/registration/impl/ppf_registration.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_p_p_f_registration.html