자기지도 깊이 추정
자기지도(self-supervised) 단안 깊이 추정은 단일 이미지로부터 픽셀별 깊이를 예측하도록 네트워크를 학습시키는 것이다 — 정답 깊이 레이블 없이. 그 지도 신호는 **광도 일관성(photometric consistency)**이다: 예측된 깊이(와 상대 카메라 포즈)가 정확하다면, 장면의 한 뷰를 다른 뷰로 워핑(warp)할 수 있고, 워핑된 이미지는 실제 이미지와 일치해야 한다.
구체적으로, 타겟 이미지 와 소스 이미지 (스테레오 쌍의 다른 이미지, 또는 인접한 비디오 프레임)가 주어지면, 예측된 깊이 와 상대 포즈 가 워프를 정의한다: 각 픽셀 는 3D로 역투영되고, 변환되고, 다시 소스 뷰로 투영된다,
그리고 학습 손실은 와 재구성된 사이의 광도 차이를 벌점화한다(일반적으로 SSIM + L1 혼합에 에지 인지 매끄러움 사전 정보를 더함). 두 가지 학습 방식이 존재한다:
- 스테레오 학습: 뷰 사이의 포즈는 알려진 고정 스테레오 베이스라인이므로, 학습된 깊이는 미터 단위이다. (Monodepth, Godard 2017.)
- 단안 비디오 학습: 두 번째 네트워크가 깊이와 함께 프레임 간 포즈를 예측한다(SfM-Learner, Zhou 2017) — 리그가 필요 없지만, 깊이는 스케일까지만 복원되며, 움직이는 물체는 정적 장면 가정을 위반한다.
Monodepth2(Godard 2019)는 주요 실패 모드에 대한 간단한 해법을 제시하는 대표적인 참조 구현이다: 소스 프레임 전체에 대한 픽셀별 최소 재투영 손실(가림 처리), 프레임 간 변하지 않는 픽셀을 무시하는 오토 마스킹 기법(카메라와 함께 움직이는 물체와 정지 프레임 처리), 그리고 전체 해상도에서 계산되는 다중 스케일 손실을 제공한다.
손실 함수, 전체
표준 광도 오차는 구조적 유사성과 절대 차이를 결합한다.
여기서 SSIM 항은 순수 L1 손실을 지배할 수 있는 밝기/노출 변화에 대한 강건성을 제공한다. 광도 오차는 질감이 없는 영역에서 정보량이 없기 때문에(어떤 깊이든 매끈한 벽을 똑같이 잘 재현한다), 에지 인지 매끄러움 항이 (평균 정규화된) 역깊이 를 정규화한다:
이는 깊이 불연속이 나타날 가능성이 높은 이미지 에지를 제외한 곳에서 매끄러운 깊이를 유도한다. Monodepth2의 소스 프레임에 대한 픽셀별 최소값 은 일반적인 평균을 대체한다: 한 소스 뷰에서는 가려졌지만 다른 뷰에서는 보이는 픽셀은, 실제로 재투영이 성공할 수 있는 뷰에 대해서만 점수가 매겨진다 — 두 글자짜리 변경(평균 → 최소)이지만 그 효과는 대단히 크다.
워핑에 무엇이 필요한지 주목하라: 를 비정수 위치 에서 미분 가능하게 이중선형 샘플링하는 것(spatial-transformer 기법)이다. 이것이 깊이, 포즈, 투영이라는 전체 기하학적 파이프라인을 경사 하강법으로 종단간(end-to-end) 학습할 수 있게 하는 핵심 요소이다.
실패하는 곳과 그 이유
지도 신호는 그 가정만큼만 유효하다: 정적이고 램버시안(Lambertian)인 장면, 밝기 불변성, 그리고 움직이는 카메라라는 가정이다. 각각의 가정이 깨지면 알려진 실패 모드가 된다:
- 카메라와 같은 속도로 함께 움직이는 물체(앞에서 같은 속도로 달리는 차)는 광류가 0이며, 광도 일관성은 이를 무한 깊이로 해석한다 — 오토 마스킹이 억제하는 고전적인 “앞쪽 도로에 구멍이 뚫린” 아티팩트다.
- 독립적으로 움직이는 물체는 강체 장면 워프를 위반하며, 마스킹된 손실이 피해를 제한하더라도 부정확한 깊이를 받는다.
- 비램버시안 표면 — 반사, 유리, 물, 광택 있는 자동차 도장 — 은 시점 변화에 따라 “잘못” 움직이며 손실을 오염시킨다.
- 낮은 질감과 저조도: 경사 신호가 없으므로, 그 영역의 깊이는 매끄러움 사전 정보에서만 나오는 순수한 보간이다.
- 스케일: 비디오로 학습된 모델은 단안 스케일 모호성을 물려받는다; 흔히 쓰이는 이미지별 중앙값 스케일링 평가 프로토콜은 이를 감추지만, SLAM에 통합할 때는 다른 곳(스테레오 학습, IMU, 또는 미터 단위 사전 정보)에서 스케일을 공급해야 한다.
흔한 함정
- 불확실성 없이 깊이를 신뢰하기: 네트워크 깊이는 공간적으로 상관되고 장면에 의존하는 오차를 가진다; 이를 마치 i.i.d. 센서 노이즈처럼 SLAM에 융합하면 심하게 과대평가하게 된다. D3VO의 학습된 불확실성이 이에 대한 원칙적인 답이다.
- 도메인 시프트: KITTI로 학습된 모델을 실내(또는 어안 카메라, 야간 앞유리 너머)에 적용하면 조용히 성능이 저하된다 — 이를 기반으로 무언가를 구축하기 전에 자신의 도메인에서 깊이 품질을 검증해야 한다.
- 내부 파라미터 불일치: 워프는 를 사용한다; 학습 시와 다른 초점 거리나 보정되지 않은 왜곡을 가진 이미지를 입력하면 네트워크가 내재화한 기하가 깨진다.
SLAM에서의 활용
SLAM에서는 이 네트워크들이 깊이 사전 정보로 작동한다: CNN-SLAM은 학습된 깊이를 LSD-SLAM 방식의 밀집 매핑에 융합하고; DVSO는 스테레오로 학습된 네트워크를 DSO 내부의 “가상 스테레오” 제약으로 사용하여 단안 스케일 모호성을 해소하며; D3VO는 한 걸음 더 나아가 포즈와 광도 불확실성까지 학습하여 세 가지 모두를 VO 백엔드에 긴밀하게 통합한다.
SLAM에서의 의미
자기지도 깊이 추정은 레이블 없는 비디오만으로 훈련하여 단일 카메라를 근사적인 깊이 센서로 바꾸어 놓는다 — 단안 SLAM의 두 가지 고전적 약점인 스케일 모호성과 느린 깊이 초기화를 직접 공략한다. 그 핵심에 있는 광도 워핑 손실은 직접 SLAM의 광도 오차와 동일한 메커니즘이며, 이는 딥러닝과 직접법 사이의 자연스러운 다리이자, 오늘날 깊이 파운데이션 모델의 개념적 조상이다.