SHED: Segmentation-based Hierarchical Encoder-Decoder for Depth Estimation

SHED는 단일 이미지로부터 깊이를 추정하는 Monocular depth estimation 작업을 위한 새로운 encoder-decoder 아키텍처입니다. 기존 모델들이 픽셀 단위로 깊이를 예측하여 발생하는 구조적 불일치 문제를 해결하기 위해, SHED는 Vision Transformer(ViT)의 고정된 패치 토큰을 계층적 세그먼트 토큰으로 대체하여 segmentation을 깊이 추정에 통합합니다. 이 모델은 encoder에서 세밀한 superpixel을 점차 거친 세그먼트로 병합하고, decoder에서는 이를 역으로 재구성하여 구조적으로 일관된 깊이 맵을 생성합니다. 이를 통해 깊이 경계와 세그먼트 일관성을 향상시키고, 3D 재구성 성능을 높이며, 교차 도메인 일반화에서도 강건한 성능을 보입니다. 논문 제목: SHED Light on Segmentation for Depth Estimation

Lee, Seung Hyun, Sangwoo Mo, and X. Yu Stella. "SHED Light on Segmentation for Depth Estimation." Structural Priors for Vision Workshop at ICCV'25.

SHED Light on Segmentation for Depth Estimation

Abstract

Monocular depth estimation은 단일 이미지로부터 픽셀별 깊이를 추론하는 dense prediction task로, 3D 인지 및 로봇 공학에 필수적인 기술이다. 대규모 데이터로 사전학습된 backbone에 기반한 강력한 depth foundation model들이 많이 존재한다. 그러나 이러한 depth foundation model들이 과연 장면의 구조(structure)를 진정으로 이해하고 있는가?
실제 세계 장면은 강력한 구조를 가지고 있음에도 불구하고, 기존 방법들은 이를 독립적인 픽셀 단위 회귀 문제로 취급하여, 종종 모호한 객체 형태와 같은 **깊이 맵의 구조적 불일치(structural inconsistencies)**를 초래한다.

우리는 SHED를 제안한다. SHED는 segmentation을 깊이 추정 과정에 통합하여 spatio-layout으로부터 기하학적 사전 지식(geometric prior)을 명시적으로 적용하는 새로운 encoder-decoder 아키텍처이다. 인간의 인지 과정에서 나타나는 **양방향 계층적 추론(bidirectional hierarchical reasoning)**에서 영감을 받아, SHED는 고정된 patch token을 segment token으로 대체하여 vision Transformer를 재설계한다. 이 segment token들은 encoder에서 계층적으로 pooling되고, decoder에서 unpooling되어 계층 구조를 역전시킨다. 모델은 최종 출력에서만 supervised되며, 중간 segment hierarchy는 명시적인 supervision 없이 자연스럽게 나타난다.

SHED는 세 가지 주요 장점을 제공한다. 첫째, 깊이 경계(depth boundaries)와 segment 일관성(coherence)을 향상시키고, 강력한 cross-domain generalization 능력을 보여준다. 둘째, feature와 segment가 전역적인 장면 layout을 더 잘 포착할 수 있도록 한다. 셋째, 3D 재구성(reconstruction)을 향상시키고, 기존 픽셀 단위 방법들이 포착하지 못했던 부분 구조(part structures)를 드러낸다.

1. Introduction

이미지는 3D 세계의 2D 투영이며, 표면, 영역, 경계가 일관된 구조를 형성한다. 많은 vision task는 각 픽셀에서 의미론적 또는 기하학적 값을 예측하여 이 구조를 복구하는 것을 목표로 하는데, 이를 dense prediction이라고 한다 [19]. 그중 **단안 깊이 추정(monocular depth estimation)**은 단일 RGB 이미지에서 깊이를 추론하는 가장 많이 연구된 task 중 하나이다 [66]. 실제 장면의 내재된 구조에도 불구하고, Dense Prediction Transformer (DPT) [56]를 포함한 대부분의 모델은 이 task를 **독립적인 픽셀 단위 회귀(pixel-wise regression)**로 취급한다. 이들의 출력은 그럴듯해 보일 수 있지만, 종종 구조적 일관성이 부족하여 모호한 객체 모양을 초래한다 (Fig. 1, row 1).

이러한 한계는 깊이 추정과 장면 구성 간의 단절에서 비롯된다. 깊이는 기하학적 구조를 인코딩하는 반면, **분할(segmentation)**은 의미론적으로 일관된 영역을 포착한다. 비록 목적은 다르지만, 이 둘은 밀접하게 관련되어 있다: 분할 경계는 깊이 불연속성과 일치하고, 깊이 gradient는 의미론적 경계와 일치한다. 이러한 관계는 고전적인 vision 문헌 [44]에서 오랫동안 인식되어 왔지만, Depth Anything [73] 및 Segment Anything [57]과 같은 최근 모델들은 이들을 독립적인 task로 취급하며 그 연결성을 크게 간과하고 있다.

대조적으로, 인간 시각 시스템은 **양방향 계층적 과정(bidirectional hierarchical process)**을 통해 깊이와 분할을 통합한다 [27]. 여기서 **부분-전체 분할(part-whole segmentation)**은 깊이 추정에 정보를 제공하고, 깊이는 다시 분할을 안내한다. 먼저 미세한(fine) 것에서 거친(coarse) 것으로 세그먼트를 그룹화하여 전역적인 레이아웃을 추론한 다음, 거친 것에서 미세한 것으로 깊이를 정제하여 전체 구조를 보존하면서 더 작은 영역 내에서 세부 정보를 추가한다. 이러한 구성은 부분-전체 추론을 지원하며, 날카로운 경계와 부드러운 객체 내 변화를 가진 깊이 맵을 생성한다 (Fig. 1, row 2).

