분류 전

Point Cloud란?

ryanhearts 2023. 9. 14.

개요

포인트 클라우드는 3차원 공간의 점(포인트)들의 집합을 의미합니다.

주로 레이더, 라이다와 같이 3차원 공간 정보를 수집하는 센서들의 데이터 포맷으로 사용됩니다.

생소한 단어라 어렵게 느껴질 수 있지만 단순히 x, y, z 값을 가지는 3차원 공간의 점들의 집합으로 우리가 이미 잘 알고있고 많이 사용해본 형태입니다.

 

이렇게 3차원의 공간정보를 담은 Point Cloud는 그 자체로 가치있는 데이터이며 더 나아가 3D Object Detection, Classification등 인공지능 모델 학습에 사용되어 자율 주행, 3D 스캔, 생체 인식 등 다양한 기술들의 밑거름이 됩니다.


Point Cloud 데이터 관찰

직관적으로 보기 위해 데이터를 조금 뜯어보겠습니다.

 

잘 알려진 KITTI의 데이터셋을 가져왔으며

포인트 클라우드의 대중적인 저장 포맷인 .bin / .pcd 포맷 파일은 바로 볼 수 없기 때문에

파이썬의 open3d 라이브러리를 활용해 로드하였습니다.

File name = "000003.bin", PointCloud with 113110 points.
Shape: (113110, 3)
Sample
[[68.1269989   0.145       2.51300001]
 [68.73999786  0.36199999  2.53399992]
 [69.38999939  0.58399999  2.55599999]
 ...
 [ 3.74000001 -1.40799999 -1.74800003]
 [ 3.74000001 -1.39400005 -1.745     ]
 [ 3.76300001 -1.38999999 -1.75399995]]

데이터의 shape와 샘플을 보니 좀 더 직관적으로 다가옵니다.

113110개의 포인트를 포함한 포인트 클라우드이며 각 포인트는 3개의 좌표를 갖고있습니다.

 

이제 형태는 조금 알 것 같지만 어떤 의미를 가지는지에 대해선 여전히 의문이 남아있을 수 있습니다.

조금 더 알아보기 위해 시각화를 시도해보겠습니다.

000003.bin, 정면

추상적이지만 꽤나 의미있는 형상들을 관찰할 수 있습니다.

방사형으로 점들이 배치되어있으며 그 중앙에 라이다가 있고 해당 라이다가 돌면서 빛을 쏜 뒤 반사된 지점들이 포인트가 되는 방식입니다.

 

해당 시점의 정면 이미지를 가져와 포인트클라우드와 비교해 보겠습니다.

000003.png, 이미지

라이다는 360도 회전하며 전체 방향을 다 볼 수 있지만 카메라는 고정되어있기 때문에 이미지에서는 그 절반에 못 미치는 영역만 볼 수 있습니다.

000003.bin, 포인트 클라우드, 정면

이미지에서는 빨간색 표시된 영역과 같이 앞쪽 시야각에 해당하는 일부만 관찰할 수 있으며

두 개를 대조해보니 앞과 왼쪽의 차, 오른쪽 집의 입구가 잘 나타나 있음을 알 수 있네요.


Point Cloud의 활용

컴퓨터 비전 분야에서 이미지 기반의 2D 모델들은 비약적인 성장을 이루며 수많은 상용 제품들이 등장하여 우리에게 친숙해졌습니다. 제가 2D 인공지능 모델에 기반한 서비스를 제공하는 회사에 몸 담고있어 더 그렇게 느껴지는것 같기도 합니다.

 

3D 기반 인공지능 모델들도 최근 속도를 내고 있지만 2D에 비하면 아직 느리고 친숙하게 느껴지진 않습니다. 속도가 더딘 이유는 여러가지 있지만 그 중에서도

- 최근까지 포인트 클라우드 데이터 사용시 hand-crafted feature 의존 > R&D 과정에서 큰 병목 현상 초래

- sparse한 특성의 포인트 클라우드 데이터 >  높은 학습 난이도

- 높은 컴퓨팅 파워 요구

과 같은 몇 가지 문제들이 걸림돌로 작용했기 때문입니다.

 

하지만 17-18년도부터 hand-craft 과정을 생략한 end-to-end network가 많이 등장하고

pointwise한 방법 대신 voxel을 사용하는것과 같은 다양한 기법들이 등장하면서 성능 향상 / 처리 속도 개선을 이루며 빠르게 발전하고 있습니다.

 

관심있다면 PointNet, VoxelNet 논문을 보면 이러한 문제점들과 그 파훼법에 대해 깊게 살펴볼 수 있습니다.

VoxelNet은 지금 열심히 읽고 프로토타이핑도 진행중이므로 빠른 시일 내 블로그에서 다시 찾아뵙겠습니다.


개인 의견

2D 기반의 태스크들에 3D 기술을 적용해 해결할 수 있지만 그 반대는 어렵다고 생각합니다. (2D는 3D의 투영이므로)

 

기술이 발전하고 단가가 점점 맞춰질수록 3D 기술들이 2D 기술들을 대체하며 더 큰 파이를 차지할 것이고

변화하는 시대에서 잘 살아가기 위해 지치지 않고 끊임없이 발전할 수 있기를 스스로에게 바라며 포스팅 마무리하겠습니다.