sailorCat
카테고리
작성일
2026. 6. 17. 03:38
작성자
sailorCat
728x90

포인트 클라우드(Point Cloud)는 LiDAR 센서나 3D 스캐너로 수집한 3차원 공간상의 점(Point)들의 집합 

각 점은 X, Y, Z의 기하학적 좌표를 가지며, 필요에 따라 RGB 색상이나 반사 강도 같은 추가 속성도 포함

공간 상의 이산적인 데이터 포인트 집합

 

LiDAR 포인트 클라우드 데이터 형식은 주로 LAS, LAZ, PCD, PLY 형식을 사용
LiDAR 센서는 단순히 위치(X, Y, Z) 정보뿐만 아니라 레이저의 반사 강도, 반사 횟수 등 센서 고유의 메타데이터를 함께 기록하기 때문에 일반 3D 모델링 파일과 다른 전용 포맷을 활용

1. 대표적인 LiDAR 데이터 파일 형식
포맷 확장자 주요 특징 및 용도형태 종류
.LAS 지형 정보(GIS) 표준 포맷 (미국사진측량원격탐사학회 ASPRS 표준) 이진(Binary)
.LAZ LAS 파일을 압축한 포맷 (용량을 최대 90% 가까이 줄여줌) 이진(Binary)
.PCD Point Cloud Library (PCL) 전용 포맷 (로봇 및 AI 연구용) 텍스트 / 이진
.PLY 다각형 메시 겸용 포맷 (컬러 정보 및 속성 확장이 자유로움) 텍스트 / 이진
.TXT / .XYZ 가장 단순한 텍스트 포맷 (호환성이 좋으나 대용량에 비효율적) 텍스트

 

2. LiDAR 데이터 벡터 구조 (LAS 구조 기준)
LiDAR 데이터는 한 점당 다음과 같은 확장된 형태의 벡터 데이터로 저장

 

\(\text{LiDAR\ Point\ Vector}=\left[\begin{matrix}X&Y&Z&I&R_{n}&N_{r}&C&\alpha &\dots \end{matrix}\right]\)
  • X, Y, Z (위치): 지구상의 절대 좌표(UTM 등) 또는 센서 기준의 상대 좌표 (단위: m)
  • Intensity (강도): 레이저가 물체에 부딪혀 돌아온 빛의 세기 (재질 식별용)
  • Return Number (반사 순서): 하나의 레이저 펄스가 여러 물체(예: 나뭇잎 → 땅)에 부딪혀 돌아올 때 몇 번째 신호인지 기록 (\(R_{n}\))
  • Number of Returns (총 반사 횟수): 해당 레이저 펄스가 총 몇 번 분할되어 돌아왔는지 기록 (\(N_{r}\))
  • Classification (분류): 점이 속한 객체 종류 (0: 미분류, 1: 가공되지 않음, 2: 지면, 3: 낮은 식생, 5: 높은 식생, 6: 건물 등)
  • Scan Angle (스캔 각도): 레이저가 발사된 거울의 회전 각도 (α)

 

3. 실제 데이터 저장 예시
이진(Binary) 포맷 (LAS/LAZ/PCD Binary)
컴퓨터가 빠르게 읽을 수 있도록 0과 1의 바이트 구조로 정렬되어 있어 사람이 직접 메모장으로 읽을 수 없습니다. 대용량 LiDAR 데이터를 실시간 처리할 때 필수
텍스트(ASCII) 포맷 (PCD ASCII / XYZ 예시)
헤더 구조 뒤에 공백으로 구분된 벡터 데이터가 나열됩니다.
text
# .PCD 파일 포맷 예시
VERSION 0.7
FIELDS x y z intensity return_number classification
SIZE 4 4 4 4 1 1
TYPE F F F F U U
COUNT 1 1 1 1 1 1
WIDTH 3
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 3
DATA ascii
35.124 128.543 12.45 85 1 2
35.126 128.545 12.48 12 1 2
35.120 128.540 25.10 45 2 6
 
 

