z [논문 리뷰] Deformable DETR : Deformable Transformers For End-To-End Object Detection
본문 바로가기

Computer Vision

[논문 리뷰] Deformable DETR : Deformable Transformers For End-To-End Object Detection

728x90

Abstract

기존 DETR의 경우 느린 수렴(Convergence)와 제한된 feature spatial resolution이라는 단점들을 가지고 있었습니다.
논문에서는 이에 대한 대안으로 Deformable DETR을 제안합니다.


여기에서의 attentiona moudels는 작은 set의 key sampling points를 사용합니다.

본 논문은 sparse spatial locations에 대해 powerful & efficient 한 deformable convolution을 통해 영감을 받은 것 같습니다.

Deformable DETR

 

 


위의 Figure 1 은 Deformable DETR의 기본적인 형태입니다. 여기에선 나와있지 않지만 Positional Encoding과 같은 과정들은 기존의 DETR과 동일합니다. 여기에서 알아둬야 할 점은 뒤에서도 말하겠지만 Deformable Attention을 MHA 대신 사용한다는 것 입니다.

 

특이한 점은 Decoder에서 Self Attention의 경우 기존 DETR과 동일한 Multihead Attention을 사용하고 cross attention (self attention 다음단계) 시에만 Deformable Attention을 사용합니다.


위의 Architecture의 특징을 살펴보자면 Transformer의 Relation modeling 능력과 Deformable Conv의 sparse spatial sampling을 모두 가지고 있다는 것 입니다. 후자의 경우에는 Deformable Attention을 사용함으로써 가능하게 하는데 이는 FPN없이 multi scale features를 모으는 것을 가능하게 합니다.

Revisiting DETR

DETR이 어떻게 돌아가는지에 대해서는 앞 포스트,
https://deepseow.tistory.com/29
에서 자세히 게시해두었으므로 기본적인 architecture 에 대해서는 넘어가겠습니다.


기본 DETR의 경우 두가지 주된 이슈가 존재합니다.

  • DETR은 small object에 대해서는 상대적으로 낮은 성능을 보입니다. 물론 최근에는 작은 object에 대해 성능을 높이기 위해 high-resolution feature map을 사용하긴 합니다만, DETR에서 사용하기에는 self attention에서 너무나도 큰 복잡도로 인해 사용하지 못합니다.
  • 두번째로는 DETR은 꽤 많은 에폭을 돌려줘야 수렴(Converge)한다는 것 입니다. 이 이유는 attention module은 image features를 처리하는데 어려움이 있습니다. cross attention 당시 전체 feature maps를 고려해주는게 큰 이유라 할 수 있습니다. (이를 deformable attention 즉, key sampling points로 해결 가능)

Method

 

 

Deformable Transformers For End-To-End Object Detection

Deformable Attention Module

Transformer의 주요 문제는 모든 가능한 spatial locations를 고려한다는 것 입니다.
이를 해결하기 위해서 Deformable attention module에서는 reference point (query의 좌표) 조변의 key sampling points 들만 고려 합니다.

 

이에 대한 식이 조금 복잡해서 노테이션을 잘 알고 보는게 좋은데 식에서 노테이션은
\(x\) : input feature map
\(q\) : query element
\(z_q\) : query element \(q\)의 content feature
\(p_q\) : query element \(q\)의 reference point
\(m\) : attention head index
\(k\) : sampling point index
\(\Delta p_{mqk}\) : reference point에 더해줄 offset -> \(p_q + \Delta p_{mqk}\) 는 sampling point가 됩니다.

 


위 노테이션들을 따라 위와 같은 equation이 나오게 됩니다.
우선 query features인 \(z_q\)에 Linear (D -> 2MK)를 적용해줘서 M개 heads에 대해 k개의 offset \(\Delta p_{mqk}\)를 나타낼 수 있도록 선형변환 시켜줍니다. (\(\Delta x, \Delta y\))


그럼 (M,K,2) 이런식으로 M개의 각 head에 대해 K개의 point를 꺼낼 수 있겠죠??

일단 offset을 구하고 Input feature Map x로 돌아가서 x에 Linear를 적용해줘서 M개의 헤드를 만들어 줍니다. (Attention에서의 Values가 됌.) (\(W^{'}_m x\))

 

그래서 위의 k개 sampling point에 대해서 고려해주면 됩니다. (Q, M, K, D) 여기까지가 Attention에서 Value가 되는 것 같습니다.

 

마지막으로 query features \(z_q\)에 Linear (D -> MK)를 적용해주고 Softmax를 통해 Attn score를 구해줍니다. 여기에서는 기존 기본적인 Attention과 다르게 k개만 고려해주기 때문에 각 score가 분명하고 크게 나옵니다. (q, k 사이의 attn score)

 

그래서 위에서 구했던 Values와 Attn Score를 Aggregate 해주고 이에 대해 Linear를 통해 Output을 뽑아줍니다.

Multi-scale Deformable Attention Module

가장 위의 Figure 1을 보면, 여러 feature maps에 대해 고려할 수도 있음을 알 수 있습니다. 이를 위해 Backbone Network (Resnet .. )을 통해 FPN처럼 여러 stage의 feature maps를 고려해줍니다.

 


여러 Layer를 고려해준다는 점을 제외하고는 별 다른점이 없습니다. 하지만 이 중 고려해줘야 할 점은 \(\phi_l(\hat p_q)\)인데 이는 reference point를 0 ~ 1 사이로 normalize 되어 들어온 \(\hat p_{q}\)를 rescale 한다는 점 입니다. 이 점을 제외하고는 특이 점은 없습니다.

Deformable Transformer Encoder

Encoder의 부분에서 input은 여러 스테이지의 feature maps를 받습니다. (backbone에 의한) 이 때 여러 스테이지의 feature maps는 1x1 convolution을 통해 동일한 dimension으로 변환 됩니다. (FPN과 동일한 방식)
그리고 위에서 언급되었던 multi-scale deformable attention module을 통해 진행 됩니다.

Deformable Transformer Decoder

Decoder의 경우에는 cross-attention과 self-attention 부로 나눠져 있는데 self-attention의 경우에는 기존에 사용하던 MHA를 그대로 사용하고, cross-attention의 경우에만 multi-scale deformable attention module을 사용합니다.

 

decoder의 input으로 받는 각 object query embedding에 learnable linear projection 과 sigmoid() 를 통해 reference point \(\hat p_q\)를 예측합니다. 이건 inital guess of box center가 됩니다.

 

detection head 에서 relative offsets를 예측하게 됩니다. bbs : (x,y,h,w)

Additional Improvements And Variants For Deformable DETR

Two Stage Deformable DETR

추가적인 개선 방안으로 2 stage deformable detr을 논문에서 제시하고 있습니다.
간단하게 말하면 첫번째 stage에서는 Deformable DETR Encoder만을 통해 high-recall proposals를 줍니다.

이는 object query가 됩니다. (논문 상에서는 multi scale feature maps의 각 pixel이 object query가 된다고 나와있습니다.)

Appendix A.3 Bounding Box Prediction In Deformable DETR

Detection head는 bounding box를 predict하기 위해 디자인 됩니다.
refence point는 box center의 initial guess로서 사용되고 detection head는 relative offsets를 예측합니다.

728x90