포인트클라우드는 자율주행, 디지털 트윈, 스마트시티 등에서 중요한 3D 데이터입니다. 특히 도로 주행 환경을 스캔한 포인트클라우드를 딥러닝에 활용하려면, 도로면을 평면으로 정렬하거나 2D 이미지처럼 표현하는 전처리 과정이 필요합니다.
이 글에서는 도로와 같은 경사 있고 굴곡진 포인트클라우드를 projection 하기 위한 4가지 대표적인 방법 중 두 번째를 소개합니다.
2. Moving Least Squares(MLS)
Moving Least Squares(MLS)는 포인트클라우드에서 곡면 구조를 추정하거나, 노이즈를 제거하고 점들을 부드럽게 보관할 수 있는 기법입니다.
이름처럼 이동하면서 최소제곱을 반복해, 각 점 주변의 로컬 곡면 또는 평면을 계산합니다.
즉, 각 점 주변의 지역적인 평면/곡면을 만들어 전체를 수무딩하고 정렬할 수 있습니다. 마치 도로를 펴서 projection 한 것처럼 만들 수 있습니다.
import open3d as o3d
# 1. 포인트클라우드 불러오기
pcd = o3d.io.read_point_cloud("road_scene.pcd")
# 2. Normals 추정 (KNN 또는 radius 방식 사용)
pcd.estimate_normals(search_param=o3d.geometry.KDTreeSearchParamHybrid(
radius=0.5, max_nn=30))
# 3. Point를 local surface에 투영
pcd.orient_normals_consistent_tangent_plane(k=30)
# 결과 시각화
o3d.visualization.draw_geometries([pcd])
MLS의 특징
곡면보간 : 단순 평면이 아닌, 2차 곡면 기반 추정 가능
노이즈 제거 : 센서 노이즈로 인한 지면 진동 완화
정렬 가능 : 로컬 곡면 기반 projection가능 (BEV 생성 등)
3차원 포인트클라우드에서 어떤 점\( \mathbf{x} \in \mathbb {R}^3\) 에에 대해,
그 주변 이웃들을 참고해 부드러운 곡면을 추정하고,
해당 점을 그 곡면 위로 정사영(projection) 시키는 것이 MLS의 목표입니다.
MLS의 직관적 이해
1. 각 점마다 주변을 살핌
2. 주변 점들을 바탕으로 로컬 곡면을 만들어냄
3. 그 곡면 위로 점을 끌어다 놓음(노이즈 제거 + 곡면 보정)
MLS의 수학적 정의
Moving Least Squares는 한점 \(x\)에서 다음과 같은 local surface를 추정합니다.
1단계 : 근방의 점들로부터 국소 모델 설정
- \(N(x) : x\)의 주변 점 집합(e.g. k-NN)
- 곡면을 \(f(x)\)라고 하면, 우리는 \(f\)를 다음과 같은 다항식(polynomial) 형태로 근사합니다:
\( f(\mathbf {x}) = \sum\limits_{i=1}^{m} a_i \cdot \phi_i(\mathbf {x}) \)
-여기서 \(\phi_i\)는 다항식 basis function(예 : \(1, x, y, x^2, xy, y^2\))
-\(a_i\)는 최소제곱으로 추정할 계수
2단계 : 최소제곱 최적화(weighted)
\(\min_{\mathbf {a}}
-\(z_j : \) 입력 점 \( \mathbf {x}_j \)의 높잇값
- \(w(\dot)) : \) 가우시안 형태의 weight function - 가까운 점에 더 큰 가중치를 부여
3단계 : 추정된 \(f(\mathbf {x})\) 위로 점 \(x\)를 projection
- 곡면 위의 대응점 \( \mathbf{x}^\prime = (\tilde{x}, \tilde{y}, f(\tilde{x}, \tilde{y})) \)
- 이렇게 projection 하면, 원래의 노이즈 있는 점이 스무딩 된 곡면 위의 점으로 바뀜
'On Going > Point Cloud Data' 카테고리의 다른 글
[pcd] 도로 포인트클라우드를 평면으로 정렬하는 4가지 방법: 딥러닝 전처리를 위한 접근(4. PCA기반 평면정렬) (0) | 2025.04.14 |
---|---|
[pcd] 도로 포인트클라우드를 평면으로 정렬하는 4가지 방법: 딥러닝 전처리를 위한 접근(3. DTM기반 CSF) (0) | 2025.04.14 |
[pcd] 도로 포인트클라우드를 평면으로 정렬하는 4가지 방법: 딥러닝 전처리를 위한 접근(1. RANSAC) (0) | 2025.04.14 |
[PCD]Frontal view Lane Detection K-lane 논문 리뷰 (0) | 2025.03.17 |
[PCD] Point Transformer V3(PTv3) 논문리뷰 (0) | 2025.03.17 |
댓글