콘텐츠로 이동
Search

Point Cloud Normal

포인트 클라우드의 법선 벡터 (Normal Vector; n-vector)

About

PLY 파일의 nx, ny, nz는 3차원 점 \((x, y, z)\)이 위치한 표면의 법선 벡터(Surface Normal Vector)를 구성하는 \(X, Y, Z\) 축 방향 성분을 의미합니다.

이산적인 점 구름 데이터에서 각 점이 위치한 국소적 표면이 "어느 방향을 바라보고 있는지(수직 직교 방향)"를 나타냅니다.

Point_Cloud_Normal_1.png
Point_Cloud_Normal_2.jpeg
Point_Cloud_Normal_Rabbit.png

1. 수학적 특징

  • 단위 벡터(Unit Vector): 순수한 방향 정보만을 표현하기 위해 벡터의 크기(길이)를 1로 정규화(Normalize)하여 저장합니다.

$$ \sqrt{nx^2 + ny^2 + nz^2} \approx 1 $$

  • 값의 범위: 각 성분은 보통 \([-1.0, 1.0]\) 범위의 부동 소수점(float/double) 값으로 표현됩니다.
  • PLY 헤더 정의 예시:
element vertex 50000
property float x
property float y
property float z
property float nx
property float ny
property float nz

2. 주요 역할 및 활용 분야

위치 좌표\((x, y, z)\)만으로는 표면의 입체적 방향성을 알 수 없기 때문에, 기하학적 형상 해석을 위해 법선 정보가 필수적으로 사용됩니다.

  • 3D 렌더링 및 셰이딩(Shading)
    • 광원으로부터 들어오는 빛의 입사각과 법선 벡터의 각도를 연산하여 표면 명암(Diffuse, Specular)을 계산합니다.
    • 법선 데이터가 없으면 3D 뷰어에서 굴곡이 식별되지 않고 평면처럼 렌더링됩니다.
  • 표면 재구성 (Surface Reconstruction / Meshing)
    • 포인트 클라우드를 다각형 메쉬(Polygon Mesh)로 변환하는 알고리즘(예: Poisson Surface Reconstruction, Ball-Pivoting)에서 물체의 내/외면을 구분하고 면을 생성하는 기준이 됩니다.
  • 스캔 정합 (Registration / Alignment)
    • 다각도에서 획득한 포인트 클라우드를 정합하는 Point-to-Plane ICP 알고리즘에 활용되며, 좌표 기반(Point-to-Point) 대비 수렴 속도와 정밀도가 높습니다.
  • 특징선 추출 및 곡률(Curvature) 분석
    • 인접한 점들 사이의 법선 벡터 변화율을 계산하여 평면 분할, 엣지(Edge) 검출, 곡률 변화(용접 비드, 균열 등)를 분석합니다.

3. 처리 시 주의사항

  1. 방향의 일관성(Normal Orientation): 국소 평면에 수직인 방향은 앞/뒤 두 가지(\(+\vec{n}\), \(-\vec{n}\))가 존재합니다. 센서 시점(Viewpoint)을 기준으로 물체 외측을 향하도록 정렬되지 않으면 메쉬 생성 시 면이 뒤집히거나(Flipped Normal) 구멍이 발생합니다.
  2. 직접 획득 vs 알고리즘 추정: 스캐너 하드웨어/드라이버에서 직접 계산되어 파일에 포함되기도 하지만, 좌표만 존재하는 경우 PCL이나 Open3D 등의 라이브러리를 통해 주변 k개 이웃 점의 PCA(주성분 분석)로 사후 추정해야 합니다.

See also

Favorite site

lastmod 2026-09-14created 2026-09-14author Zer0 sitemap