Итеративный алгоритм ближайших точек

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Итеративный алгоритм ближайших точек (англ. Iterative Closest PointICP) — алгоритм, использующийся для сведения к минимуму разницы между двумя облаками точек. ICP часто используется для восстановления двухмерных (2D) или трёхмерных (3D) поверхностей из разных сканов, для определения местоположения роботов и планирования оптимального их пути (особенно когда одометрия колеса ненадежна из-за скользкого ландшафта), совместной регистрации модели кости и т.д.

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

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

Результат: совершенное преобразование.

По существу эти шаги алгоритма являются:

  1. Связка точек по критерию ближайшего соседа.
  2. Оценка параметров преобразования с помощью среднеквадратичной функции потерь.
  3. Преобразования точек с помощью оценочных параметров.
  4. Многократные итерации (заново связывая точки и так далее).

См. также[править | править код]

  • MeshLab — инструмент обработки сетки c открытым исходным кодом, который включает GNU GPL-реализацию ICP-алгоритма.
  • CloudCompare — инструмент для обработки точек и моделей с открытым исходным кодом, который включает в себя реализацию алгоритма ICP.
  • Point Cloud Library — библиотека для работы с облаком точек с открытым исходным кодом, предназначенная для обработки 3D геометрии и n-мерного облака точек. Она включает в себя несколько вариантов алгоритма ICP.

Ссылки[править | править код]