Point Cloud

**포인트 클라우드(point cloud)**는 3D 점들의 집합 {Xi}\{\mathbf{X}_i\}, XiR3\mathbf{X}_i \in \mathbb{R}^3이며, 색상, 표면 법선, 반사 강도(LiDAR)와 같은 점별 속성을 선택적으로 가질 수 있습니다. 이는 가장 단순하고 가장 보편적인 3D 지도 표현입니다: 연결 관계도 없고, 격자도 없이, 그저 환경 표면의 샘플들일 뿐입니다.

점들은 어디서 오는가

X=d[(ucx)/fx(vcy)/fy1]\mathbf{X} = d \begin{bmatrix} (u - c_x)/f_x \\ (v - c_y)/f_y \\ 1 \end{bmatrix}

하나의 VGA 깊이 프레임은 약 30만 개의 점을 만들어내므로, 밀집 클라우드는 메모리를 많이 소모하며 공간 인덱싱(kd-tree 또는 복셀 해시 맵, PCL이나 Open3D에서처럼)이 필요합니다.

핵심 연산들

다운샘플링(복셀 그리드 필터). 공간을 변의 길이가 \ell인 정육면체들로 분할하고, 정육면체 안의 모든 점을 그 중심점으로 대체합니다. 이는 밀도를 제한하고 중복을 제거하며, 이후 처리(ICP, 법선 추정)를 다룰 수 있게 만듭니다.

국소 PCA를 통한 법선 추정. 각 점에 대해 kk개의 최근접 이웃을 모아 국소 공분산을 구성합니다.

C=1ki=1k(pipˉ)(pipˉ)TC = \frac{1}{k} \sum_{i=1}^{k} (\mathbf{p}_i - \bar{\mathbf{p}})(\mathbf{p}_i - \bar{\mathbf{p}})^T

그리고 CC가장 작은 고유값에 대응하는 고유벡터를 표면 법선으로 취합니다(국소적으로 가장 적게 퍼져 있는 방향입니다). 고유값의 비율은 국소 평면성/곡률 척도도 제공하며, 이는 예컨대 LiDAR 오도메트리에서 에지 특징과 평면 특징을 선택하는 데 사용됩니다.

최근접 이웃 탐색. (ICP의 내부 루프인) 대응점 탐색은 빠른 NN 질의가 필요하며, kd-tree나 복셀 해싱이 이를 제공합니다.

정합(registration). 두 클라우드는 iqi(Rpi+t)2\sum_i \lVert \mathbf{q}_i - (R\mathbf{p}_i + \mathbf{t}) \rVert^2를 최소화하는 강체 변환 (R,t)(R, \mathbf{t})을 추정하여 정렬됩니다 — 대응점이 알려진 경우 교차 공분산 행렬의 SVD로 닫힌 형태로 풀리고, 그렇지 않은 경우 재매칭을 반복하며 풀립니다(ICP).

강점과 약점

이것이 밀집 SLAM 시스템이 대개 포인트 클라우드를 입력/중간 표현으로 사용하고, 지속적인 모델을 위해 이를 복셀(TSDF/점유) 맵이나 서펠 맵으로 융합하는 이유입니다.

SLAM에서의 의미

실습

관련 문서