Подробное описание
Обзор
Библиотека pcl_sample_consensus содержит методы согласования выборок (SAC), такие как RANSAC, и модели, такие как плоскости и цилиндры. Их можно свободно комбинировать для обнаружения конкретных моделей и их параметров в облаках точек.
Некоторые из моделей, реализованных в этой библиотеке, включают: прямые, плоскости, цилиндры и сферы. При построении плоскости часто применяют задачу обнаружения общих внутренних поверхностей, таких как стены, полы и столешницы. Другие модели можно использовать для обнаружения и сегментации объектов с общими геометрическими структурами (например, для подгонки модели цилиндра к кружке).
Поддерживаются следующие модели:
- SACMODEL_PLANE - используется для определения моделей плоскостей. Четыре коэффициента плоскости представляют собой её нормальную форму Гессе: [normal_x normal_y normal_z d]
- SACMODEL_LINE - используется для определения моделей прямых. Шесть коэффициентов прямой задаются точкой на прямой и направлением прямой как: [point_on_line.x point_on_line.y point_on_line.z line_direction.x line_direction.y line_direction.z]
- SACMODEL_CIRCLE2D - используется для определения 2D окружностей в плоскости. Три коэффициента окружности задаются её центром и радиусом: [center.x center.y radius]
- SACMODEL_CIRCLE3D - используется для определения 3D окружностей в плоскости. Семь коэффициентов окружности задаются её центром, радиусом и нормалью: [center.x, center.y, center.z, radius, normal.x, normal.y, normal.z]
- SACMODEL_SPHERE - используется для определения моделей сфер. Четыре коэффициента сферы задаются её 3D центром и радиусом: [center.x center.y center.z radius]
- SACMODEL_CYLINDER - используется для определения моделей цилиндров. Семь коэффициентов цилиндра задаются точкой на его оси, направлением оси и радиусом, как: [point_on_axis.x point_on_axis.y point_on_axis.z axis_direction.x axis_direction.y axis_direction.z radius]
- SACMODEL_CONE - используется для определения моделей конусов. Семь коэффициентов конуса задаются вершиной, направлением оси и углом раскрытия, как: [apex.x, apex.y, apex.z, axis_direction.x, axis_direction.y, axis_direction.z, opening_angle]
- SACMODEL_TORUS - ещё не реализовано
- SACMODEL_PARALLEL_LINE - модель для определения прямой, параллельной заданной оси, в пределах максимального заданного углового отклонения. Коэффициенты прямой аналогичны SACMODEL_LINE .
- SACMODEL_PERPENDICULAR_PLANE - модель для определения плоскости, перпендикулярной заданной оси, в пределах максимального заданного углового отклонения. Коэффициенты плоскости аналогичны SACMODEL_PLANE .
- SACMODEL_PARALLEL_LINES - ещё не реализовано
- SACMODEL_NORMAL_PLANE - модель для определения моделей плоскостей с дополнительным ограничением: нормали поверхности в каждой точке-ближайшей должна быть параллельна нормали выходной плоскости, в пределах максимального заданного углового отклонения. Коэффициенты плоскости аналогичны SACMODEL_PLANE .
- SACMODEL_NORMAL_SPHERE - аналогично SACMODEL_SPHERE , но с дополнительными ограничениями на нормаль поверхности.
- SACMODEL_PARALLEL_PLANE - модель для определения плоскости, параллельной заданной оси, в пределах максимального заданного углового отклонения. Коэффициенты плоскости аналогичны SACMODEL_PLANE .
- SACMODEL_NORMAL_PARALLEL_PLANE определяет модель для сегментации 3D плоскостей с дополнительными ограничениями на нормаль поверхности. Нормаль плоскости должна быть параллельна заданной оси. Таким образом, SACMODEL_NORMAL_PARALLEL_PLANE эквивалентно SACMODEL_NORMAL_PLANE + SACMODEL_PERPENDICULAR_PLANE. Коэффициенты плоскости аналогичны SACMODEL_PLANE .
- SACMODEL_STICK - модель для сегментации 3D стержней. Стержень представляет собой прямую с заданной минимальной/максимальной шириной.
- SACMODEL_ELLIPSE3D - используется для определения 3D эллипсов в плоскости. Одиннадцать коэффициентов эллипса задаются центром и радиусом: [center.x, center.y, center.z, semi_axis.u, semi_axis.v, normal.x, normal.y, normal.z, u.x, u.y, u.z]
В следующем списке описаны реализованные алгоритмы согласования выборок:
- SAC_RANSAC - RANdom SAmple Consensus
- SAC_LMEDS - Least Median of Squares
- SAC_MSAC - M-Estimator SAmple Consensus
- SAC_RRANSAC - Randomized RANSAC
- SAC_RMSAC - Randomized MSAC
- SAC_MLESAC - Maximum LikeLihood Estimation SAmple Consensus
- SAC_PROSAC - PROgressive SAmple Consensus
По умолчанию, если вы не знакомы с большинством вышеперечисленных оценщиков и их принципом работы, воспользуйтесь RANSAC для проверки ваших гипотез.
Требования
END_OF_DOCUMENT_MARKERКлассы | |
| class | pcl::LeastMedianSquares< PointT > |
|
LeastMedianSquares представляет реализацию алгоритма LMedS (Least Median of Squares). Подробнее... |
|
| class | pcl::MaximumLikelihoodSampleConsensus< PointT > |
|
MaximumLikelihoodSampleConsensus представляет реализацию алгоритма MLESAC (Maximum Likelihood Estimator SAmple Consensus), как описано в: "MLESAC: A new robust estimator with application to estimating image geometry", P.H.S. Подробнее... |
|
| class | pcl::MEstimatorSampleConsensus< PointT > |
|
MEstimatorSampleConsensus представляет реализацию алгоритма MSAC (M-estimator SAmple Consensus), как описано в: "MLESAC: A new robust estimator with application to estimating image geometry", P.H.S. Подробнее... |
|
| class | pcl::ProgressiveSampleConsensus< PointT > |
|
ProgressiveSampleConsensus представляет реализацию алгоритма PROSAC (PROgressive SAmple Consensus), как описано в: "Matching with PROSAC – Progressive Sample Consensus", Chum, O. Подробнее... |
|
| 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. Подробнее... |
|
| class | pcl::RandomizedMEstimatorSampleConsensus< PointT > |
|
RandomizedMEstimatorSampleConsensus представляет реализацию алгоритма RMSAC (Randomized M-estimator SAmple Consensus), который добавляет тест Td,d (см. RandomizedRandomSampleConsensus) к оценщику MSAC (см. MEstimatorSampleConsensus). Подробнее... |
|
| class | pcl::RandomizedRandomSampleConsensus< PointT > |
|
RandomizedRandomSampleConsensus представляет реализацию алгоритма RRANSAC (Randomized RANdom SAmple Consensus), как описано в "Randomized RANSAC with Td,d test", O. Подробнее... |
|
| class | pcl::SampleConsensus< T > |
|
SampleConsensus представляет базовый класс. Подробнее... |
|
| class | pcl::SampleConsensusModel< PointT > |
|
SampleConsensusModel представляет базовый модельный класс. Подробнее... |
|
| class | pcl::SampleConsensusModelFromNormals< PointT, PointNT > |
|
SampleConsensusModelFromNormals представляет базовый модельный класс для моделей, которые требуют использования нормалей поверхности для оценки. Подробнее... |
|
| class | pcl::SampleConsensusModelCircle2D< PointT > |
|
SampleConsensusModelCircle2D определяет модель для сегментации окружностей 2D на плоскости X-Y. Подробнее... |
|
| class | pcl::SampleConsensusModelCircle3D< PointT > |
|
SampleConsensusModelCircle3D определяет модель для сегментации окружностей 3D. Подробнее... |
|
| class | pcl::SampleConsensusModelCone< PointT, PointNT > |
|
SampleConsensusModelCone определяет модель для сегментации конусов 3D. Подробнее... |
|
| class | pcl::SampleConsensusModelCylinder< PointT, PointNT > |
|
SampleConsensusModelCylinder определяет модель для сегментации цилиндров 3D. Подробнее... |
|
| class | pcl::SampleConsensusModelEllipse3D< PointT > |
|
SampleConsensusModelEllipse3D определяет модель для сегментации эллипсов 3D. Подробнее... |
|
| class | pcl::SampleConsensusModelLine< PointT > |
|
pcl::SampleConsensusModelLine определяет модель для сегментации 3D линий. Подробнее... |
|
| class | pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT > |
|
pcl::SampleConsensusModelNormalParallelPlane определяет модель для сегментации 3D плоскостей с использованием дополнительных ограничений на нормаль к поверхности. Подробнее... |
|
| class | pcl::SampleConsensusModelNormalPlane< PointT, PointNT > |
|
pcl::SampleConsensusModelNormalPlane определяет модель для сегментации 3D плоскостей с использованием дополнительных ограничений на нормаль к поверхности. Подробнее... |
|
| class | pcl::SampleConsensusModelNormalSphere< PointT, PointNT > |
|
pcl::SampleConsensusModelNormalSphere определяет модель для сегментации 3D сфер с использованием дополнительных ограничений на нормаль к поверхности. Подробнее... |
|
| class | pcl::SampleConsensusModelParallelLine< PointT > |
|
pcl::SampleConsensusModelParallelLine определяет модель для сегментации 3D линий с использованием дополнительных угловых ограничений. Подробнее... |
|
| class | pcl::SampleConsensusModelParallelPlane< PointT > |
|
pcl::SampleConsensusModelParallelPlane определяет модель для сегментации 3D плоскостей с использованием дополнительных угловых ограничений. Подробнее... |
|
| class | pcl::SampleConsensusModelPerpendicularPlane< PointT > |
|
pcl::SampleConsensusModelPerpendicularPlane определяет модель для сегментации 3D плоскостей с использованием дополнительных угловых ограничений. Подробнее... |
|
| class | pcl::SampleConsensusModelPlane< PointT > |
|
pcl::SampleConsensusModelPlane определяет модель для сегментации 3D плоскостей. Подробнее... |
|
| class | pcl::SampleConsensusModelRegistration< PointT > |
|
pcl::SampleConsensusModelRegistration определяет модель для отбрасывания выбросов в регистрации точечных облаков по точечным соответствиям. Подробнее... |
|
| class | pcl::SampleConsensusModelRegistration2D< PointT > |
|
pcl::SampleConsensusModelRegistration2D определяет модель для отбрасывания выбросов в регистрации точечных облаков по точечным соответствиям, используя расстояния между 2D пикселями. Подробнее... |
|
| class | pcl::SampleConsensusModelSphere< PointT > |
|
pcl::SampleConsensusModelSphere определяет модель для сегментации 3D сфер. Подробнее... |
|
| class | pcl::SampleConsensusModelStick< PointT > |
|
pcl::SampleConsensusModelStick определяет модель для сегментации 3D стержней. Подробнее... |
|
Функции | |
| шаблон<typename Point > | |
| double | pcl::pointToPlaneDistanceSigned (const Point &p, double a, double b, double c, double d) |
| Получить расстояние от точки до плоскости (со знаком) заданной уравнением ax+by+cz+d=0. Подробнее... |
|
| шаблон<typename Point > | |
| double | pcl::pointToPlaneDistanceSigned (const Point &p, const Eigen::Vector4f &plane_coefficients) |
| Получить расстояние от точки до плоскости (со знаком) заданной уравнением ax+by+cz+d=0. Подробнее... |
|
| шаблон<typename Point > | |
| double | pcl::pointToPlaneDistance (const Point &p, double a, double b, double c, double d) |
| Получить расстояние от точки до плоскости (без знака) заданной уравнением ax+by+cz+d=0. Подробнее... |
|
| шаблон<typename Point > | |
| double | pcl::pointToPlaneDistance (const Point &p, const Eigen::Vector4f &plane_coefficients) |
| Получить расстояние от точки до плоскости (без знака) заданной уравнением ax+by+cz+d=0. Подробнее... |
|
Документация функций
pointToPlaneDistance() [1/2]
| inline |
#include <pcl/sample_consensus/sac_model_plane.h>
Получить расстояние от точки до плоскости (без знака) заданной уравнением ax+by+cz+d=0.
- Параметры
-
p точка plane_coefficients нормализованные коэффициенты (a, b, c, d) плоскости
Определение в строке 125 файла sac_model_plane.h.
Ссылки на pcl::pointToPlaneDistanceSigned().
pointToPlaneDistance() [2/2]
| inline |
#include <pcl/sample_consensus/sac_model_plane.h>
Получить расстояние от точки до плоскости (без знака) заданной уравнением ax+by+cz+d=0.
- Параметры
-
p точка a нормализованный коэффициент a плоскости b нормализованный коэффициент b плоскости c нормализованный коэффициент c плоскости d нормализованный коэффициент d плоскости
Определение в строке 114 файла sac_model_plane.h.
Ссылки на pcl::pointToPlaneDistanceSigned().
pointToPlaneDistanceSigned() [1/2]
| inline |
#include <pcl/sample_consensus/sac_model_plane.h>
Получить расстояние от точки до плоскости (со знаком) заданной уравнением ax+by+cz+d=0.
- Параметры
-
p точка plane_coefficients нормализованные коэффициенты (a, b, c, d) плоскости
Определение в строке 100 файла sac_model_plane.h.
pointToPlaneDistanceSigned() [2/2]
| inline |
#include <pcl/sample_consensus/sac_model_plane.h>
Получение расстояния от точки до плоскости (со знаком) определённой уравнением ax+by+cz+d=0.
- Параметры
-
p точка a нормализованный коэффициент a плоскости b нормализованный коэффициент b плоскости c нормализованный коэффициент c плоскости d нормализованный коэффициент d плоскости
Определение в строке 89 файла sac_model_plane.h.
Используется в pcl::pointToPlaneDistance() и pcl::ExtractPolygonalPrismData< PointT >::segment().
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/group__sample__consensus.html