Iteracyjny najbliższy punkt

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Iteracyjny najbliższy punkt (ang. Iterative Closest Point) – algorytm stosowany w celu zminimalizowania różnicy między dwoma chmurami punktów. ICP jest powszechnie stosowany do rekonstrukcji trójwymiarowego otoczenia na podstawie serii trójwymiarowych skanów otoczenia. Stosowany jest w architekturze łączenia kolejnych skanów budynków, celem utworzenia ich pełnego modelu 3D. W lokalizacji robotów, zwłaszcza do aktywnego planowania trasy (zazwyczaj tam gdzie odometria jest niewiarygodna ze względu na śliski teren) itp.

Algorytm jest bardzo prosty i jest powszechnie stosowany. Niestety dla części zastosowań jest zdecydowanie za wolny.

Działanie[edytuj | edytuj kod]

Wejście: dwa zbiory punktów, pierwsze oszacowanie transformacji, kryterium zatrzymania algorytmu. Wyjście: macierz transformacji.

Zasadnicze kroki algorytmu:

  1. sparowanie punktów między dwoma skanami według wybranego kryterium,
  2. oszacowanie parametrów transformacji za pomocą średnioformatowej funkcji kosztu,
  3. transformacja jednej z chmur według oszacowanej macierzy transformacji,
  4. powrót do początku, jeżeli błąd dopasowania obu chmur punktów jest powyżej zadanego kryterium.