DefaultConvergenceCriteria представляет собой экземпляр ConvergenceCriteria и реализует следующие критерии для оценки цикла регистрации: Подробнее...
#include <pcl/registration/default_convergence_criteria.h>
Открытые типы | |
| enum |
ConvergenceState { CONVERGENCE_CRITERIA_NOT_CONVERGED , CONVERGENCE_CRITERIA_ITERATIONS , CONVERGENCE_CRITERIA_TRANSFORM , CONVERGENCE_CRITERIA_ABS_MSE , CONVERGENCE_CRITERIA_REL_MSE , CONVERGENCE_CRITERIA_NO_CORRESPONDENCES , CONVERGENCE_CRITERIA_FAILURE_AFTER_MAX_ITERATIONS } |
| using | Ptr = shared_ptr< DefaultConvergenceCriteria< Scalar > > |
| using | ConstPtr = shared_ptr< const DefaultConvergenceCriteria< Scalar > > |
| using | Matrix4 = Eigen::Matrix< Scalar, 4, 4 > |
|
| |
| using | Ptr = shared_ptr< ConvergenceCriteria > |
| using | ConstPtr = shared_ptr< const ConvergenceCriteria > |
Открытые функции-члены | |
| DefaultConvergenceCriteria (const int &iterations, const Matrix4 &transform, const pcl::Correspondences &correspondences) | |
| Пустой конструктор. Подробнее... |
|
| ~DefaultConvergenceCriteria () override=default | |
| Пустой деструктор. Подробнее... |
|
| void | setMaximumIterationsSimilarTransforms (const int nr_iterations) |
| Задать максимальное число последовательных итераций, на протяжении которых внутренние различия вращения, переноса и MSE могут оставаться схожими. Подробнее... |
|
| int | getMaximumIterationsSimilarTransforms () const |
| Получить заданное пользователем максимальное число последовательных итераций, на протяжении которых внутренние различия вращения, переноса и MSE могут оставаться схожими. Подробнее... |
|
| void | setMaximumIterations (const int nr_iterations) |
| Задать максимальное число итераций внутренней оптимизации. Подробнее... |
|
| int | getMaximumIterations () const |
| Получить заданное пользователем максимальное число итераций внутренней оптимизации. Подробнее... |
|
| void | setFailureAfterMaximumIterations (const bool failure_after_max_iter) |
| Задать, завершится ли регистрация неудачей или сходимостью при достижении максимального числа итераций. Подробнее... |
|
| bool | getFailureAfterMaximumIterations () const |
| Узнать, завершится ли регистрация неудачей или сходимостью при достижении максимального числа итераций. Подробнее... |
|
| void | setRotationThreshold (const double threshold) |
| Задать пороговое значение косинуса угла вращения (максимально допустимое различие между двумя последовательными преобразованиями), при котором оптимизация считается достигшей окончательного решения. Подробнее... |
|
| double | getRotationThreshold () const |
| Получить заданное пользователем пороговое значение косинуса угла вращения (максимально допустимое различие между двумя последовательными преобразованиями). Подробнее... |
|
| void | setTranslationThreshold (const double threshold) |
| Задать пороговое значение переноса (максимально допустимое различие между двумя последовательными преобразованиями), при котором оптимизация считается достигшей окончательного решения. Подробнее... |
|
| double | getTranslationThreshold () const |
| Получить заданное пользователем пороговое значение косинуса угла вращения (максимально допустимое различие между двумя последовательными преобразованиями). Подробнее... |
|
| void | setRelativeMSE (const double mse_relative) |
| Задать относительную MSE между двумя последовательными наборами соответствий. Подробнее... |
|
| double | getRelativeMSE () const |
| Получить относительную MSE между двумя последовательными наборами соответствий. Подробнее... |
|
| void | setAbsoluteMSE (const double mse_absolute) |
| Задать абсолютную MSE между двумя последовательными наборами соответствий. Подробнее... |
|
| double | getAbsoluteMSE () const |
| Получить абсолютную MSE между двумя последовательными наборами соответствий. Подробнее... |
|
| bool | hasConverged () override |
| Проверить, достигнута ли сходимость. Подробнее... |
|
| ConvergenceState | getConvergenceState () |
| Вернуть состояние сходимости после вызова hasConverged () Подробнее... |
|
| void | setConvergenceState (ConvergenceState c) |
| Задать состояние сходимости извне (например, если ICP не находит достаточно соответствий для оценки преобразования, функция вызывается и задаёт состояние сходимости ConvergenceState::CONVERGENCE_CRITERIA_NO_CORRESPONDENCES) Подробнее... |
|
|
| |
| ConvergenceCriteria ()=default | |
| Пустой конструктор. Подробнее... |
|
| virtual | ~ConvergenceCriteria ()=default |
| Пустой деструктор. Подробнее... |
|
| operator bool () | |
| Оператор bool. Подробнее... |
|
Защищённые функции-члены | |
| double | calculateMSE (const pcl::Correspondences &correspondences) const |
| Вычислить среднеквадратичную ошибку (MSE) расстояния для заданного набора соответствий. Подробнее... |
|
Защищенные атрибуты | |
| const int & | iterations_ |
| Количество итераций, выполненных циклом регистрации на данный момент. Подробнее... |
|
| const Matrix4 & | transformation_ |
| Текущее преобразование, полученное методом оценки преобразования. Подробнее... |
|
| const pcl::Correspondences & | correspondences_ |
| Текущий набор соответствий точек между исходным и целевым облаками. Подробнее... |
|
| double | correspondences_prev_mse_ {std::numeric_limits<double>::max()} |
| Среднеквадратичная ошибка (MSE) для предыдущего набора соответствий. Подробнее... |
|
| double | correspondences_cur_mse_ {std::numeric_limits<double>::max()} |
| Среднеквадратичная ошибка (MSE) для текущего набора соответствий. Подробнее... |
|
| int | max_iterations_ {100} |
| Максимальное количество итераций, которое должен выполнить цикл регистрации. Подробнее... |
|
| bool | failure_after_max_iter_ {false} |
| Указывает, завершится ли регистрация с ошибкой или будет считаться сошедшейся при достижении максимального количества итераций. Подробнее... |
|
| double | rotation_threshold_ {0.99999} |
| Порог вращения — это относительное вращение между двумя итерациями (в виде косинуса угла). Подробнее... |
|
| double | translation_threshold_ {3e-4 * 3e-4} |
| Порог перемещения — это относительное перемещение между двумя итерациями (0 означает отсутствие перемещения). Подробнее... |
|
| double | mse_threshold_relative_ {0.00001} |
| Относительное изменение MSE по сравнению с предыдущим значением для текущего набора соответствий, например. Подробнее... |
|
| double | mse_threshold_absolute_ {1e-12} |
| Абсолютное изменение MSE по сравнению с предыдущим значением для текущего набора соответствий. Подробнее... |
|
| int | iterations_similar_transforms_ {0} |
| Внутренний счетчик количества итераций, в течение которых различия во вращении, перемещении и MSE допускается считать схожими. Подробнее... |
|
| int | max_iterations_similar_transforms_ {0} |
| Максимальное количество итераций, в течение которых различия во вращении, перемещении и MSE допускается считать схожими. Подробнее... |
|
| ConvergenceState | convergence_state_ {CONVERGENCE_CRITERIA_NOT_CONVERGED} |
| Состояние сходимости (например, причина сходимости регистрации). Подробнее... |
|
Подробное описание
template<typename Scalar = float>
class pcl::registration::DefaultConvergenceCriteria< Scalar >
DefaultConvergenceCriteria представляет собой реализацию ConvergenceCriteria и реализует следующие критерии для оценки цикла регистрации:
- достигнуто максимальное количество итераций
- преобразование (R, t) больше нельзя обновить (разница между текущим и предыдущим значениями меньше порогового значения)
- среднеквадратичная ошибка (MSE) между текущим и предыдущим наборами соответствий меньше некоторого порогового значения (проверяются как относительное, так и абсолютное значения)
- Примечание
- Сходимость считается достигнутой, если выполняется ЛЮБОЙ из перечисленных выше критериев.
Определение в строке 65 файла default_convergence_criteria.h.
Документация по псевдонимам типов-членов
ConstPtr
| using pcl::registration::DefaultConvergenceCriteria< Scalar >::ConstPtr = shared_ptr<const DefaultConvergenceCriteria<Scalar> > |
Определение в строке 68 файла default_convergence_criteria.h.
Matrix4
| using pcl::registration::DefaultConvergenceCriteria< Scalar >::Matrix4 = Eigen::Matrix<Scalar, 4, 4> |
Определение в строке 70 файла default_convergence_criteria.h.
Ptr
| using pcl::registration::DefaultConvergenceCriteria< Scalar >::Ptr = shared_ptr<DefaultConvergenceCriteria<Scalar> > |
Определение в строке 67 файла default_convergence_criteria.h.
Документация по перечислениям-членам
ConvergenceState
| enum pcl::registration::DefaultConvergenceCriteria::ConvergenceState |
Определение в строке 72 файла default_convergence_criteria.h.
Документация по конструкторам и деструкторам
DefaultConvergenceCriteria()
| inline |
Пустой конструктор.
Устанавливает:
- максимальное количество итераций равным 100
- порог вращения равным 0,256 градуса (0.99999)
- порог перемещения равным 0,0003 метра (3e-4^2)
- относительный и абсолютный пороги MSE равными 0,001% и 1e-12
- Параметры
-
[in] iterations ссылка на количество итераций, выполненных циклом на данный момент [in] transform ссылка на текущее преобразование, полученное методом оценки преобразования [in] correspondences ссылка на текущий набор соответствий точек между исходным и целевым облаками
Определение в строке 94 файла default_convergence_criteria.h.
~DefaultConvergenceCriteria()
| overridedefault |
Пустой деструктор.
Документация по функциям-членам
calculateMSE()
| inlineprotected |
Вычисляет среднеквадратичную ошибку (MSE) расстояния для заданного набора соответствий.
- Параметры
-
[in] correspondences заданный набор соответствий
Определение в строке 262 файла default_convergence_criteria.h.
getAbsoluteMSE()
| inline |
Возвращает абсолютное значение MSE между двумя последовательными наборами соответствий.
Определение в строке 230 файла default_convergence_criteria.h.
Ссылки: pcl::registration::DefaultConvergenceCriteria< Scalar >::mse_threshold_absolute_.
getConvergenceState()
| inline |
Возвращает состояние сходимости после вызова hasConverged ()
Определение в строке 241 файла default_convergence_criteria.h.
Ссылки: pcl::registration::DefaultConvergenceCriteria< Scalar >::convergence_state_.
getFailureAfterMaximumIterations()
| inline |
Возвращает признак того, завершится ли регистрация с ошибкой или будет считаться сошедшейся при достижении максимального количества итераций.
Определение в строке 156 файла default_convergence_criteria.h.
Ссылки: pcl::registration::DefaultConvergenceCriteria< Scalar >::failure_after_max_iter_.
getMaximumIterations()
| inline |
Возвращает заданное пользователем максимальное количество итераций внутренней оптимизации.
Определение в строке 138 файла default_convergence_criteria.h.
Ссылки: pcl::registration::DefaultConvergenceCriteria< Scalar >::max_iterations_.
getMaximumIterationsSimilarTransforms()
| inline |
Возвращает заданное пользователем максимальное количество последовательных итераций, в течение которых различия во вращении, перемещении и MSE допускается считать схожими.
Определение в строке 120 файла default_convergence_criteria.h.
Ссылки: pcl::registration::DefaultConvergenceCriteria< Scalar >::max_iterations_similar_transforms_.
getRelativeMSE()
| inline |
Возвращает относительное значение MSE между двумя последовательными наборами соответствий.
Определение в строке 214 файла default_convergence_criteria.h.
Ссылки: pcl::registration::DefaultConvergenceCriteria< Scalar >::mse_threshold_relative_.
getRotationThreshold()
| inline |
Получить заданный пользователем косинус угла порога вращения (максимально допустимую разницу между двумя последовательными преобразованиями).
Определение в строке 177 файла default_convergence_criteria.h.
Ссылки на pcl::registration::DefaultConvergenceCriteria< Scalar >::rotation_threshold_.
getTranslationThreshold()
| inline |
Получить заданный пользователем косинус угла порога вращения (максимально допустимую разницу между двумя последовательными преобразованиями).
Определение в строке 198 файла default_convergence_criteria.h.
Ссылки на pcl::registration::DefaultConvergenceCriteria< Scalar >::translation_threshold_.
hasConverged()
| overridevirtual |
Проверить, достигнута ли сходимость.
Реализует pcl::registration::ConvergenceCriteria.
Определение в строке 51 файла default_convergence_criteria.hpp.
setAbsoluteMSE()
| inline |
Задать абсолютное среднеквадратичное отклонение (MSE) между двумя последовательными наборами соответствий.
- Параметры
-
[in] mse_absolute порог относительного MSE
Определение в строке 223 файла default_convergence_criteria.h.
Ссылки на pcl::registration::DefaultConvergenceCriteria< Scalar >::mse_threshold_absolute_.
setConvergenceState()
| inline |
Задаёт состояние сходимости извне (например, если ICP не находит достаточно соответствий для оценки преобразования, функция вызывается и задаёт состояние сходимости ConvergenceState::CONVERGENCE_CRITERIA_NO_CORRESPONDENCES).
- Параметры
-
[in] c состояние сходимости
Определение в строке 252 файла default_convergence_criteria.h.
Ссылки на pcl::registration::DefaultConvergenceCriteria< Scalar >::convergence_state_.
setFailureAfterMaximumIterations()
| inline |
Указывает, завершается ли регистрация с ошибкой или считается сошедшейся при достижении максимального числа итераций.
- Параметры
-
[in] failure_after_max_iter Если значение true, регистрация завершается с ошибкой. Если значение false, считается, что регистрация сошлась.
Определение в строке 148 файла default_convergence_criteria.h.
Ссылки на pcl::registration::DefaultConvergenceCriteria< Scalar >::failure_after_max_iter_.
setMaximumIterations()
| inline |
Задать максимальное число итераций внутренней оптимизации.
- Параметры
-
[in] nr_iterations максимальное число итераций внутренней оптимизации
Определение в строке 130 файла default_convergence_criteria.h.
Ссылки на pcl::registration::DefaultConvergenceCriteria< Scalar >::max_iterations_.
setMaximumIterationsSimilarTransforms()
| inline |
Задать максимальное число последовательных итераций, в течение которых разницы внутреннего вращения, переноса и MSE могут считаться схожими.
- Параметры
-
[in] nr_iterations максимальное число итераций
Определение в строке 110 файла default_convergence_criteria.h.
Ссылки на pcl::registration::DefaultConvergenceCriteria< Scalar >::max_iterations_similar_transforms_.
setRelativeMSE()
| inline |
Задать относительное MSE между двумя последовательными наборами соответствий.
- Параметры
-
[in] mse_relative порог относительного MSE
Определение в строке 207 файла default_convergence_criteria.h.
Ссылки на pcl::registration::DefaultConvergenceCriteria< Scalar >::mse_threshold_relative_.
setRotationThreshold()
| inline |
Задать косинус угла порога вращения (максимально допустимую разницу между двумя последовательными преобразованиями), при котором оптимизация считается сошедшейся к окончательному решению.
- Параметры
-
[in] threshold порог вращения, при котором оптимизация считается сошедшейся к окончательному решению
Определение в строке 168 файла default_convergence_criteria.h.
Ссылки на pcl::registration::DefaultConvergenceCriteria< Scalar >::rotation_threshold_.
setTranslationThreshold()
| inline |
Задать порог переноса (максимально допустимую разницу между двумя последовательными преобразованиями), при котором оптимизация считается сошедшейся к окончательному решению.
- Параметры
-
[in] threshold порог переноса, при котором оптимизация считается сошедшейся к окончательному решению
Определение в строке 189 файла default_convergence_criteria.h.
Ссылки на pcl::registration::DefaultConvergenceCriteria< Scalar >::translation_threshold_.
Описание данных-членов
convergence_state_
| protected |
Состояние сходимости (например, причина сходимости регистрации).
Определение в строке 321 файла default_convergence_criteria.h.
Используется в pcl::registration::DefaultConvergenceCriteria< Scalar >::getConvergenceState() и pcl::registration::DefaultConvergenceCriteria< Scalar >::setConvergenceState().
correspondences_
| protected |
Текущий набор соответствий точек между исходными и целевыми данными.
Определение в строке 280 файла default_convergence_criteria.h.
correspondences_cur_mse_
| protected |
MSE для текущего набора соответствий.
Определение в строке 286 файла default_convergence_criteria.h.
correspondences_prev_mse_
| protected |
MSE для предыдущего набора соответствий.
Определение в строке 283 файла default_convergence_criteria.h.
failure_after_max_iter_
| protected |
Указывает, завершается ли регистрация с ошибкой или считается сошедшейся при достижении максимального числа итераций.
Определение в строке 294 файла default_convergence_criteria.h.
Используется в pcl::registration::DefaultConvergenceCriteria< Scalar >::getFailureAfterMaximumIterations() и pcl::registration::DefaultConvergenceCriteria< Scalar >::setFailureAfterMaximumIterations().
iterations_
| protected |
Число итераций, выполненных циклом регистрации на данный момент.
Определение в строке 272 файла default_convergence_criteria.h.
iterations_similar_transforms_
| protected |
Внутренний счётчик числа итераций, в течение которых разницы внутреннего вращения, переноса и MSE могут считаться схожими.
Определение в строке 314 файла default_convergence_criteria.h.
max_iterations_
| protected |
Максимальное число итераций, которое должен выполнить цикл регистрации.
Определение в строке 290 файла default_convergence_criteria.h.
Используется в pcl::registration::DefaultConvergenceCriteria< Scalar >::getMaximumIterations() и pcl::registration::DefaultConvergenceCriteria< Scalar >::setMaximumIterations().
max_iterations_similar_transforms_
| protected |
Максимальное число итераций, в течение которых разницы внутреннего вращения, переноса и MSE могут считаться схожими.
Определение в строке 318 файла default_convergence_criteria.h.
Используется в pcl::registration::DefaultConvergenceCriteria< Scalar >::getMaximumIterationsSimilarTransforms() и pcl::registration::DefaultConvergenceCriteria< Scalar >::setMaximumIterationsSimilarTransforms().
mse_threshold_absolute_
| protected |
Абсолютное изменение MSE по сравнению с предыдущим значением для текущего набора соответствий.
Определение в строке 310 файла default_convergence_criteria.h.
Используется в pcl::registration::DefaultConvergenceCriteria< Scalar >::getAbsoluteMSE() и pcl::registration::DefaultConvergenceCriteria< Scalar >::setAbsoluteMSE().
mse_threshold_relative_
| protected |
Относительное изменение MSE по сравнению с предыдущим значением для текущего набора соответствий, например,
.1 означает изменение на 10%.
Определение в строке 306 файла default_convergence_criteria.h.
Используется в pcl::registration::DefaultConvergenceCriteria< Scalar >::getRelativeMSE() и pcl::registration::DefaultConvergenceCriteria< Scalar >::setRelativeMSE().
rotation_threshold_
| protected |
Порог вращения — это относительный поворот между двумя итерациями (в виде косинуса угла).
Определение в строке 298 файла default_convergence_criteria.h.
Используется в pcl::registration::DefaultConvergenceCriteria< Scalar >::getRotationThreshold() и pcl::registration::DefaultConvergenceCriteria< Scalar >::setRotationThreshold().
transformation_
| protected |
Текущее преобразование, полученное методом оценки преобразования.
Определение в строке 276 файла default_convergence_criteria.h.
translation_threshold_
| protected |
Порог перемещения — это относительное перемещение между двумя итерациями (0 при отсутствии перемещения).
Определение в строке 302 файла default_convergence_criteria.h.
Используется в pcl::registration::DefaultConvergenceCriteria< Scalar >::getTranslationThreshold() и pcl::registration::DefaultConvergenceCriteria< Scalar >::setTranslationThreshold().
Документация для этого класса создана на основе следующих файлов:
- pcl/registration/default_convergence_criteria.h
- pcl/registration/impl/default_convergence_criteria.hpp
© 2009–2012, Willow Garage, Inc.
© 2012–, Open Perception, Inc.
Licensed under the BSD License.
https://pointclouds.org/documentation/classpcl_1_1registration_1_1_default_convergence_criteria.html