web.stanford.edu

1 Overview

이전 섹션에서 representation learning의 아이디어를 논의했다. 이것은 unsupervised와 self-supervised 방법을 활용하여 고차원 sensory 데이터의 저차원 representation인 intermediate를 학습한다. 이러한 학습된 feature는 downstream 시각 추론 작업을 해결하는데 사용될 수 있다. 여기서 2가지 일반적인 computer vision 문제의 맥락에서 representation learning을 어떻게 적용되는지 살펴본다. monocular depth 추정과 feature tracking

2 Monocular Depth Estimation

2.1 Background

Depth 추정은 로보틱스에서 파지를 위한 3d reconstruction과 공간 인식 또는 자율주행 차의 네비게이션과 같은 더 복잡한 작업을 해결하는데 중요한 일반적인 computer vision 빌딩 블록이다. structured light stereo와 LIDAR(3d 포인트 클라우드)와 같은 다양한 능동적 depth 추정이 존재하지만, 여기서는 수동적 수단을 통한 depth 추정에 초점을 맞춘다. 이는 특수하고 비싼 하드웨어가 필요하지 않고, 실외 상황에서 더 잘 작동한다.

depth 추정을 computer vision의 근본적인 correspondence problem의 특별한 경우로 볼 수 있다. 이것은 3d 장면을 촬영한 여러 2d 이미지에 대한 투영된 물리적 3d 점에 해당하는 2d 위치를 찾는 것을 포함한다. 2d 프레임은 monocular 또는 stereo 카메라를 사용하여 여러 viewpoint에 의해 포착될 수 있다.

Cap 2024-06-19 11-20-50-880.jpg

대응을 위한 한 가지 해결은 그림 1에 나온 epipolar geometry를 사용하는 것이다. 이것은 이전 강의에서 보았다. 카메라 중심 $O_1$과 $O_2$와 장면의 3d 점 $P$이 주어질 때, $p$와 $p'$는 각각 왼쪽과 오른쪽 카메라의 이미지 평면에 $P$가 투영된 점을 나타낸다. 왼쪽 이미지에서 $p$가 주어지면, 오른쪽 이미지에서 대응점 $p'$는 오른쪽 카메라의 epipolar line에 어딘가에 존재해야 한다. epipolar line은 이미지 평면과 epipolar plane의 교차점으로 정의된다. 이것을 epipolar constraint라 하며 두 카메라 사이의 fundamental(또는 essential) matrix $F$에 의해 캡슐화된다. $F$가 알려진 epipolar line을 제공하기 때문이다. depth 추정의 맥락에서 종종 stereo 설정과 rectified 이미지를 다룬다고 가정한다. 이 경우 epipolar line은 수평이고 disparity(불일치)는 두 대응점 사이의 (수평) 거리로 정의된다. 즉 $d = p_u' - p_u$이고 $p_u + d = p_u'$이다. (모든 $P$에 대해 $p_u' > p_u$ 임에 유의하라)

Cap 2024-06-19 11-21-01-421.png

그러면 disparity와 depth 사이에 간단한 반비례 관계가 있음을 볼 수 있다. 이것은 카메라 중심에 대한 $P$의 $z$-좌표로 정의된다. 그림 3에 나온대로 유사 삼각형을 사용하여 $z = {fb \over d}$을 얻을 수 있다. 여기서 $f$는 카메라의 focal length(초점 거리)이고 $b$는 두 카메라 사이의 baseline 길이(그림 2에서 노란 점선)이다. $b$와 카메라 intrinsic $K$가 알려졌다고 가정하면, 그림 2에 그려진대로 두 rectified 이미지 사이의 대응점을 찾을 수 있고 그들의 disparity와 depth를 알 수 있다. $p$에 대한 대응점 $p'$를 식별하는 한가지 접근은 다른 이미지에서 epipolar line을 따라 간단한 1d 검색을 수행하여 픽셀 또는 패치 유사성을 사용하여 가장 가능한 $p'$의 위치를 결정하는 것이다. 그러나 이런 순진한 접근은 현실 세계 이미지에서 occlusion, repetitive 패턴과 homogeneous region(즉, texture의 부재)과 같은 이슈를 겪을 수 있다. 대신 현대의 representation learning 방법을 사용한다.

Cap 2024-06-19 11-21-13-123.png

2.2 Supervised Estimation

여기서 monocular (single-view) depth estimation의 작업에 초점을 맞춘다. 우리는 테스트 시간에 가능한 단일 이미지만 사용하고 장면 내용에 대한 어떤 가정도 하지 않는다. 반면 stereo(multi-view) depth estimation 방법은 여러 이미지를 사용하여 추론을 수행한다. monocular depth estimation은 under-constrained 문제이다. 즉 기하학적으로 이미지에서 각 픽셀의 깊이를 결정하는 것이 불가능하다. 그러나 인간은 perspective, scaling, 조명과 차폐를 통한 appearance 같은 단서를 활용하여 하나의 눈만으로도 깊이를 잘 추정할 수 있다. 그러므로 이런 단서를 활용하면 컴퓨터도 단일 이미지만으로 깊이를 추론할 수 있어야 한다. 그림 4에 나온 fully supervised learning 방법은 학습 모델(CNN)에 의존하여 ground truth depth와 RGB 카메라 프레임의 쌍에 대한 픽셀별로 disparity를 예측한다.학습 loss는 예측과 ground-truth depth 사이의 유사성을 포착하고 이 손실을 최소화하는 것에 초점을 맞춘다. monocular 방법은 depth를 scale까지만 포착할 수 있기 때문에 [1]은 기존의 monocular 방법에 대해 scale-invariant error를 사용할 것을 제안한다.

Cap 2024-06-19 11-21-26-011.jpg

2.3 Unsupervised Estimation

supervised learning 방법이 괜찮은 결과를 달성했지만, 이 방법들은 대량의 ground depth 데이터가 존재하는 장면 유형에만 제한된다. 이는 입력 RGB 프레임 데이터와 알려진 intrinsic을 갖는 stereo 카메라만 요구하여 값비싼 라벨링 효과를 피할 수 있는 unsupervised 학습 방법에 동기를 부여한다. 여기서는 사례 연구로써 [3]에서 제안된 접근을 조사한다. reconstructed와 ground truth depth사이의 차이를 loss로 사용하는 대신 unsupervised formulation은 autoencoder를 사용하여 입력 reference image와 reconstructed version $\tilde{I}^l$ 사이의 차이를 최소화하는 이미지 reconstruction으로 문제를 변환한다.

Cap 2024-06-19 11-21-38-997.jpg

그림 5에 보여지는 baseline 네트워크는 왼쪽 이미지 $I^l$만 재구성한다. 네트워크에 대한 입력은 왼쪽 프레임 $I^l$이다. CNN은 왼쪽 프레임을 오른쪽 이미지 $I^r$을 왼쪽으로 warp하는데 필요한 disparity(displacement) 값 $d^l$로 매핑한 다음, disparity 값을 intermediate representation으로 사용하여 오른쪽 이미지에서 샘플링하여 왼쪽 이미지 $\tilde{I}^l$를 재구성한다. $\tilde{I}^l (u, v) = I^r(u-d^l(u,v),v)$로 오른쪽 이미지에서 샘플링할 수 있지만 $d^l(u,v)$는 정수가 아니므로 정확한 새로운 위치에서 픽셀은 존재하지 않을 수 있다. 네트워크를 학습하기 위해 end-to-end 최적화를 수행하려면 fully (sub-) 미분가능한 bilinear 샘플러를 사용한다.