1. Motivation

Self-supervised monocular depth estimation에서는 일반적으로 별도의 PoseNet을 사용하여 카메라 포즈를 추정한다. 그러나 PoseNet은 훈련 데이터의 도메인에 과적합되기 쉬워 일반화(generalization) 성능이 떨어진다. 이 논문은 PoseNet 없이 두 모노큘라 이미지로부터 Fundamental Matrix를 이용해 포즈를 추정하고, 이를 depth 추정에 활용하는 방법을 제안한다.

  • Monodepth2, SfMLearner 등: PoseNet을 depth network와 함께 joint로 학습하는 방식. Pose 추정이 특정 데이터셋에 편향될 수 있음.
  • 8-point Algorithm / RANSAC: 고전적인 structure-from-motion 기법으로, 대응점으로부터 Fundamental Matrix를 robust하게 추정.
  • Triangulation: 두 카메라 뷰의 대응점을 이용하여 3D 포인트를 복원하는 기법.

3. Proposed Method

1단계: Optical Flow로부터 포즈 추정

두 모노큘라 이미지에서 optical flow를 추정하고, 대응점으로부터 8-point RANSAC을 통해 Fundamental Matrix $F$를 계산한다. 이를 분해하여 relative pose $[R|t]$를 얻는다.

2단계: Two-View Triangulation을 Depth Supervision으로 활용

$F$와 target/source 픽셀 좌표가 concat된 tensor $[B, 4, H, W]$를 이용하여 triangulation을 계산한다. 이 과정으로 target depth의 scale alignment를 추정할 수 있다.

(참고 구현: TrianFlow GitHub)

3단계: Scale-Invariant Design

Scale ambiguity 문제를 해결하기 위한 scale-invariant 설계를 포함하나, 구체적인 메커니즘은 추가 분석이 필요하다.

4. Experiments

훈련 데이터셋과 다른 새로운 장면에서의 일반화 성능을 평가한다. PoseNet 기반 방법 대비 cross-dataset 성능이 향상됨을 보인다. Depth 정확도와 함께 pose 추정의 정확도도 함께 평가한다.

5. Conclusion & Limitation

PoseNet을 제거하고 optical flow + 8-point RANSAC + triangulation의 파이프라인으로 포즈를 기하학적으로 추정함으로써, 특정 데이터셋에 과적합되지 않는 더 일반화된 depth-pose joint learning을 달성하였다.

한계로는, triangulation 계산 과정의 일부 수식 유도가 직관적이지 않으며, scale-invariant design의 구체적인 동작 원리에 대한 이해가 불충분하다. 또한 optical flow 추정의 품질이 전체 파이프라인에 영향을 미치므로, flow 추정 오류가 누적될 수 있다.