논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

Digging Into Self-Supervised Monocular Depth Estimation

Problem

  • Depth-from-color 문제는 비싼 LIDAR 센서를 대신할 좋은 대안으로 매력적인 분야이다. 하지만 이를 supervised learning을 통해 학습하기 위해서는 정확한 ground truth depth 데이터가 필요하다.
  • 최근 이를 극복하기 위하여 self-supervised 방법이 제안되고 있는데, monocular video 환경에서의 연구들은 depth map의 추정 뿐 아니라 ego-motion 또한 동시에 추정해야 하는 어려움이 있고, stereo data를 활용한 방법에서는 occlusion이나 texture-copy artifacts 등이 풀어야할 문제이다.

Essence

  • Monocular depth estimation의 성능을 향상시키기 위한 3가지 구조적, 로스를 제안한다.
    • 가려진 픽셀을 처리하는 새로운 appearance matching loss
    • 카메라와 상대적인 움직임이 없는 경우를 처리할 간단하면서도 새로운 auto-masking 방법
    • Depth artifacts를 줄이고자 입력 해상도에서 수행되는 multi-scale appearance matching loss

Detail

Self-supervised Training

  • 기존의 방법들과 같이 depth estimation을 위해서 다른 시점의 another 이미지에서 target 이미지로의 view-synthesis 를 prediction 하는 network를 학습시켰다.

  • 보통 이러한 방법들은 photometric reprojection error를 loss L_p로 설정하고 이를 줄이도록 학습시킨다.

L_p = \sum_{t'} pe(I_t, I_{t' \rightarrow t})

I_{t' \rightarrow t} = I_{t'} \langle proj(D_t, T_{t \rightarrow t'}, K) \rangle

  • 여기서 pe가 photometric reconstruction error를 의미하며, proj는 depth와 I_{t}에서 I_{t'}로의 pose T_{t \rightarrow t'}를 이용하여 projection된 위치를 의미한다.
  • 보통 error는 bilinear sampling된 픽셀 값의 L1 distance를 사용하지만, 여기서는 L1 distance에 SSIM을 추가하였다.

pe(I_a, I_b) = \frac{\alpha}{2} (1 - \text{SSIM} (I_a, I_b)) + (1 - \alpha) || I_a - I_b||_1, \alpha=0.85

  • 또한 [15]에서와 같이 edge-aware smoothness 로스를 추가하였다.

L_s = |\partial_x d_t^\ast|e^{-|\partial_x I_t|} + |\partial_y d_t^\ast|e^{-|\partial_y I_t|}

  • 여기서 d_t^\ast = d_t / \bar{d}_t 으로 mean-normalized inverse depth를 의미한다.
  • 학습에서는 target 이미지 앞 뒤의 2개 이미지를 source 이미지로 하여 pose와 depth를 estimation 하도록 학습시켰다.
  • Stereo 방식에서는 stereo pair의 다른 이미지를 source 이미지로 사용하면 된다.

Per-Pixel Minimum Reprojection Loss

  • Reprojection error를 계산할 때 보통은 여러 source 이미지로부터 계산된 error를 모두 ㅕㅇ균하는 방법을 사용한다.
  • 이는 target 이미지에서는 보이지만 어떤 source 이미지에서는 보이지 않는 경우 문제가 된다.
  • 예를 들면, depth estimation을 정확하게 해냈음에도 불구하고 어느 한 source 이미지에서 해당 위치가 다른 물체로 인하여 가려졌을 경우 픽셀 값의 차이는 error로 계산되어 페널티로 작용한다.
  • 이러한 상황이 생길 때는 egomotion에 의해 이미지 밖으로 위치가 벗어나는 경우에도 생기고, 가려진 픽셀에서도 생긴다.
  • [40, 61]의 연구처럼 error를 masking 하는 방법을 이미지 밖으로 벗어나는 경우를 처리할 수는 있지만, 가려짐을 처리할 수는 없다.
  • 이를 해결하기 위해 논문에서는 평균 대신 minimum을 사용하기로 하였다.

L_p = \min_{t'} pe(I_t, I_{t' \rightarrow t})

Auto-Masking Stationary Pixels

  • 보통 monocular를 이용한 방법에서는 static scene을 가정으로 한다.
  • 만약 카메라가 정지해 있거나, 움직이는 물체가 존재할 경우 이 가정이 깨지고 성능이 떨어지게 된다. 이는 depth map에서 무한대로 멀리 있는 hole로 나타나게 된다.
  • 여기에 착안하여 새로운 auto-masking 방법을 제안하였다. 만약 target 이미지와 source 이미지 사이에 appearance 변화가 없으면 이를 계산에서 제외하도록 하였다.

  • 이는카메라가 움직이지 않는 상황이나 카메라와 동일한 속도로 물체가 움직이는 부분을 무시할 수 있게 해준다.
  • 이전의 방법들처럼 픽셀 마다 mask \mu를 할당하여 loss로 사용하되, 이전에는 mask를 네트워크가 estimation하도록 하거나, 혹은 객체 움직임에서 추정해 냈지만 여기에서는 더 간단한 방법을 사용하였다.
  • 바로 warp된 source image와의 reprojection error가 warp하지 않은 source image보다 작은 경우, 이러한 상황으로 판단하여 mask를 0으로, 그렇지 않으면 1로 할당하였다.

\mu = \left[ \min_{t'} pe(I_t, I_{t' \rightarrow t}) \lt \min_{t'} pe (I_t, I_{t'}) \right]

Multi-scale Estimation

  • Bilinear sampler에 의한 local minimum에 빠지는 것을 막기 위해 multi-scale depth prediction을 사용한다.
  • 이전 방법들은 각 스케일에 대해서 별도로 loss들을 계산하여 이를 합하는 방법을 사용하였다.
  • 하지만 이 방법들은 낮은 해상도에서 low-texture 영역으로 인한 hole들을 생성하는 경향이 있음을 발견하였다. 이는 texture-copy artifacts에서도 마찬가지다.
  • 논문에서는 photometric error를 저해상도의 이미지에서 계산하는 대신 저해상도 depth map을 원래의 해상도로 업샘플한 뒤, 높은 해상도에서 error를 계산하도록 하였다.
  • 이는 패치 매칭과 비슷한 과정인데, 저 해상도의 한 depth는 고해상도로 warping 될 경우 patch에 해당되기 떄문이다.


* 최종적으로 사용될 loss는 L = \mu L_p + \lambda L_s이다.


Add a Comment Trackback