이 게시글은 장형기님의 SLAM 기술 면접 질문 100선에 대한 제 나름대로의 답을 정리한 것입니다.
ICP 알고리즘은 두 개의 3차원 point cloud간의 정합을 수행하는데 사용되는 대표적인 알고리즘입니다.
Iterative Closest Point의 준말이며 가장 가까운 point를 기준으로 정합을 시작하기 때문에 붙은 이름입니다.
보시는 것과 같이 같은 모양의 두 point cloud를 맞춰주는 알고리즘이라고 생각하시면 되겠습니다.
Point Cloud 통합: 서로 다른 센서에서 수집한 Point Cloud를 하나의 일관된 3D 모델로 통합하여, 전체적인 환경이나 객체의 정밀한 재구성을 가능하게 합니다.
이동 추적 및 위치 파악: 같은 센서에서 시간에 따라 얻어진 Point Cloud를 정합하여, 대상의 이동 경로나 로봇의 위치 변화를 정확히 추적할 수 있습니다.
Iterative Closest Point라는 이름에서 알 수 있듯이 반복적으로 정합을 합니다.
그 과정에 대해 자세히 알아보겠습니다.
초기 정렬(Initialization)
두 Point Cloud 간의 초기 위치와 자세를 설정합니다. 대략적인 정렬을 제공하여 알고리즘의 수렴 속도를 높이는데 도움이 됩니다.
최근접 점 매칭
한 point cloud의 각 점에 대해 다른 point cloud에서 가장 가까운 점을 찾습니다.
이 과정에서 매칭된 대응점(Correspondence)이 설정됩니다.
변환 계산
Correspondence 쌍을 기반으로, 두 포인트 클라우드를 정렬시키기 위한 최적의 회전과 평행 이동을 계산합니다.
적용 및 반복
계산된 변환을 포인트 클라우드에 적용하고, 정렬의 정확성이 만족될 때까지 또는 정해진 반복 횟수에 도달할 때까지 최근접 점 매칭과 변환 계산 단계를 반복합니다.
ICP 알고리즘이 종료되면 다양한 결과값을 줍니다. 그것은 다음과 같습니다.
최적의 변환 행렬
source point가 target point cloud에 가장 잘 정합되도록 하는 transformation matrix를 결과로 제공합니다.
정렬된 Point Cloud
ICP 알고리즘을 통해 변환 행렬이 계산되면, 이를 사용하여 원본 Point Cloud를 변환시켜 정렬된 상태로 만듭니다.
정합 오류 metrics
Mean Distance Error: Correspondence 간의 평균 거리 차이
Maximum Distance Error: Correspondece간의 거리 차이 중 가장 큰 값
Residual Sum of Squares: 전체 correspondence간의 거리 차이의 제곱합
G-ICP: gemoetric 정보를 활용하는 point to plane, plane to plane ICP를 통합하여 만든 ICP
Kiss-ICP: ICP를 더욱 효율적으로 만들어 실시간성을 증가시킨 ICP
Color ICP: 포인트 클라우드의 색상 정보를 활용하여 정합의 정확성을 높입니다.
훨씬 더 많은 ICP들이 있지만 다 어떠한 단서를 찾고 그것을 matching한다고 보시면 될 것 같습니다.
네 지금까지 ICP를 정리해보았습니다. 감사합니다.