Изучение библиотеки PCL: Знакомство с модулем регистрации в PCL
Изучение библиотеки PCL: Знакомство с модулем регистрации в PCL

Предисловие

Объединение нескольких наборов данных в глобально согласованную модель часто осуществляется с помощью метода, называемого «регистрацией». Основная идея состоит в том, чтобы идентифицировать соответствующие точки между наборами данных и найти соотношение преобразования, которое минимизирует расстояние между соответствующими точками. Поскольку на поиск соответствующих точек влияет относительное положение и ориентация набора данных, этот процесс необходимо повторить. Как только минимизированная ошибка падает ниже заданного порога, регистрация считается завершенной. Библиотека pcl_registration реализует множество алгоритмов регистрации облаков точек, подходящих для упорядоченных и неупорядоченных наборов данных облаков точек.

Упорядоченные облака точек и неупорядоченные облака точек.

Так называемое упорядоченное облако точек обычно представляют в виде регулярной сетки или сетки, в которой расположение точек подчиняется определенным правилам, например изображение на двухмерной плоскости или воксельная сетка (вокселы) в трех измерениях. . Что касается характеристик упорядоченных облаков точек, из-за регулярного расположения облаков точек упорядоченные облака точек обычно содержат богатую топологическую и структурную информацию. Эти облака точек могут представлять внешнюю форму и внутреннюю структуру объектов, поэтому они обычно более подходят. Для нужд точного моделирования или анализа методы регистрации упорядоченных облаков точек обычно проще, поскольку точки расположены упорядоченно. Эту структуру можно использовать для более точного поиска соответствующих точек для преобразования и регистрации. включать сопоставление признаков, метод наименьших квадратов и другие методы.

Для неупорядоченных облаков точек нет очевидного правила или структуры в структуре данных из-за расположения точек, и они представляют поверхность или окружающую среду объекта дискретным образом. Таким образом, в характеристиках неупорядоченных облаков точек обычно отсутствует очевидная топологическая или структурная информация, поэтому нелегко напрямую извлечь форму или внутренние особенности объекта. Они в основном используются для характеристики внешней геометрии объекта. Поэтому регистрация неупорядоченных облаков точек обычно является более сложной задачей, поскольку нет очевидной структуры, которую можно было бы использовать. Регистрация неупорядоченных облаков точек обычно требует использования более сложных алгоритмов, таких как извлечение и сопоставление характерных точек, итеративная ближайшая точка (ICP) и т. д. достичь. Одно и то же облако точек может быть представлено двумя совершенно разными матрицами, что также является типичным неупорядоченным облаком точек, как показано на следующем рисунке:

Фотография принадлежит автору «Дянь Юнь» Чжиху.

Введение в API регистрации PCL

pcl::registration::ConvergenceCriteria Используется для управления условием завершения итерации алгоритма регистрации облака точек. При регистрации облака точек часто необходимо итеративно корректировать преобразование одного облака точек относительно другого облака точек, чтобы минимизировать расстояние или ошибку между ними. Критерии конвергенции Позволяет пользователю определить, когда алгоритм должен прекратить итерацию, чтобы достичь желаемой точности сопоставления. Типичные критерии сходимости, которые можно получить из этого базового класса, включают: (Эти три условия завершения итерации также являются одним из вопросов, которые иногда задаются при опросе алгоритмов облака точек)

  • Достигнуто максимальное количество итераций.
  • Преобразование (R, t) не может быть обновлено в дальнейшем (текущее значение отличается от предыдущего значения менее чем на определенный порог).
  • Среднеквадратическая ошибка (MSE) между текущим набором соответствий и предыдущим набором соответствий меньше определенного порога.

pcl::registration::CorrespondenceEstimationBase PCL (точка Cloud Library), используемый для соответствующей оценки точек в процессе регистрации облака точек. Его основная функция — вычисление соответствия между двумя облаками точек для облегчения регистрации облака точек. Функция реализации этого класса — установить соответствие между облаками точек, что можно использовать в различных алгоритмах регистрации облаков точек, включая итеративные. Closest Point (ICP) ждать.

