BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation

이번에 리뷰할 논문은 아래와 같이 Paper with codes, Monocular depth estimation 부문에서 일등을 기록하고 있는 Binsformer입니다.

이 논문 외에도 이 동일저자가 낸 Depthformer라는 논문 또한 abs_rel 동일 성능을 보이며 공동 일등을 기록했습니다.

이 논문의 저자가 transformer를 이용해서 Supervised depth estimation하는 논문을 찍어내며 성능을 올리고 있는 상황인데 부러우면서 멋있는 것 같습니다. 또한 Monocular-Depth-Estimation-Toolbox 를 github에 공개하며 mmsegmentation과 같이 monocular depth estimation 도 간편한 라이브러리로 사용할 수 있게 해줍니다. 이 라이브러리 속에는 Adabin, BTS, SimIPU, DPT, Depthformer등 현재 가장 좋은 성능을 보이는 방법론들이 포함되어 있으니 다양한 실험을 할 때 사용하기 괜찮아 보입니다.


  1. Introduction
[그림 1] Regression vs. classification vs. classification-regression

저번 Adabins 리뷰에서 설명할때 쓰인 위 그림은 사실 Adabin 논문에서 따온게 아닌 이 논문에서 가져온 것입니다. 그 리뷰에서 설명했다시피 현재 Supervised depth estimation에서 Loss 및 depth 표현 방식은 위 그림 속과 같이 총 세가지로 나눌 수 있습니다.

매우 많은 논문(DPT, DAV, TransDepth, NeWCRFs)에서 사용되는 Regression, regression의 slow convergence( 무슨 문제인지는 DORN을 읽어봐야 알 것 같음) 과 낮은 성능을 해결하기 위해 제안된 Classification 방식, classification의 discontinuties한 문제를 해결하기 위해 제안된 Adabin, DDV 가 있습니다.

그렇지만 이러한 Adabin일지라도 여전히 문제가 남아 있다고 합니다. 총 두가지 문제가 있는데 다음과 같습니다.

  • decoder 의 output에서 나온 feature를 이용해 bin을 예측하니 global informatin과 전체 scence을 알아차리기 어렵다고 합니다.
    • Transformer 블록을 사용하는 동안 인코더-디코더의 제한된 receptive fields는 글로벌 정보의 불가피한 손실로 이어집니다.
  • bin 및 probabilistic representations은 동일한 단일 레이어을 기반으로 예측되며, 이는 상호 작용이 부족해져서 전역 정보 및 세분화된 정보에 흠이 있게 됩니다.
  • loss로 사용된 Chamfer loss가 학습을 방해해서 성능 향상을 막습니다.
[그림 2] Adabin 아키택쳐

그림 2는 adabin아키택쳐인데 보시다시피 하나의 mvit를 이용해서 bin centers와 probability를 예측하는데 이게 문제라고 하는 겁니다.

위 문제들을 해결하기 위해서 이 논문에서는 Binsformer를 제안합니다. 이 Binsformer는 bin center 와 probability를 예측하기 위해서 두개를 분리시켰습니다. 분리를 통해서 fene-graiend 한 depth estimation이 가능해지게 했으며, 추가적으로 scene을 정보를 transformer가 학습하도록 해서 더욱 정확한 depth bin을 예측하도록 했습니다. 그럼 방법론에 대해서 더욱 자세하게 다뤄보겠습니다

2. Method

[그림 4] Binsformer 아키택쳐

아키택쳐는 두가지로 나눠집니다. 하나는 U-Net 기반의 CNN 아키택쳐를 통해서 probability를 예측하는 pixel-level module과 다른 하나는 0으로 초기화된 N bin centers와 scene query 정보를 입력으로 해서 각각을 예측하는 Transformer module로 나뉘어져있습니다.

CNN과 Transformer를 이렇게 두가지 방식으로 나눠서 학습하므로써 local과 global 전부 챙길 수 있다고 합니다.

2.1 BinsFormer

Per-pixel module

Depth 를 생성하는 모델은 기존에 단순히 CNN을 Transformer로 변경해서 사용하는 모델과는 다르게 두개의 branch로 진행됩니다.

Transformer module

ViT에서 제안된 cross attention과 self-attention 방식을 그대로 사용하며, DETR 에서 제안된것과 동이랗게 입력과 동일한 output을 보일 수 있는 구조를 설계했다고 합니다.

Depth prediction module

예측된 bin 값을 실제 depth bin으로 변화하는 과정 또한 아래와 같이 Adabin에서 제안된것과 동일하게 변환합니다.

이때 dmin과 dmax는 데이터 셋에 따라서 static 한 값으로 설정하며 아래 식으로 실제 depth로 변환되며 pi는 그림 4와 같이 Nbins embedding 과 곱해져서 만들어진 probability distribution입니다.

그리고 Loss 계산시에 실제 depth와 SIlog 계산을 통해 regression loss을 얻습니다 .

Auxiliary scene classification

장면의 구분을 통해서 Adabin이 말한 장면마다 depth distribution이 다르다는 것을 학습합니다.

Multi-scale prediction refinement

Transformer를 multi scale로 계산해서 더욱 정확한 깊이 정보를 추정합니다.

3. Experiments

backbone을 다양하게 변경하며 실험했을 떄 Swin-L이 가장 좋은 성능을 보이며 SOTA성능을 보여줍니다. 그렇지만 Swin -L과 E-B5랑 비교하는게 맞는지는 모르겠습니다.

이건 KITTI 온라인 평가 인데 이 비교군에 Adabin이 없는게 살짝 아쉽네요

실내에서 또한 좋은 성ㄴ능을 보이지만 여기서도 Swin-T나 ResNet50 이 좋지 못한 성능을 보여주는 것 같아 …음 생각보다 괜찮아 보이지는 않는 것 같습니다.

Ablation study 입니다. Adabin 성능이 왤케 않좋게 나온지 모르겠습니다

이렇게 비교해보니…. Adabin이 더 참신하고 괜찮아 보이네요 허허

Author: 한 대찬

1 thought on “BinsFormer: Revisiting Adaptive Bins for Monocular Depth Estimation

  1. 해당 논문은 AdaBins 저자가 후속 연구로 진행한 것인가요?
    아니면 다른 사람이 AdaBins를 분석해서 이를 해결하는 논문을 작성한건가요

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다