Эта статья включает в себя список общих ссылок , но он остается в значительной степени непроверенным, поскольку в нем отсутствует достаточное количество соответствующих встроенных ссылок . ( Февраль 2017 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Итеративная ближайшая точка ( ICP ) [1] [2] [3] [4] - это алгоритм, используемый для минимизации разницы между двумя облаками точек . ICP часто используется для реконструкции 2D или 3D поверхностей из различных сканирований, для локализации роботов и достижения оптимального планирования пути (особенно когда одометрия колес ненадежна из-за скользкой местности), для совместной регистрации моделей костей и т. Д.
Обзор [ править ]
В итеративной ближайшей точке или, в некоторых источниках, в итеративной соответствующей точке одно облако точек (облако вершин), ссылка или цель остается фиксированной, в то время как другое, источник , преобразуется, чтобы наилучшим образом соответствовать ссылке. Алгоритм итеративно пересматривает преобразование (комбинацию перемещения и вращения), необходимое для минимизации метрики ошибки, обычно расстояния от источника до облака опорных точек, например суммы квадратов разностей между координатами согласованных пар. ICP - один из широко используемых алгоритмов для выравнивания трехмерных моделей с учетом первоначального предположения о требуемом жестком преобразовании . [5]Алгоритм ICP был впервые представлен Ченом и Медиони [3], а также Беслом и Маккеем. [2]
Алгоритм Iterative Closest Point отличается от алгоритма Kabsch и других решений ортогональной проблемы Procrustes в том, что алгоритм Kabsch требует соответствия между наборами точек в качестве входных данных, тогда как Iterative Closest Point обрабатывает соответствие как переменную, которую нужно оценить.
Входные данные: облака точек отсчета и источника, начальная оценка преобразования для выравнивания источника относительно опорного значения (необязательно), критерии остановки итераций.
Выход: изысканная трансформация.
По сути, шаги алгоритма следующие: [5]
- Для каждой точки (из всего набора вершин, обычно называемых плотными, или набора пар вершин из каждой модели) в исходном облаке точек сопоставьте ближайшую точку в облаке опорных точек (или выбранном наборе).
- Оцените комбинацию вращения и смещения, используя метод минимизации среднеквадратичного расстояния от точки до точки, который наилучшим образом выровняет каждую исходную точку по совпадению, найденному на предыдущем шаге. Этот шаг также может включать в себя взвешивание и отклонение выбросов перед выравниванием.
- Преобразуйте исходные точки, используя полученное преобразование.
- Итерировать (повторно связать точки и т. Д.).
Чжан [4] предлагает модифицированный алгоритм k -d-дерева для эффективного вычисления ближайшей точки. В этой работе статистический метод, основанный на распределении расстояний, используется для работы с выбросами, окклюзией, появлением и исчезновением, что позволяет сопоставить подмножество-подмножество.
Существует множество вариантов ICP [6], из которых наиболее популярны точка-точка и точка-плоскость. Последний обычно лучше работает в структурированной среде. [7] [8]
Реализации [ править ]
- MeshLab - инструмент обработки сетки с открытым исходным кодом, который включает реализацию алгоритма ICP по стандартной общественной лицензии GNU.
- CloudCompare - инструмент обработки точек и моделей с открытым исходным кодом, который включает реализацию алгоритма ICP. Выпущено под Стандартной общественной лицензией GNU.
- PCL (библиотека облаков точек) - это платформа с открытым исходным кодом для n-мерных облаков точек и обработки трехмерной геометрии. Он включает несколько вариантов алгоритма ICP. [9]
- Реализации алгоритма ICP на C ++ с открытым исходным кодом доступны в библиотеках VTK , ITK и Open3D .
- libpointmatcher - это реализация ICP точка-точка и точка-плоскость, выпущенная под лицензией BSD.
- simpleICP - это реализация довольно простой версии алгоритма ICP на разных языках.
См. Также [ править ]
Ссылки [ править ]
- ^ Арун, Сомани; Томас С. Хуанг; Стивен Д. Блоштейн (1987). «Подгонка по методу наименьшего квадрата двух наборов трехмерных точек». Анализ шаблонов IEEE и машинный интеллект .
- ^ a b Besl, Paul J .; Н.Д. Маккей (1992). «Метод регистрации трехмерных фигур». IEEE Transactions по анализу шаблонов и машинному анализу . 14 (2): 239–256. DOI : 10.1109 / 34.121791 .
- ^ а б Чен, Ян; Жерар Медиони (1991). «Моделирование объектов путем регистрации многодиапазонных изображений». Image Vision Comput . 10 (3): 145–155. DOI : 10.1016 / 0262-8856 (92) 90066-C .
- ^ a b Чжан, Чжэнъю (1994). «Итерационное сопоставление точек для регистрации кривых и поверхностей произвольной формы». Международный журнал компьютерного зрения . 13 (12): 119–152. CiteSeerX 10.1.1.175.770 . DOI : 10.1007 / BF01427149 .
- ^ a b Русинкевич, Шимон; Марк Левой (2001). Эффективные варианты алгоритма ICP . Труды Третьей международной конференции по трехмерной цифровой визуализации и моделированию. Квебек, Квебек, Канада. С. 145–152. DOI : 10.1109 / IM.2001.924423 .
- ^ Померло, Франсуа; Колас, Фрэнсис; Зигварт, Роланд (2015). «Обзор алгоритмов регистрации облака точек для мобильной робототехники» . Основы и тенденции в робототехнике . 4 (1): 1–104. CiteSeerX 10.1.1.709.2212 . DOI : 10.1561 / 2300000035 .
- ↑ Kok-Lim Low (февраль 2004 г.). "Линейная оптимизация методом наименьших квадратов для регистрации поверхности ICP" точка-плоскость " (PDF) . Comp.nys.edu.sg . Технический отчет TR04-004, Департамент компьютерных наук, Университет Северной Каролины в Чапел-Хилл . Проверено 27 февраля 2017 . CS1 maint: discouraged parameter (link)
- ^ Франсуа Померло, Фрэнсис Колас, Ролан Сигварт и Стефан Магнена. Сравнение вариантов ПМС на реальных наборах данных. В автономных роботах, 34 (3), страницы 133–148, DOI: 10.1007 / s10514-013-9327-2, апрель 2013 г.
- ^ Хольц, Дирк; Ichim, Alexandru E .; Томбари, Федерико; Русу, Раду Б .; Бенке, Свен (2015). «Регистрация в библиотеке облака точек: модульная структура для трехмерного выравнивания» . Журнал IEEE Robotics Automation . 22 (4): 110–124. DOI : 10.1109 / MRA.2015.2432331 .