본문 바로가기
On Going/Point Cloud Data

[pcd] 도로 포인트클라우드를 평면으로 정렬하는 4가지 방법: 딥러닝 전처리를 위한 접근(2. Moving Least Squares)

by 에아오요이가야 2025. 4. 14.

포인트클라우드는 자율주행, 디지털 트윈, 스마트시티 등에서 중요한 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 하면, 원래의 노이즈 있는 점이 스무딩 된 곡면 위의 점으로 바뀜

 

 

 

댓글