-
[논문 리뷰] PointNet (1) : 포인트 클라우드의 기초Autonomous Navigation/Perception 2021. 9. 1. 11:14
포인트 클라우드란 LiDAR, 스테레오 카메라 등의 센서로 생성 가능한 3차원 데이터로, 시야 내에 있는 물체까지의 거리를 나타내는 데이터라고 할 수 있습니다. LiDAR를 예로 들어 설명하자면 이 센서는 모든 방향으로 레이저 펄스를 쏘아 보내 반사되어 돌아오는 시간을 측정하여 그 레이저 펄스의 방향에 있는 어떤 물체까지의 거리를 측정해 데이터로 만들어냅니다. 한 위치에서 볼 수 있는 3차원 공간을 스캔한다고 생각해도 좋을 것 같습니다.
이런 느낌의 데이터입니다. 물론 한 위치에서 보이는 것들만이 아니라 공간 전체를 스캔하려고 한다면 SLAM이나 surface reconstruction등의 별도의 기법이 필요합니다.
포인트 클라우드는 이름 그대로 여러 개의 포인트가 군집되어 있는 데이터입니다. 각 포인트는 기본적으로 $ (x, y, z, d, I) $ 로 표현할 수 있습니다. $ x, y, z $ 는 포인트의 3차원 좌표, $ d $는 거리, $ I $ 는 반사 신호의 intensity 입니다. 보면 아시겠지만 제일 중요한 정보는 역시 3차원 좌표로, 위의 그림도 $ x, y, z $ 를 찍어놓은 것입니다(원점은 보통 센서의 위치를 기준으로 합니다). 포인트 클라우드 중에서도 unordered와 ordered point cloud가 있는데, 크게 중요한 부분은 아닙니다.
유명한 KITTI 데이터셋을 예로 든다면 하나의 time step에 해당하는 LiDAR의 관측 데이터에는 평균적으로 포인트 100,000개 정도가 존재한다고 합니다(물론 풍경에 따라 다릅니다). 이런 게 1초에 30번씩 들어온다고 생각해 보면, 포인트 클라우드 처리는 역시 쉬운 일이 아닙니다. 포인트 클라우드 데이터 처리에는 어떤 식으로든 클러스터링이나 그 비슷한 처리가 들어가게 되는데, 클러스터링은 데이터 포인트가 많을수록 복잡도가 눈에 띄게 높아지기 때문입니다. 근래에 딥 러닝의 발전으로 실시간 작동이 가시권에 들어오고는 있지만 역시 시간 복잡도는 높습니다.
포인트 클라우드의 탐색(클러스터링 등의 operation을 말합니다)을 좀 더 빠르게 처리하기 위해 KDTree 또는 Octree 등의 자료 구조가 존재합니다. 이에 대해서는 또 별도의 글로 다루어 보도록 하겠습니다.
'Autonomous Navigation > Perception' 카테고리의 다른 글
[논문 리뷰] PointPillars: Fast Encoders for Object Detection from Point Clouds (0) (0) 2021.09.02 [논문 리뷰] PointNet (2) : 포인트 클라우드를 다루기 위한 딥 러닝 네트워크의 구조 (0) 2021.09.02 [논문 리뷰] PointNet : Deep Learning on Point Sets for 3D Classification and Segmentation (0) (0) 2021.09.01 다중 객체 추적(MOT) 시스템 - Gating에 대한 조금 더 자세한 설명 (0) 2021.08.27 다중 객체 추적(MOT) 시스템 - Data Association (0) 2021.08.26