Spec-Zone.ru › PointCloudLibrary

Реализация регистрации 3D преобразования распределения нормального распределения для данных облака точек. Подробнее...

#include <pcl/registration/ndt.h>

Inheritance graph
[легенда]
Collaboration graph
[легенда]
END_OF_DOCUMENT_MARKER

Общедоступные типы

using Ptr = shared_ptr< NormalDistributionsTransform< PointSource, PointTarget, Scalar > >
using ConstPtr = shared_ptr< const NormalDistributionsTransform< PointSource, PointTarget, Scalar > >
using Vector3 = typename Eigen::Matrix< Scalar, 3, 1 >
using Matrix4 = typename Registration< PointSource, PointTarget, Scalar >::Matrix4
using Affine3 = typename Eigen::Transform< Scalar, 3, Eigen::Affine >
- Общедоступные типы, унаследованные от pcl::Registration< PointSource, PointTarget, float >
using Matrix4 = Eigen::Matrix< float, 4, 4 >
using Ptr = shared_ptr< Registration< PointSource, PointTarget, float > >
using ConstPtr = shared_ptr< const Registration< PointSource, PointTarget, float > >
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, float >
using TransformationEstimationPtr = typename TransformationEstimation::Ptr
using TransformationEstimationConstPtr = typename TransformationEstimation::ConstPtr
using CorrespondenceEstimation = pcl::registration::CorrespondenceEstimationBase< PointSource, PointTarget, float >
using CorrespondenceEstimationPtr = typename CorrespondenceEstimation::Ptr
using CorrespondenceEstimationConstPtr = typename CorrespondenceEstimation::ConstPtr
using UpdateVisualizerCallbackSignature = void(const pcl::PointCloud< PointSource > &, const pcl::Indices &, const pcl::PointCloud< PointTarget > &, const pcl::Indices &)
Функция обратного вызова для обновления позиции облака точек источника во время регистрации с облаком точек целевого объекта. Подробнее...
- Public Types inherited from pcl::PCLBase< PointSource >
using PointCloud = pcl::PointCloud< PointSource >
using PointCloudPtr = typename PointCloud::Ptr
using PointCloudConstPtr = typename PointCloud::ConstPtr
using PointIndicesPtr = PointIndices::Ptr
using PointIndicesConstPtr = PointIndices::ConstPtr

Общедоступные члены-функции

NormalDistributionsTransform ()
Конструктор. Подробнее...
~NormalDistributionsTransform () override=default
Пустой деструктор. Подробнее...
void setInputTarget (const PointCloudTargetConstPtr &cloud) override
Укажите указатель на целевой вход (например, облако точек, к которому мы хотим выровнять входной исходник). Подробнее...
void setResolution (float resolution)
Установить/изменить разрешение сетки объёма. Подробнее...
void setMinPointPerVoxel (unsigned int min_points_per_voxel)
Установить минимальное количество точек, требуемых для ячейки, чтобы она использовалась (должно быть 3 или больше для вычисления ковариации). Подробнее...
float getResolution () const
Получить разрешение сетки объёма. Подробнее...
double getStepSize () const
Получить максимальную длину шага поиска ньютоновской прямой. Подробнее...
void setStepSize (double step_size)
Установить/изменить максимальную длину шага поиска ньютоновской прямой. Подробнее...
double getOulierRatio () const
Получить отношение выбросов облака точек. Подробнее...
void setOulierRatio (double outlier_ratio)
Установить/изменить отношение выбросов облака точек. Подробнее...
double getTransformationLikelihood () const
Получить вероятность выравнивания регистрации. Подробнее...
double getTransformationProbability () const
Получить вероятность выравнивания регистрации. Подробнее...
int getFinalNumIteration () const
Получить количество итераций, необходимых для вычисления выравнивания. Подробнее...
- Общедоступные члены-функции, унаследованные от pcl::Registration< PointSource, PointTarget, float >
Registration ()
Пустой конструктор. Подробнее...
~Registration () override=default
деструктор. Подробнее...
void setTransformationEstimation (const TransformationEstimationPtr &te)
Укажите указатель на объект оценки преобразования. Подробнее...
void setCorrespondenceEstimation (const CorrespondenceEstimationPtr &ce)
END_OF_DOCUMENT_MARKER
Предоставьте указатель на объект оценки соответствия. Подробнее...
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 ()
Очистка списка отбрасывателей соответствий. Подробнее...
- Публичные методы, унаследованные от pcl::PCLBase< PointSource >
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[] для сокращения кода. Подробнее...

Статические публичные методы

static void convertTransform (const Eigen::Matrix< double, 6, 1 > &x, Affine3 &trans)
Преобразовать 6-элементный вектор преобразования в аффинное преобразование. Подробнее...
static void convertTransform (const Eigen::Matrix< double, 6, 1 > &x, Matrix4 &trans)
Преобразовать 6-элементный вектор преобразования в матрицу преобразования. Подробнее...

Защищённые типы

