Spec-Zone.ru › PointCloudLibrary

Подробное описание

Обзор

Библиотека 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 — используется для определения двумерных окружностей в плоскости. Три коэффициента окружности задаются её центром и радиусом: [center.x center.y radius]
  • SACMODEL_CIRCLE3D — используется для определения трёхмерных окружностей в плоскости. Семь коэффициентов окружности задаются её центром, радиусом и нормалью: [center.x, center.y, center.z, radius, normal.x, normal.y, normal.z]
  • SACMODEL_SPHERE — используется для определения моделей сфер. Четыре коэффициента сферы задаются её трёхмерным центром и радиусом: [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 задаёт модель сегментации трёхмерной плоскости с использованием дополнительных ограничений на нормали поверхности. Нормаль плоскости должна быть параллельна заданной пользователем оси. Поэтому SACMODEL_NORMAL_PARALLEL_PLANE эквивалентна SACMODEL_NORMAL_PLANE + SACMODEL_PERPENDICULAR_PLANE. Коэффициенты плоскости аналогичны коэффициентам SACMODEL_PLANE .
  • SACMODEL_STICK — модель сегментации трёхмерных стержней. Стержень представляет собой линию с заданной пользователем минимальной и максимальной шириной.
  • SACMODEL_ELLIPSE3D — используется для определения трёхмерных эллипсов в плоскости. Одиннадцать коэффициентов эллипса задаются его центром и радиусами: [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 — согласование случайных выборок
  • SAC_LMEDS — медиана квадратов наименьших отклонений
  • SAC_MSAC — согласование выборок с M-оценивателем
  • SAC_RRANSAC — рандомизированный RANSAC
  • SAC_RMSAC — рандомизированный MSAC
  • SAC_MLESAC — согласование выборок с оценкой максимального правдоподобия
  • SAC_PROSAC — прогрессивное согласование выборок

По умолчанию, если вы не знакомы с большинством перечисленных оценивателей и принципами их работы, используйте RANSAC для проверки гипотез.

Требования

  • common

Классы

класс pcl::LeastMedianSquares< PointT >
LeastMedianSquares представляет собой реализацию алгоритма LMedS (медиана квадратов наименьших отклонений). Подробнее...
класс pcl::MaximumLikelihoodSampleConsensus< PointT >
MaximumLikelihoodSampleConsensus представляет собой реализацию алгоритма MLESAC (согласование выборок с оценивателем максимального правдоподобия), описанного в работе «MLESAC: новый устойчивый оцениватель с применением для определения геометрии изображений», P.H.S. Подробнее...
класс pcl::MEstimatorSampleConsensus< PointT >
MEstimatorSampleConsensus представляет собой реализацию алгоритма MSAC (согласование выборок с M-оценивателем), описанного в работе «MLESAC: новый устойчивый оцениватель с применением для определения геометрии изображений», P.H.S. Подробнее...
класс pcl::ProgressiveSampleConsensus< PointT >
ProgressiveSampleConsensus представляет собой реализацию алгоритма PROSAC (прогрессивное согласование выборок), описанного в работе «Сопоставление с PROSAC — прогрессивное согласование выборок», Chum, O. Подробнее...
класс pcl::RandomSampleConsensus< PointT >
RandomSampleConsensus представляет собой реализацию алгоритма RANSAC (согласование случайных выборок), описанного в работе «Метод согласования случайных выборок: парадигма подгонки моделей с применением для анализа изображений и автоматизированного картографирования», Martin A. Подробнее...
класс pcl::RandomizedMEstimatorSampleConsensus< PointT >
RandomizedMEstimatorSampleConsensus представляет собой реализацию алгоритма RMSAC (рандомизированное согласование выборок с M-оценивателем), который, по сути, добавляет тест Td,d (см. RandomizedRandomSampleConsensus) к оценивателю MSAC (см. MEstimatorSampleConsensus). Подробнее...
класс pcl::RandomizedRandomSampleConsensus< PointT >
RandomizedRandomSampleConsensus представляет собой реализацию RRANSAC (рандомизированного согласования случайных выборок), описанного в работе «Рандомизированный RANSAC с тестом Td,d», O. Подробнее...
класс pcl::SampleConsensus< T >
SampleConsensus представляет базовый класс. Подробнее...
класс pcl::SampleConsensusModel< PointT >
SampleConsensusModel представляет базовый класс модели. Подробнее...
класс pcl::SampleConsensusModelFromNormals< PointT, PointNT >
SampleConsensusModelFromNormals представляет базовый класс моделей, для оценивания которых требуются нормали поверхности. Подробнее...
класс pcl::SampleConsensusModelCircle2D< PointT >
SampleConsensusModelCircle2D задаёт модель для сегментации двумерных окружностей в плоскости X-Y. Подробнее...
класс pcl::SampleConsensusModelCircle3D< PointT >
SampleConsensusModelCircle3D задаёт модель для сегментации трёхмерных окружностей. Подробнее...
класс pcl::SampleConsensusModelCone< PointT, PointNT >
SampleConsensusModelCone задаёт модель для сегментации трёхмерных конусов. Подробнее...
класс pcl::SampleConsensusModelCylinder< PointT, PointNT >
SampleConsensusModelCylinder задаёт модель для сегментации трёхмерных цилиндров. Подробнее...
класс pcl::SampleConsensusModelEllipse3D< PointT >
SampleConsensusModelEllipse3D задаёт модель для сегментации трёхмерных эллипсов. Подробнее...
класс pcl::SampleConsensusModelLine< PointT >
SampleConsensusModelLine задаёт модель для сегментации трёхмерных линий. Подробнее...
класс pcl::SampleConsensusModelNormalParallelPlane< PointT, PointNT >
SampleConsensusModelNormalParallelPlane задаёт модель для сегментации трёхмерных плоскостей с использованием дополнительных ограничений на нормали поверхности. Подробнее...
класс pcl::SampleConsensusModelNormalPlane< PointT, PointNT >
SampleConsensusModelNormalPlane задаёт модель для сегментации трёхмерных плоскостей с использованием дополнительных ограничений на нормали поверхности. Подробнее...
класс pcl::SampleConsensusModelNormalSphere< PointT, PointNT >
SampleConsensusModelNormalSphere задаёт модель для сегментации трёхмерных сфер с использованием дополнительных ограничений на нормали поверхности. Подробнее...
класс pcl::SampleConsensusModelParallelLine< PointT >
SampleConsensusModelParallelLine задаёт модель для сегментации трёхмерных линий с использованием дополнительных угловых ограничений. Подробнее...
класс pcl::SampleConsensusModelParallelPlane< PointT >
SampleConsensusModelParallelPlane задаёт модель для сегментации трёхмерных плоскостей с использованием дополнительных угловых ограничений. Подробнее...
класс pcl::SampleConsensusModelPerpendicularPlane< PointT >
SampleConsensusModelPerpendicularPlane задаёт модель для сегментации трёхмерных плоскостей с использованием дополнительных угловых ограничений. Подробнее...
класс pcl::SampleConsensusModelPlane< PointT >
SampleConsensusModelPlane задаёт модель для сегментации трёхмерных плоскостей. Подробнее...
класс pcl::SampleConsensusModelRegistration< PointT >
SampleConsensusModelRegistration задаёт модель для отбраковки выбросов при попарной регистрации точек. Подробнее...
класс pcl::SampleConsensusModelRegistration2D< PointT >
SampleConsensusModelRegistration2D задаёт модель для отбраковки выбросов при попарной регистрации точек с использованием расстояний между двумерными пикселями. Подробнее...
класс pcl::SampleConsensusModelSphere< PointT >
SampleConsensusModelSphere задаёт модель для сегментации трёхмерных сфер. Подробнее...
класс pcl::SampleConsensusModelStick< PointT >
SampleConsensusModelStick задаёт модель для сегментации трёхмерных стержней. Подробнее...
класс pcl::SampleConsensusModelTorus< PointT, PointNT >
SampleConsensusModelTorus задаёт модель для сегментации трёхмерных торов. Подробнее...

Функции

template<typename Point >
double pcl::pointToPlaneDistanceSigned (const Point &p, double a, double b, double c, double d)
Получить расстояние от точки до плоскости (со знаком), заданной уравнением ax+by+cz+d=0. Подробнее...
template<typename Point >
double pcl::pointToPlaneDistanceSigned (const Point &p, const Eigen::Vector4f &plane_coefficients)
Получить расстояние от точки до плоскости (со знаком), заданной уравнением ax+by+cz+d=0. Подробнее...
template<typename Point >
double pcl::pointToPlaneDistance (const Point &p, double a, double b, double c, double d)
Получить расстояние от точки до плоскости (без знака), заданной уравнением ax+by+cz+d=0. Подробнее...
template<typename Point >
double pcl::pointToPlaneDistance (const Point &p, const Eigen::Vector4f &plane_coefficients)
Получить расстояние от точки до плоскости (без знака), заданной уравнением ax+by+cz+d=0. Подробнее...

Документация функций

pointToPlaneDistance() [1/2]

template<typename Point >
double pcl::pointToPlaneDistance ( const Point & p,
const Eigen::Vector4f & plane_coefficients
)
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]

template<typename Point >
double pcl::pointToPlaneDistance ( const Point & p,
double a,
double b,
double c,
double d
)
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]

template<typename Point >
double pcl::pointToPlaneDistanceSigned ( const Point & p,
const Eigen::Vector4f & plane_coefficients
)
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]

template<typename Point >
double pcl::pointToPlaneDistanceSigned ( const Point & p,
double a,
double b,
double c,
double d
)
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API