Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

ShuyaVision

[논문 리뷰] Deformable DETR (Deformable Transformers for End-to-End Object Detection) 본문

Vision AI

[논문 리뷰] Deformable DETR (Deformable Transformers for End-to-End Object Detection)

Sangbro 2023. 11. 16. 18:51

Deformable DETR은 DETR의 다음 모델이다.

Deformable DETR은 'deformable'이라는 개념을 도입해서 모델의 성능을 향상시킨다. 고정된 Attention 구조를 가진 DETR과 달리, 가변적인 Attention 구조를 사용한다. 이를 통해 이미지의 특정 영역에 초점을 맞추게 해서 더 효율적인 feature 학습과 더 나은 객체 검출 성능을 가능하게 한다.

또한 DETR에서 문제점으로 지적되었던 느린 학습 속도와 작은 객체를 잡지 못한 문제점을 해결한다.

 

Deformable Convolution

Deformable DETR은 deformable convolution에서 deforamable 개념을 도입해왔기 때문에, 먼저 Deformable convolution을 정리한다.

 

 

기존의 3x3 형식의 convolution의 경우에는 고정된 grid로 convolution을 수행하기 때문에 계산을 적용하는 receptive-field가 어떤 input이 들어오든 동일하게 수행이 된다. 하지만 (b), (c), (d)와 같이 각 pixels에 대해 offsets을 적용하게 된다면 더 넓고, 실제로 필요한 부분에 대해서 계산을 수행할 수 있게 된다. 

Deformable convolution을 적용하는 방법은 위 그림과 같다.

먼저, offset field를 생성해낸다. Input feature map에 convolution을 적용하여, offset field를 생성해낸다. 이 때, offset field는 input feature map과 동일한 공간적 차원을 가진다. 이를 통해 각 위치에 대한 offset이 생성되길 기대하는 것이다.

Offset field가 완성되었다면, input feature map에 convolution을 적용할 때 기존 convolution을 수행하려고 했었던 위치에 있는 offset 값을 참조하여 deformable convolution을 수행한다. 이를 통해 입력 이미지의 복잡한 형태와 변형에 유연하게 대처할 수 있도록 하는 것이다.

 

 

 

Deformable attention module

 

Deformable attention module이 나오게 된 배경은 먼저, DETR의 한계점으로 제시된 학습이 너무 오래걸린다는 점, 그리고 작은 객체를 탐지하는 성능이 떨어진다는 점이다.

그래서 본 논문에서는, Deformable attention module을 활용하여 이러한 한계점을 극복한다.

 

1. Reference points

이전 backbone에서 도출된 feature map에 대해서 reference point를 지정하여 attention 계산을 위한 초기 지점을 제공한다. 학습 과정에서 이 reference point는 조정된다.

2. Sampling offsets

각 reference points에 대해서 모델은 sampling offsts을 연산한다. 이 offsets은 해당 reference point로부터 얼마나 떨어진 위치에 추가적인 정보가 있는지 나타낸다. 이 offsets 또한 학습 가능한 가중치를 통해 조정되어, 모델이 중요한 정보를 포착할 수 있는 영역을 동적으로 조정하는 역할을 한다.

3. Sampling points

최종적으로, reference points에 대해 sampling offsets을 적용하여 sampling points를 뽑아내고, 이를 통해 Feature map의 특정 부분에 대해서만 attention 계산을 한다. 이를 통해 이미지 내에서 중요한 부분에 대해서만 집중할 수 있도록 도울 뿐 아니라, 전체적인 계산량을 줄이는 데 일조한다.

 

수식은 아래와 같다.

Zq: query element q의 content feature

x: input feature map

Pq: query element q의 reference point

q: query element
k: sampled keys

m: attention head index
delta_P_mqk:  m번째 attention head의 k번째 sampling point의 sampling offset

Amqk : m번째 attention head의 k번째 sampling point의 attention weight
M: attention head의 총 개수

K: sampled keys의 총 개수
Query feature zq는 선형 연산을 통해 3MK features가 되고, 2MK channels는 delta_P_mqk로 encode 되며, 남은 MK channels는 softmax operator로 가 Amqk가 된다. Deformable attention module은 convolutional feature maps를 key-elements로 사용하도록 디자인 되었다. (2 MK가 P_mqk로 가는 이유는 delta_x, delta_y가 필요하기 때문)

 

 

다만, deformable attention module은 Encoder와 Decoder의 뒷부분에서 사용되며, Decoder의 self-attention의 경우 기존에 사용하던 MHA를 그대로 사용한다.

 

Multi-scale Deformable Attention module

위의 attention module을 여러가지 feature map에 한꺼번에 고려했다.

수식은 아래와 같은데, L이 여러 Layer, 즉 여러 feature map을 사용했다는 것이고, φl(pˆq)는, reference point를 0~1사이로 normalize 되어 들어온 pˆq를 rescale 하는 부분이다.

 

 

아래는 Feature maps에서 input으로 사용할 multi-scale의 feature map을 활용하는 Figure 이다.