using PointCloudSource = typename Registration< PointSource, PointTarget, Scalar >::PointCloudSource
using PointCloudSourcePtr = typename PointCloudSource::Ptr
using PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr
using PointCloudTarget = typename Registration< PointSource, PointTarget, Scalar >::PointCloudTarget
using PointCloudTargetPtr = typename PointCloudTarget::Ptr
using PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr
using PointIndicesPtr = PointIndices::Ptr
using PointIndicesConstPtr = PointIndices::ConstPtr
using TargetGrid = VoxelGridCovariance< PointTarget >
Тип поисковой ячеистой сетки, содержащей среднее и ковариацию. Подробнее...
using TargetGridPtr = TargetGrid *
Тип указателя на поисковую ячеистую сетку. Подробнее...
using TargetGridConstPtr = const TargetGrid *
Тип константного указателя на поисковую ячеистую сетку. Подробнее...
using TargetGridLeafConstPtr = typename TargetGrid::LeafConstPtr
Тип константного указателя на лист поисковой ячеистой сетки. Подробнее...

Защищённые функции-члены

virtual void computeTransformation (PointCloudSource &output)
Вычислить преобразование и вернуть преобразованный источник (вход) в качестве выходных данных. Подробнее...
void computeTransformation (PointCloudSource &output, const Matrix4 &guess) override
Вычислить преобразование и вернуть преобразованный источник (вход) в качестве выходных данных. Подробнее...
void init ()
Инициализировать структуру вокселей ковариации. Подробнее...
double computeDerivatives (Eigen::Matrix< double, 6, 1 > &score_gradient, Eigen::Matrix< double, 6, 6 > &hessian, const PointCloudSource &trans_cloud, const Eigen::Matrix< double, 6, 1 > &transform, bool compute_hessian=true)
Вычислить производные функции правдоподобия относительно Подробнее...
double updateDerivatives (Eigen::Matrix< double, 6, 1 > &score_gradient, Eigen::Matrix< double, 6, 6 > &hessian, const Eigen::Vector3d &x_trans, const Eigen::Matrix3d &c_inv, bool compute_hessian=true) const
Вычислить вклад отдельных точек в производные функции правдоподобия относительно Подробнее...
void computeAngleDerivatives (const Eigen::Matrix< double, 6, 1 > &transform, bool compute_hessian=true)
Предварительно вычислить угловые компоненты производных. Подробнее...
void computePointDerivatives (const Eigen::Vector3d &x, bool compute_hessian=true)
Вычислить производные точки. Подробнее...
void computeHessian (Eigen::Matrix< double, 6, 6 > &hessian, const PointCloudSource &trans_cloud)
Вычислить гессиан функции правдоподобия относительно Подробнее...
void computeHessian (Eigen::Matrix< double, 6, 6 > &hessian, const PointCloudSource &trans_cloud, const Eigen::Matrix< double, 6, 1 > &transform)
Вычислить гессиан функции правдоподобия относительно Подробнее...
void updateHessian (Eigen::Matrix< double, 6, 6 > &hessian, const Eigen::Vector3d &x_trans, const Eigen::Matrix3d &c_inv) const
Вычислить вклад отдельных точек в гессиан функции правдоподобия относительно Подробнее...
double computeStepLengthMT (const Eigen::Matrix< double, 6, 1 > &transform, Eigen::Matrix< double, 6, 1 > &step_dir, double step_init, double step_max, double step_min, double &score, Eigen::Matrix< double, 6, 1 > &score_gradient, Eigen::Matrix< double, 6, 6 > &hessian, PointCloudSource &trans_cloud)
Вычислить длину шага поиска по линии и обновить преобразование и производные правдоподобия с помощью метода Мора-Тюэнта. Подробнее...
bool updateIntervalMT (double &a_l, double &f_l, double &g_l, double &a_u, double &f_u, double &g_u, double a_t, double f_t, double g_t) const
Обновить интервал возможных длин шагов для метода Мора-Тюэнта, $ I $ в More-Thuente (1994) Подробнее...
double trialValueSelectionMT (double a_l, double f_l, double g_l, double a_u, double f_u, double g_u, double a_t, double f_t, double g_t) const
Выбрать новое пробное значение для метода Мора-Тюэнта. Подробнее...
double auxilaryFunction_PsiMT (double a, double f_a, double f_0, double g_0, double mu=1.e-4) const
Вспомогательная функция, используемая для определения конечных точек интервала Мора-Тюэнта. Подробнее...
double auxilaryFunction_dPsiMT (double g_a, double g_0, double mu=1.e-4) const
Вспомогательная функция производной, используемая для определения конечных точек интервала More-Thuente. Подробнее...
- Защищенные методы-члены, унаследованные от pcl::Registration< PointSource, PointTarget, float >
bool searchForNeighbors (const PointCloudSource &cloud, int index, pcl::Indices &indices, std::vector< float > &distances)
Поиск ближайшего соседа заданной точки. Подробнее...
virtual void computeTransformation (PointCloudSource &output, const Matrix4 &guess)=0
Абстрактный метод вычисления преобразования с начальным предположением. Подробнее...
- Защищенные методы-члены, унаследованные от pcl::PCLBase< PointSource >
bool initCompute ()
Этот метод должен вызываться перед началом фактического вычисления. Подробнее...
bool deinitCompute ()
Этот метод должен вызываться после завершения фактического вычисления. Подробнее...

Защищенные атрибуты