4. 자율주행 vs 지형 측량(GIS)의 포맷 차이
  • 지형 측량 / 드론 매핑: 드론이나 항공기 LiDAR로 수집한 광범위한 지역 데이터는 국토교통부나 내비게이션 지도 제작 시 LAS/LAZ 포맷
  • 자율주행 연구 (원격 센싱): ROS(로봇 운영체제) 환경이나 고정형 LiDAR 센서에서 실시간으로 들어오는 데이터 스트림은 주로 PCD 포맷이나 매 프레임별 Raw Binary Matrix 형태로 처리

 

 

포인트 클라우드 데이터에서 RGB 값은 각 점(Point)의 실제 색상 정보를 나타냅니다. 3D 스캐닝을 할 때 레이저로 위치를 측정하는 동시에, 내장된 컬러 카메라로 사진을 찍어 각 점의 좌표와 색상을 1:1로 매칭하여 저장

1. RGB 값의 표현 방식 (벡터 구조)

 

데이터 파일 내에서 RGB 값은 주로 두 가지 형태 중 하나로 표현
  • 정수형 (0 ~ 255): 가장 직관적이고 흔한 형태 (예: [255, 0, 0]은 순수한 빨간색)
  • 정규화된 실수형 (0.0 ~ 1.0): 딥러닝 입력 데이터나 특정 3D 그래픽 엔진에서 처리하기 쉽도록 255로 나눈 값 (예: [1.0, 0.0, 0.0])
💡 데이터 배열 예시 (XYZ + RGB)
python
[
  #  [    X,     Y,     Z,    R,   G,   B ]
  [ 1.25, 3.42, 0.88, 255,   0,   0 ],  # 빨간색 점 (예: 소화전)
  [-0.45, 2.11, 1.50,   0, 255,   0 ],  # 초록색 점 (예: 나뭇잎)
  [ 0.12, 1.05, -0.2, 255, 255, 255 ]   # 흰색 점   (예: 차선 바닥)
]

2. LiDAR와 RGB: 센서 종류에 따른 차이점
모든 LiDAR가 RGB 값을 기본으로 수집하는 것은 아님
  • 일반 LiDAR (RGB 없음): 자율주행차 지붕에 달린 일반적인 LiDAR는 레이저만 쏘기 때문에 위치(XYZ)와 반사 강도(Intensity)만 수집 색상 정보는 없다
  • 카메라 융합형 LiDAR (RGB 있음): 드론 매핑용 고가 LiDAR나 iPhone의 LiDAR 스캐너처럼 카메라가 함께 장착된 장비는 레이저 좌표에 카메라의 픽셀 색상(RGB)을 실시간으로 입혀서 저장

3. 파일 포맷별 RGB 저장 형태
  • PLY / OBJ (3D 그래픽 포맷): 점 하나마다 X Y Z R G B 형태로 텍스트나 이진 데이터로 정직하게 기록
  • PCD (Point Cloud Library 포맷): 메모리와 처리 속도를 아끼기 위해 R, G, B 3개 바이트(각 8비트)를 하나로 묶어 32비트 부동소수점(Float) 하나로 압축하여 저장하기도 한다
    • 예시: RGB 값을 하나의 정수 4294967295 같은 형태로 묶어서 1개의 열로 표현
  • LAS / LAZ (지형 측량 표준): 헤더 옵션에 따라 RGB 필드를 활성화할 수 있으며, 측량 장비에 따라 0~255가 아닌 16비트(0 ~ 65535) 범위의 고해상도 RGB 값을 저장하기도 한다

4. 포인트 클라우드에서 RGB가 중요한 이유
  1. 시각적 직관성: 데이터 분석가나 작업자가 3D 모델을 볼 때, 흑백이나 단색보다 실제 색상이 보여야 물체를 훨씬 쉽게 식별합니다.
  2. AI 객체 인식(Semantic Segmentation): 자율주행이나 공간 인식 AI를 학습시킬 때, 형태(XYZ) 정보만 주는 것보다 색상(RGB) 정보를 함께 주면 "바닥에 그려진 흰색 차선"이나 "빨간색 표지판"을 훨씬 정확하게 구별
728x90