Self-Supervised Depth Correction of Lidar Measurements From Map Consistency Loss

SJ·2024년 7월 8일
1

Paper

목록 보기
6/23

이 논문은 RA Letter에 2023년에 출간된 논문입니다.
간단하게 LiDAR의 noise나 bias들을 deep learning으로 학습하여 정확한 LiDAR depth를 통해 높은 성능의 SLAM을 진행하겠다는 것입니다.

Introduction

LiDAR는 비교적 정확한 센서로 알려져있지만 반사하는 표면의 특성이나 온도, 습도에 따라 오차가 생길 수도 있습니다.
이러한 오차는 SLAM 같은 알고리즘을 실행할 때 큰 성능 저하를 일으킬 수 있습니다.
이러한 오차를 딥러닝을 통해 학습하여 더 정확한 스캔을 만들려고 하는 것이 이 논문입니다.
라이더는 정확한 ground truth를 구하기가 정말 어렵기 때문에 Self-supervised Learning으로 학습방식을 결정합니다.
이것을 수행하기 위해서는 2가지 문제를 풀어야합니다.

1) 적합한 Self-Supervised Learning loss는 무엇일까?
2) end-to-end 방식의 learning을 하려면 어떤 구조를 차용해야할까?

이 문제들을 해결하기 위해 이 논문은
Fully differentiable depth-correcting moudle과 map consistency loss를 제안합니다.

이 두가지 제안을 통해 end-to-end self supervised를 완성하여 ground truth 없이 정확한 LiDAR depth를 추정하게 됩니다.

(학습 Overview)

Methodology

A. Depth Correction Model

LiDAR는 빛의 이동시간을 이용하여 물체와의 거리를 측정하는 센서입니다.
센서 O와의 거리 x는 다음과 같이 표현할 수 있습니다.

incidence angle에 따라 LiDAR의 depth 오차가 발생하기 때문에 우리는 depth를 다시 표현할 수 있습니다.

여기서 빼주는 error term은 polynomial model로 가정하게 되는데 depth로 scaling 해주면 이렇게 정의할 수 있습니다 => 이렇게 정의하는 이유는 앞선 논문에서 설명하고 있습니다.

여기 incidence angle앞의 parameter w들을 학습해주면서 정확한 depth correction이 가능해집니다.

B. Map Consistency Loss Functions
이제 이 논문에서 학습에 사용한 Loss Function을 알아보겠습니다.
Loss Function을 정의하기 위해 먼저 일정 거리 안에 있는 point cloud들의 covariance matrix를 만듭니다.

이 covariance matrix에서 PCA를 통해 eigen value를 구하게 됩니다.
여기서 나온 eigen value를 가지고 두가지 loss를 만들게 됩니다.
첫번째는 가장 작은 eigen value를 사용하는 것입니다.
이것은 평면의 normal vector를 확인하는 방식입니다. 이것이 작을 수록 평평한 평면이 되기 때문에 이것을 하나의 loss로 사용하게 됩니다.
두번째는 3개의 eigen value를 더한 값을 사용하는 것입니다.
이 방식은 point-to-point registration에 대한 loss로 볼 수 있습니다.
이 두가지 중 하나를 적절히 선택해서 loss로 잡아줘서 학습에 활용하였습니다.

C. Self Supervised Learning of Depth Correction
Global map을 depth correction에 의해 수정된 point cloud를 transformation matrix로 rigid transform하여 만듭니다.
각 Transformation matrix는 SLAM을 통해 initial Transformation matrix로 얻고 그것에 대해 약간의 correction을 진행합니다. 이 correction을 진행하는 T(p)를 딥러닝으로 또 학습하게 됩니다.
Map을 결정할 때 사용할 point cloud set은 3가지입니다.
1. 주변에 충분한 point cloud가 존재하는 경우
2. 충분히 평평한 평면위에 존재하는 pointcloud의 경우
3. 각 view point에서 dispersion이 큰 경우
이러한 경우의 point cloud를 모아 map을 형성하게 됩니다.
이 map에 속해있는 point들에 대한 loss를 사용하고 그것이 제일 작아지도록 pose와 parameter w를 얻게 됩니다.

이렇게 수정된 depth와 fine tuning Transformation matrix를 통해 정확한 SLAM을 진행할 수 있게 됩니다.

profile
student

0개의 댓글