이러한 아이디어를 실현하기 위해 우리는 SHED라는 새로운 아키텍처를 제안한다. SHED는 **양방향 세그먼트 계층(bidirectional segment hierarchy)**을 사용하여 단안 깊이 추정을 수행한다. 이는 Vision Transformer (ViT) [13]를 기반으로 구축된 표준 encoder-decoder 프레임워크인 DPT [56]의 설계를 따르지만, 고정 크기 패치 토큰을 계층적 세그먼트 토큰으로 대체하여 구조화된 깊이를 생성한다. 이 토큰들은 미세한 것에서 거친 것으로 구성되며, 픽셀 단위 회귀 목표(pixel-wise regression objectives)에 의해서만 안내되는 비지도 방식으로 학습된다.

SHED는 **계층적 분할 과정(hierarchical segmentation process)**을 사용하여 구조적 조건을 정의한다. 인코더는 인식 task에서 계층적 분할을 위한 ViT 기반 모델인 CAST [34]를 기반으로 구축되며, 표준 패치 대신 superpixel로 이미지를 표현하는 것으로 시작한다. 그런 다음 feature 유사성을 기반으로 이러한 superpixel 토큰을 반복적으로 병합하여 다단계 세그먼트 토큰 계층을 생성한다. 구조화된 깊이를 생성하기 위해 디코더는 이 계층을 역전시키고, 세그먼트 맵과 해당 feature를 모두 활용한다. 디코더는 인코더에서 계산된 soft assignment를 사용하여 거친 세그먼트에서 더 미세한 세그먼트를 unpool하고, 해당 인코더 레이어의 토큰과 함께 추가한다. 각 세그먼트 토큰은 관련 영역에 feature를 분산하여 공간 맵으로 투영되며, 이는 다른 객체 간의 날카로운 경계와 동일 객체 내의 부드러운 전환을 생성한다. 여러 세그먼트 레벨의 feature는 convolutional encoder의 픽셀 레벨 feature와 융합되어 전역 레이아웃을 보존하면서 미세한 세부 정보를 포착하는 출력을 생성한다.

Figure 1. 깊이 추정을 위한 세그먼트 계층 (SHED). DPT [56]와 같은 기존 방법은 구조를 고려하지 않고 픽셀 단위 예측을 수행하여 종종 흐릿한 객체 모양을 초래한다. SHED는 예측을 안내하기 위해 세그먼트 토큰의 계층을 활용하여 이 문제를 해결한다. 모든 레이어에서 고정된 그리드 토큰을 사용하는 DPT와 달리, 우리는 ViT [13] 블록을 두 단계로 조정한다: 인코더는 superpixel 토큰을 더 거친 세그먼트 토큰으로 풀링하고, 디코더는 거친 세그먼트에서 미세한 세그먼트로 예측을 점진적으로 정제하여 구조적 일관성을 가진 깊이 맵을 생성한다.

우리는 SHED와 CAST [34]의 주요 차이점을 강조한다. 첫째, CAST는 인코더 전용인 반면, SHED는 dense prediction을 위해 이를 encoder-decoder 구조로 확장한다. 둘째, CAST는 분할을 출력으로만 취급하는 반면, SHED는 세그먼트 관련 feature를 디코더 입력으로도 사용하여 dense representation을 생성한다. 셋째, CAST는 이미지 레벨의 supervision에 의존하고 시각적 단서에 의해 안내되는 분할을 생성하는 반면, SHED는 dense supervision (예: 깊이)으로 학습되어 기하학적 단서에 의해 안내되는 분할을 생성한다. 마지막으로, CAST는 "3Rs" [44]에서 재구성(reorganization)을 인식(recognition)과 연결하는 반면, SHED는 재구성을 재구성(reconstruction)과 연결한다.

계층적 분할을 dense prediction에 통합함으로써 SHED는 세 가지 주요 이점을 제공한다. 1) 분할은 객체 수준 구조를 강제하여 깊이 추정을 향상시키고, 더 날카로운 경계와 세그먼트 내 일관성을 제공한다. 또한 cross-domain transfer 설정에서 강력한 일반화를 달성한다. 2) 깊이 supervision은 장면 레이아웃을 더 잘 포착하는 구조화된 representation으로 이어진다. 결과적으로 SHED는 레이아웃이 유사한 이미지를 더 정확하게 검색하여 top-1 recall을 34% (45.2 → 60.5) 증가시킨다. 3) SHED의 정확한 깊이 맵은 3D 재구성을 개선하여 ground truth와 정렬된 부드러운 표면을 생성한다. 또한 그 계층은 **비지도 3D 부분 발견(unsupervised 3D part discovery)**을 가능하게 하는데, 이는 DPT가 구조적 이해 없이 깊이를 전체적으로 예측하기 때문에 달성할 수 없는 부분이다.

Monocular depth estimation은 단일 이미지로부터 픽셀별 깊이(per-pixel depth)를 추론하는 대표적인 dense prediction task이다. 이는 3D reconstruction [64], autonomous driving [21], robotic perception [65] 등 다양한 분야에서 널리 활용된다. 초기 접근 방식은 수작업으로 설계된 feature [61, 66]에 의존했지만, 이후 딥러닝 방법 [16, 22, 23, 29, 39, 40, 55, 79]이 주류가 되었다. DPT [56]와 같은 최근의 ViT [13] 기반 모델들은 다양한 데이터로 사전학습된 foundation model [4, 32, 72]을 활용하여 강력한 성능을 보여주었다. 그러나 이러한 모델들은 복잡한 장면에서 구조적 일관성(structural consistency)을 유지하는 데 여전히 어려움을 겪는다.