pcl::registration::CorrespondenceEstimation Используется для оценки соответствия между двумя наборами точек в облаке точек. Основная функция этого класса — установить соответствие между двумя облаками точек для использования в процессе регистрации облака точек и выравнивания этих соответствий. Этот класс также можно использовать для сопоставления точек с похожими характеристиками между двумя облаками точек, что полезно для регистрации облаков точек, снятых с нескольких точек обзора. Пример кода:

Язык кода:javascript
копировать
pcl::PointCloud::Ptr source, target;
// ... читай или заполняй source и target
// создавать CorrespondenceEstimation объект
pcl::CorrespondenceEstimationest;
est.setInputSource(source);
est.setInputTarget(target);
pcl::Correspondences all_correspondences;
// Определить все взаимные соответствия
est.determineReciprocalCorrespondences(all_correspondences);

CorrespondenceEstimation используется для определения соответствия между источником исходного облака точек и целевым объектом целевого облака точек. Метод defineReciprocalCorrespondences используется для определения всех взаимных соответствий, то есть он ищет соответствующие точки, найденные как в исходном, так и в целевом облаках точек, и сохраняет их в all_correspondences.

pcl::registration::CorrespondenceEstimationBackProjection Основная функция класса — оценить соответствие между исходным облаком точек (PointSource) и целевым облаком точек (PointTarget), то есть найти соответствие между точками в исходном облаке точек и точками в целевой точке. облако. Это имеет решающее значение для задач регистрации облака точек, где необходимо определить, какие точки соответствуют друг другу между исходным и целевым облаками точек. Этот класс реализует свою функциональность, выполняя следующие шаги:

  • Расчет объекта: во-первых, он вычисляет характеристики исходного облака точек и целевого облака точек, обычно включая нормальную (NormalT) информацию.
  • Расчет обратной проекции: затем используется метод обратной проекции для оценки предполагаемого положения точек в исходном облаке точек в целевом облаке точек. Этот процесс можно понимать как основанный на взаимосвязи между точками в исходном облаке точек. и целевое облако точек. Связь между объектами для оценки их положения в целевом облаке точек.
  • Установление соответствия: наконец, устанавливается соответствие между точками в исходном облаке точек и точками в целевом облаке точек, то есть находится соответствующая пара точек.

pcl::registration::CorrespondenceEstimationNormalShooting Он используется для расчета соответствующей точки в целевом облаке точек, которая находится на минимальном расстоянии от вектора нормали, рассчитанного на входном облаке точек. При оценке соответствия точек информация о векторе нормали в облаке точек, особенно о направлении вектора нормали, в основном используется для оценки соответствия между облаками точек. Он учитывает информацию о векторах нормалей в соответствии с точками для повышения точности регистрации, особенно для облаков точек кривизны или сложных геометрических форм. пример кода

Язык кода:javascript
копировать
pcl::PointCloud::Ptr source, target;
// ... читай или заполняй Исходное облако точек(source)и целевое облако точек(target)
pcl::CorrespondenceEstimationNormalShooting
  est;
est.setInputSource(source); // Установить исходное облако точек
est.setSourceNormals(source); // Установить исходное облако нормальный вектор точек
est.setInputTarget(target); // Установить целевое облако точек
est.setKSearch(10); // Протестируйте 10 лучших соответствий для каждой исходной точки и верните лучшее соответствие.
pcl::Correspondences all_correspondences;
// Определить все соответствия
est.determineCorrespondences(all_correspondences);

pcl::registration::CorrespondenceEstimationOrganizedProjectionОсновная функция этого класса — оценка соответствующих точек между двумя упорядоченными облаками точек.,Упорядоченные облака точек обычно представляют собой данные с камер глубины. Этот класс реализует некоторые конкретные методы оценки соответствующих точек.,Эти методы учитывают особые свойства упорядоченных облаков точек.,как проекция камеры,Используя внутренние и внешние параметры камеры,Спроецируйте исходное облако точек на целевое облако точек для расчета соответствующих точек.,Это помогает повысить точность оценок точек соответствия. Этот класс в полной мере использует структуру упорядоченных облаков точек.,улучшить скорость оценки соответствующих точек.

