LiDAR 데이터 처리

박종명 ·2024년 5월 12일
0
post-thumbnail

안녕하세요
오늘 이야기 해볼 주제는 lidar data process 입니다.

velodyne lidar vlp 16 이라는 라이다 장비를 이용해서 pointcloud를 받아오게 됩니다.
이 row data(가공하지 않은 데이터)에는 수많은 점들이 찍혀있습니다. (대략 20000~30000개)

row data를 처리 하는 일련의 과정은 다음과 같습니다.

  1. voxelization

  2. roi 설정

  3. ransac

  4. dbscan

1~3까지는 rowdata의 점의 개수를 줄이는 과정이고, 4번은 군집화를 해주는 과정입니다.

즉 data process = downsamplig + clustering 이라고 볼 수 있습니다.

downsamplig과 clustering 방법에는 여러가지가 있습니다.
1~4번의 과정은 여러 방법 중 하나입니다.

오늘은 1~4번의 진행과정을 자세히 들여다 보겠습니다.

1~4번의 과정을 수행하기 위해 c++/python 등으로 구현이 가능하지만, 저는 python으로 구현해보았습니다.

python에서도 어떤 라이브러리(pcl, open3d, scikit-learn ..)를 활용하느냐에 따라 방법이 나뉘겠지만 저는 open3d와 사이킷런을 활용하였습니다.

  • import open3d as o3d
    open3d 라이브러리를 활용한 1-3번 과정
  • from sklearn.cluster import DBSCAN
    사이킷런에서 디비스캔을 활용한 4번 과정

voxel의 개념
복셀은 복셀그리드 모양에서 점 1개만을 놔두고 나머지를 제거하는 방법이다.
앞선 예시로 복셀 사이즈를 0.05m로 설정하였음
아래 이미지에 색칠된 모양이 복셀그리드 입니다.

profile
안녕하세요. 자율주행을 공부하고 있는 학생입니다.

4개의 댓글

comment-user-thumbnail
2024년 5월 13일

블로그 보다가 궁금사항 생겨서 남깁니다
DBscan할때 input값이 2d 좌표값 인지 3d 좌표값인지 궁금합니다

답글 달기
comment-user-thumbnail
2024년 5월 13일

DBSCAN, RANSAC 알고리즘에 대해 구체적으로 설명 부탁드립니다.

답글 달기
comment-user-thumbnail
2024년 5월 13일

row data가 아니라 raw data 아닌가요?
유익한 글 감사합니다!

1개의 답글