Unsupervised Learning of Depth and Ego-Motion from Video
Problem
- 하나의 이미지에서 깊이를 구하는 일은 사람은 아주 쉽게 해내는 반면 컴퓨터비전에서는 매우 어려운 분야이다.
- 다른 연구들에서는 supervized learning을 이용하여 학습시켰다. 따라서 camera paremeter나 depth map의 GT가 존재하여야만 했다.
Essence
- 이 논문에서는 별도의 GT 없이 image sequence를 입력 받아 camera motion과 depth map을 prediction하는 네트워크는 end-to-end로 학습하는 방법은 제안한다.
- 입력된 이미지들로부터 6-DoF의 ego-motion 파라미터를 추정하고, 동시에 depth map으로 표현되는 scene structure를 추정한다.
- 추정된 두 정보를 통해 프레임 간 view synthesis 생성한 뒤 둘간의 차이를 loss로 삼아 학습을 진행하였다.
- 이 방법은 end-to-end로 가능하며, 별도의 레이블링이나 GT가 필요없는 unsupervized 방식으로 볼 수 있다.
Detail
- 학습에 사용되는 데이터는 short image sequences이다.
View synthesis as supervision
- 이 방법의 핵심은 view synthesis를 생성하는 것이다.
- Source 이미지와 그에 대한 depth map이 주어지고, target 이미지로의 transformation이 주어질 경우, target 이미지를 생성해 낼 수 있다. 앞으로 소개할 방법은 fully differentiable 하므로 CNN의 학습에 사용될 수 있다.
- 먼저 여러 source 이미지들을
I_s
, target 이미지를I_t
라고 할 경우, source로부터 생성한 target 이미지\hat{I}_s
를 학습하기 위한 objective function은 다음과 같이 정의할 수 있다.
\mathcal{L}_{vs} = \sum_s \sum_p | I_t(p) - \hat{I}_s(p) |
- 여기서
p
는 픽셀 위치를 의미하며\hat{I}_s
는 source 이미지로부터 target 이미지로 warpping된 이미지를 의미한다. \hat{I}_s
의 생성하기 위해서는 prediction된 depth map\hat{D}_t
와 4x4 camera transformation matrix와\hat{T}_{t \rightarrow s}
, 그리고 source 이미지I_s
가 필요하다.- 기존의 다른 연구들에서는 이 objective function을 학습하기 위해서 pose 정보가 필요했으나 이 논문에서 사용하는 framework를 사용하면 pose 정보 없이 학습이 가능하며, pose 정보 또한 prediction 해낼 수 있다.
Differentiable depth image-based rendering
- 만약 Depthmap과 transformation matrix, source 이미지가 주어졌을 경우, target 이미지에서의 한 픽셀 위치는
p_t
에 해당하는 source 이미지에 위치는 다음과 같이 계산될 수 있다.
p_s \sim K \hat{T}_{t \rightarrow s} \hat{D}_t (p_t) K^{-1} p_t
- 이 위치의 픽셀 값은 differentiable bilinear sampling 방법을 통해 주변 4개 픽셀의 가중치 합으로 계산할 수 있다.
Modeling the model limitation
- Monocular 비디오에서 view synthesis를 생성할 때 가정되는 것이 3가지가 있다.
- 움직이는 객체가 없어야 하고, 두 이미지에서 가려지거나 서로 교차하는 영역이 없어야하고, surface가 Lambertian이어서 photo-consistency에 차이가 있을 경우 이는 다른 영역임을 의미하여야 한다.
- 이 가정이 깨지는 경우, 학습 중 gradient가 부정확하게 되어 학습이 올바르게 되는 것을 방해할 것이다.
- 따라서 학습을 좀 더 robust하게 하기 위하여 exaplainability prediction 네트워크를 추가하였다.
- 출력되는 target-source 쌍의 각 위치마다 soft mask
\hat{E}_s
를 출력하게 하여 view synthesis의 결과가 잘 되었는지를 가라키게 하고자 한다. - 이를 적용하여 앞의 objective function은 다음과 같이 변경하였다.
\mathcal{L}_{vs} = \sum_s \sum_p \hat{E}_s (p) | I_t(p) - \hat{I}_s(p) |
\hat{E}
에 대한 직접적인 supervision이 없기 떄문에 단순히 학습을 하면 trivial solution인 0을 내놓도록 학습이 될 것이다.- 따라서 항상 label을 1을 갖도록 하는 cross-entropy loss인 regularization term
\mathcal{L}_{reg}(\hat{E}_s)
를 추가하였다.
Overcoming the gradient locality
- 하나 남은 이슈는 학습 시 그래디언트가 pixel intensity 차이에서 생겨나는 것에 기인하는데, estimation된 위치가 low-texture 영역이거나, 실제 정확한 위치보다 멀게 estimation 된 경우 학습이 잘 이루어지지 않는다.
- 이를 해결하기 위하여 2가지 전략을 생각했는데, 한가지는 depth network의 출력을 globally smooth하게 만들어 의미있는 영역에서 그 주변 영역으로 전파가 쉽도록 하는 방법과, 다른 한가지는 multi-scale과 smoothness loss를 추가하여 그래디언트가 큰 영역으로 바로 퍼지도록 하는 방버을 생각하였다.
- 여기서는 현재 구조에 영향을 덜 끼치는 두번째 전략을 선택하여 depth map의 second order gradient의
L_1
norm 줄이도록 하였다. -
다음이 최종 objective function이다.
\mathcal{L}_{final} = \sum_l \mathcal{L}^l_{vs} + \lambda_s \mathcal{L}_{smooth}^l + \lambda_e \sum_s \mathcal{L}_{reg} ( \hat{E}_s^l)
- 여기서
l
은 서로 다른 이미지 스케일을 의미하고s
는 source image index,\lambda
들은 각 loss들의 weight들이다.
network arthitecture
- Depth prediction을 위한 네트워크는 DispNet을 수정하였다.
- 출력되는 depth는
1/(\alpha \ast sigmoid(x) + \beta), \alpha=10, \beta=0.1
로 제한하여 depth가 항상 positive이고 적절한 범위 내로 출력되도록 하였다. -
Pose를 위해서는 target view와 모든 source 이미지를 concatneate한 뒤 입력으로 사용하였다.
- 네트워크는 7개의 stride2 convolution과 끝에 1x1 convolution을 붙여
6 \ast (N-1)
개의 출력을 내도록 하엿다. 6은 Euler angle 3개와 3차원 translation 3개를 의미한다. -
끝으로 global average pooling을 하여 spatial location마다 prediction된 파라미터들을 평균내도록 하였다.
-
Explainability mask는 pose network의 5개의 encoding layer의 출력에 각각 deconvolution layer를 붙여 만들었다.
- 출력 채널은
2 \ast (N-1)
이고 softmax로 학습 시켜 explainability를 prediction하도록 하였다. -
실제로는 positive에 해당하는 두번째 채널이 loss에 참여하게 될 것이다.
-
전체 framework를 다시 정리하면 다음과 같다.
- Target 이미지로부터 depth map을 추정하고, target의 앞 뒤 이미지 sequence까지 입력으로 하여 pose를 추정한다.
- 추정된 두 정보를 이용하여 source이미지의 픽셀 값과 target 이미지로 proejction 시킨 위치의 픽셀 값과의 차이를 계산하고 이를 loss로 이용하여 두 네트워크에 gradient를 전파시켜 학습이 이루어지게 된다.