Booil Jung

포인트 클라우드 데이터 구조의 종합적 분석

포인트 클라우드 데이터의 효율적인 처리, 분석, 저장을 위해서는 다양한 데이터 구조의 이해가 필수적이다. 이러한 데이터 구조들은 단순히 데이터를 담는 컨테이너를 넘어, 특정 연산의 효율성을 극대화하고 대규모 데이터셋을 관리 가능하게 만드는 핵심 기술이다. 본 장에서는 사용자의 초기 질의에 부응하여, 포인트 클라우드 처리에 사용되는 핵심 데이터 구조들의 이름을 체계적으로 분류하여 제시한다. 이 목록은 이어지는 상세 분석의 목차 역할을 수행한다.

메모리에 포인트 클라우드를 직접 적재하여 처리할 때 사용되는 가장 기본적인 구조이다.

비정형 포인트 클라우드에서 특정 영역 내의 포인트를 찾거나 가장 가까운 이웃을 검색하는 등의 공간 질의(spatial query) 속도를 높이기 위한 구조이다.

메인 메모리에 모두 적재할 수 없는 대용량 포인트 클라우드를 처리하기 위한 구조이다.

3D 딥러닝 모델이 포인트 클라우드를 입력으로 받기 위해 사용하는 데이터 표현 방식이다.

디스크에 데이터를 저장하거나 다른 시스템과 교환하기 위해 사용되는 파일 포맷 및 압축 프레임워크이다.

포인트 클라우드 알고리즘의 성능과 설계는 데이터가 활성 메모리에서 어떻게 표현되는지에 따라 근본적으로 달라진다. 데이터의 출처와 처리 목적에 따라 선택되는 두 가지 주요 인메모리 표현 방식, 즉 ‘비정형 포인트 리스트’와 ‘정형 포인트 클라우드’는 각각 명확한 장단점을 가지며, 후속 알고리즘의 복잡성과 효율성에 지대한 영향을 미친다.

비정형 포인트 리스트는 포인트 클라우드를 표현하는 가장 원초적인 방식이다. 이는 각 포인트 객체들의 단순한 목록 또는 배열로 구성되며, 각 객체는 최소한의 $X, Y, Z$ 좌표를 포함하고, 필요에 따라 RGB 색상, 강도(intensity), 타임스탬프 등의 추가 속성을 가질 수 있다.1 C++ 환경에서는 std::vector<PointT>와 같은 형태로 구현되는 것이 일반적이다.2

이 구조의 가장 큰 장점은 구현의 단순성과 유연성에 있다. 여러 번의 스캔이나 서로 다른 출처로부터 수집된 데이터를 쉽게 병합하고 표현할 수 있다. 하지만 본질적으로 “무질서(chaotic)”한 특성을 지닌다.3 즉, 리스트 내 포인트들의 순서는 공간적 인접성과 아무런 관련이 없다. 이로 인해 특정 포인트의 이웃을 찾는 작업은 계산 비용이 매우 높아진다. 별도의 공간 인덱싱 구조가 없다면, 가장 가까운 이웃을 찾기 위해 전체 데이터셋을 순회하는 브루트포스(brute-force) 탐색($O(N)$)이 필요하게 된다.

이러한 특성 때문에 비정형 포인트 리스트는 원본 센서의 그리드 구조가 깨진 데이터에 필수적으로 사용된다. 예를 들어, 여러 시점에서 촬영된 스캔 데이터를 정합(registration)하여 하나의 모델로 합치거나, 노이즈 제거 필터링을 적용하여 포인트가 일부 제거된 경우, 또는 애초에 그리드 구조를 갖지 않는 희소한(sparse) LiDAR 데이터의 경우 이 방식이 유일한 표현법이 된다.4

정형 포인트 클라우드는 디지털 이미지와 유사하게 포인트를 2D 그리드 또는 행렬과 같은 구조로 배열한다.2 이 구조는 명확한 width(너비)와 height(높이) 값을 가지며, 각 포인트는 (행, 열) 인덱스를 통해 직접 접근할 수 있다. 이러한 데이터 구조는 스테레오 카메라나 ToF(Time-of-Flight) 카메라와 같이 이미지 형태의 깊이 정보를 생성하는 센서로부터 자연스럽게 발생한다.2

정형 구조의 핵심적인 이점은 3D 공간에서의 이웃 관계가 2D 그리드 상의 이웃 관계로 그대로 보존된다는 점이다. 특정 포인트의 3D 공간상 이웃은 그리드 상에서도 인접한 픽셀에 해당한다.5 이 덕분에 최근접 이웃 탐색과 같은 연산이 매우 효율적으로 수행될 수 있다. 비정형 데이터에서 $O(\log N)$ 또는 $O(N)$의 복잡도를 갖는 탐색이 정형 데이터에서는 $O(1)$의 상수 시간 복잡도로 단축될 수 있다.2 또한, 이 구조는 2D 이미지 처리 알고리즘을 깊이 맵이나 컬러 맵에 직접 적용하고, 그 결과를 3D 포인트 클라우드에 다시 매핑하는 강력한 워크플로우를 가능하게 한다.5

정형 포인트 클라우드의 하위 집합으로 ‘투영 가능 포인트 클라우드(projectable point cloud)’가 있다. 이는 핀홀 카메라 모델에 따라 $(u,v)$ 픽셀 인덱스와 실제 3D 좌표 $(X,Y,Z)$ 사이에 $u = f \cdot x/z$, $v = f \cdot y/z$ 와 같은 직접적인 상관관계가 성립하는 경우를 말한다.2

두 표현 방식의 선택은 알고리즘의 성능과 데이터 처리의 방향성을 결정하는 중요한 분기점이다.

결론적으로, ‘정형’과 ‘비정형’의 구분은 단순한 데이터 구조의 선택을 넘어 데이터의 출처의미론적 무결성을 반영한다. 이는 원본 센서 프레임을 직접 처리하는 것과, 후처리 및 융합된 3D 모델을 다루는 것 사이의 근본적인 차이를 나타낸다. 비정형 포인트 클라우드는 더 일반적이고 넓은 범위의 데이터를 표현할 수 있지만, 그 ‘무질서’로 인해 성능 저하가 발생한다. 따라서 3장의 공간 인덱싱 구조들은 바로 이 비정형 데이터에 질서를 부여하여, 정형 구조에서 얻을 수 있었던 성능상의 이점을 되찾으려는 노력의 산물이라고 볼 수 있다.

비정형 포인트 클라우드의 무질서한 특성은 특정 공간 질의, 예를 들어 최근접 이웃 탐색(k-Nearest Neighbor, k-NN)이나 반경 내 탐색(radius search)의 효율성을 저해하는 주된 요인이다. 공간 인덱싱 구조는 이러한 문제를 해결하기 위해 데이터를 공간적 위치에 따라 체계적으로 구성하는 기술이다. 이 구조들은 대부분의 포인트 클라우드 처리 파이프라인에서 핵심적인 역할을 수행하며, 알고리즘의 성능을 비약적으로 향상시킨다.

공간 분할 그리드는 3D 공간 자체를 규칙적인 단위로 나누어 포인트를 관리하는 직관적인 방식이다.

복셀 그리드는 3D 공간을 ‘복셀(voxel)’이라 불리는 작은 정육면체들의 집합으로 분할하는 구조이다.6 입력된 포인트 클라우드는 이 그리드 위에 오버레이되며, 각 복셀에 속하는 모든 포인트들은 하나의 그룹으로 취급된다. 종종 이 그룹은 해당 포인트들의 무게중심(centroid)으로 근사되어 표현되는데, 이는 포인트 클라우드를 다운샘플링하고 노이즈를 줄이며 데이터를 정규화하는 매우 일반적인 방법이다.6

복셀화(voxelization) 과정은 비정형의 희소한 포인트 집합을 조밀하고 규칙적인 그리드 표현으로 변환한다.3 이러한 변환은 3D 컨볼루션 신경망(3D CNNs)과 같은 딥러닝 모델의 적용을 가능하게 하는 중요한 전처리 단계이다.3 그러나 이 변환은 정보 손실을 수반하는 과정이다. 양자화 오류(quantization error)가 발생하며, 특히 객체의 경계면에서 미세한 기하학적 디테일이 손실될 수 있다.10 따라서 복셀의 크기를 결정하는 것은 디테일 보존과 메모리/계산 비용 사이의 중요한 트레이드오프 관계에 있다.10 복셀 그리드는 다운샘플링, 3D CNN 입력 데이터 생성(예: VoxelNet), 그리고 대략적인 초기 정합 단계에서 널리 활용된다.3

해시 그리드는 희소한 복셀 그리드를 위한 메모리 최적화 기법이다. 광활한 공간 전체에 대해 가능한 모든 복셀을 위한 거대한 3D 배열을 할당하는 대신, 포인트가 존재하는 복셀의 정수 좌표 $(i, j, k)$만을 해시 함수를 통해 1차원 해시 테이블의 키로 매핑한다.

이 방식은 그리드 기반 접근법의 장점(빠른 이웃 탐색)을 유지하면서도, 넓고 희소한 장면에서 발생하는 과도한 메모리 비용 문제를 해결한다. 이는 다차원 공간 데이터를 효율적으로 저장하고 질의하기 위한 효과적인 방법론이다.11

트리 기반 구조는 공간을 계층적으로 분할하여 탐색 범위를 점진적으로 좁혀나가는 방식으로 효율적인 질의를 가능하게 한다.

KD-트리는 k-차원 공간의 점들을 재귀적으로 분할하는 이진 트리이다. 3D 포인트 클라우드의 경우, 각 분할은 축에 정렬된 평면(axis-aligned plane)을 기준으로 이루어지며, 분할 축은 통상적으로 X, Y, Z 순으로 순환된다.11

KD-트리는 저차원 공간에서의 최근접 이웃 탐색에 매우 효율적이며, 평균적으로 $O(\log N)$의 질의 시간을 보인다. 그러나 데이터의 차원이 높아질수록 성능이 급격히 저하되는 ‘차원의 저주(curse of dimensionality)’ 현상을 겪는다. 또한, 데이터 분포가 불균일할 경우 트리가 한쪽으로 치우쳐져 불균형해질 수 있으며, 이는 최악의 경우 $O(N)$의 탐색 시간으로 이어진다.11 포인트의 추가나 삭제가 트리의 전반적인 재구성을 요구하기 때문에, KD-트리는 주로 정적인 포인트 클라우드에 적합하다.

옥트리는 3D 공간을 재귀적으로 8개의 정육면체 영역, 즉 옥턴트(octant)로 세분화하는 트리 구조이다.11 트리의 각 노드는 공간상의 특정 정육면체 영역을 나타낸다. 이 분할은 각 노드(옥턴트)에 포함된 포인트의 수가 특정 임계값 이하가 되거나, 최소 해상도에 도달할 때까지 계속된다.

옥트리의 공간 분할은 데이터의 중앙값(median)이 아닌 공간 자체를 기준으로 하므로, KD-트리에 비해 불균일한 데이터 분포에 더 강건하다. 이러한 적응적 특성 덕분에 옥트리는 포인트 클라우드 압축, 레벨 오브 디테일(Level-of-Detail, LoD) 렌더링, 이웃 탐색 등 광범위한 응용 분야에서 널리 사용된다.11

KD-트리와 옥트리가 공간을 분할하는 방식인 것과 대조적으로, R-트리는 객체 기반의 구조이다. R-트리는 인접한 포인트나 객체들을 최소 경계 사각형(Minimum Bounding Rectangle, 3D에서는 Box)으로 그룹화하고, 다시 이 경계 상자들을 재귀적으로 그룹화하여 계층 구조를 만든다.11 R*-트리는 더 정교한 삽입 알고리즘을 사용하여 노드 간의 겹침을 최소화하고 더 균형 잡힌 트리를 생성함으로써 질의 성능을 향상시킨 R-트리의 최적화된 변형이다.

R-트리는 포인트의 삽입 및 삭제와 같은 동적 데이터를 처리하는 데 탁월한 성능을 보이며, 포인트가 아닌 폴리곤과 같은 기하 객체의 공간 질의에도 매우 효과적이다. 이러한 특성으로 인해 포인트 클라우드의 최근접 이웃 탐색에서 가장 효율적인 방법 중 하나로 간주된다.11

BVH는 기하 객체 집합에 대한 트리 구조로, 각 노드는 자신의 자식 노드에 속한 모든 객체들을 완전히 포함하는 단순한 경계 볼륨(예: 구, 축 정렬 경계 상자(AABB))으로 감싼다.12 이 계층 구조는 재귀적으로 구축되어, 최종적으로 루트 노드 하나가 전체 씬을 감싸는 단일 경계 볼륨을 형성한다.12

BVH는 레이 트레이싱(ray tracing)과 충돌 감지(collision detection)의 성능을 가속화하는 핵심 기술이다.12 예를 들어, 레이 트레이싱 과정에서 광선이 어떤 부모 노드의 경계 볼륨과 교차하지 않으면, 그 노드에 속한 모든 자식 객체들은 더 이상 검사할 필요가 없으므로 해당 서브트리 전체를 가지치기(pruning)하여 엄청난 양의 계산을 절약할 수 있다.14 고품질의 BVH는 표면적 휴리스틱(Surface Area Heuristic, SAH)과 같은 기법을 사용하여 광선과의 교차 확률을 최소화하는 방향으로 구축된다.16 Point Cloud Library(PCL)는 BVH 클래스 구현을 제공한다.17

BSP 트리는 임의의 초평면(3D에서는 평면)을 사용하여 공간을 재귀적으로 분할하는 트리이다. 각 노드는 공간의 볼록(convex)한 영역을 나타낸다.18

BSP 트리는 계산 기하학(computational geometry) 문제 해결에 매우 강력한 도구이다. 포인트 클라우드 처리 분야에서는 특히 LiDAR 데이터로부터 건물 모델을 재구성하는 데 유용하게 사용된다. BSP 트리의 분할 평면을 건물의 지붕이나 벽과 같은 평면 요소에 정렬시킬 수 있기 때문이다.19 이 구조는 건물 객체를 여러 개의 평면 클러스터로 분할하는 강건한 프레임워크를 제공하며 19, 다각형 내 점 포함 여부 테스트(point-in-polygon test) 18나 포인트 클라우드 모핑(morphing) 20 등에도 활용된다.

그래프 기반 표현은 점들 간의 관계를 명시적으로 모델링하여 더 높은 수준의 컨텍스트 정보를 포착하는 데 중점을 둔다.

SPG는 대규모 포인트 클라우드의 시맨틱 분할(semantic segmentation) 문제를 해결하기 위해 설계된 현대적이고 고수준의 구조이다.21 이 방식의 첫 단계는 전체 포인트 클라우드를 기하학적으로 단순하고 동질적인 작은 클러스터들의 집합, 즉 “슈퍼포인트(superpoints)”로 분할하는 것이다. 그 다음, 각 슈퍼포인트를 노드로, 인접한 슈퍼포인트들을 엣지로 연결하여 그래프를 구축한다. 이 엣지에는 두 슈퍼포인트 간의 관계를 설명하는 풍부한 컨텍스트 정보가 속성으로 부여될 수 있다.21

SPG는 매우 강력한 추상화 기법이다. 수백만 개의 개별 포인트를 처리하는 문제를 수천 개의 슈퍼포인트 노드를 처리하는 문제로 축소시킨다. 이 덕분에 그래프 컨볼루션 네트워크(Graph Convolutional Networks, GCN)와 같은 정교한 기법을 적용하여 객체 부분들 간의 컨텍스트 관계를 학습하는 것이 계산적으로 가능해진다. 결과적으로 미세한 디테일과 장거리 컨텍스트 정보를 동시에 고려할 수 있게 되어, 대규모 씬의 이해도를 획기적으로 높인다.21

이러한 공간 인덱싱 구조들의 발전 과정은 추상화와 전문화가 심화되는 명확한 경향을 보여준다. 단순하고 고정된 공간 분할(그리드)에서 시작하여, 데이터에 적응하는 분할(KD-트리, 옥트리)로, 그리고 객체 중심의 그룹화(R-트리, BVH)로 발전했다. 최종적으로는 의미론적으로 인식 가능한 컨텍스트 그래프(SPG)로 진화하였다. 이는 단순히 질의 속도를 높이는 것을 넘어, 주어진 과업이 요구하는 추상화 수준에 맞춰 데이터 구조가 발전해왔음을 시사한다. 간단한 k-NN 탐색에는 KD-트리가, 레이 트레이싱에는 BVH가, 그리고 대규모 씬의 의미론적 이해에는 SPG가 필요한 것처럼, 데이터 구조의 선택은 곧 문제 해결의 추상화 수준을 결정하는 행위와 같다.

표 1: 공간 인덱싱 구조 비교 분석

구조 핵심 원리 구축 시간 (평균/최악) k-NN 질의 시간 (평균/최악) 범위 질의 시간 (평균/최악) 메모리 오버헤드 동적 데이터 지원 주요 사용 사례
KD-Tree 축 정렬 평면을 이용한 재귀적 이진 공간 분할 $O(N \log N)$ / $O(N^2)$ $O(\log N)$ / $O(N)$ $O(N^{1-1/k} + M)$ / $O(N)$ 낮음 나쁨 정적 데이터 k-NN 탐색
Octree 공간을 8개 옥턴트로 계층적, 적응적 분할 $O(N \log N)$ $O(\log N)$ / $O(N)$ $O(\log N + M)$ / $O(N)$ 중간 보통 압축, LoD 렌더링, 이웃 탐색
R*-Tree 객체 중심의 최소 경계 상자 계층화 $O(N \log N)$ $O(\log N)$ / $O(N)$ $O(\log N + M)$ / $O(N)$ 중간 우수 GIS, 동적 데이터베이스 질의
BVH 객체를 감싸는 경계 볼륨의 계층 구조 $O(N \log N)$ - $O(\log N)$ 중간 나쁨 레이 트레이싱, 충돌 감지
Voxel Grid 3D 공간의 균일한 정육면체 분할 $O(N)$ $O(1)$ $O(R^3)$ 높음 (해상도 의존) 보통 다운샘플링, 3D 딥러닝 입력
SPG 기하학적 분할 후 컨텍스트 그래프 생성 $O(N)$ - - 높음 나쁨 대규모 시맨틱 분할

주: $N$은 포인트 수, $k$는 차원, $M$은 결과 포인트 수, $R$은 질의 반경을 나타냄. 질의 시간은 구조의 균형 상태에 따라 달라질 수 있음.

현실 세계의 포인트 클라우드 데이터셋, 특히 항공 LiDAR 매핑이나 대규모 도시 환경 스캔으로부터 얻어진 데이터는 수십억 개의 포인트를 포함하는 경우가 흔하다.1 이러한 데이터셋은 일반적인 컴퓨터의 메인 메모리(RAM) 용량을 초과하기 때문에, 기존의 인메모리(in-memory) 방식으로는 처리할 수 없다. 이 문제를 해결하기 위해 “외장 메모리(out-of-core)” 또는 “스트리밍” 알고리즘과 이를 지원하는 데이터 구조가 필요하다.

외장 메모리 처리의 핵심 과제는 데이터셋 전체를 메모리에 올리지 않고 디스크에서 데이터의 일부(청크)를 순차적으로 읽어와 연산을 수행하는 것이다.23 이 경우, 시스템의 성능 병목 현상은 CPU 연산 속도에서 디스크 입출력(I/O) 속도로 전환된다. 따라서 외장 메모리 데이터 구조의 주된 목표는 디스크 접근 횟수를 최소화하는 것이다. 이를 위해 공간적으로 인접한 포인트들이 디스크 상에서도 물리적으로 가깝게 위치하도록 데이터를 구성하는 것이 중요하다.

대규모 데이터셋을 효율적으로 관리하기 위한 가장 효과적인 전략 중 하나는 하이브리드 또는 다단계 인덱싱 기법을 사용하는 것이다. 이 접근법은 전체 공간을 먼저 거친(coarse) 해상도의 상위 레벨 그리드로 분할한다. 그런 다음, 이 그리드의 각 셀 내부에 옥트리나 쿼드트리(quadtree)와 같은 더 세밀한(fine-grained) 인덱스 구조를 독립적으로 구축한다.23

이러한 계층적 구조는 대규모 문제를 우아하게 해결한다. 공간 질의가 들어오면, 먼저 최소한의 I/O로 상위 레벨 그리드 인덱스를 읽어와 관련 있는 셀들을 식별한다. 그 후, 해당 셀들에 대한 데이터와 세부 인덱스만을 메모리로 로드하여 정밀한 처리를 수행한다. 이 방식은 수십억 개의 포인트에 대해 단일 트리를 구축하는 것과 비교하여 인덱스 구축 시간 복잡도를 크게 낮추는 효과도 있다. 예를 들어, 그리드 기반 분할을 먼저 적용하면 계층적 인덱스 구축의 시간 복잡도를 $O(N \log N)$에서 $O(N \log(N/k))$ ($k$는 그리드 셀의 수) 수준으로 효율적으로 줄일 수 있다.23

실제 적용 사례로, pytreedb 라이브러리는 대규모 수목 포인트 클라우드 컬렉션을 관리하기 위해 MongoDB와 같은 데이터베이스 백엔드를 사용한다. 이는 사실상 외장 메모리 관리 시스템 역할을 수행하며, 대용량 데이터에 대한 효율적인 저장 및 질의 인터페이스를 제공한다.24

대규모 씬의 경우, 효율적인 압축은 저장 및 전송 비용을 절감하는 데 매우 중요하다.25 압축에 사용되는 데이터 구조는 데이터의 희소성과 규모를 효과적으로 처리할 수 있어야 한다. 옥트리와 같은 계층적 구조는 많은 기하 기반 압축 기법의 근간을 이룬다. 옥트리는 공간의 점유 여부를 계층적으로 표현하므로 점진적 전송(progressive streaming)과 효율적인 인코딩을 가능하게 한다. 최근에는 딥러닝 기반의 압축 방법도 부상하고 있는데, 이는 신경망을 사용하여 데이터의 간결한 표현(compact representation)을 학습하는 방식이다.8

결론적으로, 데이터 규모가 일정 수준을 넘어서면 포인트 클라우드 데이터 구조의 역할은 인메모리 연산 가속기에서 데이터 관리 및 I/O 최적화 시스템으로 전환된다. 문제는 “어떻게 포인트를 빨리 찾을 것인가”에서 “어떻게 디스크에서 포인트를 읽는 것을 피할 것인가”로 바뀐다. 이는 대규모 포인트 클라우드 처리가 메모리 계층 관리와 I/O 최소화가 핵심인 데이터베이스 설계 및 운영 체제의 원리와 수렴하게 됨을 보여준다.

딥러닝, 특히 컨볼루션 신경망(CNN)은 이미지와 같이 규칙적인 그리드 구조를 가진 데이터에서 엄청난 성공을 거두었다. 그러나 포인트 클라우드는 본질적으로 비정형(unstructured), 무순서(unordered), 희소(sparse)한 특성을 지녀, 기존 딥러닝 모델에 직접 적용하기 어렵다.3 이 근본적인 불일치를 해결하기 위해 다양한 데이터 표현 방식(즉, 데이터 구조)이 제안되었으며, 이는 3D 딥러닝 모델의 아키텍처를 결정하는 매우 중요한 기초가 된다.

딥러닝 모델을 위한 데이터 구조 선택은 기하학적 정보의 충실도와 계산의 규칙성 사이의 트레이드오프 관계에 있다. 각 표현 방식은 이 딜레마를 해결하기 위한 서로 다른 전략을 나타내며, 이는 사용 가능한 신경망 아키텍처의 종류를 결정한다.

이 접근법은 3D 문제를 우회하여 포인트 클라우드를 하나 이상의 2D 이미지로 투영하는 방식을 택한다. 예를 들어, 여러 각도에서 본 다중 시점(multi-view) 이미지, 위에서 내려다본 조감도(Bird’s-Eye View, BEV), 또는 센서로부터의 거리를 이미지로 표현한 거리 뷰(range view) 등이 있다.3 이렇게 생성된 2D 이미지들은 ResNet과 같은 표준 2D CNN을 통해 처리될 수 있다.

이 방식은 계산적으로 효율적이며, 방대한 이미지 데이터로 사전 학습된 강력한 2D 모델을 활용할 수 있다는 큰 장점이 있다. 그러나 투영 과정에서 3D 기하 정보가 필연적으로 손실되며, 가려짐(occlusion) 현상으로 인해 중요한 정보가 누락될 수 있다.26

이 방법은 포인트 클라우드를 복셀화하여 규칙적인 3D 그리드로 변환하고, 이를 3D CNN으로 처리한다.3 VoxelNet과 같은 모델이 이 접근법의 대표적인 예이다.

복셀 기반 방법은 투영 기반 방법보다 3D 위상(topology) 정보를 더 잘 보존한다. 하지만 고해상도 그리드의 경우 계산 및 메모리 비용이 기하급수적으로 증가하는 문제가 있다. 또한, 복셀화 단계에서 발생하는 양자화 오류와 희소한 데이터를 효과적으로 처리하기 어렵다는 단점이 있다.3

PointNet의 등장은 3D 딥러닝의 패러다임을 전환시켰다.3 이 접근법은 원본의 비정형 포인트 리스트를 직접 처리한다. 각 포인트에 대해 독립적으로 특징을 학습하기 위해 공유된 다층 퍼셉트론(Multi-Layer Perceptrons, MLPs)을 사용하고, 그 결과들을 최대 풀링(max pooling)과 같은 대칭 함수(symmetric function)로 통합하여 입력 포인트의 순서에 상관없이 일관된 결과를 내는 순서 불변성(permutation invariance)을 확보한다.

이 방식은 포인트 데이터의 본질적인 특성을 존중하는 혁신적인 접근법이다. 그러나 초기 PointNet은 각 포인트를 독립적으로 처리하기 때문에 지역적인 기하학적 컨텍스트를 포착하는 데 한계가 있었다. 후속 연구인 PointNet++는 이 문제를 해결하기 위해 계층적 구조를 도입했다.3 이 모델은 중첩된 지역 포인트 집합에 대해 PointNet을 재귀적으로 적용함으로써, 다양한 스케일의 지역적 특징을 효과적으로 학습한다.

최신 기술(State-of-the-art) 모델들은 종종 여러 표현 방식의 장점을 결합한 하이브리드 구조를 채택한다. 이는 단일 표현 방식만으로는 최적의 성능을 달성하기 어렵다는 인식이 반영된 결과이다.

이러한 하이브리드 접근법들은 효율성, 정밀도, 그리고 컨텍스트 이해 능력 사이의 균형을 맞추기 위해 네트워크의 다른 단계에서 서로 다른 데이터 구조를 전략적으로 사용한다.

3D 딥러닝의 발전사는 데이터와 알고리즘 간의 “대화” 과정으로 요약할 수 있다. 초기 방법들은 데이터를 알고리즘에 맞추려 했다(투영, 복셀화). 반면, 현대적인 방법들은 데이터의 본질을 존중하는 알고리즘을 설계하거나(PointNet), 양쪽의 장점을 모두 활용하는 하이브리드 방식을 채택한다. 이는 각 표현 방식의 장단점에 대한 성숙한 이해를 바탕으로, 문제에 가장 적합한 도구를 복합적으로 사용하는 방향으로 분야가 발전하고 있음을 보여준다.

포인트 클라우드 데이터가 디스크에 저장되거나 네트워크를 통해 전송될 때 사용되는 데이터 구조, 즉 파일 포맷은 서로 다른 소프트웨어와 처리 단계 간에 데이터를 전달하는 매개체 역할을 한다. 이러한 포맷의 발전은 3D 데이터 산업의 성숙 과정을 반영하며, 단순한 좌표 목록에서 시작하여 풍부한 메타데이터를 포함하는 표준화된 바이너리 포맷, 그리고 최종적으로는 정교한 압축 시스템으로 진화해왔다.

표 2: 포인트 클라우드 파일 포맷 특징 매트릭스

포맷 표현 방식 표준화 기관 자체 압축 메타데이터 지원 확장성 주요 사용 분야
XYZ ASCII 없음 없음 최소 나쁨 일반/단순 데이터 교환
PLY ASCII, 바이너리 Stanford 없음 유연한 헤더 좋음 그래픽스, 연구
PCD ASCII, 바이너리 PCL 없음 PCL 특화 헤더 좋음 로보틱스, PCL 생태계
LAS/LAZ 바이너리 ASPRS LAZ (무손실) 풍부한 표준 필드 제한적 측량, GIS, 임업
E57 바이너리 ASTM 지원 (손실/무손실) XML 기반 계층 구조 우수 데이터 보관, 상호운용성

MPEG PCC는 증강현실(AR), 가상현실(VR), 몰입형 원격 현존(telepresence)과 같은 응용 분야에서 요구되는 포인트 클라우드의 효율적인 압축 및 전송 문제를 해결하기 위해 MPEG에서 개발한 국제 표준이다.1

MPEG는 포인트 클라우드의 종류에 따라 특성이 다르다는 점을 인식하고, 두 가지 주요 접근법을 개발했다. 이 구분은 2장에서 다룬 희소/밀집, 비정형/정형의 개념과 직접적으로 연결된다.

이러한 표준화 노력은 고품질 3D 콘텐츠를 현대 네트워크를 통해 스트리밍하는 것을 가능하게 하는 핵심적인 기술 기반이다. 이는 단순한 파일 저장을 넘어, 실시간 상호작용을 위한 데이터 전송 시스템으로서의 데이터 구조를 정의한다.

지금까지 논의된 다양한 포인트 클라우드 데이터 구조들은 각각의 고유한 장단점과 적용 분야를 가진다. “최고의” 데이터 구조란 존재하지 않으며, 최적의 선택은 데이터의 특성, 과업의 요구사항, 그리고 시스템의 제약 조건 사이의 상황에 맞는 타협점이다. 본 장에서는 지금까지의 분석을 종합하여, 개발자와 연구자가 자신의 목적에 맞는 데이터 구조를 전략적으로 선택할 수 있도록 의사결정 프레임워크를 제공하고, 미래 기술 동향을 조망한다.

적절한 데이터 구조를 선택하기 위해 개발자는 다음의 질문들을 스스로에게 던져보아야 한다.

포인트 클라우드 데이터 구조 분야는 계속해서 진화하고 있으며, 다음과 같은 방향으로 발전할 것으로 예상된다.

결론적으로, 포인트 클라우드 데이터 구조의 세계는 단일한 정답이 없는, 끊임없이 진화하는 영역이다. 최적의 솔루션은 문제의 본질을 깊이 이해하고, 가용한 도구들의 장단점을 명확히 파악하여, 주어진 제약 조건 하에서 가장 현명한 조합을 찾아내는 능력에 달려있다. 미래는 단일한 완벽한 구조를 찾는 것이 아니라, 여러 구조를 지능적으로 결합하고, 필요에 따라 명시적 기하학을 학습된 암시적 표현으로 대체하는 유연한 사고에서 비롯될 것이다.

  1. Point cloud - Wikipedia, 8월 1, 2025에 액세스, https://en.wikipedia.org/wiki/Point_cloud
  2. Getting Started / Basic Structures - Point Cloud Library 1.15.0-dev documentation, 8월 1, 2025에 액세스, https://pointclouds.org/documentation/tutorials/basic_structures.html
  3. Voxel vs Point Based Approaches in 3D Deep Learning: Who wins a fight?, 8월 1, 2025에 액세스, https://www.thinkautonomous.ai/blog/voxel-vs-points/
  4. Comprehensive Guide to Point Cloud Data in Computer Vision - Voxel51, 8월 1, 2025에 액세스, https://voxel51.com/blog/comprehensive-guide-point-cloud-data
  5. Point Cloud Structure and Output Formats - ZIVID KNOWLEDGE BASE documentation, 8월 1, 2025에 액세스, https://support.zivid.com/reference-articles/point-cloud-structure-and-output-formats.html
  6. Downsampling a PointCloud using a VoxelGrid filter - Point Cloud Library, 8월 1, 2025에 액세스, https://pointclouds.org/documentation/tutorials/voxel_grid.html
  7. Voxel Grid-Based Fast Registration of Terrestrial Point Cloud - MDPI, 8월 1, 2025에 액세스, https://www.mdpi.com/2072-4292/13/10/1905
  8. Dynamic Downsampling Algorithm for 3D Point Cloud Map Based on Voxel Filtering - MDPI, 8월 1, 2025에 액세스, https://www.mdpi.com/2076-3417/14/8/3160
  9. Geometry-Aware and Cross-Path Feature Hybrid Enhanced State Space Model for Point Cloud Classification - arXiv, 8월 1, 2025에 액세스, https://arxiv.org/html/2505.11099v1
  10. Mastering 3D Computer Vision & Point Cloud Processing-Mod 11 - Voxel Grid to Point Cloud Conversion with Code - Rajavel PM (RPM), 8월 1, 2025에 액세스, https://pmrajavel.medium.com/mastering-3d-computer-vision-point-cloud-processing-mod-11-voxel-grid-to-point-cloud-conversion-51442b914f54
  11. A Hybrid Spatial Indexing Structure of Massive Point Cloud Based on Octree and 3D R*-Tree - MDPI, 8월 1, 2025에 액세스, https://www.mdpi.com/2076-3417/11/20/9581
  12. Bounding volume hierarchy - Wikipedia, 8월 1, 2025에 액세스, https://en.wikipedia.org/wiki/Bounding_volume_hierarchy
  13. Redalyc.A literature review of bounding volumes hierarchy focused on collision detection, 8월 1, 2025에 액세스, https://www.redalyc.org/pdf/2913/291339265004.pdf
  14. Bounding Volume Construction using Point Clouds - CiteSeerX, 8월 1, 2025에 액세스, https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=36d9e6537d66e3ed75f59a4e04ad99b73fc3ff91
  15. citeseerx.ist.psu.edu, 8월 1, 2025에 액세스, [https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=36d9e6537d66e3ed75f59a4e04ad99b73fc3ff91#:~:text=This%20bounding%20volume%20hierarchy%20(BVH,the%20children%20of%20the%20node.](https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=36d9e6537d66e3ed75f59a4e04ad99b73fc3ff91#:~:text=This bounding volume hierarchy (BVH,the children of the node.)
  16. Constructs Bounding Volume Hierarchy(BVH) with Surface Area Heuristic(SAH) in Python, 8월 1, 2025에 액세스, https://python.plainenglish.io/constructs-bounding-volume-hierarchy-bvh-with-surface-area-heuristic-sah-in-python-89c14afb2f03
  17. pcl::recognition::BVH< UserData > Class Template Reference - Point Cloud Library, 8월 1, 2025에 액세스, https://pointclouds.org/documentation/classpcl_1_1recognition_1_1_b_v_h.html
  18. Fast point in polygon test using binary space partitioning tree - Stack Overflow, 8월 1, 2025에 액세스, https://stackoverflow.com/questions/25313878/fast-point-in-polygon-test-using-binary-space-partitioning-tree
  19. Using a Binary Space Partitioning Tree for Reconstructing Polyhedral Building Models from Airborne Lidar Data - CiteSeerX, 8월 1, 2025에 액세스, https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=25fd0dd8a8e0cde33a8b48684e8ec56b6914ea7f
  20. BSP tree for figure 1 (a). Normal vector of the split plate is shown… - ResearchGate, 8월 1, 2025에 액세스, https://www.researchgate.net/figure/BSP-tree-for-figure-1-a-Normal-vector-of-the-split-plate-is-shown-for-every-inner-node_fig17_228983450
  21. Large-Scale Point Cloud Semantic Segmentation With Superpoint Graphs - CVF Open Access, 8월 1, 2025에 액세스, https://openaccess.thecvf.com/content_cvpr_2018/papers/Landrieu_Large-Scale_Point_Cloud_CVPR_2018_paper.pdf
  22. Large-scale Point Cloud Semantic Segmentation with Superpoint Graphs - arXiv, 8월 1, 2025에 액세스, https://arxiv.org/abs/1711.09869
  23. Design of point cloud data structures for efficient processing of large-scale point clouds - SPIE Digital Library, 8월 1, 2025에 액세스, https://www.spiedigitallibrary.org/conference-proceedings-of-spie/13069/130690E/Design-of-point-cloud-data-structures-for-efficient-processing-of/10.1117/12.3023319.full
  24. 3dgeo-heidelberg/pytreedb: Python package providing a file and object-based database to store tree objects. - GitHub, 8월 1, 2025에 액세스, https://github.com/3dgeo-heidelberg/pytreedb
  25. Efficient Large-Scale Point Cloud Geometry Compression - MDPI, 8월 1, 2025에 액세스, https://www.mdpi.com/1424-8220/25/5/1325
  26. SyS3DS: Systematic Sampling of Large-Scale LiDAR Point Clouds for Semantic Segmentation in Forestry Robotics - MDPI, 8월 1, 2025에 액세스, https://www.mdpi.com/1424-8220/24/3/823
  27. PCTreeS - 3D Point Cloud Tree Species Classification Using Airborne LiDAR Images, 8월 1, 2025에 액세스, https://arxiv.org/html/2412.04714v1
  28. Enhanced Semantic Segmentation for Large-Scale and Imbalanced Point Clouds - arXiv, 8월 1, 2025에 액세스, https://arxiv.org/html/2409.13983v1
  29. PointMT: Efficient Point Cloud Analysis with Hybrid MLP-Transformer Architecture - arXiv, 8월 1, 2025에 액세스, http://arxiv.org/html/2408.05508
  30. HALNet: Partial Point Cloud Registration Based on Hybrid Attention and Deep Local Features - PubMed Central, 8월 1, 2025에 액세스, https://pmc.ncbi.nlm.nih.gov/articles/PMC11086131/
  31. Point Clouds Data Formats - nanoCAD, 8월 1, 2025에 액세스, https://fr.nanocad.com/learning/online-help/3dscan/point-clouds-data-formats/
  32. Tree extraction using point clouds - ArcGIS StoryMaps, 8월 1, 2025에 액세스, https://storymaps.arcgis.com/stories/929dbefd3ede4186bd0bcda76ede454a
  33. Point Cloud Tree Data - Esri Community, 8월 1, 2025에 액세스, https://community.esri.com/t5/arcgis-pro-questions/point-cloud-tree-data/td-p/1367022
  34. MPEG-I: Geometry-based Point Cloud Compression, 8월 1, 2025에 액세스, https://www.mpeg.org/standards/MPEG-I/9/