pcl::registration::CorrespondenceRejectorэто инструмент для регистрации облаков точек(Установление соответствия между облаками точек)функциональные компоненты,Его основная функция – регистрация облака точек.,идентифицироватьи Устраните неправильные или зашумленные соответствия точек.,С целью уменьшения ошибки регистрации и улучшения качества окончательной регистрации. Это может помочь отфильтровать выбросы при регистрации.,Улучшить качество данных,Уменьшите влияние несоответствий. Это очень полезно при работе с облаками точек в реальных сценах.,Потому что на облака точек могут влиять шум, неполнота или окклюзии. CorrespondenceRejector предоставляет множество стратегий и методов.,Используется для отклонения нежелательных пар облаков точек.,Например:

  • DistanceRejector: Отклонить соответствие на основе расстояния между точками облака. Вы можете установить порог расстояния. Если расстояние между двумя точками превышает порог, соответствие между парой точек будет отклонено.
  • MedianDistanceRejector: аналогичен DistanceRejector, но вместо простого использования фиксированного порога порог расстояния определяется динамически на основе медианного расстояния.
  • OneToOneRejector: используется для обеспечения того, чтобы каждая точка могла соответствовать только одной точке, чтобы предотвратить совпадение одной точки с несколькими точками.
  • SampleConsensusRejector: на основе метода согласованности выборки он отклоняет соответствия точек, которые не соответствуют подходящей модели. Обычно используется, когда сопоставление модели используется во время регистрации.

Для функционального использования и ознакомления с этим классом вы можете прочитать этот документ: Сбор мусорных баков роботом: извлечение 3D-позы на основе библиотеки облаков точек.

pcl::registration::DataContainerInterface Предоставляет общий интерфейс для расчета оценок соответствия между соответствующими точками во входном и целевом облаке точек.

pcl::registration::CorrespondenceRejectorDistance Он используется для исключения соответствующих точек во время регистрации облака точек. Его основная функция и роль — отклонять соответствия облаков точек, которые не соответствуют заданным условиям расстояния, на основе критериев расстояния. Это помогает повысить точность регистрации и уменьшить вероятность несоответствия. . Пользователь может указать, какие пары точек следует отклонять, установив порог расстояния. Обычно порог расстояния представляет собой положительное число, которое представляет максимальное расстояние между двумя точками. Если расстояние между двумя точками превышает этот порог, они будут отклонены как соответствующие точки.

pcl::registration::CorrespondenceRejectorFeaturesОбычно используется для регистрации облака точек.(registration)в процессе,Используется для отклонения или фильтрации соответствий между совпадающими точками. Его основная функция — принять решение о том, принять или отклонить их как окончательное соответствие, путем анализа характеристик точек совмещения. Этот класс обычно используется для некоторых этапов постобработки регистрации облака точек.,помочь улучшить качество регистрациииточность。

pcl::registration::CorrespondenceRejectorMedianDistance Реализован простой метод отклонения корреспонденции, основанный на пороге медианного расстояния между корреспонденциями. Среднее значение этих расстояний используется для определения того, следует ли принять или отклонить корреспонденцию. Если расстояние между парой соответствующих точек превышает определенное кратное (порог) медианы, соответствие будет отклонено. Исключив эти аномальные соответствия, можно повысить точность регистрации и уменьшить влияние на результаты регистрации. . Этот код перенесен из libpointmatcher (https://github.com/ethz-asl/libpointmatcher).

pcl::registration::CorrespondenceRejectorOneToOneИспользуется для соответствующей фильтрации точек при регистрации облака точек.,Основная функция этого класса — отфильтровать взаимно-однозначные соответствующие отношения точек из совпадающих пар точек.,Метод устранения повторяющихся точек сопоставления в отношениях соответствия,以提高点云配准източностьинадежность。

pcl::registration::CorrespondenceRejectionOrganizedBoundary Класс реализует простую метрику отклонения соответствия точек. Для каждой пары соответствий точек проверяется, лежат ли они на границе контура. Эти соответствия точек могут привести к неточным результатам регистрации. Это делается путем подсчета количества NaN в окне вокруг точек (пользователь может установить пороговое значение). и размер окна). Поскольку в процессе регистрации облака точек граничные точки обычно ограничены неполными данными или восприятием сканера, их соответствия точек могут быть недостаточно точными. Отфильтровывая эти соответствия точек, можно повысить точность и стабильность регистрации. Примечание. Необходимо упорядочить как исходное, так и целевое облако точек, в противном случае все соответствия точек будут отклонены.

