자기지도 깊이 추정

자기지도(self-supervised) 단안 깊이 추정은 단일 이미지로부터 픽셀별 깊이를 예측하도록 네트워크를 학습시키는 것이다 — 정답 깊이 레이블 없이. 그 지도 신호는 **광도 일관성(photometric consistency)**이다: 예측된 깊이(와 상대 카메라 포즈)가 정확하다면, 장면의 한 뷰를 다른 뷰로 워핑(warp)할 수 있고, 워핑된 이미지는 실제 이미지와 일치해야 한다.

구체적으로, 타겟 이미지 ItI_t와 소스 이미지 IsI_s(스테레오 쌍의 다른 이미지, 또는 인접한 비디오 프레임)가 주어지면, 예측된 깊이 DtD_t와 상대 포즈 TtsT_{t \to s}가 워프를 정의한다: 각 픽셀 p\mathbf{p}는 3D로 역투영되고, 변환되고, 다시 소스 뷰로 투영된다,

psKTtsDt(p)K1p,\mathbf{p}_s \sim K\, T_{t \to s}\, D_t(\mathbf{p})\, K^{-1} \mathbf{p},

그리고 학습 손실은 It(p)I_t(\mathbf{p})와 재구성된 Is(ps)I_s(\mathbf{p}_s) 사이의 광도 차이를 벌점화한다(일반적으로 SSIM + L1 혼합에 에지 인지 매끄러움 사전 정보를 더함). 두 가지 학습 방식이 존재한다:

Monodepth2(Godard 2019)는 주요 실패 모드에 대한 간단한 해법을 제시하는 대표적인 참조 구현이다: 소스 프레임 전체에 대한 픽셀별 최소 재투영 손실(가림 처리), 프레임 간 변하지 않는 픽셀을 무시하는 오토 마스킹 기법(카메라와 함께 움직이는 물체와 정지 프레임 처리), 그리고 전체 해상도에서 계산되는 다중 스케일 손실을 제공한다.

손실 함수, 전체

표준 광도 오차는 구조적 유사성과 절대 차이를 결합한다.

pe(Ia,Ib)=α2(1SSIM(Ia,Ib))+(1α)IaIb1,α=0.85,pe(I_a, I_b) = \frac{\alpha}{2}\left(1 - \mathrm{SSIM}(I_a, I_b)\right) + (1 - \alpha)\,\| I_a - I_b \|_1, \qquad \alpha = 0.85,

여기서 SSIM 항은 순수 L1 손실을 지배할 수 있는 밝기/노출 변화에 대한 강건성을 제공한다. 광도 오차는 질감이 없는 영역에서 정보량이 없기 때문에(어떤 깊이든 매끈한 벽을 똑같이 잘 재현한다), 에지 인지 매끄러움 항이 (평균 정규화된) 역깊이 dd^*를 정규화한다:

Lsmooth=xdexI+ydeyI,L_{smooth} = \left| \partial_x d^* \right| e^{-\left|\partial_x I\right|} + \left| \partial_y d^* \right| e^{-\left|\partial_y I\right|},

이는 깊이 불연속이 나타날 가능성이 높은 이미지 에지를 제외한 곳에서 매끄러운 깊이를 유도한다. Monodepth2의 소스 프레임에 대한 픽셀별 최소값 minspe(It,Ist)\min_s pe(I_t, I_{s \to t})은 일반적인 평균을 대체한다: 한 소스 뷰에서는 가려졌지만 다른 뷰에서는 보이는 픽셀은, 실제로 재투영이 성공할 수 있는 뷰에 대해서만 점수가 매겨진다 — 두 글자짜리 변경(평균 → 최소)이지만 그 효과는 대단히 크다.

워핑에 무엇이 필요한지 주목하라: IsI_s를 비정수 위치 ps\mathbf{p}_s에서 미분 가능하게 이중선형 샘플링하는 것(spatial-transformer 기법)이다. 이것이 깊이, 포즈, 투영이라는 전체 기하학적 파이프라인을 경사 하강법으로 종단간(end-to-end) 학습할 수 있게 하는 핵심 요소이다.

실패하는 곳과 그 이유

지도 신호는 그 가정만큼만 유효하다: 정적이고 램버시안(Lambertian)인 장면, 밝기 불변성, 그리고 움직이는 카메라라는 가정이다. 각각의 가정이 깨지면 알려진 실패 모드가 된다:

흔한 함정

SLAM에서의 활용

SLAM에서는 이 네트워크들이 깊이 사전 정보로 작동한다: CNN-SLAM은 학습된 깊이를 LSD-SLAM 방식의 밀집 매핑에 융합하고; DVSO는 스테레오로 학습된 네트워크를 DSO 내부의 “가상 스테레오” 제약으로 사용하여 단안 스케일 모호성을 해소하며; D3VO는 한 걸음 더 나아가 포즈와 광도 불확실성까지 학습하여 세 가지 모두를 VO 백엔드에 긴밀하게 통합한다.

SLAM에서의 의미

자기지도 깊이 추정은 레이블 없는 비디오만으로 훈련하여 단일 카메라를 근사적인 깊이 센서로 바꾸어 놓는다 — 단안 SLAM의 두 가지 고전적 약점인 스케일 모호성과 느린 깊이 초기화를 직접 공략한다. 그 핵심에 있는 광도 워핑 손실은 직접 SLAM의 광도 오차와 동일한 메커니즘이며, 이는 딥러닝과 직접법 사이의 자연스러운 다리이자, 오늘날 깊이 파운데이션 모델의 개념적 조상이다.

관련 문서