컴퓨터 비전, 자연어 처리 분야 모두 다양한 downstream task를 zero / few-shot으로 해결하는데 기여하는 foundation model을 개발하기 위해 많은 연구를 진행하고 있다.
본 논문은 어떠한 이미지에 대해서도 depth를 예측할 수 있는 monocular depth estimation (MDE) foundation model을 제안한다.
MDE는 로보틱스, 자율주행, VR, 등의 어플리케이션에서 필히 해결해야 할 문제이다. 이전에는 depth를 계산하기 위해 센서, stereo matching, SFM (Structure-From-Motion) 등의 기술을 사용했다. 하지만 저자는 처음으로 대용량의 레이블 없는 데이터에 초점을 둔다.
해결 방식은 이전에 센서를 이용하여 레이블을 얻는 방식이나 SFM 기법과 비교하여 큰 이점을 가지고 있다.
모델은 우선 레이블된 데이터를 제공하는 6개의 public dataset을 통해 초기 모델을 training 한다. 그 후 레이블이 없는 데이터에 대해 자동으로 annotation을 생성하고, 레이블된 이미지와 함께 student model을 training 하는데 사용한다.
하지만, 생성된 가짜 레이블 데이터와 레이블된 데이터를 바로 함께 student model에 사용했을 때, 레이블된 데이터만으로 학습했던 teacher model에서 성능이 크게 올라가지 않는다고 한다. 저자는 이 문제를 해결하기 위해 student 모델이 가짜 레이블로 학습할 때 더 최적화하기 어려운 타겟을 통해 학습하도록 하여, student model이 추가적인 시각적 지식을 얻고, 안 본 데이터에 대해서도 robust 해지도록 한다.

Label이 있는 데이터셋은 , 없는 데이터셋은 라고 하자.
우섯 첫 번째로 teacher model 를 을 이용하여 학습하고, 학습된 를 통해 의 가짜 레이블을 생성한다.
다음으로 student model 를 과 가짜 레이블을 포함한 를 통해 학습하게 된다.

의 학습과정은 다음과 같다. 입력 이미지 각 픽셀에 대해 예측된 depth 값 이 있을 대, 우리가 알지 못하는 scale과 shift를 무시하는 affine-invariant loss를 통해 모델의 최적화가 이루어진다. Labeled loss는 다음과 같이 정의된다.
여기서 가 affine-invariant loss로, 아래와 같다.
여기서 는 depth 값의 scale, shift된 버전이다.
나아가, 를 더 강력하게 만들기 위해, 저자는 사전 학습된 DINO v2의 가중치로 모델의 인코더의 초깃값을 설정한다. 그리고 사전 학습된 segmentation 모델을 통해 하늘 영역을 인식하여 0으로 값을 설정해둔다.
이 부분이 본 논문의 핵심이다.
컴퓨터 비전 task에서 레이블이 있는 데이터셋은 얻기 힘들지만, 없는 데이터셋은 쉽게 얻을 수 있다. 또한 한 scene에 대해 여러 각도에서 촬영한 이미지들을 통해 stereo matching이나 SFM 알고리즘을 쓰는 것보다, MDE 모델을 통해 depth map을 쉽게 얻을 수 있다.
의 조합을 이용해서 student model 를 학습한다.
하지만 이 과정을 거쳐도 모델 성능에 큰 향상이 없었다고 한다. 충분한 양의 레이블 셋이 있다보니, 레이블이 없는 셋에서 추가적인 지식을 얻는 데에는 한계가 있었다.
레이블이 없는 셋에서 추가적인 시각적 지식을 얻기 위해, 저자는 에 최적화하기 어려운 이미지를 입력으로 주는 방법을 제안한다. 첫 번째 기법은 color jittering, Gaussian blur와 같은 color distortion 기법이고, 두 번째 기법은 CutMix라는 spatial distortion 기법이다.
CutMix 방식은 랜덤한 두 개의 레이블이 없는 이미지 를 공간적으로 interpolate하는 방식이다.
여기서 은 임의의 직사각형 영역을 1로 설정한 mask이다.
Unlabeled loss는 영역에 대해 각각 labeled loss를 구했을 때처럼 affine-invariant loss를 계산한 후 weigted average를 통해 합쳐서 구해진다.
이전 연구에서 semantic segmentation task를 depth estimation task에 활용하면 성능이 향상한다는 것을 보였다. 저자는 high-level한 semantic 정보를 MDE 모델에 주입하여 더 좋은 성능을 기대한다.
첫 번째 시도는 RAM, Grounding DINO, HQ-SAM 모델의 조합으로 레이블 없는 셋에 semantic segmentation label을 할당하는 방법이다. 이를 MDE 모델과 함께 training 해서 depth와 segmentation 결과를 예측하게 했지만, 기존의 MDE 모델만 사용했을 때와 성능 면에서 큰 차이가 없었다고 한다. 이는 이미지를 이산적인 클래스 공간에 decoding 하는 것이 많은 semantic 정보를 손실하기 때문에 성능 향상을 기대할 수 없었다고 한다.
두 번째 시도는 image retrieval, semantic segmentation과 같은 semantic 관련 task에서 fine-tuning 없이 학습된 가중치만으로도 좋은 성능을 보인 DINO v2 모델을 사용하는 것이다.
저자는 해당 모델을 통해 얻은 semantic 정보를 MDE 모델에 주입하고, feature alignment loss를 도입하여, 고차원이면서 연속적인 feature space에서 최적화를 진행하여 모델의 성능을 향상시키고자 한다.
위 식에서 는 에서, 는 DINO v2에서 각각 나온 feature vector이고, 두 벡터 간의 코사인 유사도를 통해 loss 값을 구한다.
여기서 주의할 점은, DINO v2는 하나의 물체에 대해 각자 다른 부분에서 비슷한 벡터를 산출하지만 (예를 들어 자동차의 앞, 옆, 뒤 모두 결국엔 자동차이므로 같은 벡터를 산출), depth estimation에서는 같은 물체에 대해서도 각 픽셀마다 depth가 다양하다는 점이다. 이 문제를 해결하기 위해, 저자는 허용 가능한 margin 값 를 설정하여, 와 의 코사인 유사도가 를 넘지 않는 픽셀에 대해서만 해당 loss term을 적용한다.
전체적인 loss는 총 3 개의 loss term을 평균 조합하여 모델을 최적화한다.