pcl::registration::CorrespondenceRejectorPoly Используя низкоуровневые функции и инвариантные к позе геометрические ограничения между двумя наборами точек, входные соответствия используются для формирования виртуальных многоугольников с задаваемой пользователем мощностью в каждой модели, а затем они проверяются инвариантным к позе способом. длины сторон должны быть примерно равны) и отбраковка осуществляется путем порогового определения этих длин сторон. Справочная статья:

Pose Estimation using Local Structure-Specific Shape and Appearance Context.

pcl::registration::CorrespondenceRejectorSampleConsensus Реализована согласованность с использованием случайных выборок (Random Sample Метод консенсуса, RANSAC) выполняет отбраковку соответствующих точек для выявления выбросов и отклонения выбросов.

pcl::registration::CorrespondenceRejectorSurfaceNormalОсновная функция — использовать обычную информацию в облаке точек для устранения соответствий облака точек, которые не соответствуют нормальной согласованности.。Это очень важно для регистрации облака точек.,Потому что это может помочь исключить облака точек с противоречивыми нормалями.,тем самым повышая точность регистрацииинадежность。Нормали часто используются в облаках точек для описания направления поверхности.,Поэтому соответствия облаков точек с согласованными нормалями с большей вероятностью будут правильными. Исходный код из libpointmatcher:

https://github.com/ethz-asl/libpointmatcher)

pcl::registration::CorrespondenceRejectorTrimmedОсновная функция — отфильтровать пары точек, которые не соответствуют условию порога расстояния в двух облаках точек.。Это очень важно для улучшения качества регистрации облака точек.,Поскольку в процессе сопоставления облака точек может возникнуть неполное совпадение или аномальные точки. Отфильтровав эти неквалифицированные пары точек,Может устранить шум и ложные совпадения при регистрации.,Улучшено качество окончательной регистрации.

pcl::registration::ELCH выражать "Explicit Loop Closing Эвристика» — алгоритм, предназначенный для повышения эффективности и точности регистрации облаков точек, особенно при обработке крупномасштабных данных облаков точек. ELCH Обнаруживает и обрабатывает замыкания циклов в облаках точек, когда одна часть облака точек повторяется в других частях. Это полезно для SLAM(Simultaneous Localization and Mapping) приложение очень важно. ЭЛЧ Алгоритм повышает эффективность и точность регистрации за счет использования явной эвристики и обнаружения замыкания цикла, что делает его более эффективным при обработке крупномасштабных данных облака точек.

pcl::GeneralizedIterativeClosestPoint(GICP)Долженалгоритмрасширенный Ближайшая точка традиционной итерации(Iterative Closest Point, ICP) повышает точность сопоставления за счет учета топологии облаков точек, особенно в случае упорядоченных облаков точек и данных, содержащих шум. В отличие от традиционного ICP, GICP учитывает топологическую структуру облака точек и поэтому больше подходит для упорядоченных облаков точек и данных облака точек, содержащих шум. Это позволяет ему лучше работать в более сложных сценах. GICP предоставляет метод оценки качества регистрации путем расчета таких показателей, как перекрытие и среднее расстояние облака точек после регистрации. GeneralizedIterativeClosestPoint — вариант алгоритма ICP, реализованный Алексом. Обобщенный итеративный алгоритм ближайшей точки, описанный Segal et al. В статье Generalized_ICP метод основан на использовании анизотропной функции стоимости для оптимизации процесса выравнивания после завершения назначения ближайшей точки. Исходный код использует библиотеки GSL и ANN, а реализация в библиотеке PCL использует библиотеку FLANN и метод Ньютона для оптимизации.

