Spec-Zone.ru › PointCloudLibrary
GeneralizedIterativeClosestPoint6D интегрирует информацию о цветовом пространстве L*a*b* в алгоритм обобщенного итеративного ближайшего соседа (GICP). Подробнее...
#include <pcl/registration/gicp6d.h >
GeneralizedIterativeClosestPoint6D (float lab_weight=0.032f)
Конструктор. Подробнее...
void
setInputSource (const PointCloudSourceConstPtr &cloud) override
Укажите указатель на источник входных данных (например, облако точек, которое мы хотим выровнять с целевым). Подробнее...
void
setInputTarget (const PointCloudTargetConstPtr &target) override
Укажите указатель на целевые данные (например, облако точек, к которому мы хотим выровнять входной источник). Подробнее...
GeneralizedIterativeClosestPoint ()
Пустой конструктор. Подробнее...
void
setInputSource (const PointCloudSourceConstPtr &cloud) override
Укажите указатель на входной набор данных. Подробнее...
void
estimateRigidTransformationBFGS (const PointCloudSource &cloud_src, const pcl::Indices &indices_src, const PointCloudTarget &cloud_tgt, const pcl::Indices &indices_tgt, Matrix4 &transformation_matrix)
Оцените жесткое преобразование вращения между облаком исходных и целевых точек с использованием итерационного нелинейного подхода BFGS . Подробнее...
void
computeRDerivative (const Vector6d &x, const Eigen::Matrix3d &dCost_dR_T, Vector6d &g) const
Вычисляет производную функции стоимости по углам вращения. Подробнее...
Предоставьте указатель на целевой вход (например, облако точек, к которому мы хотим выровнять входной источник) Подробнее...
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 shared указатель на 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
Возвращает состояние сходимости после последнего выполнения align. Подробнее...
void
align (PointCloudSource &output)
Вызвать алгоритм регистрации, который оценивает преобразование и возвращает преобразованный исходный (ввод) как output . Подробнее...
void
computeTransformation (PointCloudSource &output, const Eigen::Matrix4f &guess) override
Метод вычисления ригидного преобразования с начальным предположением. Подробнее...
bool
searchForNeighbors (const PointXYZLAB &query, pcl::Indices &index, std::vector< float > &distance)
Поиск ближайшего соседа заданной точки. Подробнее...
void
computeCovariances (typename pcl::PointCloud < PointT >::ConstPtr cloud, const typename pcl::search::KdTree < PointT >::Ptr tree, MatricesVector &cloud_covariances)
вычисляет матрицы ковариаций точек согласно K ближайшим соседям. Подробнее...
double
matricesInnerProd (const Eigen::MatrixXd &mat1, const Eigen::MatrixXd &mat2) const
void
computeTransformation (PointCloudSource &output, const Matrix4 &guess) override
Метод вычисления ригидного преобразования с начальным предположением. Подробнее...
bool
searchForNeighbors (const PointXYZRGBA &query, pcl::Indices &index, std::vector< float > &distance)
Поиск ближайшего соседа заданной точки. Подробнее...
void
applyState (Matrix4 &t, const Vector6d &x) const
вычисляет матрицу преобразования из матрицы преобразования Подробнее...
virtual void
transformCloud (const PointCloudSource &input, PointCloudSource &output, const Matrix4 &transform)
Применяет ригидное преобразование к заданному набору данных. Подробнее...
void
computeTransformation (PointCloudSource &output, const Matrix4 &guess) override
Метод вычисления ригидного преобразования с начальным предположением. Подробнее...
virtual void
determineRequiredBlobData ()
Проверяет Estimators и Rejectors и определяет, нужно ли вызывать их методы установки blob. Подробнее...
double
euclidean_fitness_epsilon_
Максимально допустимая Евклидова ошибка между двумя последовательными шагами в цикле ICP, прежде чем алгоритм считается сходившимся. Подробнее...
double
corr_dist_threshold_
Максимальное пороговое значение расстояния между двумя соответствующими точками в источнике <-> целевом. Подробнее...
double
inlier_threshold_
Пороговое значение расстояния для инлайнеров для внутреннего цикла отклонения выбросов RANSAC. Подробнее...
bool
converged_
Содержит внутреннее состояние сходимости, заданное пользователем. Подробнее...
unsigned int
min_number_correspondences_
Минимальное количество соответствий, необходимое алгоритму, прежде чем он попытается оценить преобразование. Подробнее...
CorrespondencesPtr
correspondences_
Набор соответствий, определенных на данном шаге ICP. Подробнее...
TransformationEstimationPtr
transformation_estimation_
Объект TransformationEstimation, используемый для расчета 4x4 жесткого преобразования. Подробнее...
CorrespondenceEstimationPtr
correspondence_estimation_
Объект CorrespondenceEstimation, используемый для оценки соответствий между облаком исходных и целевых точек. Подробнее...
std::vector< CorrespondenceRejectorPtr >
correspondence_rejectors_
Список корректирующих соответствий для использования. Подробнее...
bool
target_cloud_updated_
Переменная, которая хранит информацию о наличии нового облака целевых точек, что означает необходимость его повторной обработки. Подробнее...
bool
source_cloud_updated_
Переменная, которая хранит информацию о наличии нового облака исходных точек, что означает необходимость его повторной обработки. Подробнее...
bool
force_no_recompute_
Флаг, который, если установлен, означает, что дерево, работающее с облаком целевых точек, никогда не будет пересчитываться. Подробнее...
bool
force_no_recompute_reciprocal_
Флаг, который, если установлен, означает, что дерево, работающее с облаком исходных точек, никогда не будет пересчитываться. Подробнее...
std::function< UpdateVisualizerCallbackSignature >
update_visualizer_
Функция обратного вызова для обновления промежуточного положения облака исходных точек во время его регистрации с облаком целевых точек. Подробнее...
using
PointCloudSource = pcl::PointCloud < PointXYZRGBA >
using
PointCloudSourcePtr = typename PointCloudSource::Ptr
using
PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr
using
PointCloudTarget = pcl::PointCloud < PointXYZRGBA >
using
PointCloudTargetPtr = typename PointCloudTarget::Ptr
using
PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr
using
PointIndicesPtr = PointIndices::Ptr
using
PointIndicesConstPtr = PointIndices::ConstPtr
using
MatricesVector = std::vector< Eigen::Matrix3d, Eigen::aligned_allocator< Eigen::Matrix3d > >
using
MatricesVectorPtr = shared_ptr< MatricesVector >
using
MatricesVectorConstPtr = shared_ptr< const MatricesVector >
using
InputKdTree = typename Registration < PointXYZRGBA , PointXYZRGBA , float >::KdTree
using
InputKdTreePtr = typename Registration < PointXYZRGBA , PointXYZRGBA , float >::KdTreePtr
using
Ptr = shared_ptr< GeneralizedIterativeClosestPoint < PointXYZRGBA , PointXYZRGBA , float > >
using
ConstPtr = shared_ptr< const GeneralizedIterativeClosestPoint < PointXYZRGBA , PointXYZRGBA , float > >
using
Vector3 = typename Eigen::Matrix< float, 3, 1 >
using
Vector4 = typename Eigen::Matrix< float, 4, 1 >
using
Vector6d = Eigen::Matrix< double, 6, 1 >
using
Matrix3 = typename Eigen::Matrix< float, 3, 3 >
using
Matrix4 = typename IterativeClosestPoint < PointXYZRGBA , PointXYZRGBA , float >::Matrix4
using
AngleAxis = typename Eigen::AngleAxis< float >
using
PointCloudSource = typename Registration < PointXYZRGBA , PointXYZRGBA , float >::PointCloudSource
using
PointCloudSourcePtr = typename PointCloudSource::Ptr
using
PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr
using
PointCloudTarget = typename Registration < PointXYZRGBA , PointXYZRGBA , float >::PointCloudTarget
using
PointCloudTargetPtr = typename PointCloudTarget::Ptr
using
PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr
using
PointIndicesPtr = PointIndices::Ptr
using
PointIndicesConstPtr = PointIndices::ConstPtr
using
Ptr = shared_ptr< IterativeClosestPoint < PointXYZRGBA , PointXYZRGBA , float > >
using
ConstPtr = shared_ptr< const IterativeClosestPoint < PointXYZRGBA , PointXYZRGBA , float > >
using
Matrix4 = typename Registration < PointXYZRGBA , PointXYZRGBA , float >::Matrix4
using
Matrix4 = Eigen::Matrix< Scalar, 4, 4 >
using
Ptr = shared_ptr< Registration < PointSource, PointTarget, Scalar > >
using
ConstPtr = shared_ptr< const Registration < PointSource, PointTarget, Scalar > >
GeneralizedIterativeClosestPoint6D интегрирует информацию о цветовом пространстве L*a*b* в алгоритм обобщённого итеративного ближайшего соседа (GICP).
Рекомендуемый вход — PointXYZRGBA .
Примечание
Если вы используете этот код в академических работах, пожалуйста, укажите:
М. Корн, М. Хольцкотен, Дж. Паули Поддержка цвета в обобщенном ICP. В материалах VISAPP 2014 - международной конференции по теории и применению компьютерного зрения, Лиссабон, Португалия, январь 2014 г.
Автор
Мартин Хольцкотен, Майкл Корн
Определение в строке 65 файла gicp6d.h .
GeneralizedIterativeClosestPoint6D() pcl::GeneralizedIterativeClosestPoint6D::GeneralizedIterativeClosestPoint6D ( float
lab_weight = 0.032f
)
конструктор.
Параметры
[in]
lab_weight
весовой коэффициент цвета
computeTransformation() void pcl::GeneralizedIterativeClosestPoint6D::computeTransformation (
PointCloudSource &
output , const Eigen::Matrix4f &
guess )
override protected
Метод вычисления ригидной трансформации с начальным предположением.
Параметры
output
трансформированный входной облако точек с найденной ригидной трансформацией
guess
начальное предположение о трансформации для вычисления
searchForNeighbors() bool pcl::GeneralizedIterativeClosestPoint6D::searchForNeighbors ( const PointXYZLAB &
query ,
pcl::Indices &
index , std::vector< float > &
distance )
inline protected
Поиск ближайшего соседа заданной точки.
Параметры
query
точка, для которой ищется ближайший сосед
index
вектор размера 1 для хранения индекса найденного ближайшего соседа
distance
вектор размера 1 для хранения расстояния до найденного ближайшего соседа
setInputSource()
Предоставление указателя на входной источник (например, облако точек, которое нужно выровнять с целью).
Параметры
[in]
cloud
входное облако точек-источник
setInputTarget()
Предоставление указателя на входной целевой объект (например, облако точек, к которому нужно выровнять входной источник).
Параметры
[in]
target
входное облако точек-цель
cloud_lab_
Хранит преобразованное (LAB) облако данных.
Определение в строке 115 файла gicp6d.h .
lab_weight_
``` float pcl::GeneralizedIterativeClosestPoint6D::lab_weight_
protected
point_rep_
Включает 6d-поиск с использованием класса kd-дерева с весом цвета.
Определение в строке 164 файла gicp6d.h .
target_lab_
Содержит преобразованное облако модели (LAB).
Определение в строке 118 файла gicp6d.h .
target_tree_lab_
6d-дерево для поиска в облаке модели.
Определение в строке 121 файла gicp6d.h .
Документация для этого класса была сгенерирована из следующего файла: