(계속 수정 업데이트중입니다)
오늘 리뷰할 논문은 다음과 같다.
1. 논문리뷰, 2. 코드리뷰(다음 게시물 참고)
필요한 구간으로 넘어가세요!
Apple
arXiv:2410.02073v1 [cs.CV] 2 Oct 2024
링크 : Depth Pro : Sharp Monocular Metric Depth in Less Than a Second
Depth Pro: Sharp Monocular Metric Depth in Less Than a Second
We present a foundation model for zero-shot metric monocular depth estimation. Our model, Depth Pro, synthesizes high-resolution depth maps with unparalleled sharpness and high-frequency details. The predictions are metric, with absolute scale, without rel
arxiv.org
https://github.com/apple/ml-depth-pro
GitHub - apple/ml-depth-pro: Depth Pro: Sharp Monocular Metric Depth in Less Than a Second.
Depth Pro: Sharp Monocular Metric Depth in Less Than a Second. - apple/ml-depth-pro
github.com
코드 리뷰 :
https://minsunstudio.tistory.com/62
[논문 리뷰] 코드 파헤치기 Depth Pro : Sharp Monocular Metric Depth in Less Than a Second (24.09)
(계속 수정 업데이트중입니다) 오늘 리뷰할 논문은 다음과 같다.1. 논문리뷰(이전 게시물 참고), 2. 코드리뷰필요한 구간으로 넘어가세요! ApplearXiv:2410.02073v1 [cs.CV] 2 Oct 2024 링크 : Depth Pro :
minsunstudio.tistory.com
1. 논문 리뷰
0. Abstract
이 논문은 zero-shot metric monocular depth estimation(제로샷 단안 거리 측정 기반 깊이 추정)의 foundation model <Depth Pro>을 제안한다.
- zero-shot : 학습데이터를 사용하지 않거나 특정 데이터셋에 대한 추가 학습 없이 모델이 바로 새로운 데이터에 대해 작업 수행
- monocular : 단일 카메라
Depth Pro는
- high-resolution depth maps를 synthesize(합성, 생성)하며, 비교할 수 없는 선명함과 고주파 디테일을 갖고있다.
- 카메라 내부정보와 같은 metadata에 의존하지 않고 absolute scale(절대적인 거리)를 예측한다.
- 모델은 빠르게 동작하며 standard GPU에서 0.3초 안에 2.25 megapixel (1500x1500=2,250,000) 크기의 depth map을 생성한다.
- megapixel : 이미지의 해상도를 나타내는 단위, 이미지의 가로x세로 픽셀 수 = 100만 pixel 을 의미
- 여러 technical contribution :
- 조밀한 예측을 위한 효율적인 multi-scale Vision Transformer 사용
- real & synthetic 데이터셋을 혼합한 training protocol -> metric accuracy(계량적 정확도) 높이고 fine boundary tracing을 달성
- depth maps의 boundary accuracy를 위한 평가지표
- single image로부터 sota의 focal length(초점거리) 추정
1. Introduction
제로샷 단안 깊이 추정(Zero-shot monocular depth estimation)은 고급 이미지 편집, view synthesis, conditional image generation(조건부 이미지 생성)과 같은 다양한 응용 분야의 기반이 됨.
MiDaS(Ranftl et al., 2022)와 여러 후속 연구(Ranftl et al., 2021; Ke et al., 2024; Yang et al., 2024a; Piccinelli et al., 2024; Hu et al., 2024)에서 영감을 받아, 애플리케이션들은 점점 더 어떤 이미지에서도 dense pixelwise depth map(조밀한 픽셀 단위 깊이 지도)를 생성할 수 있는 기능을 활용하고 있다.
특히 우리의 연구는 single image로부터의 novel view synthesis(NVS)이라는 흥미로운 응용에서 동기를 얻었으며, 이는 monocular depth estimation(단안 깊이 추정)기술의 발전에 의해 완전히 변화됨(Hedman et al., 2017; Shih et al., 2020; Jampani et al., 2021; Khan et al., 2023).
NVS 같은 응용은 단안 깊이 추정에 몇 가지 중요한 요구사항을 제시 :
- 첫째, depth estimator는 특정 도메인에 제한되지 않고 어떤 이미지에서도 제로샷으로 작동해야 함(Ranftl et al., 2022; Yang et al., 2024a).
- (추가) zero shot : 모델이 특정 도메인(예: 학습 데이터셋의 범위)에 제한되지 않고, 새로운 데이터나 환경에서도 추가 학습 없이 작동할 수 있는 능력
- (추가) 이전에는 실내, 실외 데이터 등 하늘이 있고 없고 데이터의 차이에 따라 오버피팅 되거나 도메인에 상관없이 다 잘 되지는 않음을 보임
- 또한, 제로샷 환경에서는 객체의 형상, 장면 구성(scene layout), 절대적 스케일을 정확히 재현하기 위해 계량적(metric) depth maps를 생성해야 한다.
가장 광범위한 현실 응용 가능성을 위해(in the wild), camera intrinsics카메라 내부 파라미터(예: focal length)가 제공되지 않더라도 absolute scale 갖춘 metric depth maps를 생성할 수 있어야 함. - 이는 single 이미지에서 “이 장면을 63mm 떨어진 거리에서의 시점으로 합성하라”는 view synthesis scenario를 가능하게 함(Dodgson, 2004).
- 둘째, 가장 compelling흥미로운 결과를 위해 monocular(단안) depth estimator는 고해상도로 작동하며, 머리카락, 털, 기타 fine 구조와 같은 이미지 디테일을 세밀히 반영하는 fine-grained depth maps를 생성해야 한다.
세밀한 디테일을 정확히 반영한 sharp depth maps를 생성하는 한 가지 이점은 “flying pixels“을 제거할 수 있다는 것이다.- flying pixels : view synthesis 같은 응용에서 이미지 품질을 저하시킴
(추가) 깊이 추정과 3D 렌더링에서 나타나는 대표적인 시각적 결함으로, 물체와 배경의 경계가 부정확하거나 세부 디테일이 제대로 처리되지 않을 때 발생, 비현실적이고 어색해보임- (추가) 이를 해결하기 위해서는 depth maps품질 향상해서 경계디테일을 정확히 추정하도록 하던가
후처리 -> 경계 픽셀을 스무딩하거나 이상치 제거 알고리즘
loss func 최적화 또는 정확한 데이터셋(synthetic)이 있을 수 있음
- (추가) 이를 해결하기 위해서는 depth maps품질 향상해서 경계디테일을 정확히 추정하도록 하던가
- flying pixels : view synthesis 같은 응용에서 이미지 품질을 저하시킴
- 셋째, 대화형(interactive) 응용 시나리오에서는 depth estimator가 낮은 지연(latency)으로 작동해야 하며, 고해상도 이미지를 1초 이내에 처리하여 대화형 view synthesis “queries쿼리”를 즉각적으로 지원할 수 있어야 함.
low latency는 제로샷 단안 깊이 추정을 신경망의 단일 순방향 패스(single forward pass)로 줄이는 방법의 일반적인 특징이다.- (추가) single forward pass : 신경망이 입력 데이터를 한번만 처리하여 결과 생성해서 처리 속도 빠르고 추가학습이나 backpropagation같은게 없어서 빠른 응답시간을 충족 가능
- 하지만 이는 test time에서 더 많은 계산 자원을 요구하는 기법들에서는 항상 공유되는 특성은 아님.
본 연구에서는 이러한 모든 요구사항(desiderata)을 충족하는 제로샷 계량적 단안 깊이 추정을 위한 기반 모델(foundation model)을 제시
우리의 모델, Depth Pro는 카메라 내부 파라미터(camera intrinsics)와 같은 메타데이터 없이도 ‘in the wild’(자연스러운 환경의 임의의 이미지)에서 absolute scale을 갖춘 metric depth maps를 생성.
- (추가) in the wild ? : 실제환경에서 사용되거나 테스트될 때의 상황, 통제되지 않은 환경, 실제 응용 가능성에 두고 설계 <->연구실 실험 환경
이 모델은 고해상도로 작동하며, 2.25메가픽셀(1536 × 1536의 기본 출력 해상도, 선택적 업샘플링 이전 기준) 깊이 지도를 V100 GPU에서 0.3초 내에 생성. 그림 1은 몇 가지 대표적인 결과를 보여줍니다.
Depth Pro는 특히 머리카락, 털, 식물과 같은 세밀한 구조를 포함하여, 객체 경계를 선명하게 구분하는 데 있어 이전 모든 연구를 극적으로 능가. 그림 2에서 보이듯, Depth Pro는 경계 추적(boundary tracing)에서 비교할 수 없는 성능을 제공하며, boundary recall에서 이전 모든 연구를 곱셈적 수준multiplicative factor으로 능가합니다(추가 세부 사항은 4장에서 확인).
Depth Pro는 경계 정확성(boundary accuracy)에서 이전 최고 성능 연구들(Ke et al., 2024; Li et al., 2024a)보다 1~2단계 더 빠르며, 훨씬 더 정확한 경계를 제공하고, 절대적 스케일을 갖춘 계량적 깊이 지도를 생성합니다.
Depth Pro는 여러 기술적 기여를 통해 가능해짐.
- 첫째, 우리는 global image context을 캡처하면서도 고해상도에서 fine structures를 유지하는 효율적인 multi-scale ViT 기반 아키텍처를 설계.
- 둘째, monocular depth maps의 boundary tracing추적 정확성을 평가하기 위해 매우 정확한 매팅(matting) 데이터셋을 활용할 수 있는 새로운 metrics 세트를 도출했다.
- (추가) matting dataset? : 이미지의 foreground과 background 를 분리하기 위한 데이터셋, 각 픽셀에 대해 세밀한 알파값(alpha matte)를 포함함. 물체의 boundary 정보를 정확하게 제공해서 세밀한 depth maps생성에 유용
- alpha 값은 투명도, 0-1사이 값 (0:완전히 배경, 1: 완전히 전경, 그 사이 : 혼합값(경계부분))
- (추가) matting dataset? : 이미지의 foreground과 background 를 분리하기 위한 데이터셋, 각 픽셀에 대해 세밀한 알파값(alpha matte)를 포함함. 물체의 boundary 정보를 정확하게 제공해서 세밀한 depth maps생성에 유용
- 셋째, 경계 주변에서 부정확하고 coarse한 supervision을 제공하는 실제 데이터셋과, 픽셀 단위로 정확한 GT값을 제공하지만 현실감이 제한적인 합성 데이터셋에서 학습할 때 선명한 깊이 추정을 촉진하는 loss functions와 training curriculum을 고안했다.
- 넷째, 이전 최고 성능을 크게 능가하는 single image에서의 제로샷 focal length estimation을 기여
2. Related work
초기 단안 깊이 추정 연구는 단일 카메라로 녹화된 개별 데이터셋에서 학습하는 것에 초점을 맞췄습니다 (Saxena et al., 2009; Eigen et al., 2014; Eigen & Fergus, 2015). 이러한 설정은 직접적인 메트릭 깊이 예측을 가능하게 했지만, 단일 데이터셋과 좁은 도메인에만 제한되었습니다.
Zero-shot Depth Estimation
MegaDepth (Li & Snavely, 2018)는 다양한 데이터셋에서 학습함으로써 monocular depth prediction을 특정 도메인을 넘어 일반화
MiDaS (Ranftl et al., 2022)는 이 아이디어를 발전시켜, 다양한 데이터셋을 혼합하고 scale-and-shift-invariant loss을 활용하여 학습했습니다. 후속 연구들은 이 방식을 트랜스포머 기반 아키텍처에 적용하였으며 ,self-supervision을 통해 사용할 수 있는 데이터셋의 범위를 확장했습니다 (Spencer et al., 2023; Yang et al., 2024a).
self-supervision은 레이블이 없는 이미지와 비디오 데이터로부터 학습하기 위해 활용되기도 합니다
최근 연구들은 diffusion models을 활용하여 상대 깊이(relative depth) 맵을 생성하는 방법을 탐구했습니다 (Ke et al., 2024; Gui et al., 2024). 그러나 이러한 방법 중 일부는 뛰어난 일반화 성능을 보여주었지만, scale, shift에서 모호성이 존재하여 크기, 거리 또는 정확한 형태를 필요로 하는 후속 응용에 제한적입니다.
Zero-shot Metric Depth Estimation
depth maps의 global distribution를 활용하여 metric depth 예측을 개선하려는 연구가 있었습니다
추가적으로, 장면 유형(scene type)에 따라 조건화하는 접근법도 제안되었습니다
다른 접근법 - camera intrinsics를 직접적으로 고려 :
• Cam-Convs (Fácil et al., 2019) : convolution 연산을 camera intrinsics에 조건화
• LeReS (Yin et al., 2021): 포인트 클라우드를 복구하기 위해 별도의 네트워크를 학습
• Metric3D (Yin et al., 2023) : 이미지를 표준 공간으로 스케일링하고, focal length에 따라 depth를 다시 매핑
• ZeroDepth (Guizilini et al., 2023) : 카메라별 임베딩(camera-specific embeddings)을 학습.
• DMD (Saxena et al., 2023) : 시야(field of view)를 조건으로 하는 diffusion model학습
• Metric3D v2 (Hu et al., 2024) : 표면 노멀(surface normals)을 보조 출력(auxiliary output)으로 활용하여 metric depth를 향상
=> camera intrinsics가 모두 알려져 있고 정확해야 한다는 전제 필요.
최근 연구들은 알려지지 않은 camera intrinsics를 추론하려는 시도하려함
예를 들어, 별도의 네트워크를 사용하거나 (Spencer et al., 2024), depth prediction을 구면 공간(spherical space)에서 조건화하기 위해 카메라 임베딩(camera embedding)을 예측하는 방법이 제안
Depth Pro : 입력으로 focal length 필요 X
Depth prediction network의 intermediate features으로부터 field of view를 직접 추정하는 방법 제안
-> 도메인에 걸친 focal length estimation 작업에서 이전의 최첨단 방법을 크게 능가함을 보임
Sharp Occluding Contours
SharpNet (Ramamonjisoa & Lepetit, 2019)은 노멀(normals)과 폐색 경계(occluding contour) 제약을 통합하지만, 학습 중 추가적인 경계 및 노멀 데이터에 대한 supervision을 요구합니다.
BoostingDepth (Miangoleh et al., 2021)은 저해상도 네트워크를 독립적으로 이미지 패치에 적용하여 세부적인 예측을 얻습니다. 그러나 패치들은 글로벌 문맥을 포함하지 않으므로, BoostingDepth는 복잡한 다단계 파이프라인을 통해 패치를 결합합니다.
PatchFusion (Li et al., 2024a)은 이미지에 적응적인 패치 샘플링(image-adaptive patch sampling)과 맞춤형 모듈을 통해 이 개념을 발전시켰으며, 이를 통해 엔드투엔드(end-to-end) 학습이 가능하게 했습니다. 최근 연구들은 **확산 모델(diffusion priors)**을 활용하여 폐색 경계의 선명도를 향상시키고 있습니다 (Gui et al., 2024; Ke et al., 2024).
이러한 접근 방식들은 주로 메트릭 깊이(metric depth)가 아닌 relative dense prediction에 초점을 맞춥니다.
우리는 보다 간단한 아키텍처를 제안하며, 작업별 특화된 모듈이나 확산 모델을 사용하지 않습니다. 그럼에도 불구하고, 메트릭 깊이 맵을 생성하면서도 더 선명하고 정확한 결과를 도출할 수 있음을 보여줍니다. 또한, 실행 시간을 100배 이상 단축할 수 있음을 증명합니다.
Guided Depth Super-Resolution은 입력 이미지를 사용하여 저해상도 dense prediction을 업샘플링합니다 (Metzger et al., 2023; Zhong et al., 2023).
SMDNet (Tosi et al., 2021)은 폐색 경계를 선명하게 하기 위해 양모드 혼합 밀도(bimodal mixture densities)를 예측합니다.
또한, Ramamonjisoa et al. (2020)은 사전 학습된 네트워크의 깊이 경계를 선명하게 학습하는 모듈을 도입했습니다.
이러한 작업들은 우리의 연구와는 독립적이며, 우리의 고해상도 예측을 추가적으로 업샘플링하는 데 적용될 수 있습니다.
예측된 깊이 맵에서 경계를 추적하기 위해, Koch et al. (2018)은 폐색 경계와 이에 대응하는 메트릭이 수동으로 주석된 iBims 데이터셋을 소개했습니다. 그러나 수동 주석과 매우 정확한 깊이 정답 데이터를 요구하기 때문에 이 벤치마크는 소규모 실내 장면에만 제한됩니다.
우리는 분할(segmentation) 및 매팅(matting) 데이터셋을 기반으로 한 메트릭을 추가로 제안합니다. 이는 복잡하고 동적인 환경이나, 정답 깊이를 얻기 어려운 극도로 세부적인 장면에서 평가를 가능하게 함으로써 보완적인 관점을 제공합니다.
Multi-scale Vision Transformers
Vision Transformers (ViTs)는 인식(perception) 작업에서 일반적인 아키텍처로 자리 잡았지만, 낮은 해상도로 작동합니다 (Dosovitskiy et al., 2021). 단순히 아키텍처를 고해상도로 확장하려는 시도는 계산 복잡성(computational complexity) 때문에 금지될 정도로 비용이 많이 듭니다.
여러 연구는 ViT의 확장에 주요 장애물이 되는 어텐션 레이어를 확인하고 이를 대체하는 방식을 제안
또 다른 연구는 ViT 아키텍처를 수정하여 계층적 특징(hierarchy of features)을 생성하도록 만들었습니다
우리는 ViT 아키텍처를 수정하지 않고, 대신 다중 스케일에서 단순한 ViT 백본을 적용한 다음, 예측을 단일 고해상도 출력으로 결합하는 네트워크 아키텍처를 제안합니다. 이 아키텍처는 ViT 사전 학습(pretraining)의 지속적인 개선의 이점을 누릴 수 있습니다. 새로운 변형이 도입될 때, 기존 모델을 대체하기 위해 간단히 교체할 수 있습니다 (Oquab et al., 2024; Peng et al., 2022b; Sun et al., 2023).
사전 학습된 비전 트랜스포머는 의미 분할(semantic segmentation) 및 객체 탐지(object detection)에 맞게 조정되었습니다. ViT-Adapter (Chen et al., 2023)와 ViT-CoMer (Xia et al., 2024)는 사전 학습된 ViT를 밀도 예측(dense prediction)을 위한 컨볼루션 네트워크로 보완합니다. 반면, ViT-Det (Li et al., 2022b)는 사전 학습된 ViT 위에 피처 피라미드(feature pyramid)를 구축합니다.
이와는 달리, 우리는 여러 스케일에서 적용된 ViT의 특징을 결합하여 글로벌 문맥(global context)과 지역적 세부(local detail)를 함께 학습합니다.
3. Method
3.1. Network
- Key idea : 여러 스케일에서 추출된 패치들에 plain ViT encoder 적용, 패치 예측을 단일 고해상도 dense 예측으로 합치는 것, end-to-end로 훈련가능한 모델사용
- 아키텍쳐 :
- depth 예측을 위해 1. patch encoder, 2. image encoder 두 가지 사용
1. patch encoder
- 멀티 스케일에서 뽑아낸 패치들에 적용
- 직관적으로, 가중치가 여러 스케일에 걸쳐 공유되기 때문에 scale에 불변하는 representations(표현)들 학습 가능.
2. image encoder
- global context 전역적인 문맥을 패치 예측과 연결하는 역할
- input 이미지 전체에 적용됨, 인코더 backbone으로 선택된 기본 input 해상도로 다운샘플링
- 위 경우 이미지를 384 x 384로 축소해서 처리
전체 네트워크(신경망)는
- 고정된 (입력) 해상도 1536 x 1536 에서 작동, ViT의 384 x 384의 배수로 선정됨
- 이는 어떠한 이미지에서든 충분히 큰 receptive field(특성맵의 크기?)와 고정된 runtime을 보장함
- out-of-memory error(메모리 부족)를 방지
- large 이미지에서 다양한 해상도를 사용할 때 반복적으로 발견되는 현상
- 가변 해상도 방식에서는 이미지 크기에 따라 메모리 사용량이 급증할 수 있으나, 고정 해상도를 사용하면 이를 방지 가능하다는 말
- 4절(Sec. 4)과 표 5(Tab. 5)에서 보고된 결과는 Depth Pro가 가변 해상도 방식보다 일관적으로 수십 배 빠르면서도 더 높은 정확도를 달성하며 경계를 더욱 선명하게 생성함을 보여줌
- over custom(사용자 정의) 인코더 대신 plain ViT 인코더로 아키텍쳐를 구성한 key benefit : 풍부한 사전훈련된 ViT 기반 backbone을 활용할 수 있다는 점
- 여러 사전 학습된 백본(backbone)을 평가하고, 우리의 아키텍처를 다른 고해상도 아키텍처들과 부록(Tab. 8 및 Sec. B.2)에서 비교
- 1536 x 1536 으로 다운샘플링 한 후, input image를 384 x 384 patch들로 분할
- (추가) downsampling :
- 1536*1536 -> 384*384 패치를 겹치도록 5*5분할
- 768*768 ->384*384 패치를 겹치도록 3*3분할
- 384*384
- (추가) downsampling :
- 두개의 finest scale에 대해서는 이음새(seams) 피하기 위해 패치를 overlap
- 384 x 384는 n배 하면 1536으로 딱 나눠 떨어지지만 나머지는 아니므로, 경계 문제 안발생하기 위해 겹침
- 각 스케일에서, 패치들은 patch encoder 에 반영되는데, 입력 패치당 24 x 24 해상도의 feature tensor를 생성
(Fig.3의 features 3-6) -> 패치 인코더가 각 패치를 24x24 크기의 피쳐맵으로 변환한다는 말 - 가장 세밀한 스케일에서는 fine-grained(더 세밀한) detail 을 캡쳐하기 위해 intermediate features(Fig.3의 feature 1-2) 를 추가로 추출
- feature patch들을 maps로 merge해서 디코더 모듈로 입력한다. 디코더는 DPT 디코더랑 유사하다
- DPT (Dense Prediction Transformer) : Vision Transformers for Dense Prediction 에서 제안된 구조
- 스케일 전반에 걸쳐(다른 크기의) representations(특징 표현)을 공유하는것에다가,
patch기반으로 인코더 네트워크에 적용하는 것은 패치들이 독립적으로 처리될 수 있어서 병렬화를 간단히 구현할 수 있는 것
- computational efficiency :
- ViT를 더 높은 해상도로 올렸을때랑 비교했을 때 (높은 해상도로 전체 이미지 처리하는 것 보다 패치단위가 효율적)
- 패치 기반 과정의 낮은 연산 복잡도(lower computatilnal complexity)
- Multi-head Self-attention의 계산 복잡도가 입력 픽셀 수에 따라 이차적으로 증가하며, 이미지 차원에서는 사차적으로 증가하기 때문 (MHA 멀티헤드어텐션은 ViT에 사용됨, Transformer 구조)
- (추가)
Multi-Head Self-Attention의 계산 복잡도는 입력 시퀀스의 각 요소가 다른 모든 요소와의 관계를 계산하기 때문에 입력 길이 n에 대해 **O(n²)**의 시간 복잡도를 가진다. 이러한 이차적 증가로 인해, 입력 시퀀스가 매우 길거나 이미지의 해상도가 높을 경우 계산 비용이 급격히 증가할 수 있다. 이를 해결하기 위해 효율적인 어텐션 메커니즘이나 저차원 표현을 사용하는 등의 최적화 기법이 연구되고 있다.
예를 들어, 입력 시퀀스의 길이가 n이라면, 각 요소는 나머지 n-1개의 요소와의 관계를 계산해야 하므로, 전체적으로 약 n × n = n² 번의 연산 필요
3.2. Sharp monocular depth estimation
Training objectives
- 각 input 이미지 에 대해, 신경망 는 canonical inverse depth image(표준 역깊이 이미지) 를 예측
- dense metric depth map \(D_m\)을 얻기 위해 horizontal field of view(수평 시야각)을 사용
- 수평 시야각은 focal length \( 이미지 width \(w\)로 표현됨 : \(D_m = \frac{f_{px}}{wC} \).
- 모두 canonical inverse depth에 기반한 몇몇 목적함수들을 train에 사용
- 이유 : 카메라에 가까운 영역을 먼 영역이나 전체 씬보다 더 우선순위를 두기 때문
-> novel view synthesis(NVS)과 같은 응용에서 시각적 품질을 향상시킴
- 이유 : 카메라에 가까운 영역을 먼 영역이나 전체 씬보다 더 우선순위를 두기 때문
- \(\hat{C}\) : canonical inverse depth의 GT 라고 하자.
- 모든 metric datasets에 대해(실제 물리거리 가짐),
- mean absolute error 평균절대오차 \(L_{MAE}\)를 픽셀 \(\)마다 계산함
그리고 Real-world datasets에 대해(as oppsed to synthetic 합성데이터셋 아닌) 이미지당 상위 20% 오차를 보이는 pixel은 무시/제외함 - \(L_{MAE}(\hat{C}, C) = \frac{1}{N} \sum_{i}^{N} \lvert \hat{C}_i - C_i \rvert\)
- mean absolute error 평균절대오차 \(L_{MAE}\)를 픽셀 \(\)마다 계산함
- 모든 non-metric datasets에 대해, (camera intrinsic 카메라 내부 파라미터를 신뢰할 수 없거나 또는 inconsistent scale, 일관성없는 scale 이미지들)
- 예측값과 GT를 정규화 : loss 적용하기 전에 중앙값으로부터 mean absolute deviation을 통해서 함
- 비측정(non-metric) 데이터셋은 카메라 내부 파라미터를 신뢰할 수 없거나 이미지 간 스케일이 일관되지 않아, 예측값과 실제값(ground truth) 사이의 직접적인 비교가 어렵다. 이러한 경우, 예측값과 실제값을 정규화하여 비교 가능하도록 만든다. 정규화는 데이터의 범위를 일정하게 조정하여 모델 학습의 효율성을 높이고, 특성 간의 스케일 차이를 줄여준다.
특히, 중앙값으로부터의 **평균 절대 편차(MAD: Median Absolute Deviation)**를 사용하여 정규화하는 이유는 데이터의 중심 경향성을 파악하고, 이상치(outlier)의 영향을 최소화하기 위함이다. MAD는 각 데이터 포인트가 중앙값에서 얼마나 떨어져 있는지를 측정하며, 이상치에 강건한(robust) 척도
- 비측정(non-metric) 데이터셋은 카메라 내부 파라미터를 신뢰할 수 없거나 이미지 간 스케일이 일관되지 않아, 예측값과 실제값(ground truth) 사이의 직접적인 비교가 어렵다. 이러한 경우, 예측값과 실제값을 정규화하여 비교 가능하도록 만든다. 정규화는 데이터의 범위를 일정하게 조정하여 모델 학습의 효율성을 높이고, 특성 간의 스케일 차이를 줄여준다.
- 그리고 다양한 스케일multiple scale에서 (canonical) inverse depth maps의 1차, 2차 미분?도함수 구하고 이에 대해 error오차를 계산
- • 1차 미분(Gradient): 깊이 맵의 기울기를 나타내며, 이는 물체의 경계나 표면의 변화를 포착하는 데 중요해. 1차 미분 오류를 계산하면 모델이 경계 부분에서 얼마나 정확하게 깊이를 예측하는지 평가할 수 있어.
- • 2차 미분(Laplacian): 깊이 맵의 곡률 변화를 나타내며, 이는 표면의 세밀한 구조나 텍스처를 포착하는 데 도움을 줘. 2차 미분 오류를 통해 모델이 세부적인 깊이 변화를 얼마나 잘 예측하는지 평가할 수 있어.
- ∇∗ : spatial derivative operator * 라고 하자. (Scharr(1차미분), Laplace(2차미분)와 같은 미분연산자)
- 예측값과 GT를 정규화 : loss 적용하기 전에 중앙값으로부터 mean absolute deviation을 통해서 함
-
- p : error norm
-
- M개 스케일에 대해 multi-scale derivative loss를 다음과 같의 정의 : \(L_{*, p, M}(C, \hat{C}) = \frac{1}{M} \sum_{j=1}^{M} \frac{1}{N_j} \sum_{i=1}^{N_j} \left| \nabla_{*} C_i^j - \nabla_{*} \hat{C}_i^j \right|^p,\)
- 스케일 는 inverse depth maps를 blurring하고, 스케일마다 2배씩 downsampling 함으로써 계산됨
- 간단히 표현하면 다음과 같음.
- Mean Absolute Gradient Error : \(L_{MAGE} = L_{S,1,6}\)
- 추가)
S : Scharr연산자(이미지 경계 검출에 사용)
1 : L1 norm
6 : 6scale (해상도수준)에서 계산 - 1차 변화량, 경사 측정 / 예측과 실제 경계 차이 최소화해서 더 선명한 경계 학습 유도
- 추가)
- Mean Absolute Laplace Error : \(L_{MALE} = L_{L,1,6}\)
- 추가)
L : Laplacian operator(2차 변화량 계산, depth map에서 곡률 정보 학습, 미세한 디테일과 곡면 표현)
- 추가)
- Mean Squared Gradient Error: \(L_{MSGE} = L_{S,2,6}\)
- 추가)
S : Scharr 연산자 (경사 검출), L2norm(제곱기준 오차측정), 6 scales - 그래디언트 제곱오차 측정해서 boundary error(제곱으로 이상치에 패널티를 더욱 주는 L2norm 특성)에 더 패널티 강하게 부여
- \(L_{MAGE}\)랑 다르게 큰 오차를 더 민감하게 반영 -> 경계와 디테일 더 정확하게 하기 위함
- 추가)
- Mean Absolute Gradient Error : \(L_{MAGE} = L_{S,1,6}\)
- M개 스케일에 대해 multi-scale derivative loss를 다음과 같의 정의 : \(L_{*, p, M}(C, \hat{C}) = \frac{1}{M} \sum_{j=1}^{M} \frac{1}{N_j} \sum_{i=1}^{N_j} \left| \nabla_{*} C_i^j - \nabla_{*} \hat{C}_i^j \right|^p,\)
Training curriculum
다음의 관찰에 기반하여 training 커리큘럼을 제안
- 첫째, 실제 데이터셋과 합성 데이터셋을 large mix해서 training 하는 것은 zero-shot accuracy로 측정되는 generalization이 향상됨
- 둘째, 합성 데이터셋은 픽셀 단위로 정확한 GT값을 제공하는 반면, 실제 데이터셋은 종종 missing area 누락된 영역, mismatched depth 깊이 불일치, 또는 물체 boundaries에서의 잘못된 측정을 포함
- 셋째, 예측 값은 training이 진행됨에 따라 점점 더 선명해짐
이러한 관찰을 바탕으로, two-stage training curriculum을 설계
- First Stage
- 네트워크가 도메인들에 걸쳐 일반화가 가능한 robust features을 학습하는 것이 목표
- 이를 위해, 모든 laveled training sets을 혼합하여 train
- 구체적으로, 계량적 데이터셋(metric datasets)에서는 \(L_{MAE}\)를 최소화
비계량적 데이터셋(non-metric datasets)에서는 이를 정규화한 버전을 최소화- \(L_{MAE}\) : 잠재적으로 corrupted손상된 real-world GT값을 처리하는 robustness 때문에 선택함
- (추가) 왜 MAE가 강건한가?Outliers에 대한 민감도 감소:
- • **MSE (Mean Squared Error)**는 오차의 제곱을 계산하므로, 큰 오차(outliers)가 결과에 과도하게 영향을 미침.• 실제 데이터셋에서 경계는 흔히 손상되거나 불완전한 GT를 가지지만, MAE는 이를 잘 처리할 수 있음.
- 반면, MAE는 절대값을 사용하므로 outliers의 영향을 줄이고, GT 값의 이상치나 노이즈에 더 강건하게 작동.
MAE는 오차를 “직관적으로” 측정하며, 특정 픽셀의 잘못된 GT 값으로 인해 모델 전체 성능이 과도하게 나빠지는 것을 방지함. - 1. Metric datasets에서 L_{MAE} 최소화
Metric datasets란? 카메라 내부 파라미터(intrinsics)**가 제공되며, 데이터의 절대 깊이 값(metric depth)이 신뢰할 수 있는 데이터셋. • 예: 정확히 측정된 라이다(LiDAR) 데이터나 정밀하게 레이블링된 데이터셋.
• 왜 L_{MAE} 를 직접 최소화하나?
• 이 데이터는 ground truth depth이 정확하므로, 예측된 깊이 값( \hat{C} )과 실제 깊이 값( C )의 차이를 그대로 줄이는 것이 효과적이야. • 손상된 GT 값이 거의 없기 때문에 추가적인 정규화 없이도 L_{MAE} 만 최소화하면 충분히 학습 가능.
2. Non-metric datasets에서 정규화한 L_{MAE} 최소화
• Non-metric datasets란? • 카메라 내부 파라미터(intrinsics)가 신뢰할 수 없거나, 스케일이 일관되지 않은 데이터셋.
• 절대 깊이 값 대신 **상대 깊이 값(relative depth)**만 사용할 수 있는 경우가 많음.
• 예: 인터넷 이미지 데이터셋, 주어진 스케일이 불확실한 데이터셋.
• 왜 정규화된 버전을 사용하나? Non-metric 데이터셋의 깊이 값은 절대적이지 않고, 스케일이나 오프셋(offset)이 데이터셋마다 다를 수 있음.
• 이를 해결하기 위해, 중앙값(median) 기준으로 데이터를 정규화한 뒤 **평균 절대 편차(mean absolute deviation, MAD)**를 계산해 상대적인 차이만 비교.
이렇게 하면 데이터의 절대적 스케일이나 오프셋이 모델 학습에 영향을 미치지 않아, 상대 깊이 값만을 학습할 수 있음.sharp boundaries로 만들기 위해, 우리는 예측 값의 그래디언트에 대해서도 supervision을 제공하는 걸 겨냥
- \(L_{MAE}\) : 잠재적으로 corrupted손상된 real-world GT값을 처리하는 robustness 때문에 선택함
- 그러나 이걸 단순히 적용하면 최적화를 방해하고 수렴 속도를 늦출 수 있음.
-> 합성 데이터셋만 적용하여서, 그래디언트에 대해 scale-and-shift-invariant loss를 사용하는 것이 가장 효과적이라는 것을 발견 ( 자세한 실험 결과는 부록)
- Second Stage
- 예측된 depth maps에서, boundaries를 선명하게 하고 fine detail을 드러내도록 디자인함
- 부정확한 GT 효과를 최소화하기 위해서 이 단계에선 오직 합성 데이터셋만 사용
- 합성 데이터셋은 high-quality로 픽셀단위로 정확한 GT를 제공한다
- 추가) 이유 : 합성 데이터셋은 렌더링한 결과로 내는데 정확한 값들을 가짐, 반면에 real datasets은 노이즈도 끼고 추정하여 계산값을 정하기 때문에 비교적 부정확한 것임
- 이는 합성 데이터로 먼저 학습한 후 실제 데이터로 미세 조정(fine-tuning)하는 일반적인 관행을 뒤집는 방식
- 합성 데이터셋은 high-quality로 픽셀단위로 정확한 GT를 제공한다
- 구체적으로, 우리는 다시 \(L_{MAE}\) 를 최소화하며, 여기에 1차, 2차 도함수(derivative)에 대한 선택적 loss들을 추가로 사용 : \(L_{MAGE}, L_{MALE}, L_{MSGE}\). (각 단계에서 적용된 손실 함수에 대한 자세한 사양은 부록)
Evaluation metrics for sharp boundaries
새로운 시점 합성과 같은 응용에서는 깊이 지도가 물체 경계를 정확히 따라야 한다. 얇은 구조에서는 특히 이 작업이 어렵다. 경계가 맞지 않거나 흐릿하면 물체가 왜곡되거나 조각난 것처럼 보일 수 있다. 일반적인 단안 깊이 추정 벤치마크는 경계의 선명도를 거의 고려하지 않는다. 이는 픽셀 단위로 정확한 참값을 가진 다양하고 현실적인 데이터셋이 부족하기 때문일 수 있다.
이 문제를 해결하기 위해 깊이 경계를 평가하기 위한 새로운 지표를 제안한다.
- 핵심 아이디어는 매팅, 주목 영역(saliency), 또는 세그멘테이션 같은 작업에 사용되는 기존의 고품질 주석(annotation)을 깊이 경계의 GT값으로 활용하는 것
- 이런 주석은 binary map로 간주되어, 물체와 주변 환경 간의 전경/배경 관계를 정의한다.
(이 관계는 모든 경우에 적용되지 않을 수 있다. 특히 세그멘테이션 마스크에서는 그렇다. 하지만 이런 문제 사례는 수동 검토를 통해 쉽게 제거할 수 있다. 새로운 세그멘테이션 마스크를 주석하는 것보다 필터링하는 작업이 훨씬 쉽다.)- (추가) 전경과 배경 간의 상대적 깊이 차이를 평가하려면 전경/배경 관계를 명확히 정의해야 한다.
예: 매팅 데이터에서는 전경이 1이고 배경이 0이므로, 어떤 픽셀이 물체 안에 있는지, 밖에 있는지를 바로 알 수 있다. - 전경/배경 관계를 유지하기 위해, 이진 지도에서 경계 주변의 픽셀만 고려한다.
- 먼저 깊이 지도에 대한 지표를 정의하고, 이후 이진 세그멘테이션 마스크에 대한 수식을 유도한다.
- Ranking Loss(Chen et al., 2016)에서 영감을 받아, 인접한 픽셀의 **쌍별 깊이 비율(pairwise depth ratio, 인접한 두 픽셀의 깊이 값을 비율로 나타낸 값.)**을 사용해 전경/배경 관계를 정의한다.
- (추가)Ranking Loss란? : 깊이 추정에서는 인접한 두 픽셀의 상대적 깊이 관계(누가 더 가깝고 누가 더 먼지)를 정확히 예측하도록 학습하는 데 사용된다.
- \(s_{ij}\) : 두 픽셀 간의 상대적 순위 (앞 픽셀이 더 가까우면 +1, 뒤 픽셀이 더 가까우면 -1).
- \( \delta\) : 마진(margin), 최소 차이를 보장하기 위한 값.
- d(i), d(j): 픽셀 i, j의 깊이 값.
- i, j: 인접한 두 픽셀.
- 수식 : \(\text{Ranking Loss} = \sum_{i,j} \max(0, -s_{ij} \cdot (d(i) - d(j) + \delta))\)
- 순위를 기반으로 한 손실 함수로, 특정 기준(예: 깊이 비율)에 따라 픽셀 간 상대적 순서를 학습하도록 유도한다.
- Saliency 작업이란?
- 1. 의미:
- • 이미지에서 시각적으로 가장 두드러지는 영역을 식별하는 작업.
- • 예를 들어, 사진에서 사람이 먼저 주목할 가능성이 높은 물체(사람, 동물, 밝은 색상 등)를 찾는 것.
- 2. 출력:
- • Saliency Map이라는 이미지를 생성하며, 각 픽셀의 값은 해당 영역이 얼마나 중요한지(주목도가 높은지)를 나타냄.
- • 밝은 값은 중요한 영역, 어두운 값은 덜 중요한 영역을 뜻함
- (추가) 전경과 배경 간의 상대적 깊이 차이를 평가하려면 전경/배경 관계를 명확히 정의해야 한다.
.
픽셀 i,j 가 인접한 위치에 있다고 가정하자. 깊이 지도 로부터 유도된 occluding contour 는 다음과 같이 정의한다:
\(c_d(i, j) = [d(j) / d(i) > (1 + t / 100)]\)
여기서 [.]는 Iverson 브래킷이다. 직관적으로, 이는 두 픽셀 i. j의 깊이 차이가 t% 이상이면 경계가 존재한다는 것을 의미한다.
모든 인접 픽셀 쌍에 대해, Precision (P)과 Recall (R)을 다음과 같이 계산한다:
\(P(t) = \frac{\sum_{i,j \in N(i)} c_d(i, j) \land \hat{c}d(i, j)}{\sum{i,j \in N(i)} c_d(i, j)}\)
\(R(t) = \frac{\sum_{i,j \in N(i)} c_d(i, j) \land \hat{c}d(i, j)}{\sum{i,j \in N(i)} \hat{c}_d(i, j)}\)
이때 P와 R은 모두 스케일 불변이다. 실험에서는 F1 score를 보고하며, 다양한 상대 깊이 비율을 고려하기 위해 \(t_{min} = 5\)에서 \(t_{max} = 25\)까지 선형적으로 변화하는 임계값으로 값을 가중 평균한다. iBims(Koch et al., 2018)에서 사용하는 경계 정확도와 완성도 같은 다른 경계 기반 지표와 비교했을 때, 우리의 지표는 수작업으로 경계를 주석할 필요 없이 픽셀 단위 참값만 있으면 되므로 합성 데이터셋에서 쉽게 얻을 수 있다.
이와 비슷하게, 실제 세그멘테이션, 주목 영역, 매팅 데이터셋으로부터 유도된 이진 라벨 지도에서도 경계를 식별할 수 있다. 이미지 위의 이진 마스크 가 주어졌을 때, 픽셀 간의 occluding contour 는 다음과 같이 정의된다:
\(c_b(i, j) = b(i) \land \neg b(j)\)
이 정의를 기반으로, depth maps에서 유도된 occluding contour 대신 binary maps에서 유도된 occluding contour를 사용해 Eq. (3)의 Recall R(t)을 계산한다.
binary maps는 일반적으로 전체 객체를 라벨링하므로, 객체 실루엣과 맞지 않는 경계를 포함한 참값 occluding contour를 얻을 수 없다. 따라서 이진 지도에서는 Precision을 계산할 수 없고 Recall만 계산한다.
흐릿한 경계를 penalize하기 위해, 연결된 컴포넌트 내에서 \(\hat{c}_d\) 의 비최대값(non-maximum values)을 억제한다. 추가 실험과 정성적 결과는 부록에 정리되어 있다.
3.3. Focal length estimation
이미지에서 부정확하거나 누락된 EXIF metatada가 있을 수 있음
따라서 우리 네트워크는 focal length(초점 거리) estimation head 로 보완
- 작은 convolutional head는 입력으로
- depth estimation network에서 frozen feature를 수집한다
- task-specific feature를 별도의 ViT image encoder에서 수집한다.
-> horizontal angular field-of-view(수평 방향 시야각)를 예측
- training loss 사용 : \( \text{L}_{2}\)
- focal length head, ViT encoder는 depth estimation training 이후에 traing한다
- depth network의 joint training(공동학습)에서 분리된 focal length training 의 장점 :
- depth, focal length training objectives(목표)를 균형있게 할 필요성이 없어짐
- 초점거리 head를 다른 데이터셋 집합에 훈련시켜도 됨
- depth estimation network에서 사용된 narrow-domain의 single-camera 데이터셋을 제외하고,
focal length supervision(지도)는 제공하지만 depth supervision는 제공하지 않는 large-scale image dataset을 추가로 사용할 수 있도록 함 - 자세한 내용은 부록
- depth estimation network에서 사용된 narrow-domain의 single-camera 데이터셋을 제외하고,
4. Experiment
이 섹션은 주요 결과를 요약한다. 데이터셋, 하이퍼파라미터, 실험 프로토콜, 실행 시간 비교에 대한 추가 세부사항과 실험은 부록에 정리되어 있다. 실행 시간 비교는 그림 2에 요약되어 있고, 네트워크 아키텍처, 학습 목표, 학습 커리큘럼에 대한 통제된 실험 결과도 포함되어 있다.
Depth Pro를 최신 계량적 단안 깊이 추정 시스템들과 비교한 주요 결과들을 요약한다. 이런 비교를 수행할 때의 한 가지 어려움은, 최신 시스템들 중 많은 것이 독자적인 데이터셋 조합으로 훈련되었다는 점이다. 일부 시스템은 공개되지 않은 데이터셋을 사용하고, 일부는 제한적인 라이선스로만 접근 가능한 데이터셋을 사용한다. 최근 시스템들 중 일부는 라벨이 없는 데이터셋이나 대규모 데이터셋에서 사전 학습된 모델(예: diffusion 모델)을 통합하기도 한다. 이런 이유로 같은 데이터셋을 사용한 시스템 간 비교는 현실적으로 불가능하다. 현재 이 연구 분야에서는 다른 도메인 간 단안 깊이 추정 모델과의 비교가 가능하려면 전체 시스템 간 비교(system-to-system)로 진행할 수밖에 없다. 각 모델은 서로 일부 중복되거나 일부는 다른 데이터셋으로 훈련되었으며, 비교 대상 시스템들이 학습에 사용하지 않은 데이터셋에서 제로샷으로 평가된다.
Zero-shot metric depth
이 연구에서는 제로샷 계량적 깊이를 예측하는 방법의 성능을 평가하고, Tab. 1에서 최신 시스템들과 비교했다.
기준 모델에는 Baseline :
- Depth Anything (Yang et al., 2024a), Metric3D (Yin et al., 2023), PatchFusion (Li et al., 2024a), UniDepth (Piccinelli et al., 2024), ZeroDepth (Guizilini et al., 2023), ZoeDepth (Bhat et al., 2023), Depth Anything v2 (Yang et al., 2024b), Metric3D v2 (Hu et al., 2024)
계량적 깊이 정확도의 종합적인 요약 지표로 Tab. 1은 메트릭(Ladicky et al., 2014)을 사용했다.
이 메트릭은 예측 깊이와 실제 깊이 간의 차이가 25% 이내인 픽셀의 비율을 나타낸다.
이는 문헌에서 가장 엄격한 기준인 25%를 사용하며, 강건한 평가 지표로 선택되었다.
부록 A.2에서는 추가적인 메트릭(AbsRel, Log10, , 점수)과 점 구름(point-cloud) 메트릭(Spencer et al., 2022)에 대한 표를 확인할 수 있다. Tab. 1은 데이터셋 전반의 성능을 요약하기 위해 각 메서드의 평균 순위도 보고하며, 이는 데이터셋 간 성능을 요약하는 일반적인 방식이다(Ranftl et al., 2022).
Booster (Ramirez et al., 2024), Middlebury (Scharstein et al., 2014), SunRGBD (Song et al., 2015), ETH3D (Schöps et al., 2017), nuScenes (Caesar et al., 2020), Sintel (Butler et al., 2012) 데이터셋에서 결과를 보고한다. 이 데이터셋들은 우리가 알기로는 평가된 시스템들 중 어떤 것도 훈련에 사용되지 않았다. 하지만 ZeroDepth 모델을 Booster, Middlebury, Sun-RGBD에서 실행하려 했지만, 이미지 해상도가 너무 높아서 메모리 초과로 인해 실행할 수 없었다. 평가 설정에 대한 더 자세한 내용은 부록 C에 있다.
Tab. 1의 결과는 Piccinelli et al. (2024)의 발견을 확인해준다. 이들은 주요 계량적 깊이 추정 모델들 중 일부가 상당한 도메인 편향(domain bias)을 가지고 있다고 관찰했다. 특히, Depth Anything v1 & v2는 상대적 깊이 추정(relative depth estimation)에 초점을 맞추며, 계량적 깊이를 위해서는 실내 또는 실외 장면에 맞춰 도메인별로 fine-tuned 된 모델을 제공한다. Metric3D v1 & v2는 도메인 불변 모델(domain-invariant)을 제공하지만, 성능은 테스트 시 도메인별로 크롭 크기를 신중히 선택하는 데 크게 의존한다. 이는 그들의 실험에서 도메인별로 수행되었으며 제로샷 전제(훈련 데이터에 없는 데이터셋에서 평가)와는 맞지 않는다. 우리는 이미지의 종횡비(aspect ratio)를 기반으로 크롭 크기를 자동으로 설정하려고 시도했지만, 이는 Metric3D의 성능을 크게 저하시켰다. 이런 이유로, 권장된 비제로샷(non-zero-shot) 프로토콜과 권장된 도메인별 크롭 크기를 사용했다. 도메인별 모델과 크롭 크기는 우리가 사용한 제로샷 전제를 위반하기 때문에, Depth Anything과 Metric3D의 결과는 Tab. 1에서 회색으로 표시했다.
Depth Pro는 모든 데이터셋에서 일관되게 상위 성적을 기록하며, 모든 데이터셋에서 최고의 평균 순위를 달성하며 강력한 일반화 성능을 보여준다.
위 : Tab. 1: 제로샷 계량적 깊이 정확도
각 데이터셋에 대해 \delta_1 점수(높을수록 좋음)를 보고하며, 데이터셋 전체 성능은 평균 순위(낮을수록 좋음)로 집계한다. 회색으로 표시된 방법들은 엄밀한 제로샷 설정이 아니다. 추가 메트릭과 데이터셋에 대한 결과는 부록에 있다.
위 :Table 2: 제로샷 경계 정확도
참값 깊이(ground-truth depth)가 있는 데이터셋에 대해서는 F1 점수를, 매팅(matting) 및 분할(segmentation) 데이터셋에 대해서는 **경계 재현율(R)**을 보고한다. 정성적(qualitative) 결과는 AM-2k 데이터셋(Li et al., 2022a)의 샘플에서 보여준다. 모든 메트릭은 값이 높을수록 더 좋은 성능을 나타낸다.
- (추가)
이유 :두 데이터셋의 특성과 평가 목적의 차이때문
• 참값 깊이 데이터셋은 세밀한 평가가 가능한 정밀한 데이터 제공 → F1 점수 사용.
• 매팅 및 분할 데이터셋은 경계 탐지의 포괄성을 더 중시 → 경계 재현율(R) 사용.
- F1 점수란? : \( F1 = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}} \)
- 정밀도(Precision)와 재현율(Recall)의 조화 평균(harmonic mean)으로, 모델의 정확도와 포괄성을 동시에 평가한다.
- Precision(정밀도)은 모델이 예측한 경계 픽셀이 얼마나 정확한지 측정.
Recall(재현율)은 실제 경계 픽셀 중에서 모델이 얼마나 많이 찾아냈는지 측정.
두 값을 동시에 고려하는 F1 점수는 경계 품질을 종합적으로 평가하는 데 적합하다. - 왜 매팅 및 분할 데이터셋에 경계 재현율(R :실제 경계 픽셀 중에서 모델이 정확히 찾아낸 픽셀의 비율.)을 쓰는가?
- 1. 매팅 데이터셋의 특성:
- 매팅 데이터셋은 경계 근처에서 픽셀 값이 점진적으로 변화하는 알파 매트(alpha matte)를 제공.
- 이런 데이터에서는 실제 경계를 얼마나 많이 탐지했는지를 평가하는 재현율이 적합.
- 2. Precision 계산의 어려움:
- 매팅이나 분할 데이터셋은 경계가 명확하지 않은 경우가 많아 Precision 평가가 어렵다.
- 대신 Recall은 경계 탐지의 성공률을 직접적으로 측정하기 때문에 적합하다.
- 3. 분할 데이터셋의 단순 구조:
- 분할 데이터셋은 일반적으로 바이너리(binary) 마스크로 경계를 표시.
- 이런 데이터셋에서는 경계의 전체적인 재현율(포괄성)이 더 중요한 평가 지표가 됨.
- 1. 매팅 데이터셋의 특성:
Zero-shot boundaries
Tab. 2는 Depth Pro와 여러 기준 모델들의 경계 정확도 평가를 요약한다. 이 평가는 제로샷 설정에서 수행되었으며, 모델은 훈련에 사용되지 않은 데이터셋에서만 평가된다. 우리의 경계 메트릭은 스케일 불변(scale-invariant)이기 때문에, 여기에는 절대적(absolute metric) 깊이가 아닌 상대적 깊이만 예측하는 방법도 포함된다.
절대적 기준 모델에는 Metric3D (Yin et al., 2023), Metric3D v2 (‘giant’ 모델) (Hu et al., 2024), PatchFusion (Li et al., 2024a), UniDepth (Piccinelli et al., 2024), ZoeDepth (Bhat et al., 2023)이 있다.
상대적 변형(relative variants)에서는 Depth Anything v1 & v2 (Yang et al., 2024a;b)가 포함되며, 이들은 계량적 버전보다 더 선명한 경계를 제공한다. 또한 최근 확산 기반 상대적 깊이 모델인 Marigold (Ke et al., 2024)도 포함했으며, 이는 고품질 예측으로 인기를 얻었다.
사용하는 boundary metric :
- GT depth가 있는 데이터셋에 대해 평균 boundary F1 score,
- Matting 또는 segmentation 주석이 있는 데이터셋에 대해 boundary recall, R을 사용
- 이미지 매팅 데이터셋에서는 alpha matte의 값이 0.1 이상일 때 픽셀이 차폐(occluding)된 것으로 간주
데이터셋에는 합성 데이터셋인 Sintel (Butler et al., 2012)과 Spring (Mehl et al., 2023)이 포함된다. 또한 iBims 데이터셋(Koch et al., 2018)도 포함되는데, 이는 낮은 해상도에도 불구하고 깊이 경계 평가에 자주 사용된다. iBims와 관련된 모든 메트릭은 부록에 있다.
자연 이미지에서 나타나는 고주파 구조(예: 머리카락, 털 등)를 평가하기 위해, 고해상도 이미지 매팅 데이터셋인 AM-2k (Li et al., 2022a)와 P3M-10k (Li et al., 2021)를 사용한다. 이 데이터셋들은 이미지 매팅 모델을 평가하는 데 사용되었다(Li et al., 2023). 또한 객체 분할 데이터셋인 DIS-5k (Qin et al., 2022)에서도 결과를 보고한다. 이 데이터셋은 다양한 이미지에서 highly accurate 바이너리 마스크를 제공한다. 우리는 전경 객체에 의해 가려진 샘플은 수동으로 제거했다. Fig. 2는 AM-2k 데이터셋에서 런타임에 따른 경계 재현율 메트릭을 시각적으로 요약한다.
Depth Pro가 모든 데이터셋에서 모든 기준 모델보다 훨씬 더 정확한 경계를 생성한다는 결과가 나왔다. Fig. 1, Tab. 2, 그리고 부록 A에 있는 추가 결과를 보면, 최신 Metric3D v2와 Depth Anything v2 모델들이 경쟁력 있는 계량적 정확도를 보여주더라도 선명한 경계를 생성하지 못한다는 걸 확인할 수 있다. Depth Pro는 머리카락이나 털 같은 얇은 구조에서도 일관되게 더 높은 재현율(recall)을 기록하며, 더 선명한 경계를 만들어낸다. 이는 수십억 개의 실제 이미지로 학습된 사전(prior)을 사용하는 확산 기반 모델 Marigold나 가변 해상도에서 작동하는 PatchFusion과 비교했을 때도 마찬가지다. 또한 Depth Pro의 실행 속도는 Marigold와 PatchFusion보다 훨씬 빠르다(Fig. 2 & Tab. 5 참고). Fig. 4는 단일 이미지에서 새로운 시점을 합성할 때 선명한 경계 예측의 이점을 보여준다.
지표 수식 의미 | 수식 | 의미 |
Recall | \( \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} \) | 실제 양성을 얼마나 잘 찾아냈는지. |
Precision | \( \text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}} \) | 예측한 양성 중 실제 양성이 얼마나 되는지. |
F1 Score | \( F1 = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}} \) | Precision과 Recall의 균형을 평가. |
Focal length estimation
이전 연구들(Piccinelli et al., 2024; Kocabas et al., 2021; Baradad & Torralba, 2020)은 자연 환경(in-the-wild) 이미지에서 초점 거리 추정기의 체계적이고 종합적인 평가를 제공하지 않았다. 이를 해결하기 위해, 제로샷 테스트 데이터셋을 직접 구성했다. 다양한 데이터셋 중에서 EXIF 데이터가 손상되지 않은 것들을 선택해 초점 거리 추정 정확성을 신뢰할 수 있게 평가할 수 있도록 했다.
- (추가) EXIF data ? : Exchangeable Image File Format의 약자로, 디지털 이미지 파일에 저장된 메타데이터를 뜻함. 이 데이터는 이미지 파일 안에 포함되어 카메라, 촬영 환경, 이미지 설정 등에 대한 다양한 정보를 제공한다.
• FiveK (Bychkovsky et al., 2011), DDDP (Abuolaim & Brown, 2020), RAISE (DangNguyen et al., 2015)는 SLR 카메라로 촬영된 전문가급 사진을 제공한다.
• SPAQ (Fang et al., 2020)는 모바일폰으로 찍은 일반 사진들을 포함한다.
• PPR10K (Liang et al., 2021)는 고품질 인물 사진 데이터셋이다.
• ZOOM (Zhang et al., 2019)은 다양한 광학 줌 수준에서 촬영된 장면들을 포함한다.
Table 3: 초점 거리 추정 비교. 각 데이터셋에 대해 \delta_{25\%}와 \delta_{50\%}를 보고한다. 여기서 \delta_{25\%}와 \delta_{50\%}는 상대 오차(초점 거리, mm 단위)가 각각 25%와 50% 미만인 이미지의 비율을 나타낸다.
Tab. 3은 Depth Pro를 최신 초점 거리 추정 모델들과 비교한 결과를 보여주며, 상대 추정 오차가 25% 및 50% 이하인 이미지의 비율을 각각 나타낸다. Depth Pro는 모든 데이터셋에서 가장 정확한 결과를 기록한다. 예를 들어, 인물 사진 데이터셋인 PPR10K에서 Depth Pro는 64.6%의 이미지에서 초점 거리 오차가 25% 미만으로 나타났는데, 두 번째로 좋은 성능을 보인 SPEC 모델은 34.6%에 그쳤다. 이 뛰어난 성능은 Depth Pro의 네트워크 설계와 학습 프로토콜 덕분인데, 초점 거리 추정기를 깊이 네트워크와 분리하여 학습할 수 있게 설계되어, 두 작업에 서로 다른 학습 데이터를 사용할 수 있었다. 추가적인 통제 실험 결과는 부록에 보고되어 있다.
Figure 4: novel view synthesis에 미치는 영향. Depth Pro, Marigold (Ke et al., 2024), Depth Anything v2 (Yang et al., 2024b), 그리고 Metric3D v2 (Hu et al., 2024)가 생성한 깊이 지도를 최신 공개 시점 합성 시스템(Khan et al., 2023)에 입력으로 사용했다. 결과는 AM-2k 데이터셋(Li et al., 2022a)의 이미지(1열 및 3열)와 DIS-5k 데이터셋(Qin et al., 2022)의 이미지(2열)에서 보여준다.
5. Conclusion & Limitaions
Depth Pro는
- 고해상도 metric depth maps(계량적 깊이 지도)를 생성, 고주파 디테일이며 1초 미만의 runtime
- camera intrinsics 같은 메타데이터 없이도 zero-shot metric depth estimation 정확도 sota달성
- 전례없던 수준의 디테일로 occlusion boundary(가림 경계, 가려진물체와 배경 사이 경계?) 추적
- 자연스러운 환경(in the wild)에서 단일 이미지로부터 novel view synthesis (NVS)과 같은 응용을 가능하게 함
한계점
- 반투명한 표면이나 빛의 산란이 많은 환경에서 성능 떨어질 수 있음
- single pixel depth의 정의가 부정확(ill-posed)하고 모호하기 때문
Appendix
A.3 실행 시간 (RUNTIME)
우리 접근법의 지연 시간을 기준 모델들과 비교하기 위해, 다양한 크기의 이미지에서 테스트를 진행하고 Tab. 5에 결과를 정리했다.
일반적인 이미지 해상도(VGA: 640×480, HD: 1920×1080, 4K: 4032×3024)를 선택해서 각 방법이 주어진 크기의 이미지를 처리하는 데 걸리는 평균 실행 시간을 측정했다. 보고된 모든 실행 시간은 동일한 환경에서 재현되었으며, 전처리, 고정 해상도로 작동하는 방법의 경우 리사이징, 그리고 각 모델의 추론(inference)을 포함한다. 추가로, 각 방법의 파라미터 개수와 **FLOPs(HD 해상도에서의 연산량)**도 fvcore 패키지를 사용해 측정했다.
고정 출력 해상도를 가진 모든 접근법 중에서 Depth Pro는 가장 높은 기본 출력 해상도를 가지며, Metric3D v2 (Hu et al., 2024)의 다음으로 많은 픽셀을 처리한다(약 3배 더 많음). 하지만 Depth Pro는 Metric3D v2의 파라미터 개수의 절반 이하를 사용하고, 실행 시간은 1/3에 불과하다.
반면, 가변 해상도(variable-resolution) 접근법(PatchFusion (Li et al., 2024a)와 ZeroDepth (Guizilini et al., 2023))은 실행 시간이 훨씬 더 길다. 그중 더 빠른 모델인 ZeroDepth조차 작은 VGA 이미지에서도 Depth Pro보다 약 4배 더 오래 걸린다.
D A P P L I C AT I O N S
Metric, sharp, and fast monocular depth estimation(정확하고 선명하며 빠른 단안 깊이 추정)은 다양한 후속 응용을 가능하게 한다. 우리는 Depth Pro의 유용성을 novel view synthesis 외의 두 가지 추가 응용에서 보여준다: ControlNet(Zhang et al., 2023b)을 이용한 conditional image synthesis(조건부 이미지 합성)과 합성 심도 효과(Peng et al., 2022a).
Depth-conditioned image synthesis (Depth 조건부 이미지 합성)
• 이 응용에서 우리는 ControlNet(Zhang et al., 2023b)을 사용하여 텍스트 프롬프트를 통해 이미지를 스타일화한다.
• 입력 이미지의 구조를 유지하기 위해 입력 이미지로부터 **깊이 지도(depth map)**를 예측하고, 이를 사전 학습된 depth-to-image ControlNet SD 1.5 모델에서 이미지 합성을 위한 조건으로 사용한다.
• 그림 11은 입력 이미지, 프롬프트, 예측된 깊이 지도, 그리고 Depth Pro, Depth Anything v2, Marigold, Metric3D v2를 사용한 합성 결과를 보여준다.
결과
• Depth Pro:
• 케이블과 하늘 영역을 정확히 예측하여, 입력 이미지의 구조를 유지한 스타일화된 이미지를 생성한다.
• Baselines:
• Depth Anything v2:
• 케이블을 예측하지 못해 케이블카가 공중에 떠 있는 결과를 만든다.
• Marigold:
• 하늘 영역에 잘못된 그라디언트를 추가하여 장면 구조를 왜곡한다.
Depth Pro는 입력 이미지의 구조를 정확히 유지하는 유일한 모델로, 다른 기준 모델과 비교해 뛰어난 성능을 보여준다.
Synthetic depth of field.
Synthetic depth of field(합성 심도 효과)은 사진에서 주요 피사체를 강조하기 위해 주변 영역을 의도적으로 흐리게 만드는 데 사용된다. BokehMe(Peng et al., 2022a)는 신경 렌더러와 물리적으로 동기화된 고전적인 렌더러를 결합한 하이브리드 렌더링 프레임워크를 소개한다. 이 프레임워크는 단일 이미지와 깊이 지도를 입력으로 받아들인다. 이 맥락에서 깊이 지도는 피사체를 정확히 구분하는 것이 중요하며, 이를 통해 사진의 피사체가 정확히 초점에 맞고 다른 콘텐츠는 적절히 흐려지도록 보장한다. 또한 깊이 지도는 피사체의 세부 사항을 올바르게 추적해야 하며, 이를 통해 이 세부 사항(그리고 이 세부 사항만)이 초점에 맞도록 한다. 그림 12는 이 응용에서 Depth Pro가 제공하는 이점을 보여준다. (가장 중요한 물체를 초점에 맞추기 위해 BokehMe의 refocused disparity (disp focus) 하이퍼파라미터를 해당 물체의 disparity로 설정한다.)
Figure 11: Conditional image synthesis 비교. 우리는 ControlNet(Zhang et al., 2023a)을 사용해 프롬프트(맨 위 행 오른쪽)와 깊이 지도가 주어진 조건에서 스타일화된 이미지를 합성한다. 깊이 지도는 입력 이미지(Li et al., 2022a)(맨 위 행 왼쪽)로부터 Depth Pro와 다른 기준 모델들로 예측된다. 왼쪽 열은 깊이 지도, 오른쪽 열은 합성된 이미지를 보여준다. 기준 모델에서는 Depth Anything v2와 Metric3D v2에서 누락된 케이블이나, Marigold에서 하늘의 잘못된 그라디언트가 합성 이미지의 장면 구조를 변경한다.
프롬프트 : 케이블카를 수채화로 표현한 이미지
1. 실험 과정:
• Depth Pro, Depth Anything v2, Marigold, Metric3D v2 같은 네 가지 모델에 입력 이미지를 넣어 각각의 **깊이 지도(depth map)**를 생성.
• 이렇게 생성된 깊이 지도를 ControlNet의 입력 조건으로 사용.
• ControlNet은 이 깊이 지도와 텍스트 프롬프트(예: “a watercolor image of a cable car”)를 조합해 **스타일화된 이미지(synthesized image)**를 생성.
2. 결과 비교:
• Synthesized Image는 ControlNet의 최종 출력으로, 깊이 지도에 따라 구조적 왜곡 여부가 달라짐.
• 결과적으로 각 모델이 생성한 깊이 지도가 얼마나 정확히 입력 이미지의 구조를 보존했는지는 ControlNet의 스타일화된 이미지(synthesized image)를 눈으로 비교해서 평가.
3. 평가 기준:
• ControlNet이 생성한 스타일화된 이미지에서:
• 구조 보존: 케이블, 하늘 등의 원래 구조가 잘 유지되었는가?
• 왜곡 방지: 케이블이 공중에 뜨거나 하늘에 잘못된 그라디언트가 추가되는 등 구조적 왜곡이 발생하지 않았는가?
(추가)
Multi-Head Self-Attention
트랜스포머(Transformer) 모델의 핵심 메커니즘으로, 입력 시퀀스의 각 요소가 다른 모든 요소와의 관계를 동시에 고려하여 문맥 정보를 효과적으로 학습하는 방법
Self-Attention은 시퀀스 내의 각 단어가 다른 모든 단어와의 연관성을 평가하여, 문맥에 따라 중요한 정보를 강조하는 메커니즘
문장 내에서 단어 간의 의존성을 파악할 수 있음
Multi-Head Attention은 이러한 Self-Attention을 병렬로 여러 번 수행하는 방식이야. 각 헤드는 독립적인 가중치 행렬을 사용하여 입력 데이터를 다양한 관점에서 분석하고, 서로 다른 특징들을 포착해. 이를 통해 모델은 같은 데이터를 여러 각도에서 바라보고, 다양한 관점의 정보를 동시에 고려할 수 있어.
동작 과정:
1. 입력 벡터를 Query, Key, Value로 변환: 입력 시퀀스의 각 벡터에 가중치 행렬을 곱하여 Query(Q), Key(K), Value(V) 벡터를 생성
2. Self-Attention 계산: Q와 K의 내적을 통해 각 단어 간의 유사도를 계산하고, 이를 소프트맥스 함수를 통해 정규화하여 어텐션 가중치를 구해. 그런 다음, 이 가중치를 V에 곱하여 각 단어의 표현을 업데이트
3. Multi-Head Attention: 이러한 Self-Attention 연산을 여러 헤드에서 병렬로 수행하여, 다양한 표현 공간에서 정보를 추출해. 각 헤드의 결과를 연결(concatenate)한 후, 최종 가중치 행렬을 곱하여 출력 벡터를 생성