pcl::GeneralizedIterativeClosestPoint6D специализируется на регистрации облаков точек с 6 степенями свободы (6-DOF) - метод регистрации, используемый в области компьютерного зрения и робототехники для выравнивания двух облаков точек (обычно 3D-сканирования или данных датчиков) и их оценки. Преобразования вращения и перемещения между ними. чтобы лучше всего совместить их, чтобы они были выровнены в одной системе координат. Справочная статья: Цвет Supported Generalized-ICP.

pcl::registration::GraphHandler Для обработки графических облаков точек,В основном используется для графического моделирования облаков точек.икорреляционный анализ。Должен类允许用户构建点云之间из关系图,где каждое облако точек может быть связано с другими облаками точек,образуют графическую структуру. Это облегчает выражение относительного положения и топологической взаимосвязи между несколькими облаками точек. через графические структуры,Вы можете выполнить анализ топологииикорреляционный анализ,Например, найдите совпадения, связность и другую информацию о корреляции между облаками точек. Также предоставляются инструменты визуализации.,Позволяет пользователям визуализировать графические структуры между облаками точек.,чтобы лучше понять взаимоотношения между ними.

pcl::registration::GraphOptimizerИспользуется для разрешения параметров при регистрации облака точек.оптимизациявопрос,Обычно выполняется преобразование между несколькими облаками точек для достижения оптимальной регистрации облаков точек. Целью этого класса является преобразование параметров путем оптимизации.,Минимизируйте расстояние или ошибку между облаками точек.,улучшить качество регистрации. Этот класс может обрабатывать сложные отношения между несколькими облаками точек.,И используйте диаграмму алгоритма оптимизации, чтобы скорректировать эти взаимосвязи.,Для получения глобального оптимального результата регистрации.

pcl::registration::FPCSInitialAlignment Это мощный алгоритм первоначального выравнивания, используемый для выравнивания исходных облаков точек и целевых облаков точек для подготовки к последующим операциям регистрации облака точек. Полное название этого алгоритма: Fast Point Cloud Stitching Initial Выравнивание (FPCS), его основная функция — найти начальное преобразование между исходным облаком точек и целевым облаком точек, чтобы они были максимально выровнены. Одной из целей разработки алгоритма FPCS является обеспечение быстрого и эффективного начального выравнивания. Это может помочь сократить время расчета всего процесса регистрации облака точек. Алгоритм демонстрирует высокую надежность при работе с шумом, недостающими данными, начальными отклонениями и т. д., поэтому он обычно может обрабатывать сложные данные облака точек в практических приложениях. 4 балла congruent sets for robust pairwise surface регистрация В данной статье описывается метод расчета четырехточечных конформных множеств для устойчивой парной регистрации поверхностей, который может быть FPCSInitialAlignment Теоретическая основа алгоритма.

pcl::registration::KFPCSInitialAlignment Это часть метода регистрации облака точек, основанного на технологии «точка-точка». Его основная функция — инициализация алгоритма регистрации, особенно для инициализации алгоритма регистрации «точка-точка» для улучшения сходимости регистрации и стабильности. Метод также позволяет рассчитывать нормали поверхности и дескрипторы объектов в облаках точек, что можно использовать для повышения качества и скорости регистрации. Ссылки

Регистрация облака точек без маркеров с использованием конгруэнтных наборов из 4 точек на основе ключевых точек. Он использует технологию обнаружения ключевых точек для расчета ключевых точек в облаке точек, а затем вычисляет согласованные наборы из четырех точек на основе этих ключевых точек, чтобы облегчить регистрацию облака точек. Этот метод может повысить точность и стабильность регистрации облака точек, особенно в случае отсутствия маркеров.

pcl::SampleConsensusInitialAlignment Основная функция класса — найти начальное преобразование выравнивания между двумя облаками точек путем выборки набора точек.,Этот класс в основном используется на начальном этапе регистрации облака точек.,它能够идентифицировать并估计Два облака точек之间из粗略变换(Кастрюляивращать)

pcl::IterativeClosestPointNonLinear реализован нелинейно ICP Алгоритм, который находит оптимальное жесткое преобразование путем минимизации расстояния между двумя облаками точек для достижения регистрации облака точек. Этот алгоритм можно использовать для решения проблем регистрации между данными облака точек, собранными с разных точек обзора или мест. Это вариант ICP, который использует механизм оптимизации Левенберга-Марквардта, а окончательное преобразование оптимизируется с помощью кватернионов.

pcl::registration::IncrementalRegistration Используется для реализации инкрементной регистрации облака точек, то есть для постепенной регистрации нескольких наборов данных облака точек в глобальной системе координат. Это полезно для объединения нескольких источников данных для создания более крупного облака точек или построения 3D-карты. пример кода

Язык кода:javascript
копировать
IterativeClosestPoint::Ptr icp
  (new IterativeClosestPoint);
icp->setMaxCorrespondenceDistance(0.05);
icp->setMaximumIterations(50);
IncrementalRegistrationiicp;
iicp.setRegistration(icp);
while (true) {
  PointCloud::Ptr cloud(new PointCloud);
  read_cloud(*cloud);
  iicp.registerCloud(cloud);
  PointCloud::Ptr tmp(new PointCloud);
  transformPointCloud(*cloud, *tmp, iicp.getAbsoluteTransform());
  write_cloud(*tmp);
}

pcl::JointIterativeClosestPoint расширенный Алгоритм ICP (итеративная ближайшая точка) применяется к нескольким кадрам, использующим одно и то же преобразование. Это полезно при использовании нескольких наблюдений для разрешения внешних параметров камеры. Если задана одна пара облако точек, это эквивалентно стандартному ICP алгоритм.

pcl::registration::LUM выражать "Locally Unique Minima"(локальный уникальный минимум),даPCLОдин из библиотеки для регистрации облака точек.алгоритм.это основано наLuиMiliosизалгоритм,Реализовано глобально согласованное совпадение сканирования.,В основном используется для картографирования и SLAM (одновременное Localization and Картографические) задачи. Его можно понимать как алгоритм GraphSLAM, в котором для управления регистрационными данными используется граф:

  • Вершины выражают разные позы (позы или позиции),и содержит облака точекданныеи Информация об относительном преобразовании。
  • Края выражают отношения ограничений между позами.,И содержит соответствие между данными двух облаков точек.
Язык кода:javascript
копировать
pcl::registration::LUMlum;
// Добавьте облако точек в качестве вершин графа SLAM.
lum.addPointCloud(cloud_0);
lum.addPointCloud(cloud_1);
lum.addPointCloud(cloud_2);
// Используйте предпочитаемый вами алгоритм оценки соответствия
corrs_0_to_1 = someAlgo(cloud_0, cloud_1);
corrs_1_to_2 = someAlgo(cloud_1, cloud_2);
corrs_2_to_0 = someAlgo(lum.getPointCloud(2), lum.getPointCloud(0));
// Добавьте результаты соответствия в качестве ребер графа SLAM.
lum.setCorrespondences(0, 1, corrs_0_to_1);
lum.setCorrespondences(1, 2, corrs_1_to_2);
lum.setCorrespondences(2, 0, corrs_2_to_0);
// Изменение параметров расчета
lum.setMaxIterations(5);
lum.setConvergenceThreshold(0.0);
// Выполните фактические расчеты LUM
lum.compute();
// Возврат результатов объединенного облака точек
cloud_out = lum.getConcatenatedCloud();
// Возвращает отдельные преобразования облака точек.
for (int i = 0; i < lum.getNumVertices(); i++) {
  transforms_out[i] = lum.getTransformation(i);
}