TargetGrid target_cells_
Объёмная сетка, сгенерированная из целевого облака, содержащая средние значения и ковариации точек. Подробнее...
float resolution_
Длина стороны ячеек. Подробнее...
double step_size_
Максимальная длина шага. Подробнее...
double outlier_ratio_
Коэффициент выбросов точек по отношению к Подробнее...
double gauss_d1_
Постоянные нормализации, используемые для подгонки распределения точек к нормальному распределению, уравнение 6.8 [Magnusson 2009]. Подробнее...
double gauss_d2_
union {
double trans_probability_
double trans_likelihood_
};
Вероятность преобразования, применённого к входному облаку, уравнение 6.9 и 6.10 [Magnusson 2009]. Подробнее...
Eigen::Matrix< double, 8, 4 > angular_jacobian_
Предвычисленный угловой градиент. Подробнее...
Eigen::Matrix< double, 15, 4 > angular_hessian_
Предвычисленный угловой гессиан. Подробнее...
Eigen::Matrix< double, 3, 6 > point_jacobian_
Первая производная преобразования точки по отношению к Подробнее...
Eigen::Matrix< double, 18, 6 > point_hessian_
Вторая производная преобразования точки по отношению к Подробнее...
- Защищенные атрибуты, унаследованные от pcl::Registration< PointSource, PointTarget, float >
std::string reg_name_
Название метода регистрации. Подробнее...
KdTreePtr tree_
Указатель на объект пространственного поиска. Подробнее...
KdTreeReciprocalPtr tree_reciprocal_
Указатель на объект пространственного поиска источника. Подробнее...
int nr_iterations_
Количество итераций внутренней оптимизации (используется внутри). Подробнее...
int max_iterations_
Максимальное количество итераций, которое должна выполнить внутренняя оптимизация. Подробнее...
int ransac_iterations_
Количество итераций RANSAC. Подробнее...
PointCloudTargetConstPtr target_
Целевой набор точек входных данных. Подробнее...
Matrix4 final_transformation_
Конечная матрица преобразования, вычисленная методом регистрации после N итераций. Подробнее...
Matrix4 transformation_
Матрица преобразования, вычисленная методом регистрации. Подробнее...
Matrix4 previous_transformation_
Предыдущая матрица преобразования, вычисленная методом регистрации (используется внутри). Подробнее...
double transformation_epsilon_
Максимальное различие между двумя последовательными преобразованиями для определения сходимости (определяется пользователем). Подробнее...
double transformation_rotation_epsilon_
Максимальное различие в повороте между двумя последовательными преобразованиями для определения сходимости (определяется пользователем). Подробнее...
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_
Функция обратного вызова для обновления промежуточного положения исходного облака точек во время его регистрации с целевым облаком точек. Подробнее...
- Защищенные атрибуты, унаследованные от pcl::PCLBase< PointSource >
PointCloudConstPtr input_
Набор входных данных облака точек. Подробнее...
IndicesPtr indices_
Указатель на вектор индексов точек для использования. Подробнее...
bool use_indices_
Устанавливается в true, если используются индексы точек. Подробнее...
bool fake_indices_
Если набор индексов не задан, создается набор фиктивных индексов, имитирующих входное облако точек. Подробнее...

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

шаблон<typename PointSource, typename PointTarget, typename Scalar = float>
класс pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >

Реализация 3D регистрации с помощью преобразования нормального распределения для данных облаков точек.

Примечание
Дополнительную информацию можно найти в статье Magnusson, M. (2009). The Three-Dimensional Normal-Distributions Transform — an Efficient Representation for Регистрацию, анализ поверхности и обнаружение петель. Диссертация, Университет Оребро. Оребро Исследования в области технологии 36., More, J., and Thuente, D. (1994). Алгоритм поиска линии с гарантированным достаточным уменьшением в ACM Transactions on Mathematical Software. и Sun, W. и Yuan, Y, (2006) Теория оптимизации и методы: Нелинейное программирование. 89-100
Переработка математики выполнена Тодором Стояновым.
Автор
Брайан Окорн (Центр космической и морской систем вооружения Тихоокеанского региона)

Определение в строке 65 файла ndt.h.

Документация по определению типа члена

Affine3

шаблон<typename PointSource , typename PointTarget , typename Scalar = float>
используется pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::Affine3 = typename Eigen::Transform<Scalar, 3, Eigen::Affine>

Определение в строке 98 файла ndt.h.

ConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::ConstPtr = shared_ptr<const NormalDistributionsTransform<PointSource, PointTarget, Scalar> >

Definition at line 94 of file ndt.h.

Матрица4

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::Matrix4 = typename Registration<PointSource, PointTarget, Scalar>::Matrix4

Definition at line 97 of file ndt.h.

ИсточникОбъектовТочек

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::PointCloudSource = typename Registration<PointSource, PointTarget, Scalar>::PointCloudSource
protected

Definition at line 68 of file ndt.h.

ИсточникОбъектовТочекConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::PointCloudSourceConstPtr = typename PointCloudSource::ConstPtr
protected

Definition at line 71 of file ndt.h.

ИсточникОбъектовТочекPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::PointCloudSourcePtr = typename PointCloudSource::Ptr
protected

Definition at line 70 of file ndt.h.

ЦелеваяТочкаОбъектов

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::PointCloudTarget = typename Registration<PointSource, PointTarget, Scalar>::PointCloudTarget
protected

Definition at line 73 of file ndt.h.

ЦелеваяТочкаОбъектовConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::PointCloudTargetConstPtr = typename PointCloudTarget::ConstPtr
protected

Definition at line 76 of file ndt.h.

ЦелеваяТочкаОбъектовPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::PointCloudTargetPtr = typename PointCloudTarget::Ptr
protected

Definition at line 75 of file ndt.h.

ИндексыТочекConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::PointIndicesConstPtr = PointIndices::ConstPtr
protected

Definition at line 79 of file ndt.h.

ИндексыТочекPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::PointIndicesPtr = PointIndices::Ptr
protected

Definition at line 78 of file ndt.h.

Ptr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::Ptr = shared_ptr<NormalDistributionsTransform<PointSource, PointTarget, Scalar> >

Определение в строке 92 файла ndt.h.

TargetGrid

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::TargetGrid = VoxelGridCovariance<PointTarget>
protected

Имя типа поисковой воксельной сетки, содержащей среднее значение и ковариацию.

Определение в строке 83 файла ndt.h.

TargetGridConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::TargetGridConstPtr = const TargetGrid*
protected

Имя типа указателя на постоянную поисковую воксельную сетку.

Определение в строке 87 файла ndt.h.

TargetGridLeafConstPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::TargetGridLeafConstPtr = typename TargetGrid::LeafConstPtr
protected

Имя типа указателя на постоянную поисковую воксельную сетку лист.

Определение в строке 89 файла ndt.h.

TargetGridPtr

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::TargetGridPtr = TargetGrid*
protected

Имя типа указателя на поисковую воксельную сетку.

Определение в строке 85 файла ndt.h.

Vector3

template<typename PointSource , typename PointTarget , typename Scalar = float>
using pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::Vector3 = typename Eigen::Matrix<Scalar, 3, 1>

Определение в строке 96 файла ndt.h.

Конструктор & Деструктор документации

NormalDistributionsTransform()

template<typename PointSource , typename PointTarget , typename Scalar >
pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::NormalDistributionsTransform

Конструктор.

Устанавливает outlier_ratio_ в 0,55, step_size_ в 0,1 и resolution_ в 1,0

Определение в строке 47 файла ndt.hpp.

~NormalDistributionsTransform()

template<typename PointSource , typename PointTarget , typename Scalar = float>
pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::~NormalDistributionsTransform ( )
overridedefault

Пустой деструктор.

Документация по функциям-членам

auxilaryFunction_dPsiMT()

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::auxilaryFunction_dPsiMT ( double g_a,
double g_0,
double mu = 1.e-4
) const
inlineprotected

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

Примечание
$ \psi'(\alpha) $, производная уравнения 1.6 (Moore, Thuente 1994)
Параметры
[in] g_a градиент функции в длине шага a, $ \phi'(\alpha) $ в More-Thuente (1994)
[in] g_0 начальный градиент функции, $ \phi'(0) $ в More-Thuente (1994)
[in] mu длина шага, постоянная $ \mu $ в уравнении 1.1 [More, Thuente 1994]
Возвращает
производная достаточного уменьшения

Определение в строке 549 файла ndt.h.

auxilaryFunction_PsiMT()

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::auxilaryFunction_PsiMT ( double a,
double f_a,
double f_0,
double g_0,
double mu = 1.e-4
) const
inlineprotected

Вспомогательная функция, используемая для определения конечных точек интервала Мора-Тьюента.

Примечание
$ \psi(\alpha) $ в уравнении 1.6 (Moore, Thuente 1994)
Параметры
[in] a длина шага, $ \alpha $ в More-Thuente (1994)
[in] f_a значение функции в длине шага a, $ \phi(\alpha) $ в More-Thuente (1994)
[in] f_0 начальное значение функции, $ \phi(0) $ в Moore-Thuente (1994)
[in] g_0 начальный градиент функции, $ \phi'(0) $ в More-Thuente (1994)
[in] mu длина шага, постоянная $ \mu $ в уравнении 1.1 [More, Thuente 1994]
Возвращает
значение достаточного уменьшения

Определение в строке 530 файла ndt.h.

computeAngleDerivatives()

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computeAngleDerivatives ( const Eigen::Matrix< double, 6, 1 > & transform,
bool compute_hessian = true
)
protected

Предварительное вычисление угловых компонентов производных.

Примечание
Уравнение 6.19 и 6.21 [Magnusson 2009].
Параметры
[in] transform вектор текущего преобразования
[in] compute_hessian флаг для вычисления гессиана, не требуется для расчёта шага.

Определение в строке 242 файла ndt.hpp.

computeDerivatives()

template<typename PointSource , typename PointTarget , typename Scalar >
double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computeDerivatives ( Eigen::Matrix< double, 6, 1 > & score_gradient,
Eigen::Matrix< double, 6, 6 > & hessian,
const PointCloudSource & trans_cloud,
const Eigen::Matrix< double, 6, 1 > & transform,
bool compute_hessian = true
)
protected

Вычисление производных функции правдоподобия относительно

вектора преобразования.

Примечание
Уравнение 6.10, 6.12 и 6.13 [Magnusson 2009].
Параметры
[out] score_gradient вектор градиента функции правдоподобия относительно вектора преобразования
[out] hessian матрица гессиана функции правдоподобия относительно вектора преобразования
[in] trans_cloud преобразованное облако точек
[in] transform вектор текущего преобразования
[in] compute_hessian флаг для вычисления гессиана, не требуется для расчёта шага.

Определение в строке 191 файла ndt.hpp.

computeHessian() [1/2]

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computeHessian ( Eigen::Matrix< double, 6, 6 > & hessian,
const PointCloudSource & trans_cloud
)
protected

Вычисление гессиана функции правдоподобия относительно

вектора преобразования.

Примечание
Уравнение 6.13 [Magnusson 2009].
Параметры
[out] hessian матрица гессиана функции правдоподобия относительно вектора преобразования
[in] trans_cloud преобразованное облако точек

Определение в строке 421 файла ndt.hpp.

Используется в pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computeHessian().

END_OF_DOCUMENT_MARKER

computeHessian() [2/2]

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computeHessian ( Eigen::Matrix< double, 6, 6 > & hessian,
const PointCloudSource & trans_cloud,
const Eigen::Matrix< double, 6, 1 > & transform
)
inlineprotected

Вычислить гессиан функции правдоподобия по отношению к

вектору преобразования.

Примечание
Уравнение 6.13 [Magnusson 2009].
Параметры
[out] hessian матрица гессиана функции правдоподобия по отношению к вектору преобразования
[in] trans_cloud преобразованное облако точек
[in] transform текущий вектор преобразования
Устаревшее:
Планируется к удалению в версии 1.15: "Параметр `transform` не требуется"

Определение в строке 375 файла ndt.h.

Ссылается на pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computeHessian() и pcl::utils::ignore().

computePointDerivatives()

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computePointDerivatives ( const Eigen::Vector3d & x,
bool compute_hessian = true
)
protected

Вычислить производные точек.

Примечание
Уравнение 6.18-21 [Magnusson 2009].
Параметры
[in] x точка из входного облака
[in] compute_hessian флаг для вычисления гессиана, не требуется для расчета шага.

Определение в строке 327 файла ndt.hpp.

computeStepLengthMT()

template<typename PointSource , typename PointTarget , typename Scalar >
double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computeStepLengthMT ( const Eigen::Matrix< double, 6, 1 > & transform,
Eigen::Matrix< double, 6, 1 > & step_dir,
double step_init,
double step_max,
double step_min,
double & score,
Eigen::Matrix< double, 6, 1 > & score_gradient,
Eigen::Matrix< double, 6, 6 > & hessian,
PointCloudSource & trans_cloud
)
protected

Вычислить длину шага поиска прямой линии и обновить преобразование и производные правдоподобия с помощью метода Мора-Тьюента.

Примечание
Алгоритм поиска [More, Thuente 1994]
Параметры
[in] transform начальный вектор преобразования, $ x $ в уравнении 1.3 (Moore, Thuente 1994) и $ \vec{p} $ в алгоритме 2 [Magnusson 2009]
[in] step_dir направление спуска, $ p $ в уравнении 1.3 (Moore, Thuente 1994) и $ \delta \vec{p} $ нормировано в алгоритме 2 [Magnusson 2009]
[in] step_init начальная оценка длины шага, $ \alpha_0 $ в Moore-Thuente (1994) и нормаль к $ \delta \vec{p} $ в алгоритме 2 [Magnusson 2009]
[in] step_max максимальная длина шага, $ \alpha_max $ в Moore-Thuente (1994)
[in] step_min минимальная длина шага, $ \alpha_min $ в Moore-Thuente (1994)
[out] score конечное значение функции оценки, $ f(x + \alpha p) $ в уравнении 1.3 (Moore, Thuente 1994) и $ score $ в алгоритме 2 [Magnusson 2009]
[in,out] score_gradient градиент функции оценки по отношению к вектору преобразования, $ f'(x + \alpha p) $ в Moore-Thuente (1994) и $ \vec{g} $ в алгоритме 2 [Magnusson 2009]
[out] hessian гессиан функции оценки по отношению к вектору преобразования, $ f''(x + \alpha p) $ в Moore-Thuente (1994) и $ H $ в алгоритме 2 [Magnusson 2009]
[in,out] trans_cloud преобразованное облако точек, $ X $ преобразованное с помощью $ T(\vec{p},\vec{x}) $ в алгоритме 2 [Magnusson 2009]
Возвращает
конечная длина шага

Определение в строке 656 файла ndt.hpp.

Ссылается на pcl::transformPointCloud().

computeTransformation() [1/2]

template<typename PointSource , typename PointTarget , typename Scalar = float>
virtual void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computeTransformation ( PointCloudSource & output )
inlineprotectedvirtual

Оценить преобразование и вернуть преобразованное исходное (входное) как вывод.

Параметры
[out] output результирующее преобразованное входное облако точек

Определение в строке 274 файла ndt.h.

computeTransformation() [2/2]

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::computeTransformation ( PointCloudSource & output,
const Matrix4 & guess
)
overrideprotected

Оцените преобразование и верните преобразованный исходный (входной) как выход.

Parameters
[out] output результирующее преобразованное облако точек входных данных
[in] guess начальная грубая оценка преобразования

Определение в строке 74 файла ndt.hpp.

Ссылки на pcl::transformPointCloud().

convertTransform() [1/2]

template<typename PointSource , typename PointTarget , typename Scalar = float>
static void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::convertTransform ( const Eigen::Matrix< double, 6, 1 > & x,
Affine3 & trans
)
inlinestatic

Преобразовать вектор преобразования из 6 элементов в аффинное преобразование.

Parameters
[in] x вектор преобразования вида [x, y, z, roll, pitch, yaw]
[out] trans аффинное преобразование, соответствующее данному вектору преобразования

Определение в строке 228 файла ndt.h.

Ссылка на pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::convertTransform().

convertTransform() [2/2]

template<typename PointSource , typename PointTarget , typename Scalar = float>
static void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::convertTransform ( const Eigen::Matrix< double, 6, 1 > & x,
Matrix4 & trans
)
inlinestatic

Преобразовать вектор преобразования из 6 элементов в матрицу преобразования.

Parameters
[in] x вектор преобразования вида [x, y, z, roll, pitch, yaw]
[out] trans матрица преобразования 4x4, соответствующая данному вектору преобразования

Определение в строке 242 файла ndt.h.

Ссылки на pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::convertTransform().

getFinalNumIteration()

template<typename PointSource , typename PointTarget , typename Scalar = float>
int pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getFinalNumIteration ( ) const
inline

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

Возвращает
конечное количество итераций

Определение в строке 217 файла ndt.h.

Ссылки на pcl::Registration< PointSource, PointTarget, float >::nr_iterations_.

getOulierRatio()

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getOulierRatio ( ) const
inline

Получить отношение выбросов облака точек.

Возвращает
отношение выбросов

Определение в строке 177 файла ndt.h.

Ссылки на pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::outlier_ratio_.

getResolution()

template<typename PointSource , typename PointTarget , typename Scalar = float>
float pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getResolution ( ) const
inline

Получить разрешение воксельного сетки.

Возвращает
длина стороны вокселей

Определение в строке 150 файла ndt.h.

Ссылки на pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::resolution_.

getStepSize()

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getStepSize ( ) const
inline

Получить максимальную длину шага поиска по прямой Ньютона.

Возвращает
максимальная длина шага

Определение в строке 159 файла ndt.h.

Ссылки на pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::step_size_.

getTransformationLikelihood()

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getTransformationLikelihood ( ) const
inline

Получить вероятность выравнивания регистрации.

Возвращает
вероятность выравнивания

Определение в строке 195 файла ndt.h.

Ссылки на pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::trans_likelihood_.

getTransformationProbability()

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getTransformationProbability ( ) const
inline

Получить вероятность выравнивания регистрации.

Возвращает
вероятность выравнивания
Устаревшее:
Планируется к удалению в версии 1.16: «Метод `getTransformationProbability` был переименован в `getTransformationLikelihood`.»

Определение в строке 208 файла ndt.h.

Ссылки на pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::trans_likelihood_.

init()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::init ( )
inlineprotected

Инициализировать структуру ячеек ковариации.

Определение в строке 288 файла ndt.h.

Ссылки на pcl::VoxelGridCovariance< PointT >::filter(), pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::resolution_, pcl::PCLBase< PointT >::setInputCloud(), pcl::VoxelGrid< PointT >::setLeafSize(), pcl::Registration< PointSource, PointTarget, float >::target_, и pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::target_cells_.

Ссылка на pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::setInputTarget(), и pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::setResolution().

setInputTarget()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::setInputTarget ( const PointCloudTargetConstPtr & cloud )
inlineoverridevirtual

Укажите указатель на целевой вход (например, облако точек, к которому нужно выровнять входной источник).

Параметры
[in] cloud целевая облако точек

Переопределено из pcl::Registration< PointSource, PointTarget, float >.

Определение в строке 113 файла ndt.h.

Ссылки на pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::init(), и pcl::Registration< PointSource, PointTarget, Scalar >::setInputTarget().

setMinPointPerVoxel()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::setMinPointPerVoxel ( unsigned int min_points_per_voxel )
inline

Установить минимальное количество точек, требуемых для использования ячейки (должно быть 3 или более для вычисления ковариации).

Вызывает функцию базового класса VoxelGridCovariance. Эту функцию необходимо вызвать перед setInputTarget и setResolution.

Параметры
[in] min_points_per_voxel минимальное количество точек, требуемых для ячейки

Определение в строке 141 файла ndt.h.

Ссылки на pcl::VoxelGridCovariance< PointT >::setMinPointPerVoxel(), и pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::target_cells_.

setOulierRatio()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::setOulierRatio ( double outlier_ratio )
inline

Установить/изменить коэффициент выбросов облака точек.

Параметры
[in] outlier_ratio коэффициент выбросов

Определение в строке 186 файла ndt.h.

Ссылки на pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::outlier_ratio_.

setResolution()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::setResolution ( float resolution )
inline

Установить/изменить разрешение воксельного сетки.

Parameters
[in] resolution длина стороны вокселей

Определение в строке 123 файла ndt.h.

Ссылки на pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::init(), pcl::PCLBase< PointSource >::input_ и pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::resolution_.

setStepSize()

template<typename PointSource , typename PointTarget , typename Scalar = float>
void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::setStepSize ( double step_size )
inline

Установить/изменить максимальную длину шага поиска Ньютона по прямой линии.

Parameters
[in] step_size максимальная длина шага

Определение в строке 168 файла ndt.h.

Ссылки на pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::step_size_.

trialValueSelectionMT()

template<typename PointSource , typename PointTarget , typename Scalar >
double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::trialValueSelectionMT ( double a_l,
double f_l,
double g_l,
double a_u,
double f_u,
double g_u,
double a_t,
double f_t,
double g_t
) const
protected

Выбор нового пробного значения для метода Мора-Тьюента.

Примечание
Используется выбор пробного значения [More, Thuente 1994], $ \psi(\alpha_k) $ для $ f_k $ и $ g_k $ до тех пор, пока некоторое значение не удовлетворит условию $ \psi(\alpha_k) \leq 0 $ и $ \phi'(\alpha_k) \geq 0 $, затем используется $ \phi(\alpha_k) $.
Уравнения интерполяционного минимизатора из теории оптимизации и методов: Нелинейное программирование Венью Сун, Я-сянь Юань (89-100).
Parameters
[in] a_l первая конечная точка интервала $ I $, $ \alpha_l $ в Moore-Thuente (1994)
[in] f_l значение в первой конечной точке, $ f_l $ в Moore-Thuente (1994)
[in] g_l производная в первой конечной точке, $ g_l $ в Moore-Thuente (1994)
[in] a_u вторая конечная точка интервала $ I $, $ \alpha_u $ в Moore-Thuente (1994)
[in] f_u значение во второй конечной точке, $ f_u $ в Moore-Thuente (1994)
[in] g_u производная во второй конечной точке, $ g_u $ в Moore-Thuente (1994)
[in] a_t предыдущее пробное значение, $ \alpha_t $ в Moore-Thuente (1994)
[in] f_t значение в предыдущем пробном значении, $ f_t $ в Moore-Thuente (1994)
[in] g_t производная в предыдущем пробном значении, $ g_t $ в Moore-Thuente (1994)
Возвращает
новое пробное значение

Определение в строке 543 файла ndt.hpp.

updateDerivatives()

template<typename PointSource , typename PointTarget , typename Scalar >
double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::updateDerivatives ( Eigen::Matrix< double, 6, 1 > & score_gradient,
Eigen::Matrix< double, 6, 6 > & hessian,
const Eigen::Vector3d & x_trans,
const Eigen::Matrix3d & c_inv,
bool compute_hessian = true
) const
protected

Вычисление индивидуальных вкладов точки в производные функции правдоподобия относительно

вектора преобразования.

Примечание
Уравнения 6.10, 6.12 и 6.13 [Magnusson 2009].
Parameters
[in,out] score_gradient вектор градиента функции правдоподобия относительно вектора преобразования
[in,out] hessian матрица Гессе функции правдоподобия относительно вектора преобразования
[in] x_trans преобразованная точка минус среднее значение занятого вокселя ковариации
[in] c_inv ковариация занятого вокселя ковариации
[in] compute_hessian флаг для вычисления матрицы Гессе, не нужен для вычисления шага.

Определение в строке 373 файла ndt.hpp.

updateHessian()

template<typename PointSource , typename PointTarget , typename Scalar >
void pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::updateHessian ( Eigen::Matrix< double, 6, 6 > & hessian,
const Eigen::Vector3d & x_trans,
const Eigen::Matrix3d & c_inv
) const
protected

Вычисление индивидуальных вкладов точек в гессиан функции правдоподобия относительно

вектора преобразования.

Примечание
Уравнение 6.13 [Magnusson 2009].
Параметры
[вход/выход] hessian матрица гессиана функции правдоподобия относительно вектора преобразования
[вход] x_trans преобразованная точка минус среднее значение занятого вокселя ковариации
[вход] c_inv ковариация занятого вокселя ковариации

Определение в строке 463 файла ndt.hpp.

updateIntervalMT()

template<typename PointSource , typename PointTarget , typename Scalar >
bool pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::updateIntervalMT ( double & a_l,
double & f_l,
double & g_l,
double & a_u,
double & f_u,
double & g_u,
double a_t,
double f_t,
double g_t
) const
protected

Обновление интервала возможных длин шага для метода Мора-Тьюента, $ I $ в More-Thuente (1994)

