7.7 LiDAR 기반 3차원 점군(Point Cloud) 데이터
1. 점군 데이터의 정의와 구조
점군(point cloud)이란 3차원 공간상에 분포하는 점(point)들의 집합으로서, 각 점은 최소한 3차원 좌표 (x, y, z)를 속성으로 보유한다. LiDAR 센서는 레이저 펄스의 반사를 통해 주변 환경의 표면으로부터 반사점들의 좌표를 측정하며, 이 측정점들의 집합이 곧 점군 데이터를 구성한다.
LiDAR에서 생성되는 각 점은 일반적으로 다음과 같은 속성을 포함한다.
| 속성 | 설명 |
|---|---|
| (x, y, z) | 센서 좌표계(sensor frame) 기준 3차원 위치 |
| 반사 강도(intensity, i) | 반사면의 반사율에 비례하는 수신 신호 세기 |
| 반환 번호(return number) | 다중 반환 시 해당 점의 반환 순서 |
| 타임스탬프(timestamp, t) | 해당 점이 측정된 시각 |
| 채널 번호(ring/channel ID) | 다채널 LiDAR에서 해당 점을 측정한 레이저 채널 |
단일 스캔(single scan)에서 생성되는 점의 수는 센서 사양에 따라 수만에서 수백만 점에 이른다. 예를 들어 128채널 기계식 회전형 LiDAR는 10 Hz 프레임률 기준 프레임당 약 100만 점 이상의 점군을 생성한다(Ouster, 2023).
2. 점군 데이터의 좌표계와 변환
2.1 센서 좌표계
LiDAR가 직접 출력하는 점군은 센서 자체를 원점으로 하는 센서 좌표계(sensor coordinate frame)로 표현된다. 일반적으로 구면 좌표계(spherical coordinates)에서의 측정값 — 거리 r, 수평각(azimuth) \theta, 수직각(elevation) \phi — 을 직교 좌표계로 변환하여 (x, y, z)를 산출한다.
x = r \cos\phi \cos\theta
y = r \cos\phi \sin\theta
z = r \sin\phi
7.7.2.2 차체 좌표계로의 변환
자율주행 시스템에서는 센서 좌표계의 점군을 차체 좌표계(vehicle body frame)로 변환하여야 한다. 이 변환은 LiDAR의 차체 내 장착 위치와 자세를 나타내는 외부 파라미터(extrinsic parameters), 즉 회전 행렬 \mathbf{R} \in SO(3)과 병진 벡터 \mathbf{t} \in \mathbb{R}^3를 이용하여 수행한다.
\mathbf{p}_{\text{vehicle}} = \mathbf{R} \mathbf{p}_{\text{sensor}} + \mathbf{t}
여기서 \mathbf{p}_{\text{sensor}}는 센서 좌표계의 점, \mathbf{p}_{\text{vehicle}}는 차체 좌표계의 점이다. 이 변환의 정확도는 센서 캘리브레이션(calibration) 과정에서 결정되며, 캘리브레이션 오차는 점군 기반 인지 성능에 직접적인 영향을 미친다(Geiger et al., 2012).
2.2 세계 좌표계로의 변환
차체의 위치와 자세(pose)를 전역 좌표계(global/world frame)에서 추정하여, 차체 좌표계의 점군을 세계 좌표계로 변환할 수 있다. 이 과정은 SLAM(Simultaneous Localization and Mapping)이나 GPS/INS 융합 항법 등을 통해 이루어지며, 시간에 따른 복수 프레임의 점군을 세계 좌표계에 누적하여 고밀도 3차원 지도를 구축하는 데 활용된다.
3. 점군 데이터의 저장 형식
점군 데이터의 저장과 교환을 위한 대표적인 파일 형식은 다음과 같다.
PCD(Point Cloud Data): PCL(Point Cloud Library)에서 정의한 형식으로, ASCII 및 바이너리 모드를 지원한다. 헤더에 점의 속성(필드), 데이터 타입, 점의 수 등 메타데이터를 기록하며, 학술 연구에서 널리 사용된다(Rusu & Cousins, 2011).
LAS/LAZ: ASPRS(American Society for Photogrammetry and Remote Sensing)에서 제정한 LiDAR 데이터 교환 표준이다. LAS는 비압축 바이너리 형식이며, LAZ는 무손실 압축 형식이다. 항공 LiDAR 및 측량 분야에서 표준적으로 사용되며, 점 분류(classification) 코드, GPS 시각 등 풍부한 메타데이터를 지원한다.
PLY(Polygon File Format): 메쉬(mesh) 데이터와 함께 점군을 저장할 수 있는 범용 3차원 데이터 형식이다. 색상, 법선 벡터 등 사용자 정의 속성을 유연하게 추가할 수 있다.
ROS 메시지(sensor_msgs/PointCloud2): ROS(Robot Operating System) 환경에서는 sensor_msgs/PointCloud2 메시지 타입으로 점군을 실시간 전송한다. 이 형식은 임의의 필드를 정의할 수 있는 유연한 구조를 가지며, 자율주행 연구 플랫폼에서 사실상의 표준으로 사용된다(Quigley et al., 2009).
4. 점군 데이터의 특성과 과제
4.1 비정형성(Unstructured Nature)
점군은 2차원 영상과 달리 규칙적인 격자(grid) 구조를 갖지 않는 비정형 데이터이다. 점들은 3차원 공간에 불균일하게 분포하며, 센서로부터의 거리에 따라 점 밀도가 1/r^2에 비례하여 감소한다. 이러한 비정형성은 합성곱 신경망(CNN)과 같은 격자 기반 연산을 직접 적용하기 어렵게 하며, 이를 극복하기 위한 별도의 데이터 표현(representation) 변환이 필요하다.
4.2 희소성(Sparsity)
LiDAR 점군은 3차원 공간에서 매우 희소하게 분포한다. 128채널 LiDAR가 생성하는 프레임당 약 100만 점은 3차원 공간의 극히 일부만을 샘플링한 것이다. 원거리에서는 점 간격이 수십 센티미터 이상으로 벌어져 소형 객체의 형상을 충분히 포착하지 못할 수 있다.
4.3 모션 왜곡(Motion Distortion)
기계식 회전형 LiDAR는 한 프레임의 점군을 생성하는 데 수십에서 수백 밀리초가 소요된다. 이 시간 동안 차량이 이동하면, 프레임 내 점들이 서로 다른 시각에 서로 다른 차량 자세에서 측정되어 기하학적 왜곡이 발생한다. 이를 모션 왜곡(motion distortion) 또는 스캔 언워핑(scan unwarping) 문제라 하며, IMU(Inertial Measurement Unit) 데이터나 차량 오도메트리(odometry) 정보를 이용하여 보정한다(Zhang & Singh, 2014).
4.4 환경 조건에 의한 노이즈
비, 눈, 안개, 먼지 등의 기상 및 환경 조건은 레이저 빔의 산란과 흡수를 유발하여 점군에 허위 점(false point)을 생성하거나 실제 객체의 탐지를 방해한다. 이러한 환경 노이즈의 제거는 전처리 단계에서 중요한 과제이다(Heinzler et al., 2020).
5. 점군 데이터의 전처리
원시(raw) 점군 데이터를 인지 알고리즘에 입력하기 전에 다음과 같은 전처리 과정을 수행한다.
5.1 관심 영역 필터링(Region of Interest Filtering)
자율주행에서 관심 영역 외부의 점(예: 지면 아래, 일정 거리 이상의 원거리)을 제거하여 처리 대상 데이터량을 축소한다. 일반적으로 직육면체 관심 영역(bounding box)을 정의하여 해당 영역 내부의 점만을 유지한다.
5.2 지면 제거(Ground Removal)
점군에서 도로면에 해당하는 점을 분리 및 제거하면 지상 객체의 분할(segmentation) 성능이 향상된다. RANSAC(Random Sample Consensus) 기반 평면 피팅, 높이 맵(height map) 기반 방법, 기울기(slope) 기반 방법 등이 사용된다(Zermas et al., 2017).
5.3 다운샘플링(Downsampling)
고밀도 점군의 처리 부하를 줄이기 위해 복셀 그리드 필터(voxel grid filter)를 적용하여 일정 크기의 3차원 격자 내 점들을 대표점 하나로 대체한다. 이를 통해 점군의 균일성을 향상시키는 동시에 데이터량을 효과적으로 축소할 수 있다.
5.4 이상치 제거(Outlier Removal)
통계적 이상치 제거(Statistical Outlier Removal, SOR)는 각 점의 k-근접 이웃(k-nearest neighbors)까지의 평균 거리를 산출하여, 전체 점군의 평균 및 표준편차로부터 일정 임계치를 초과하는 점을 이상치로 판정하여 제거한다.
6. 점군 데이터의 3차원 표현 방식
비정형 점군을 심층 학습 모델에 입력하기 위한 대표적인 3차원 표현 방식은 다음과 같다.
6.1 복셀화(Voxelization)
3차원 공간을 균일한 크기의 격자(voxel)로 분할하고, 각 복셀 내 점들의 통계량(평균 좌표, 반사 강도 평균 등)을 해당 복셀의 특징(feature)으로 할당하는 방법이다. 3차원 합성곱 연산을 적용할 수 있으나, 점군의 희소성으로 인해 대부분의 복셀이 비어 있어 메모리 비효율이 발생한다. 이를 해결하기 위해 희소 합성곱(sparse convolution)이 도입되었다(Graham et al., 2018).
6.2 BEV(Bird’s Eye View) 투영
점군을 상공에서 내려다본 시점의 2차원 격자로 투영하는 방법이다. 각 격자 셀에 높이 히스토그램, 최대 높이, 반사 강도 등을 인코딩하여 의사 영상(pseudo-image)을 생성하면, 2차원 CNN을 적용할 수 있다. PIXOR(Yang et al., 2018), PointPillars(Lang et al., 2019) 등의 알고리즘이 이 표현을 활용한다.
6.3 원시 점군 직접 처리
PointNet(Qi et al., 2017a)과 PointNet++(Qi et al., 2017b)은 비정형 점군을 직접 입력받아 점별(per-point) 특징을 추출하고 전역 특징(global feature)으로 집계(aggregation)하는 구조를 제안하였다. 이 접근법은 복셀화에 의한 정보 손실 없이 점군의 기하학적 특징을 학습할 수 있으나, 대규모 점군에 대한 연산 효율이 과제로 남는다.
6.4 레인지 뷰(Range View) 표현
LiDAR의 구면 투영(spherical projection)을 통해 점군을 2차원 거리 영상(range image)으로 변환하는 방법이다. 수평각과 수직각을 2차원 격자의 축으로 사용하고, 각 셀에 거리 값을 할당한다. 밀도 높은 2차원 표현을 생성할 수 있어 2차원 CNN의 효율적 적용이 가능하며, RangeNet++(Milioto et al., 2019) 등이 이 표현을 기반으로 의미적 분할(semantic segmentation)을 수행한다.
참고문헌
- Geiger, A., Lenz, P., Stiller, C., & Urtasun, R. (2012). Vision meets robotics: The KITTI dataset. International Journal of Robotics Research, 32(11), 1231–1237.
- Graham, B., Engelcke, M., & van der Maaten, L. (2018). 3D semantic segmentation with submanifold sparse convolutional networks. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 9224–9232.
- Heinzler, R., Schindler, P., Seekircher, J., Ritter, W., & Stork, W. (2020). Weather influence and classification with automotive lidar sensors. IEEE Intelligent Vehicles Symposium (IV), 1527–1534.
- Lang, A. H., Vora, S., Caesar, H., Zhou, L., Yang, J., & Beijbom, O. (2019). PointPillars: Fast encoders for object detection from point clouds. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 12697–12705.
- Milioto, A., Vizzo, I., Behley, J., & Stachniss, C. (2019). RangeNet++: Fast and accurate LiDAR semantic segmentation. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 4213–4220.
- Ouster. (2023). OS1 Datasheet. Ouster, Inc.
- Qi, C. R., Su, H., Mo, K., & Guibas, L. J. (2017a). PointNet: Deep learning on point sets for 3D classification and segmentation. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 652–660.
- Qi, C. R., Yi, L., Su, H., & Guibas, L. J. (2017b). PointNet++: Deep hierarchical feature learning on point sets in a metric space. Advances in Neural Information Processing Systems (NeurIPS), 30.
- Quigley, M., Conley, K., Gerkey, B., Faust, J., Foote, T., Leibs, J., Wheeler, R., & Ng, A. Y. (2009). ROS: An open-source Robot Operating System. ICRA Workshop on Open Source Software, 3(3.2), 5.
- Rusu, R. B., & Cousins, S. (2011). 3D is here: Point Cloud Library (PCL). IEEE International Conference on Robotics and Automation (ICRA), 1–4.
- Yang, B., Luo, W., & Urtasun, R. (2018). PIXOR: Real-time 3D object detection from point clouds. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 7652–7660.
- Zermas, D., Izzat, I., & Papanikolopoulos, N. (2017). Fast segmentation of 3D point clouds: A paradigm on LiDAR data for autonomous vehicle applications. IEEE International Conference on Robotics and Automation (ICRA), 5067–5073.
- Zhang, J., & Singh, S. (2014). LOAM: Lidar odometry and mapping in real-time. Robotics: Science and Systems (RSS), 2(9).
버전: v1.0, 2026-04-11