pcl::NormalDistributionsTransform(NDT)它да一种三维正态分布变换метод,Используется для точной регистрации двух облаков точек.,То есть найти относительную трансформационную связь между ними.,чтобы они могли выровняться. pcl::NormalDistributionsTransform основан на теории нормального распределения.,Регистрация облаков точек,Особенно подходит для обработки ситуаций с шумом, окклюзией или неполными изображениями. На основе докторской диссертации доктора Магнуссона: Преобразование трехмерного нормального распределения — эффективное представление для регистрации, поверхностного анализа и обнаружения петель.

pcl::PPFRegistration用于基于点云из PPF(Point Pair Features), функция, используемая для описания локальной формы облаков точек для выравнивания двух облаков точек, тем самым достигая цели регистрации облака точек. Справочная статья: Модель Globally, Match Locally: Efficient and Robust 3D Object Recognition

pcl::SampleConsensusPrerejective Класс, используемый для оценки позы и регистрации облака точек. Используется метод, называемый «предварительным отклонением», который вставляется в стандартный цикл оценки отношения RANSAC (согласованность случайной выборки), чтобы избежать проверки тех предположений об отношении, которые могут быть ошибочными. Это достигается с помощью локально инвариантных к позе геометрических ограничений, аналогичных реализации в классе CorrespondenceRejectorPoly. Чтобы надежно выровнять частично или закрытые модели, алгоритм использует только вставки для оценки ошибок подбора, т. е. точки, близкие к евклидову порогу. Этот порог можно использовать setInlierFraction() метод установки. Можно использовать «жадность» или степень предварительного отклонения алгоритма. setSimilarityThreshold() метод для указания, диапазон [0, 1], из которых 0выражать отключено, а 1выражать максимально запрещено. Ссылка: Поза Estimation using Local Structure-Specific Shape and Appearance Context. В этом документе описываются методы оценки позы с использованием локального контекста формы и внешнего вида, специфичного для структуры, которые реализованы в классе pcl::SampleConsensusPrerejective.

pcl::registration::TransformationEstimation Класс для оценки жесткой матрицы преобразования, необходимой для преобразования исходного облака точек в соответствие с целевым облаком точек.

Этот класс в основном оценивает матрицу преобразования на основе одной из следующих ситуаций:

  • Векторы соответствия.
  • Два облака точек (исходное и целевое) одинакового размера.
  • облако точек(Исходное облако точек)игруппаиндекс,и другое облако точек (целевое облако точек).
  • Два облака точек одинакового размера,Каждое облако точек имеет набор индексов (исходное облако точек и целевое облако точек).

pcl::registration::TransformationEstimation2D Он реализует простую двумерную функцию оценки жесткого преобразования для заданной пары наборов данных. Основная роль этого класса — оценка жестких преобразований между двумя наборами данных, включая перемещение (x, y) и вращение (тета), чтобы они были выровнены на плоскости. Обычно это используется при регистрации или сшивании облаков точек для выравнивания двух наборов данных облаков точек по общей базовой плоскости (обычно z = 0 самолет).

pcl::registration::TransformationEstimation3Point Это класс, используемый для оценки матрицы преобразования между облаками точек. Его основная функция — оценка преобразования твердого тела между облаками точек на основе координат трех пар соответствующих точек. Этот класс реализован для обработки следующих ситуаций:

  • Соответствие между тремя парами точек для ситуаций «плоскость-плоскость».
  • Два облака точек с тремя точками (источник и цель).
  • облако точекиодин содержит трииндексиз集合(Исходное облако точеки целевое облако Соответствие между точками).
  • Два облака точеки Две группы содержат трииндексиз集合(分别用于Исходное облако точеки целевое облако точек)。

