Paper/3D

[논문 리뷰] 3D Point Cloud Processing and Learning for Autonomous Driving - Part 1. Introduction

shvtr159 2022. 5. 6. 19:01

IEEE Signal Processing Magazine ( Volume: 38, Issue: 1, Jan. 2021)에 게재된 review 논문을 정리한 글입니다. 자율주행 자동차에 관련한 3D point cloud에 대해 정리되어있습니다. review 논문인 만큼 길이가 길어 파트를 나눠 정리할 예정입니다.

Introduction and motivation

A tour of an Autonomous system


일반적인 자율 시스템의 high-level architecture

일반적으로 autonomous system은 위 이미지와 같이 sensing, map 생성, localization, perception, prediction, routing, planning, 그리고 control module들로 구성됩니다. High-definition(HD) map은 offline에서 만들어지고, runtime 동안에는 online system에 목적지가 주어집니다. 그러면 system은 자신의 환경을 감지하고, 자신을 map에 위치시키고, 주변을 인식하며 주변 물체들의 미래 움짐임을 예측합니다. motion planner는 이러한 예측을 사용하여 AV(autonomous vehicle)가 목적지까지의 경로를 안전하게 따라갈 수 있는 궤적(trajectory)을 계획합니다. 

Sensing module

신뢰도를 높이기 위해 자율주행은 다양한 sensor를 필요로 합니다. 주로 많이 쓰이는 sensor는 Camera, radar, lidar, ultrasonic sensor 등이 있습니다. 2D image로부터 3D의 depth를 추정하는 많은 방법이 있지만 아직 다양한 제약에 의해 그 성능이 제한됩니다. Lidar는 object의 표면까지의 depth를 직접 sensing 하여 정확한 3D 좌표를 계산하고, 이로 인해 이전 문제들을 해결합니다. 이러한 Point cloud는 3D 세계에서 AV가 자신이 어디 있는지 알게 하고, 주변 물체를 감지하는데 매우 중요합니다.

 

Map creation module

Map creation은 static한 3D 환경과 그 교통 규칙을 정확하게 나타내는 HD map을 만드는 작업입니다. HD map은 일반적으로 주변의 3D geometric 정보를 나타내는 point cloud map과 도로 경계, 교통 차선, 표지판, 신호등을 포함하는 교통규칙 관련 semantic feature map의 두 layer로 이루어집니다. 이 두 layer는 3D 공간에서 정렬되어 자세한 navigation 정보를 제공해줍니다. 이 중 Point cloud map layer는 고밀도의 point cloud로 주로 localization을 위해 사용됩니다. map creation module은 이처럼 환경 정보를 제공하는 HD map을 생성하기 위한 module입니다.

 

Localization module

Localization은 HD map에서 AV가 자신의 위치를 찾는 작업을 의미합니다. AV가 HD 지도를 이용해 올바른 차선으로 주행하는 등의 작업을 위해서는 자신의 위치를 아는것이 필수적입니다. Core 기술 중 하나는 3D point cloud registration으로 실시간 lidar sweep들을 offline HD map에 매칭 해서 AV의 정확한 위치를 추정하는 방법이 있습니다.

 

Perception

Perception은 주변 환경을 인식하고 navigation에 관련된 정보를 추출하는 일입니다. Perception module은 3D scene에서 object를 detection, tracking, calssfying하는 AV의 visual system입니다. 이 부분은 자율 주행 기술에서 bottleneck으로 여겨지고 있었지만 최근 대규모 학습 dataset과 ML 알고리즘의 발전으로 성능이 매우 향상되었습니다.

 

Prediction

Prediction은 3D scene에서 각 object들의 미래 궤적(trajectory)을 예측하는 작업입니다. AV가 안전한 경로를 계획하기 위해서는 주변 object들이 미래에 어떻게 움직일지 알아야합니다.

 

Routing

Routing은 출발지에서 도착지까지 high-level의 이동 경로(path)를 구상하는 작업입니다. 이 module은 planning module에 high-level의 가이드라인을 제공해줍니다.

 

Planning

Motion planning은 현재 차량의 상태와 주변 환경, 목적지를 기반으로 AV의 trajectory를 계획하는 작업입니다. 주변 환경에 따라 AV가 적절히 반응하도록 계획합니다.

 

Control

Control은 planning module의 결과를 기반으로 명령을 수행하는 작업입니다. Steering wheel이나 throttle, brakes 등의 actuator를 제어합니다.

 

3D point cloud processing과 learning 개요


Usages in autonomous driving

AV에서는 일반적으로 1. 실시간 lidar sweep, 2. HD map layer 중 하나인 point cloud map 이렇게 2가지 타입의 3D point cloud가 주로 사용됩니다.

Point cloud map은 이전 환경 정보를 제공합니다. Localization module은 point cloud map을 기준으로 하여 3D point cloud registration을 통해 AV의 위치를 결정하고 Perception module은 point cloud map을 사용해서 실시간 lidar sweep의 foreground와 background를 분리하는데 도움을 받습니다.

실시간 lidar sweep는 Localization module에서 이를 point cloud map에 registration 하기 위해 사용되고, perception module에서 3D scene 속 주변 object들을 감지하는 데 사용됩니다.

따라서 3D point cloud processing 및 learning은 좋은 map creation, localization, perception module을 위한 중요한 작업입니다.

 

3D point cloud processing

3D point cloud precessing이란 다양한 수학적, 계산적 알고리즘을 사용하여 point cloud의 전송, 저장, 품질을 최적화하기 위해 3D point cloud를 분석하고 수정하는 것입니다. 비록 processing 알고리즘은 서로 다를 수 있지만 많은 processing 작업이 1D 신호 처리와 2D 이미지 처리에서 자연스럽게 확장됩니다. 예를 들어 3D point cloud 압축은 2D 이미지 압축과 대응되어 3D point cloud의 저장 또는 전송 비용을 줄이는 것을 목표로 합니다. denoising과 registration 등도 이와 비슷합니다.

 

3D point cloud learning

3D point cloud learning은 3D point cloud를 해석하고 이해하는 과정입니다. 위에서 이야기한 Processing과 비슷하게 Learning에서도 deep nural network를 사용한 이미지와 비디오에서의 성공을 3D point cloud로 확장하고자 합니다. 하지만 3D data의 특성상 2D application을 바로 적용하는 것은 어려움이 있습니다.

Learning 알고리즘을 설계하기 위한 가장 큰 문제 중 하나가 3D point cloud의 불규칙한(irregular) 특성입니다. 이 문제를 해결하기 위해 point cloud를 어떻게 효과적인 data 구조로 나타내는지에 대한 연구가 많이 있었습니다. 몇몇 알고리즘에서는 3D point cloud를 2D 이미지처럼 regular 한 3D voxel로 변환하여 3D convolution을 사용하였습니다. 그러나 이 방법은 resolution과 memory 간에 tradeoff를 고려해야만 합니다.

이러한 문제를 고려하지 않도록 PointNet이 처음으로 raw point cloud를 다른 형태로 변환하지 않고 직접 사용하는 방법을 제안하였습니다. PointNet은 pointwise multilayer perceptrons (MLPs)와 max-pooling를 이용하여 irregular 한 point cloud라도 point의 입력 순서에 따라 결과가 달라지지 않고(permutation incariance) 올바른 feature를 얻을 수 있도록 하였습니다. 이 이후로 PointNet을 기반으로 한 많은 3D deep learning 방법들이 제안되어왔습니다.