Примечание
Обновление алгоритма до тех пор, пока какое-то значение не удовлетворит $ \psi(\alpha_k) \leq 0 $ и $ \phi'(\alpha_k) \geq 0 $, и измененный алгоритм обновления оттуда [More, Thuente 1994].
Параметры
[вход/выход] a_l первая конечная точка интервала $ I $, $ \alpha_l $ в Moore-Thuente (1994)
[вход/выход] f_l значение в первой конечной точке, $ f_l $ в Moore-Thuente (1994), $ \psi(\alpha_l) $ для алгоритма обновления и $ \phi(\alpha_l) $ для модифицированного алгоритма обновления
[вход/выход] g_l производная в первой конечной точке, $ g_l $ в Moore-Thuente (1994), $ \psi'(\alpha_l) $ для алгоритма обновления и $ \phi'(\alpha_l) $ для модифицированного алгоритма обновления
[вход/выход] a_u вторая конечная точка интервала $ I $, $ \alpha_u $ в Moore-Thuente (1994)
[вход/выход] f_u значение во второй конечной точке, $ f_u $ в Moore-Thuente (1994), $ \psi(\alpha_u) $ для алгоритма обновления и $ \phi(\alpha_u) $ для модифицированного алгоритма обновления
[вход/выход] g_u производная во второй конечной точке, $ g_u $ в Moore-Thuente (1994), $ \psi'(\alpha_u) $ для алгоритма обновления и $ \phi'(\alpha_u) $ для модифицированного алгоритма обновления
[вход] a_t пробное значение, $ \alpha_t $ в Moore-Thuente (1994)
[вход] f_t значение в пробном значении, $ f_t $ в Moore-Thuente (1994), $ \psi(\alpha_t) $ для алгоритма обновления и $ \phi(\alpha_t) $ для модифицированного алгоритма обновления
[вход] g_t производная в пробном значении, $ g_t $ в Moore-Thuente (1994), $ \psi'(\alpha_t) $ для алгоритма обновления и $ \phi'(\alpha_t) $ для модифицированного алгоритма обновления
Возвращает
если интервал сходится

Определение в строке 498 файла ndt.hpp.

Документация по данным члена

union { ... }

Оценка правдоподобия преобразования, примененного к входному облаку, уравнения 6.9 и 6.10 [Magnusson 2009].

angular_hessian_

template<typename PointSource , typename PointTarget , typename Scalar = float>
Eigen::Matrix<double, 15, 4> pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::angular_hessian_
protected

Предварительно вычисленный угловой гессиан.

Предварительно вычисленные угловые производные для гессиана вектора преобразования, уравнение 6.19 [Magnusson 2009].

Определение в строке 594 файла ndt.h.

angular_jacobian_

template<typename PointSource , typename PointTarget , typename Scalar = float>
Eigen::Matrix<double, 8, 4> pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::angular_jacobian_
protected

Предварительно вычисленный угловой градиент.

Предварительно вычисленные угловые производные для якобиана вектора преобразования, уравнение 6.19 [Magnusson 2009].

Определение в строке 587 файла ndt.h.

gauss_d1_

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::gauss_d1_
protected

Постоянные нормализации, используемые для подгонки распределения точек к нормальному распределению, уравнение 6.8 [Magnusson 2009].

Определение в строке 570 файла ndt.h.

Ссылка на pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::NormalDistributionsTransform().

gauss_d2_

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::gauss_d2_
protected

Определение в строке 570 файла ndt.h.

Используется в pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::NormalDistributionsTransform().

outlier_ratio_

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::outlier_ratio_
protected

Отношение выбросов точек по отношению к нормальному распределению, уравнение 6.7 [Magnusson 2009].

Определение в строке 566 файла ndt.h.

Используется в pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getOulierRatio(), pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::NormalDistributionsTransform() и pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::setOulierRatio().

point_hessian_

template<typename PointSource , typename PointTarget , typename Scalar = float>
Eigen::Matrix<double, 18, 6> pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::point_hessian_
protected

Вторая производная преобразования точки по вектору преобразования, $ H_E $ в уравнении 6.20 [Magnusson 2009].

Определение в строке 604 файла ndt.h.

point_jacobian_

template<typename PointSource , typename PointTarget , typename Scalar = float>
Eigen::Matrix<double, 3, 6> pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::point_jacobian_
protected

Первая производная преобразования точки по вектору преобразования, $ J_E $ в уравнении 6.18 [Magnusson 2009].

Определение в строке 599 файла ndt.h.

resolution_

template<typename PointSource , typename PointTarget , typename Scalar = float>
float pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::resolution_
protected

Длина стороны объёма.

Определение в строке 559 файла ndt.h.

Используется в pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getResolution(), pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::init(), pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::NormalDistributionsTransform() и pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::setResolution().

step_size_

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::step_size_
protected

Максимальная длина шага.

Определение в строке 562 файла ndt.h.

Используется в pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getStepSize() и pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::setStepSize().

target_cells_

template<typename PointSource , typename PointTarget , typename Scalar = float>
TargetGrid pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::target_cells_
protected

Решётка объёмов, сгенерированная из целевого облака, содержащая средние значения точек и ковариации.

Определение в строке 556 файла ndt.h.

Используется в pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::init() и pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::setMinPointPerVoxel().

trans_likelihood_

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::trans_likelihood_

Определение в строке 579 файла ndt.h.

Используется в pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getTransformationLikelihood() и pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::getTransformationProbability().

trans_probability_

template<typename PointSource , typename PointTarget , typename Scalar = float>
double pcl::NormalDistributionsTransform< PointSource, PointTarget, Scalar >::trans_probability_
Устаревшее:
Планируется к удалению в версии 1 . 16 : "`trans_probability_` переименовано в `trans_likelihood_`."

Определение в строке 578 файла ndt.h.


Документация для этого класса была сгенерирована из следующих файлов:
  • pcl/registration/ndt.h
  • pcl/registration/impl/ndt.hpp

© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1_normal_distributions_transform.html

Spec-Zone.ru

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