깊이 추정에서 **구조적 단서(structural cues)**는 기하학적 일관성(geometric coherence)을 향상시키기 위해 광범위하게 탐구되어 왔다. 기존 접근 방식은 크게 네 가지 유형으로 분류할 수 있다:

  1. Representation 접근 방식: 깊이 값을 이산화하거나 [3, 20, 41] 공간적 종속성을 모델링하는 [10, 42, 77] 등 깊이가 인코딩되는 방식을 수정한다.
  2. Regularization: 부드러운 표면 [5, 22, 78], 일관된 법선 벡터 [74], 또는 평면 영역 [68, 75]을 촉진하는 손실 함수를 통해 기하학적 제약 조건을 부과한다.
  3. Multi-task learning: 장면 기하학 [15, 76] 또는 시맨틱스 [7, 24, 35, 49, 80]와 같은 보조 신호와 함께 깊이를 공동으로 추정한다.
  4. Post-processing: 기성 기술 [8, 38]을 사용하여 예측을 정제한다.

여러 multi-task 접근 방식깊이 추정 성능을 향상시키기 위한 보조 신호로 segmentation을 탐구해왔다. 초기 연구들은 segmentation을 추가적인 supervision 신호로 사용했지만 [35, 49], 최근 연구들은 segment 영역이나 경계를 활용하여 깊이 불연속성(depth discontinuities)을 유도했다 [7, 24, 80]. SHED는 이러한 원리를 따르지만, segmentation과 depth estimation을 통합된 프로세스로 결합하여 서로에게 이점을 제공할 수 있도록 한다. 더욱이, SHED는 계층적 segmentation을 비지도 학습 방식으로 발견하여, 비용이 많이 드는 수동 주석의 필요성을 없앤다.

구조적 단서가 명확한 이점을 제공함에도 불구하고, 대부분의 기존 방법은 현대 아키텍처에 잘 확장되지 않는다. Representation 기반 접근 방식은 종종 Transformer와 호환되지 않는 아키텍처 변경을 요구하며, regularization 및 multi-task 방법추가적인 주석에 의존하여 확장성을 제한한다. 이와 대조적으로, SHED는 DPT와 같은 ViT 기반 모델에 원활하게 통합되며, 깊이 supervision만을 통해 구조적 segmentation을 학습한다. 설계상, SHED는 본질적으로 선명하고 segment에 정렬된 경계(segment-aligned boundaries)를 생성하여 후처리(post-processing)의 필요성을 줄인다.

Perceptual grouping인간 시각의 핵심 메커니즘으로, 저수준 요소들을 일관된 전역 구조로 조직화한다 [45, 69]. 이 원리는 **perception [12, 31, 43, 48, 54], segmentation [2, 30, 33, 71], generation [26, 28, 47]**을 포함한 광범위한 컴퓨터 비전 연구에 영감을 주었다. 특히, CAST [34]는 최근 이를 ViT에 적용하여 동시 segmentation 및 인식(concurrent segmentation and recognition)을 수행했다. CAST를 포함한 대부분의 이러한 방법들은 순방향 계층(forward hierarchy)만을 고려하여 하향식(bottom-up) 방식으로 표현 및 segmentation을 구축하는 반면, 우리는 상보적인 개념인 역방향 계층(reverse hierarchy) [27]을 채택한다. 역방향 계층에서는 전역 구조가 상향식 피드백(top-down feedback)을 통해 지역 부분(local parts)을 안내하고 정제한다. 우리는 이 원리를 활용하여 두 계층을 모두 고려하는 encoder-decoder를 설계한다.

일부 선행 연구들 [1, 14, 63]은 인식(recognition)을 위해 역방향 계층을 탐구했지만, dense prediction은 다루지 않았다. 다른 연구들 [17, 60, 62]은 encoder-decoder 아키텍처에 유사한 아이디어를 적용했지만, 객체 중심 표현(object-centric representations)에 초점을 맞추어 segment 계층을 모델링하는 능력이 부족하고 종종 흐릿한 출력(blurry outputs)을 생성한다. 우리가 아는 한, 본 연구는 현대 ViT 프레임워크 내에서 양방향 segment 계층(bidirectional segment hierarchies)을 활용하여 dense prediction을 향상시킨 최초의 연구이다.

3. Method

우리는 DPT [56]의 ViT 블록에 양방향 segment hierarchy를 통합한 SHED를 제안한다. 모든 layer에서 고정된 크기의 patch token을 사용하는 DPT와 달리, 우리 모델은 segment token의 계층 구조를 구축한다: encoder는 fine-grained feature를 coarse-grained feature로 그룹화하여 forward hierarchy를 구축하고, decoder는 학습된 segment token의 안내에 따라 coarse-grained 예측을 fine-grained 예측으로 정제하는 reverse hierarchy를 적용한다. Fig. 2에 나타난 이 설계는 모델이 구조화된 장면 정보를 점진적으로 재구성하고 재건할 수 있도록 한다.

3.1. Grouping segments via forward hierarchy

우리의 encoder는 CAST [34]를 기반으로 하며, 이는 1) 정사각형 패치 토큰을 superpixel 토큰으로 대체하고, 2) 토큰 유사도를 기반으로 이들을 점진적으로 더 거친 segment 토큰으로 클러스터링한다. 이 과정은 fine-to-coarse 계층 구조의 segment 토큰을 생성한다. CAST는 원래 이미지 레벨 인식(image-level recognition)을 위한 encoder-only 모델로 개발되었다. 우리는 이를 encoder-decoder 모델로 확장했으며, 여기서 segment 계층 구조는 dense prediction을 안내할 뿐만 아니라 dense supervision을 통해 정제된다.

Tokenization
주어진 입력 이미지 XRh×w×cX \in \mathbb{R}^{h \times w \times c}에 대해, encoder는 fine-to-coarse 순서로 계층적 segmentation S0,S1,S_{0}, S_{1}, \ldots와 해당 embedding Z0,Z1,Z_{0}, Z_{1}, \ldots를 생성한다. 이 과정은 이미지를 n0n_{0}개의 superpixel로 나누는 것으로 시작하며, 이는 각 픽셀을 superpixel에 매핑하는 **one-hot assignment matrix S0R(hw)×n0S_{0} \in \mathbb{R}^{(h \cdot w) \times n_{0}}**를 생성한다.

우리는 공간 stride 8 (h0=h/8,w0=w/8h_{0}=h/8, w_{0}=w/8)을 갖는 convolutional feature map Fconv R(h0w0)×dF_{\text {conv }} \in \mathbb{R}^{\left(h_{0} \cdot w_{0}\right) \times d}를 추출하고, 고정된 sinusoidal positional embedding을 추가한 다음, 각 superpixel 내에서 feature를 average-pool하여 초기 embedding Z0Rn0×dZ_{0} \in \mathbb{R}^{n_{0} \times d}를 얻는다. 전역 컨텍스트 모델링(global context modeling)을 가능하게 하기 위해, class token을 추가하여 Zˉ0R(n0+1)×d\bar{Z}_{0} \in \mathbb{R}^{\left(n_{0}+1\right) \times d}를 형성하고, 이를 첫 번째 ViT 블록에 전달한다.

Hierarchical clustering
우리는 ViT 블록과 graph pooling [34]을 번갈아 적용하여 더 거친 segment 토큰을 구성한다. 각 레벨 ll에서, 이전 레이어의 Zl1Z_{l-1}Sl1S_{l-1}이 주어지면, class token을 추가하여 Zˉl1\bar{Z}_{l-1}을 형성하고, ViT 블록을 적용하여 class token을 제외한 업데이트된 feature를 얻는다.

더 거친 토큰 ZlRnl×dZ_{l} \in \mathbb{R}^{n_{l} \times d}를 형성하기 위해, fine-level 토큰과 coarse-level 토큰 간의 코사인 유사도를 기반으로 soft assignment matrix PlRnl1×nlP_{l} \in \mathbb{R}^{n_{l-1} \times n_{l}}를 계산한다: Pl(ij)sim(Zl1[i],Zl[j]),P_{l}(i \rightarrow j) \propto \operatorname{sim}\left(Z_{l-1}[i], Z_{l}[j]\right), \quad for i[nl1],j[nl]i \in\left[n_{l-1}\right], j \in\left[n_{l}\right], 여기서 [n]:={0,,n1}[n]:=\{0, \ldots, n-1\}이다. Coarse 토큰 ZlZ_{l}Zl1Z_{l-1}에서 farthest point sampling [52]을 통해 초기화되며, PlP_{l}로 가중된 fine-level feature를 집계(aggregate)한 후 MLP와 residual connection을 통해 정제된다:

ZlZl+MLP(PlZl1Pl1)Z_{l} \leftarrow Z_{l}+\operatorname{MLP}\left(P_{l}^{\top} Z_{l-1} \oslash P_{l}^{\top} \mathbf{1}\right)

여기서 \oslash는 정규화를 위한 element-wise division을 나타낸다. segmentation 레이블을 계층 구조를 통해 전파하기 위해, assignment matrix를 합성하여 더 거친 segmentation을 계산한다:

Sl=Sl1Pˉl,l=1,2,,lmaxS_{l}=S_{l-1} \bar{P}_{l}, \quad l=1,2, \ldots, l_{\max }

여기서 Pˉl\bar{P}_{l}PlP_{l}의 각 행에 대해 argmax를 취하여 얻은 hard assignment matrix이다.

3.2. Predicting outputs via reverse hierarchy

디코더는 인코더의 segment 계층 구조를 역으로 적용하여 공간 feature map을 재구성하며, 점진적으로 unpooling을 수행한다.

Figure 2. SHED는 DPT의 ViT 블록에 순방향 및 역방향 segment 계층 구조를 통합한다. 단안 깊이 추정을 위한 컨볼루션 레이어를 포함하는 깊이 기반 모델의 표준 디코더 설계 선택을 사용하는 DPT [56]의 전체 아키텍처에 따라, 우리는 ViT를 두 단계로 조정한다. 1) 인코더는 입력 이미지를 superpixel token으로 변환하고, CAST [34]의 계층적 클러스터링 전략에 따라 그래프 풀링을 적용하여 더 거친 segment를 형성한다. 2) 디코더거친(coarse) 것에서 미세한(fine) 것으로 segment token을 unpooling하고, skip connection을 통해 해당 레벨의 인코더 feature와 융합하여 이 계층 구조를 역전시킨다. Token은 해당 영역에 따라 2D 맵으로 투영된다. 이러한 다단계 맵은 초기 컨볼루션 레이어의 픽셀 수준 feature와 융합되어 미세한 세부 사항을 복구하고 최종 깊이 맵을 생성한다.

segment token Zlmax ,,Z0Z_{l_{\text {max }}}, \ldots, Z_{0}를 재구성한다. 이는 두 단계로 이루어진다: 1) Zl+1Z_{l+1}^{\prime}에서 unpooling하고 skip connection을 통해 인코더 feature ZlZ_{l}와 융합하여 디코더 feature ZlZ_{l}^{\prime}를 계산하는 단계; 2) ZlZ_{l}^{\prime}를 이미지 공간에 투영하여 크기 (hl,wl)(h_{l}, w_{l})의 공간 feature map FlF_{l}을 얻는 단계.

Segment token unpooling. 우리는 인코더의 클러스터링을 거친 것에서 미세한 것으로(coarse-to-fine) 역전시킨다. 각 레벨 l=lmax 1,,0l= l_{\text {max }}-1, \ldots, 0에서 다음을 계산한다:

ZlPl+1Zl+1,Z_{l}^{\prime} \leftarrow P_{l+1}^{\top} Z_{l+1}^{\prime},

이는 거친 feature를 더 미세한 segment에 분배한다. 그런 다음 unpooling된 feature를 해당 인코더 출력과 더한다:

ZlMLP(Zl+Zl),Z_{l}^{\prime} \operatorname{MLP}\left(Z_{l}^{\prime}+Z_{l}\right),

이후 class token이 있는 ViT 블록이 이어진다.

공간 feature unpooling. 우리는 soft assignment matrix를 구성하여 segment token ZlZ_{l}^{\prime}를 공간 feature map으로 변환한다:

P0l=P1PlRn0×nl,P_{0 \rightarrow l}=P_{1} \cdots P_{l} \in \mathbb{R}^{n_{0} \times n_{l}},

그리고 이를 초기 superpixel-to-pixel 맵 S0S_{0}에 적용하여 soft segmentation S0l=S0P0lS_{0 \rightarrow l}=S_{0} P_{0 \rightarrow l}를 얻는다. 공간 feature 맵은 다음과 같이 재구성된다:

Fl=S0lZl,FlR(hlwl)×dF_{l}=S_{0 \rightarrow l} Z_{l}^{\prime}, \quad F_{l} \in \mathbb{R}^{\left(h_{l} \cdot w_{l}\right) \times d}

공간 맵 {Fl}l=1lmax \left\{F_{l}\right\}_{l=1}^{l_{\text {max }}} 세트는 컨볼루션 레이어를 사용하여 융합되고, Fconv F_{\text {conv }}와 결합되며, 최종 컨볼루션 및 업샘플링을 통해 더욱 정제되어 최종 dense prediction을 생성한다.

DPT는 각 레벨에서 feature map FlF_{l}의 공간 해상도를 2l2^{l} 인자만큼 줄여 hl=h0/2l,wl=w0/2lh_{l}=h_{0} / 2^{l}, w_{l}=w_{0} / 2^{l}로 만들고, 초기 ViT 레이어에서 거친 맵을 생성하여 점진적으로 정제한다. 이는 UNet [59]과 유사한 공간 계층 구조를 형성하여 전역적 일관성을 개선하고 계산량을 줄인다. 그러나 이는 미세한 구조가 부족한 지역적 집계에 의존하며, 최종 디코더에서만 계산량을 줄인다. 대조적으로, 우리의 segment 계층 구조는 segment 영역을 그룹화하여 구조적 일관성을 촉진하는 더 강력한 inductive bias를 제공하고 ViT 블록의 계산량을 줄인다. 결과적으로, SHED에서 공간 다운샘플링을 적용하는 것은 이점이 없었다: 이는 디코더에서 최소한의 효율성 향상을 가져왔지만, 거친 segment를 저해상도 맵에 투영함으로써 경계 품질을 저하시켰다. 따라서 우리는 SHED에서 공간 축소를 생략하고 단순히 hl=h0,wl=w0h_{l}=h_{0}, w_{l}=w_{0}로 설정한다.

4. Experiments

우리는 SHED의 이점을 dense prediction을 위한 segmentation 통합 루프를 통해 입증한다:

  1. Segment-consistent depth estimation: occlusion 경계와 segment 내 일관성을 보존하여 정확도와 효율성을 향상시킨다.
  2. Dense supervision을 통한 structure-aware representation learning: 레이아웃을 인지하는 feature와 segmentation을 가능하게 한다.
  3. 예측된 depth map으로부터 3D scene reconstruction: 전역적으로 일관되고 부분 인지(part-aware)적인 구조를 생성한다.

4.1. Setup

우리는 DPT [56]를 기반으로 SHED를 구현하고, DPT의 전반적인 학습 설정을 채택한다. 구체적으로, ResNet-50 [25]와 ViT-Small [13]을 결합한 DPT-Hybrid 변형을 사용하며, 본 논문에서는 이를 간단히 DPT라고 지칭한다. in-domain 평가를 위해, 우리는 주로 실내 깊이 추정의 표준 벤치마크인 NYUv2 [50]에서 학습 및 평가를 수행한다. cross-domain 전이를 위해, SHED를 HyperSim [58]에서 학습시키고 NYUv2에서 zero-shot 성능을 평가한다. 우리는 동일한 양의 metric supervision을 사용하여, HyperSim에서 fine-tuning된 훨씬 강력한 사전 지식을 가진 Depth Anything v2 [73]와 DPT를 비교한다.

Tokenization. 640×480640 \times 480 크기의 입력 이미지는 전처리 과정에서 384×384384 \times 384로 무작위 크롭된다. 우리는 DPT의 24×2424 \times 24 토큰 그리드(이는 16×1616 \times 16 패치에 해당)에 맞춰 SEEDS 알고리즘 [67]을 사용하여 576개의 superpixel을 생성한다. Feature는 입력 해상도의 1/41/41/81/8에서 중간 ResNet-50 블록으로부터 추출된다. 후자는 segment token embedding을 초기화하는 데 사용되며, 둘 다 skip connection을 통해 최종 decoder로 전달된다. 이 전체 전처리 및 토큰화 파이프라인은 모든 실험에서 일관되게 적용된다.

Architecture. 우리는 DPT의 ViT encoder-decoder에 graph pooling 및 unpooling layer를 삽입하여 수정한다. encoder는 세 단계로 구성되며, 각 단계는 두 개의 ViT 블록과 그 뒤에 graph pooling이 이어져 segment token의 수를 점진적으로 256, 128, 64로 줄인다. decoder는 unpooling으로 이를 미러링하며, 해당 encoder 단계로부터 skip connection을 받는다.

Training. 우리는 SHED와 DPT를 NYUv2에서 학습시키며, batch size는 16, epoch 수는 50, Adam optimizer [36]를 사용하고 learning rate는 5e-5로 설정한다. 사전학습된 ResNet 및 ViT backbone을 사용하여, DPT의 기본 학습 레시피를 따르며, 여기에는 ground-truth 깊이에 대해 계산되는 scale-invariant logarithmic loss가 포함된다. 추론 시, 384×384384 \times 384 해상도의 예측된 깊이 맵은 ground-truth 크기에 맞추기 위해 640×480640 \times 480으로 bilinearly upsampling된다.

4.2. Segment-consistent depth estimation

SHED는 학습된 segment hierarchy를 활용하여 구조화된 깊이 맵을 생성한다. 우리는 먼저 hierarchy와 예측된 깊이를 시각화하여 그들의 구조적 정렬을 설명한다. 다음으로, 경계 정확도(boundary accuracy)와 세그먼트 내 일관성(intra-segment coherence) 측면에서 품질을 평가한다. 마지막으로, 계층적 디코딩(hierarchical decoding)이 픽셀 단위 정확도를 손상시키지 않으면서 효율성을 향상시킨다는 것을 보여준다.

Fig. 3은 SHED의 segment hierarchy가 일관된 객체 기하학(coherent object geometry)을 가진 깊이 맵을 생성함을 보여준다. 학습된 세그먼트들은 교실의 책상과 같은 객체의 윤곽을 포착하여, 깊이가 이들을 바닥과 명확하게 분리할 수 있도록 한다. 또한, 테이블과 같은 더 큰 구조를 부분으로 분해하여 앞쪽에서 뒤쪽으로 부드러운 깊이 전환을 가능하게 한다. 이는 구조가 깊이 예측을 더 정확하고 해석 가능한 결과로 이끈다는 것을 시사한다.

경계 정확도 (Boundary accuracy). 우리는 SHED의 경계 예측을 DPT의 예측과 비교하여 in-domain 평가를 위한 구조적 품질을 평가한다. Fig. 4는 NYUv2OC++ 데이터셋 [53] 샘플에 대해 Canny edge detector [6]를 사용하여 추출된 예측된 깊이 맵과 그들의 occlusion boundary를 보여준다. 정량적 평가를 위해, 우리는 표준 프로토콜 [37]을 따르고 **Chamfer distance [18]**를 두 방향으로 계산한다: 예측에서 ground truth로, 그리고 그 반대로. SHED는 더 선명한 윤곽을 생성하며 두 메트릭 모두에서 DPT를 능가하며, 특히 recall에서 큰 이득을 보인다. 이는 세분화된(fine-grained) segmentation 때문일 가능성이 높다. 그러나 과분할(oversegmentation)은 정밀도를 감소시키는 spurious edge를 도입할 수 있으며, 이는 정확한 segmentation의 중요성을 강조한다.

세그먼트 내 일관성 (Intra-segment coherence). 경계 외에도, 우리는 각 세그먼트 내에서 깊이 값이 얼마나 일관되게 변하는지 평가한다. **객체별 깊이 정확도(Object-wise depth accuracy) 및 오류(error)**는 각 세그먼트 내에서 예측된 깊이 맵과 ground-truth 깊이 맵 간의 픽셀 단위 깊이 정확도 및 오류를 측정하며, 후자를 구조적 참조로 간주한다. Fig. 4에서 보듯이, SHED는 세그먼트 내에서 더 부드러운 깊이 변화를 생성한다. 이는 Tab. 1에서 정량적으로 반영된다.

픽셀별 메트릭 (Per-pixel metrics). 우리는 Tab. 2에서 보여지듯이, 표준 픽셀별 깊이 메트릭을 사용하여 in-domain 평가를 위해 SHED를 DPT와 비교하고, cross-domain 전이를 위해 Depth Anything v2 [73]와 비교한다. In-domain 평가에서 SHED는 DPT에 비해 경쟁력 있는 픽셀별 성능을 보여준다. Cross-domain 평가에서는 Depth Anything v2가 1억 개 이상의 이미지로 사전학습된 DINOv2 [51]라는 강력한 encoder를 사용함에도 불구하고, SHED는 대부분의 메트릭에서 Depth Anything v2를 능가한다.

4.3. Structure-aware representation learning

우리의 아키텍처는 깊이 예측을 향상시킬 뿐만 아니라, 구조를 인지하는(structure-aware) 표현 학습을 촉진한다. 첫째, SHED는 장면의 레이아웃을 반영하는 feature를 학습하여, DPT [56]보다 **더 정확한 레이아웃 인지 이미지 검색(layout-aware image retrieval)**을 가능하게 한다. 둘째, SHED의 segment hierarchy는 깊이 supervision을 통해 기하학적 단서(geometric cues)를 포착하는 반면, CAST [34]는 시각적 단서에 의존한다.

레이아웃 인지 이미지 검색 (Layout-aware image retrieval)
우리는 NYUv2 데이터셋에서 레이아웃 인지 이미지 검색을 수행하여 학습된 표현의 구조적 이해도를 평가한다. 이 데이터셋은 206개 장면에서 수집된 120K 비디오 프레임으로 구성된다. 이 프레임들은 쿼리(query)로 사용되며, 우리는 두 가지 검색 설정을 정의한다. **장면 검색(scene retrieval)**에서는 동일한 시퀀스의 모든 프레임이 유효한 타겟이 된다. 더 세분화된 평가를 위해, **프레임-k 검색(frame-k retrieval)**도 고려하는데, 여기서는 쿼리로부터 kk 시간 단계 이내의 프레임만 포함된다. 쿼리 이미지가 주어지면, 우리는 **최종 ViT decoder block에서 추출된 class token의 코사인 유사도(cosine similarity)**를 기준으로 다른 이미지들의 순위를 매긴다. Figure 5는 정성적 및 정량적 결과를 모두 보여준다. 왼쪽 부분은 SHED가 중앙의 책상과 뒤쪽 책장과 같은 유사한 공간 레이아웃을 가진 이미지를 검색하는 반면, DPT는 관련 없는 장면을 반환함을 보여준다. 오른쪽 부분은 SHED가 장면 및 프레임 수준 지표 모두에서 DPT를 크게 능가하며, 장면 검색에서 Top-1 recall을 45.2에서 60.5로 향상시켰음을 보여준다.

Figure 3. SHED는 예측된 깊이 맵에서 공간 레이아웃과 일관된 구조를 생성한다. 우리는 SHED에서 생성된 fine-to-coarse segment와 해당 깊이 맵을 ground truth (GT) 깊이와 비교하여 시각화한다. 예시는 NYUv2 테스트 세트에서 가져왔다. SHED는 교실의 책상과 같은 미세한 구조를 segment를 통해 포착하여, 깊이 맵이 배경과 명확하게 분리되도록 한다 (첫 번째 행). 또한, 테이블과 같은 큰 객체를 여러 부분으로 분해하여, 뒤쪽으로 갈수록 부드러운 깊이 변화를 유도한다 (두 번째 행).

Figure 4. SHED는 더 선명한 객체 윤곽선, 더 명확한 occlusion 경계, 그리고 segment 내에서 더 일관된 값을 생성한다. 우리는 NYUv2-OC++ 데이터셋 [53]에서 DPT와 SHED의 깊이 맵 (2-4열) 및 occlusion 경계 (5, 6열)를 비교한다. 경계는 Canny edge detector를 사용하여 추출되며 GT와 비교 평가된다. GT 경계는 노란색, true positive는 녹색, false positive는 빨간색으로 표시된다. SHED는 객체 경계를 더 정확하게 포착하고 segment 내에서 더 부드러운 깊이를 생성한다. SHED가 예측한 경계는 ground truth와도 더 밀접하게 일치한다.

깊이 인지 이미지 분할 (Depth-aware image segmentation)
우리는 SHED가 학습한 segment hierarchysegment 기반 표현을 사용하여 이미지 인식을 위해 학습된 encoder인 CAST와 비교하여 분석한다. 우리는 ImageNet [11]에서 MoCo-v3 objective [9]로 학습된 CAST-B를 사용한다. MoCo-v3는 시각적으로 유사한 이미지를 클러스터링하는 instance discrimination 기반의 self-supervised learning [70]이다. CAST의 설정에 따라, 우리는 224×224224 \times 224 이미지를 사용하고 196개의 superpixel을 추출하여 64, 32, 16개의 segment로 클러스터링한다. 공정한 비교를 위해, 우리는 SHED의 graph pooling layer를 조정하여 동일한 수의 segment를 생성하며, 원본 입력 해상도와 superpixel을 유지한다.

Table 1. SHED는 경계 정확도와 객체별 깊이 정확도 및 오류를 개선한다. 우리는 두 가지 지표를 사용하여 깊이 맵의 구조적 품질을 평가한다:

  1. Occlusion boundary error [37]: NYUv2-OC++ 데이터셋 [53]에서 평가된다. Occlusion 경계는 Canny edge detector [6]를 사용하여 추출되며, Chamfer distance는 예측에서 ground truth로, 그리고 그 반대 방향으로 모두 계산된다.
  2. Intra-segment coherence: 각 객체 내에서 예측된 깊이 값이 ground-truth와 얼마나 잘 일치하는지를 측정한다. 우리는 이를 객체 수준 주석을 사용하여 계산한다. | Method | Boundary Error \downarrow | | Object-wise Depth Accuracy \uparrow | Object-wise Depth Error \downarrow | | | | :--- | :--- | :--- | :--- | :--- | :--- | :--- | | | ϵa\epsilon_{a} | ϵc\epsilon_{c} | δ>1.25\delta>1.25 | AbsRel | RMSE | log10\log 10 | | DPT [56] | 6.395 | 1.438 | 0.802 | 0.144 | 0.500 | 0.061 | | SHED (ours) | 5.713 | 0.608 | 0.814 | 0.142 | 0.496 | 0.060 |

Table 2. SHED는 in-domain 및 cross-domain 깊이 추정 모두를 개선한다. 우리는 NYUv2 테스트 세트에서 표준 깊이 정확도 및 오류 지표를 평가한다. SHED는 in-domain 학습 시 DPT와 유사한 경쟁력 있는 per-pixel 깊이 추정 성능을 제공한다. cross-domain zero-shot 평가에서는 대부분의 지표에서 Depth Anything v2보다 우수한 일반화 성능을 보여준다.

MethodPre-trainingTrainingDepth AccuracyDepth Error
δ>1.25\delta>1.25 \uparrowδ>1.252\delta>1.25^{2} \uparrowδ>1.253\delta>1.25^{3} \uparrowAbsRel \downarrowRMSE \downarrowlog10\log 10 \downarrow
DPT [56]IN-1K [11]NYUv2 [50]0.8390.9710.9920.1320.4570.055
SHED (ours)IN-1K [11]NYUv2 [50]0.8460.9720.9920.1300.4510.054
Depth Anything v2 [73]LVM-142M [51]HyperSim [58]0.5920.9020.9600.7490.8080.110
SHED (ours)IN-1K [11]HyperSim [58]0.6320.8920.9600.5830.7400.102

Figure 5. SHED는 깊이 supervision을 통해 레이아웃 인지 표현을 학습한다. 우리는 최종 ViT block에서 추출된 class token 간의 코사인 유사도를 기반으로 NYUv2에서 이미지 검색을 평가한다. a) Top-5 결과 (왼쪽에서 오른쪽으로 순위가 매겨짐), 아래에 유사도 점수가 표시된다. SHED는 중앙의 책상과 뒤쪽 책장과 같은 유사한 레이아웃을 가진 이미지를 검색하는 반면, DPT는 관련 없는 장면을 검색한다. b) 장면 및 프레임 수준 (k=5)에서의 Top-K 정확도로, 타겟은 동일 장면의 다른 뷰 또는 인접 프레임이다. SHED는 모든 설정에서 DPT [56]를 크게 능가하며, 이는 우리의 깊이 유도 분할(depth-guided segmentation)이 공간 레이아웃을 효과적으로 인코딩함을 나타낸다.

