본문 바로가기

DeepLearning/Depth Estimation

[논문리뷰] HITNet: hierarchical iterative tile refinement network for real-time stereo matching

리뷰에 앞서 정확히 이해하지 못한 부분들이 있어 부족한점이 많은 글이기에 잘못된 부분이 있다면 댓글로 알려주시면 감사하겠습니다.

 

[Depth Estimation]

Depth Estimation은 2D Image로 부터 3차원 정보를 얻어내는 방법으로 Monocular(단안)와 Stereo(쌍안)의 방법이 있습니다. 본 논문은 Stereo Image를 사용하는 방법으로 두개의 이미지 사이의 disparity를 구하는 방법을 설명합니다. 

 

[Method]

Overview of the preposed framework

HITNet은 크게 Feature Extraction, Initialization 그리고 Propagation 3가지 파트로 나뉩니다. 그리고 Tile hypothesis의 개념을 사용하여 High-resolution Image을 효율적으로 학습가능합니다.

 

Tile Hypothesis

Tile hypothesis

구조를 설명하기에 앞서 Tile Hypothesis는 High-resolution을 작은 사이즈의 tile로 나누어 학습하는 것으로 다음과 같이 구성됩니다.

  • \( d \) : disparity
  • \( d_x, d_y \) : gradient of disparity in \( x \) and \( y \) direction 
  • \( p \) : tile feature descriptor (learnable) 

 

Feature Extraction

본 논문에서 Feature Extraction은 작은 U-net의 구조를 사용합니다. 두개의 Image를 각각 Feature Extraction에 넣어 encoder부분에서 high-level feature를 얻어낸 후에 decoder부분에서의 featrue map (Left Image)\( \{ e_0^L, e_1^L, ..., e_4^L \} \) 와 (Right Image)\( \{ e_0^R, e_1^R, ..., e_4^R \} \)를 만들어 냅니다.

 

Initialization

Initialization

Initialization 부분은 Tile hypothesis를 초기화하는 과정으로 초기 disparity와 descriptor를 설정하고 \( d_x \)와 \( d_y \)는 0으로 설정합니다.

먼저 Feature extraction에서 얻어진 Featrue map \( e \)에 4x4 convolution를 적용하는데 \( e^L \)에는 4x4 strides로 적용하고 \( e^R \)에는 4x1 strides로 적용합니다.

그 결과로 \( \tilde{\varepsilon} = \{ \tilde{e_0}, ...,\tilde{e_M} \} \)가 만들어지고 이 것을 이용해 matching cost를 계산합니다.

matching cost

이때 \( l \)은 resolution이고 \( d \)는 disaprity를 의미합니다.

 

후에 계산한 matching cost를 이용해서 초기 disparity \( d_{l,x,y}^{init} = argmin_{d \in [0,D]} \varrho(l,x,y,d) \)를 계산합니다.

 


+추가 업로드 예정