pcl::registration::TransformationEstimationDQ Он реализует двойной кватернион (Dual Quaternion)метод来估计点云之间из变换以实现配准。这个методиз主要作用да将Два облака точек之间из对应关系(点与点之间из对应关系)Используйте двойные кватернионы, чтобывыражать,并从中估计出最佳из刚性变换(вращатьи Кастрюля),Чтобы два облака точек совпадали как можно ближе. О применении метода двойных кватернионов при регистрации облаков точек,Вы можете обратиться к статье: О роли кватернионов в движении твердого тела: Учебное пособие.

pcl::registration::TransformationEstimationDualQuaternion Основная функция — оценить трансформацию твердого тела между двумя облаками точек для их выравнивания. В качестве входных данных она принимает соответствующие точки между облаками точек (обычно характерные точки или ключевые точки), а затем использует математическую модель двойных кватернионов. рассчитать оптимальное преобразование твердого тела, которое минимизирует ошибку между соответствующими точками между двумя облаками точек. Это можно использовать для различных приложений, включая регистрацию облаков точек, SLAM и 3D-реконструкцию.

pcl::registration::TransformationEstimationLM Он реализует оценку преобразования на основе алгоритма Левенберга-Марквардта, который используется для совместной регистрации данного соответствующего облака точек. Эта функция в основном используется для решения преобразования твердого тела (вращение и перемещение) между двумя облаками точек, чтобы они были оптимально выровнены.

pcl::registration::TransformationEstimationPointToPlane Используется для оценки жесткого преобразования между двумя облаками точек, чтобы минимизировать ошибку расстояния между точкой и плоскостью. Он подходит для ситуаций, когда необходимо учитывать взаимосвязь между каждой точкой в ​​облаке точек и соответствующей плоскостью. Этот показатель расстояния обычно более подходит, чем расстояние между точками, для таких приложений, как реконструкция поверхности и выравнивание облака точек.

pcl::registration::TransformationEstimationPointToPlaneLLS Линейная оценка методом наименьших квадратов (LLS) реализована для минимизации расстояния от точки до плоскости между двумя соответствующими облаками точек с нормальными векторами. В частности, он используется в задачах регистрации облака точек, когда одно облако точек (часто называемое исходным облаком точек) регистрируется с другим облаком точек (часто называемым целевым облаком точек), при этом каждая точка целевого облака точек существует нормально. вектор.

pcl::registration::TransformationEstimationSVDОн используется для передачи разложения по сингулярным значениям.(SVD)来估计点云之间из刚体变换,Чтобы добиться регистрации облака точек,Основная функция этого класса — вычисление матрицы преобразования,Выровнять соответствующие точки между двумя облаками точек в общую систему координат.,для последующих регистрационных операций.

pcl::registration::TransformationValidationИспользуется для проверки оценок путем преобразования.(TransformationEstimation)找到из变换из正确性,Этот класс в основном используется в контексте регистрации (регистрации) облаков точек.,Убедитесь, что предполагаемое преобразование подходит для выравнивания исходного облака точек с целевым облаком точек. Эта оценка обычно выводится в виде балла или меры достоверности.,用于衡量变换източностьиосуществимость。它可以用来确定估计из变换да否在点云配准中да可靠из,Или если необходимы дальнейшие корректировки или улучшения. Результатом является оценка или мера уверенности.,用于指示估计из变换из质量инадежность。

Язык кода:javascript
копировать
// Рассчитайте оценку трансформации 
double score = validation.computeTransformationScore();

pcl::registration::WarpPointRigid используется для выполнения преобразования твердого тела (Rigid Трансформация), включая трехмерное вращение и трехмерное перемещение. Основная цель этого класса — выполнить преобразование твердого тела в точках облака точек для выполнения задач регистрации или выравнивания. Преобразование твердого тела — это преобразование, которое сохраняет относительное расположение точек в облаке точек неизменным. Обычно оно используется для выравнивания облаков точек при разном времени сбора данных или углах обзора. WarpPointRigid Его можно использовать не только для регистрации облака точек, но и для других приложений, требующих преобразования твердого тела, таких как отслеживание цели или SLAM.

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода