Post

[3차원 기하학] 3D 데이터 표현 방식

[3차원 기하학] 3D 데이터 표현 방식

3D 데이터 표현 방식 (3D Data Representation)

3D 데이터를 표현하는 방식을 분류하는 기준에는 크게 2가지가 있다.

명시적 (Explicit) 표현 vs 암시적 (Implicit) 표현

  • 명시적 표현: 물체의 표면이나 부피를 점, 선, 면 등의 기하학적 요소로 직접적으로 정의한다.
  • 암시적 표현: 물체의 표면을 직접 정의하지 않고, 공간상의 점이 어떤 함수를 만족할 때 그 점이 표면 위에 있다고 정의한다.

Non-Parametric 표현 vs Parametric 표현

  • Non-Parametric 표현: 표면을 함수로 정의하지 않고, 점이나 면의 집합으로 정의한다.
  • Parametric 표현: 표면 위의 점을 매개변수의 함수로 표현한다.

명시적 표현 (Explicit Representation)

명시적 표현은 점, 면 또는 $f(x,y)$와 같은 함수를 통해 객체의 표면을 직접 정의한다.

예를 들어, $f(x,y,z)=x^2+y^2+z^2$은 아래와 같은 저차원 파라미터 함수를 통해 나타낼 수 있다.

\[g(u,v)=(r\sin(v)\cos(u),r\sin(v)\sin(u),r\cos(v))\]

즉, $u$와 $v$만 있어도 3차원 공간 상의 반지름이 $r$인 구를 정의할 수 있다.

객체 표면 위의 점을 찾기 위해서는 $u$와 $v$ 값을 무작위로 뽑아서 함수에 넣기만 하면 되기 때문에, 포인트 샘플링이 매우 쉽다는 장점이 있다.

하지만 어떤 점이 주어졌을 때, 해당 점이 표면의 내부에 존재하는지 외부에 존재하는지 판별하기 어렵다는 단점이 있다.

fig1 출처: Graph representations of 3D data for machine learning

포인트 클라우드 (Point Cloud)

Point Cloud는 3D 객체를 표현하는 가장 간단한 방식으로, 단순히 3차원 공간상에 흩어져 있는 점들의 집합이다.

기본 단위는 점 (point)이며, 각 점은 기본적으로 $x,y,z$ 좌표를 가진다. 각 점은 RGB 색상, 점이 향하고 있는 방향 (표면 법선) 등의 추가적인 데이터를 포함할 수도 있다.

장점

  • 3D 스캐너, LiDAR 센서 등의 장비에서 나오는 가장 원본에 가까운 데이터 (raw data) 형태이다.
  • 단순히 점들의 집합이기 때문에, 위상 (topology)이나 구조의 제약 없이 어떤 복잡한 형태의 객체든 표현할 수 있다.

단점

  • 점들이 어떻게 연결되어 표면을 이루는지에 대한 정보가 전혀 없다. 이 때문에 흩어진 점들만으로는 객체의 표면과 내부를 구분하거나, 전체적인 모양을 파악하기 어렵다.
  • 점들 간의 연결 정보가 없어서, 객체를 단순화하거나 표면을 부드럽게 만드는 등의 후속 작업을 직접 수행하기 어렵다.
  • 스캔 방식에 따라 객체의 특정 부분에는 점이 과도하게 밀집되고, 다른 부분에는 점이 매우 적게 샘플링되는 등 샘플링 밀도가 불균형할 수 있다.

폴리곤 메시 (Polygonal Mesh)

Polygonal Mesh는 3D 객체의 표면을 작은 다각형으로 덮어 표현하는 방식이다.

기본 단위는 정점 (Vertex), 간선 (Edge), 면 (Face)이다. 정점은 3D 공간의 점이고, 간선은 두 정점을 연결하는 선, 면은 3개 이상의 간선으로 둘러싸인 면을 의미한다.

Point Cloud처럼 점의 집합을 갖는 동시에, 그 점들이 어떻게 연결되어 면을 이루는지에 대한 정보까지 포함하고 있다.

장점

  • 객체의 겉표면을 정의하는 데 최적화되어 있어서, 매우 복잡하고 상세한 디테일을 표현할 수 있다.
  • 정점, 간선, 면이 서로 어떻게 연결되어 있는지에 대한 정보가 명확하여, 세분화, 단순화 등 다양한 후속 작업을 수행하기에 용이하다.
  • GPU가 렌더링하기에 가장 효율적인 구조이다.

단점

  • Mesh를 구성하는 면의 형태나 한 정점에 연결된 이웃 정점의 수가 일정하지 않다. 이러한 불규칙성 때문에, 3D CNN처럼 규칙적인 그리드 입력을 가정하는 딥러닝 모델에는 직접 적용하기 어렵다.

Voxel

Voxel은 Volume과 Pixel의 합성어로서, 2D 이미지를 표현할 때 사용하는 픽셀 단위를 3차원 공간의 격자 단위로 확장시킨 개념이다.

기본 단위는 voxel이며, 이는 3차원 공간을 나눈 작은 정육면체 큐브 하나하나를 의미한다.

2D 픽셀이 $(x, y)$ 좌표와 색상 값을 갖는 것처럼, 3D 복셀은 $(x, y, z)$ 격자 좌표와 밀도, 색상, 재질 등의 데이터 값을 가진다.

장점

  • 규칙적인 격자 구조를 가져 데이터 처리가 단순하며, 특히 3D CNN과 같은 딥러닝 모델을 직접 적용하기에 매우 적합하다.
  • 물체 간의 합치기, 빼기 (Boolean operations)와 같은 부피 연산이 간단하다.

단점

  • 해상도가 $N$배 증가하면 필요한 저장 공간은 $N^3$으로 늘어나기 때문에, 메모리 사용량이 매우 크다.
  • 부드러운 곡면이나 정교한 세부 사항을 표현하는 데 한계가 있으며, 픽셀처럼 표면이 계단처럼 보이는 현상 (Aliasing)이 발생한다.

암시적 표현 (Implicit Representation)

객체 표면 위의 점 $(x,y,z)$를 직접 나열하는 대신, 공간상의 모든 점이 만족해야 하는 규칙 또는 함수를 정의한다.

예를 들어, 아래의 함수 하나로 구를 정의할 수 있다.

\[f(x,y,z)=x^2+y^2+z^2-1=0\]
  • $f(x,y,z)=0$ : 점이 표면 위에 있는 경우
  • $f(x,y,z)<0$ : 점이 객체 내부에 있는 경우
  • $f(x,y,z)>0$ : 점이 객체 외부에 있는 경우

객체 표면 위의 점을 찾으려면 $f(x,y,z)=0$이라는 방정식을 풀어야하기 때문에, 포인트 샘플링이 매우 어렵다는 단점이 있다.

하지만 점의 내부/외부 판별이 쉬우며, 두 함수의 합집합, 교집합 등을 간단한 논리 연산으로 만들 수 있다는 장점이 있다.

fig2 출처: CS231n - Lec15

This post is licensed under CC BY 4.0 by the author.