Figure 6은 정성적 결과를 보여준다. SHED는 장면 기하학과 일치하는 계층적 구조를 학습한다. 예를 들어, 담요와 같은 객체를 분리하고, 바닥과 같은 큰 구조를 공간적 범위를 반영하는 segment로 분해한다. 대조적으로, CAST는 외형(appearance)을 기반으로 영역을 그룹화한다. 예를 들어, 흰색 바닥 영역을 색상으로 클러스터링하지만, 기하학적 단서를 고려하지 못한다. 우리는 이러한 차이를 학습 objective에 기인한다고 본다. CAST는 이미지 수준 인식(image-level recognition)을 통해 segment를 학습하는 반면, SHED는 dense prediction에 의해 유도된다. 비록 본 연구의 초점은 깊이이지만, 3D 구조에 기반한 segment hierarchy를 학습하는 능력은 다른 dense prediction task에도 가능성을 열어준다.

Table 3. SHED는 3D 정렬(alignment)을 개선한다. 우리는 예측된 깊이와 ground-truth 깊이로부터 재구성된 포인트 클라우드 간의 평균 Chamfer distance [18]를 계산한다. SHED는 DPT [56]보다 낮은 오류를 달성한다.

MethodPrecision / Recall \downarrow
DPT [56]0.171 / 0.251
SHED (ours)0.158/0.244\mathbf{0 . 1 5 8 / 0 . 2 4 4}

4.4. 3D scene reconstruction with part structures

우리는 SHED의 3D 장면 이해 능력을 입증한다. 2D 깊이 추정에는 그럴듯한 픽셀 값이 충분할 수 있지만, 구조화된 깊이(structured depth)는 3D 공간으로 투영될 때 특히 중요하다. 이에 따라 SHED는

Figure 6. SHED는 **깊이 인식 세그먼트 계층(depth-aware segment hierarchies)**을 학습하는 반면, CAST는 시각적 단서에 의존한다. 우리는 SHED와 CAST [34]의 세그멘테이션을 동일한 계층 수준(64, 32, 16개 세그먼트)에서 비교한다. SHED는 담요와 베개를 침대에서 분리하는 것과 같이 의미 있는 부분 구조를 포착한다 (1행). 또한 깊이를 기반으로 바닥과 같은 큰 구조를 분해하여, 가까운 영역은 하나의 큰 세그먼트로 묶고 먼 영역은 더 작은 세그먼트로 나눈다 (2행). 대조적으로, CAST는 외형 단서에 의존하며 기하학적 구조를 포착하지 못한다. 예를 들어, 흰색 바닥 영역을 색상별로 그룹화하지만, 깊이를 무시하고 임의로 분할한다. 이러한 결과는 3D 인식 세그멘테이션 학습에 있어 깊이 감독(depth supervision)의 가치를 강조한다.

Figure 7. SHED는 더 정확하고 구조화된 3D 재구성을 생성한다. 우리는 NYUv2 [50] 예시에서 DPT, SHED, 그리고 ground truth의 예측을 사용하여 semantic scene completion 프로토콜 [64]에 따라 단일 뷰 깊이 맵으로부터 재구성된 3D point cloud를 시각화한다. 정면 뷰(2-4열)는 DPT가 평면 구조를 보존하지 못하고 곡선 벽 경계를 생성하는 반면, SHED는 직선을 더 정확하게 복구함을 보여준다. 이러한 차이는 조감도(bird's-eye views, 5-7열)에서 더욱 분명하게 나타난다: DPT는 왜곡된 표면을 생성하는 반면, SHED는 ground truth와 더 잘 일치하는 평평한 레이아웃을 생성한다.

Table 4. SHED는 3D 부분 구조를 발견한다. 동시 세그멘테이션 및 깊이 추정은 재구성된 3D point cloud의 부분 수준 분해를 가능하게 한다.

고품질 3D 재구성을 가능하게 하고, **동시 세그멘테이션을 통해 비지도 3D 부분 발견(unsupervised 3D part discovery)**을 지원한다.

예측된 깊이 맵의 구조적 품질을 평가하기 위해, 우리는 NYUv2 데이터셋 [50]에서 semantic scene completion 프로토콜 [64]을 따르고 NYUv2 카메라 내부 파라미터(intrinsics)를 사용하여 3D point cloud로 투영한다. 해석 가능성을 위해 모든 깊이 값은 1/1000로 스케일링된다. Figure 7은 SHED가 ground truth 기하학적 구조와 더 잘 일치하는 더 선명한 경계와 평평한 표면을 가진 더 깨끗한 재구성을 생성하는 반면, DPT는 더 곡선적이고 덜 충실한 형태를 생성함을 보여준다. 우리는 Chamfer distance [18]를 양방향으로 사용하여 재구성 성능을 정량화한다. Table 3은 SHED가 DPT보다 일관되게 더 낮은 거리를 달성하여, 구조화된 3D 예측에서 SHED의 이점을 확인시켜준다. 세그멘테이션과 깊이를 동시에 예측함으로써, SHED는 2D 부분을 3D 공간으로 들어 올려 장면의 부분 수준 분해를 가능하게 한다. Table 4는 NYUv2의 예시를 보여주는데, 여기서 객체에 해당하는 세그먼트들이 point cloud에서 일관된 3D 구조를 형성한다. 이는 SHED가 상호작용적이고 동적인 장면 이해를 위한 핵심 능력인 비지도 3D 부분 추론(unsupervised 3D part reasoning)의 잠재력을 가지고 있음을 입증한다 [46].

5. Conclusion

우리는 깊이 추정(depth estimation)에서 segmentation의 역할을 조명한다. SHED는 encoder에서 segment hierarchy를 학습하고, decoder에서 이를 역으로 적용하여 dense map을 예측한다. 이로 인해 segment-consistent 구조를 가진 깊이 맵, layout-aware representation, 그리고 해석 가능한 부분들로 구성된 일관된 3D 장면을 얻을 수 있다. 재구성(reconstruction)과 재조직(reorganization)을 통합하는 우리의 원칙3D 비전 및 로봇 공학, 특히 물리적 구성 요소와의 미세한 상호작용을 요구하는 task에 새로운 방향을 제시한다.