[논문 리뷰] LGT-Net: Indoor Panoramic Room Layout Estimation with Geometry-Aware Transformer Network

김경준·2022년 7월 2일
0

논문

목록 보기
27/37

Approach

Panoramic Room Layout Representation

  • 본 논문에서는 room layout을 floor boundary와 room heigth로 표현한다.
  • 동일한 경도 간격으로 NN개(논문에서는 256)의 point를 샘플링한 후 horizon-depth로 변환한다.
  • HorizonNet에서는 floor/ceiling의 위도를 예측하고 error를 계산하지만 위도 상 error가 동일하지만 horizon-depth error는 다른 경우가 있다.
    (e.g. ϕ1ϕˉif=ϕ1ϕˉif,D(p1)D(pˉif)>D(p2)D(pˉif)|\phi_1-\bar{\phi}_i^f|=|\phi_1-\bar{\phi}_i^f|, |D(p_1)-D(\bar{p}_i^f)|>|D(p_2)-D(\bar{p}_i^f)|
  • 또한, height는 수직 방향의 영향을 크게 받기 때문에 동일한 horizon-depth error를 가지더라도 room height error는 다른 경우가 있다.
    (e.g. D(p3)D(pˉic)=D(p4)D(pˉic),h3hˉc<h4hˉc|D(p_3')-D(\bar{p}_i^c)|=|D(p_4')-D(\bar{p}_i^c)|, |h_3-\bar{h}^c|<|h_4-\bar{h}^c|
  • 따라서, horizon-depth와 room height의 error를 계산하는 omnidirectional-geometry aware loss function을 사용한다.

Loss function

Horizon-Depth and Room Height

  • Horizon-detph와 room height에 대해 L1 loss를 적용한다.

Normals

  • 각 벽들이 plane임에도 불구하고 위치에 따라 horizon-depth는 다를 수 있지만 normal vector는 동일하다.
  • 따라서, horizon-depth did_i를 3D point pip_i로 변환한 뒤 normal vector를 구해 ground truth와의 -cosine similarity를 loss로 정의한다.
  • MrM_rπ2\cfrac{\pi}{2}의 rotation matrix, nˉi\bar{n}_i은 normal vector의 ground truth이다.

Gradient of normals

  • Corner에서의 normal은 변하기 때문에 gradient를 활용해 supervise 한다.

Total loss

  • Horizon-depth와 room height에 대한 loss는 omnidirectional-geometry awareness를 normal을 활용한 loss는 planar-geometry awareness를 향상시킨다고 볼 수 있다.

Network

Feature Extractor

  • 512 X 1024 X 3을 input으로 받아 ResNet-50으로부터 서로 다른 scale의 4개의 2D feature map을 뽑는다.
  • Height를 압축하고 각 feature map에서 width NN개를 샘플링하여 RN×D4\mathbb{R}^{N \times \frac{D}{4}}의 1D feature sequences를 만든다.
  • 4개를 연결하여 RN×D\mathbb{R}^{N \times D}의 feature sequence를 output으로 낸다. DD는 1024.

SWG-Transformer

  • SWG-Transformer는 Window Block, Global Block, Shifted Window Block, Global Block으로 구성되며 2번의 loop를 돌아 총 8개의 block을 통과한다.
  • Window Block은 local geometry relations를 학습하는 역할로 MSA(Multi head Self-Attention) 이전에 NNw\frac{N}{N_w}(16) window feature sequences RNw×D\mathbb{R}^{N_w \times D}를 구성한 후 MSA 이후 다시 merge 한다. (NwN_w=16)
  • Shifted Window Block은 인접한 window들을 연결하여 정보들이 상호작용할 수 있도록 만든다. Window partition 전에 feature sequence를 roll하며 원위치시키기 위해 merge 이후 reverse roll을 해준다.
  • Global Window Block은 global geometry relations를 학습하는 역할로 original Transformer의 방식을 따른다.

Position Embedding

  • Pure attention module이 토큰들의 위치를 구분하는데 적합하지 않기 때문에 relative position embedding을 활용한다.
  • MSA의 input sequence를 X={xi}i=1MX=\{x_i\}_{i=1}^M, MM은 sequence length, xiRDx_i \in \mathbb{R}^D라 할 때 bias matrix BRM×MB \in \mathbb{R}^{M \times M}가 기존 Transformer의 Scaled Query-Key product에 추가된다.
  • (Shifted) Window Block에서는 M=NwM=N_w(16)이며 learnable scalar table을 {bk}k=Nw+1Nw=1\{b_k\}_{k=-N_w+1}^{N_w=-1}로 정의하고 BijB_{ij}bjib_{j-i}에 해당한다. 이 과정을 WRPEW- RPE로 정의한다.
  • Global Block에서는 M=NM=N(256)이며 feature sequence가 순환하는 구조를 가지기 때문에 bj1b_{j-1}bjNib_{j-N-i}가 동일하다. 따라서, jiN2|j-i| \le \frac{N}{2}일 때는 Bij=bjiB_{ij}=b_{|j-i|}이고 그렇지 않으면 Bij=bNjiB_{ij}=b_{N-|j-i|}인 symmetric scalar table {bk}k=0n\{b_k\}_{k=0}^n을 만든다. 이 과정을 GRPEG-RPE로 정의한다.

Experiments

Reference

0개의 댓글