|
| |
GeneralizedIterativeClosestPoint6D (float lab_weight=0.032f) |
| |
конструктор. Подробнее...
|
| void |
setInputSource (const PointCloudSourceConstPtr &cloud) override |
| |
Предоставляет указатель на входной источник (например, облако точек, которое требуется совместить с целевым облаком). Подробнее...
|
| void |
setInputTarget (const PointCloudTargetConstPtr &target) override |
| |
Предоставляет указатель на входную цель (например, облако точек, с которым требуется совместить входной источник). Подробнее...
|
|
PCL_MAKE_ALIGNED_OPERATOR_NEW |
GeneralizedIterativeClosestPoint () |
| |
Конструктор без параметров. Подробнее...
|
| void |
setInputSource (const PointCloudSourceConstPtr &cloud) override |
| |
Предоставляет указатель на входной набор данных. Подробнее...
|
| void |
setSourceCovariances (const MatricesVectorPtr &covariances) |
| |
Предоставляет указатель на ковариационные матрицы входного источника (если они вычислены отдельно!). Подробнее...
|
| void |
setInputTarget (const PointCloudTargetConstPtr &target) override |
| |
Предоставляет указатель на входную цель (например, облако точек, с которым требуется совместить входной источник). Подробнее...
|
| void |
setTargetCovariances (const MatricesVectorPtr &covariances) |
| |
Предоставляет указатель на ковариационные матрицы входной цели (если они вычислены отдельно!). Подробнее...
|
| 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 |
estimateRigidTransformationNewton (const PointCloudSource &cloud_src, const pcl::Indices &indices_src, const PointCloudTarget &cloud_tgt, const pcl::Indices &indices_tgt, Matrix4 &transformation_matrix) |
| |
Оценивает преобразование жесткого вращения между исходным и целевым облаками точек с помощью итерационного нелинейного метода Ньютона. Подробнее...
|
| const Eigen::Matrix3d & |
mahalanobis (std::size_t index) const |
| void |
computeRDerivative (const Vector6d &x, const Eigen::Matrix3d &dCost_dR_T, Vector6d &g) const |
| |
Вычисляет производную целевой функции по углам вращения. Подробнее...
|
| void |
setRotationEpsilon (double epsilon) |
| |
Задает epsilon вращения (максимально допустимую разницу между двумя последовательными вращениями), при которой оптимизация считается сошедшейся к окончательному решению. Подробнее...
|
| double |
getRotationEpsilon () const |
| |
Возвращает заданное пользователем значение epsilon вращения (максимально допустимую разницу между двумя последовательными вращениями). Подробнее...
|
| void |
setCorrespondenceRandomness (int k) |
| |
Задает число соседей, используемых при выборе окрестности точки для вычисления ковариационных матриц. Подробнее...
|
| int |
getCorrespondenceRandomness () const |
| |
Возвращает заданное пользователем число соседей, используемых при вычислении ковариационных матриц. Подробнее...
|
| void |
useBFGS () |
| |
Использует оптимизатор BFGS вместо оптимизатора Ньютона, используемого по умолчанию. Подробнее...
|
| void |
setMaximumOptimizerIterations (int max) |
| |
Задает максимальное число итераций на этапе оптимизации. Подробнее...
|
| int |
getMaximumOptimizerIterations () const |
| |
Возвращает максимальное число итераций на этапе оптимизации. Подробнее...
|
| void |
setTranslationGradientTolerance (double tolerance) |
| |
Задает минимальный порог градиента переноса для досрочного завершения оптимизации. Подробнее...
|
| double |
getTranslationGradientTolerance () const |
| |
Возвращает минимальный порог градиента переноса для досрочного завершения оптимизации. Подробнее...
|
| void |
setRotationGradientTolerance (double tolerance) |
| |
Задает минимальный порог градиента вращения для досрочного завершения оптимизации. Подробнее...
|
| double |
getRotationGradientTolerance () const |
| |
Возвращает минимальный порог градиента вращения для досрочного завершения оптимизации. Подробнее...
|
| void |
setNumberOfThreads (unsigned int nr_threads=0) |
| |
Инициализирует планировщик и задает число используемых потоков. Подробнее...
|
| |
IterativeClosestPoint () |
| |
Конструктор без параметров. Подробнее...
|
| |
IterativeClosestPoint (const IterativeClosestPoint &)=delete |
| |
Из-за того, что convergence_criteria_ хранят ссылки на члены класса, корректно реализовать операции копирования и перемещения непросто. Подробнее...
|
| |
IterativeClosestPoint (IterativeClosestPoint &&)=delete |
|
IterativeClosestPoint & |
operator= (const IterativeClosestPoint &)=delete |
|
IterativeClosestPoint & |
operator= (IterativeClosestPoint &&)=delete |
| |
~IterativeClosestPoint () override=default |
| |
Деструктор без параметров. Подробнее...
|
|
pcl::registration::DefaultConvergenceCriteria< float >::Ptr |
getConvergeCriteria () |
| |
Возвращает указатель на DefaultConvergenceCriteria, используемый классом IterativeClosestPoint. Подробнее...
|
| void |
setInputSource (const PointCloudSourceConstPtr &cloud) override |
| |
Предоставляет указатель на входной источник (например, облако точек, которое требуется совместить с целевым облаком). Подробнее...
|
| void |
setInputTarget (const PointCloudTargetConstPtr &cloud) override |
| |
Предоставляет указатель на входную цель (например, облако точек, с которым требуется совместить входной источник). Подробнее...
|
| void |
setUseReciprocalCorrespondences (bool use_reciprocal_correspondence) |
| |
Задать, использовать ли взаимные соответствия. Подробнее...
|
| bool |
getUseReciprocalCorrespondences () const |
| |
Получить информацию о том, используются ли взаимные соответствия. Подробнее...
|
| void |
setNumberOfThreads (unsigned int nr_threads) |
| |
Задать количество используемых потоков. Подробнее...
|
| |
Registration () |
| |
Конструктор без параметров. Подробнее...
|
| |
~Registration () override=default |
| |
Деструктор. Подробнее...
|
| void |
setTransformationEstimation (const TransformationEstimationPtr &te) |
| |
Передать указатель на объект оценки преобразования. Подробнее...
|
| void |
setCorrespondenceEstimation (const CorrespondenceEstimationPtr &ce) |
| |
Передать указатель на объект оценки соответствий. Подробнее...
|
| virtual void |
setInputSource (const PointCloudSourceConstPtr &cloud) |
| |
Передать указатель на исходные входные данные (например, облако точек, которое требуется совместить с целевым облаком). Подробнее...
|
|
PointCloudSourceConstPtr const |
getInputSource () |
| |
Получить указатель на целевой набор входных данных — облако точек. Подробнее...
|
| virtual void |
setInputTarget (const PointCloudTargetConstPtr &cloud) |
| |
Передать указатель на целевые входные данные (например, облако точек, с которым требуется совместить исходное облако). Подробнее...
|
|
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 |
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 () |
| |
Проверяет оценщики и фильтры, определяя, нужно ли вызывать для них методы установки blob. Подробнее...
|
| bool |
searchForNeighbors (const PointCloudSource &cloud, int index, pcl::Indices &indices, std::vector< float > &distances) |
| |
Поиск ближайшего соседа для заданной точки. Подробнее...
|
| bool |
initCompute () |
| |
Этот метод следует вызывать перед началом фактических вычислений. Подробнее...
|
| bool |
deinitCompute () |
| |
Этот метод следует вызывать после завершения фактических вычислений. Подробнее...
|
| |
Итоговая матрица преобразования, оцененная методом регистрации после 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_ |
| |
Если набор индексов не задан, создается набор фиктивных индексов, соответствующий входному облаку точек. Подробнее...
|
|
| 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 |
Matrix6d = Eigen::Matrix< double, 6, 6 > |
| 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 > > |
| using |
CorrespondenceRejectorPtr = pcl::registration::CorrespondenceRejector::Ptr
|
| using |
KdTree = pcl::search::KdTree< PointTarget > |
| using |
KdTreePtr = typename KdTree::Ptr
|
| using |
KdTreeReciprocal = pcl::search::KdTree< PointSource > |
| using |
KdTreeReciprocalPtr = typename KdTreeReciprocal::Ptr
|
| using |
PointCloudSource = pcl::PointCloud< PointSource > |
| using |
PointCloudSourcePtr = typename PointCloudSource::Ptr
|
| using |
PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr
|
| using |
PointCloudTarget = pcl::PointCloud< PointTarget > |
| using |
PointCloudTargetPtr = typename PointCloudTarget::Ptr
|
| using |
PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr
|
| using |
PointRepresentationConstPtr = typename KdTree::PointRepresentationConstPtr
|
| using |
TransformationEstimation = typename pcl::registration::TransformationEstimation< PointSource, PointTarget, Scalar > |
| using |
TransformationEstimationPtr = typename TransformationEstimation::Ptr |
GeneralizedIterativeClosestPoint6D интегрирует информацию о цветовом пространстве L*a*b* в алгоритм обобщённого итеративного поиска ближайшей точки (GICP).
Рекомендуется использовать PointXYZRGBA.
- Примечание
- При использовании этого кода в научной работе просим сослаться на публикацию:
- M. Korn, M. Holzkothen, J. Pauli Color Supported Generalized-ICP. In Proceedings of VISAPP 2014 - International Conference on Computer Vision Theory and Applications, Lisbon, Portugal, January 2014.
- Автор
- Martin Holzkothen, Michael Korn
Определение в строке 65 файла gicp6d.h.