Machine Learning/Image

DAB-DETR: Dynamic Anchor Boxes are Better Queries for DETR

blog507 2024. 7. 5. 11:20
반응형

오늘은 DAB-DETR이라는 논문에 대해서 리뷰하겠습니다. 

본 논문은 Conditional-DETR에 대한 기초 지식을 알고 있다는 전제하에 작성한 글입니다. 따로 해당 논문들에 대해에 대해 정리하겠지만 미리 공부하고 보면 더 도움이 될 것입니다.

세부적인 내용들은 찾아보시는 걸 권장하고 틀린 부분이 있으면 언제든 댓글로 말씀해주시면 수정하겠습니다.

 

Github : https://github.com/IDEA-Research/DAB-DETR

Paper : https://arxiv.org/abs/2201.12329

 


Abstract

DAB-DETR는 DEtection TRansformers(DETR)의 성능을 향상시키기 위해 고안된 새로운 접근법입니다. 이 논문은 DETR에서 사용하는 고정된 Positional Encoding 대신, 동적으로 변하는 Anchor Box(앵커 박스)를 사용하여 객체 검출의 정확도를 높입니다. 이 방식은 학습 과정을 안정화시키고 더 빠른 수렴을 가능하게 하여, 기존 DETR보다 더 효율적인 성능을 보입니다. 실험 결과, DAB-DETR은 다양한 벤치마크에서 기존 모델들보다 우수한 성능을 입증하였습니다.

 

 

Conditional DETR의 한계점

Conditional DETR과 DAB-DETR의 차이

  • Conditional DETR은 2D 좌표만 삽입해주었기 때문에 동일한 크기의 가우시안 형태
    • object의 크기가 쉽게 말해 정사각형의 모습만 띄지 않기 때문에, 중간 좌표값만으로 학습을 하는 것은 (spatial embedding의 feature map을 확인해봤을 때) 위의 그림처럼 object의 높이와 넓이를 고려를 못함
    • 즉, 스케일은 따로 고려하지 못함

 

Introduction

배경

객체 검출은 컴퓨터 비전 분야에서 매우 중요한 문제로, 여러 가지 응용 분야에서 핵심 역할을 합니다. 최근 트랜스포머 기반의 DETR는 기존의 CNN 기반 객체 검출 방법론을 뛰어넘는 성능을 보이며 많은 영역에서 사용되고 있습니다. DETR은 객체 검출을 세트 예측 문제로 변환하고, 트랜스포머 아키텍처를 이용하여 객체를 직접 예측하는 혁신적인 접근 방식을 사용합니다. 하지만 DETR은 몇 가지 한계점을 가지고 있습니다.

  1. Training 시간이 김 : DETR은 훈련에 많은 시간이 소요되며, 수렴 속도가 느립니다.
  2. Positional Encoding 문제 : DETR은 고정된 Positional Encoding을 사용하여 각 객체의 위치를 인코딩하지만, 이는 최적의 검출 성능을 보여주지 못함 

 

제안 방법

본 논문에서는 DETR의 한계를 극복하기 위해 Dynamic Anchor Boxes for DETR (DAB-DETR)를 제안합니다. 주요 아이디어는 동적인 앵커 박스를 사용하여 객체의 위치 정보를 보다 유연하고 정확하게 인코딩하는 것입니다. 동적 앵커 박스는 학습 과정에서 위치를 조정할 수 있어, 더 나은 성능을 보여줍니다. 

DAB-DETR에서는 Learnable Anchor box가 추가되어 있음

 

Encoder 부분의 cross-attention 모듈에서 4D box coordinate (x, y, w, h)를 query로 사용하고 layer마다 update하는 것을 제안합니다. Spatial point(x,y)와 함께 scale 정보(w,h)가 들어 있어 scale 고려가 가능해집니다. (젤 위의 그림에서의 문제를 해결)

  • 쉽게 설명하자면, 기존의 Conditional-DETR에는 x,y좌표만 사용해서 learnable queries가 학습되었는데 본 논문은 w,h가 추가됨으로써 더 다양한 scale의 객체를 찾을 수 있다는 뜻 
  • + 찾아보니 anchor box 자체가 좋은 query라고 증명한 연구 결과도 있음

DAB-DETR과 다른 모델들과의 학습 방법 차이

 

 

WHY A POSITIONAL PRIOR COULD SPEEDUP TRAINING?

DETR에서 self-attention과 cross-attention 구조 차이

 

이전의 연구는 기존의 DETR에서 Learnable Queries와 Decoder Embedding이 query로 들어가는데, learnable Queries가 느린 학습의 주 원인이라고 분석하고 있습니다. 해당 query를 빼보고 학습해보기도 하고 잘 학습된 고정된(fixed) query를 사용해보기도 하는 등 여러가지 실험을 통해 learnable queries 때문에 빨리 수렴이 되지 않는 다는 것을 분석했는데요.

  • 이 부분은 Conditional DETR에서도 설명을 했던 내용입니다.
  • 아래 그림에서 보면, fixed된 query를 사용한다고 성능이 큰 차이는 보여주고 있지 않습니다.

DETR 학습 속도 개선 방법 2가지에 대한 비교

 

근데 본 논문에서는 위의 이유말고도 학습 속도에 더 크게 영향을 주는 다른 이유를 주장합니다. query의 위치 정보와 Image Features의 sinusoidal 위치 정보가 다른 방식으로 인코딩 되기 때문이라고 설명합니다. (위치 정보의 모호성이라고 표현). 이거를 아래 그림을 통해서 예시를 들어 설명을 드릴 수 있습니다.

 

 

 

Feature Visualization

Learned queries는 특정 region 내에서 object를 찾고자 사용되니, 모델에 대해 learned queries와 image feature의 positional embeddings 사이의 positional attention map 몇 개를 visualize해본 그림입니다. (위 그림)

  • 그림 4(a)는 uniform한 attention weights를 가지고 있습니다.
    • 4(a)의 상단에 있는 맵은 2개 이상의 concentration centers을 가지고 있어 이미지에 여러 개체가 있는 경우 객체를 찾기가 힘듭니다.
    • 4(a)의 하단에 있는 맵은 너무 크거나 작은 영역에 초점을 맞추고 있어 feature extraction 절차에 유용한 positional 정보를 주입(inject)할 수 없습니다. 
  • 그림 4(b)는 gaussian kernel과 같은 유사한 attention map을 보여줍니다만, 객체의 scale 정보들은 무시합니다. 
  • 기존 DETR에서 위의 두 map은 2개 이상에 동시에 집중해버려 위치 특정이 힘들어질 수 있고(multiple mode property), 아래의 두 map은 집중하는 영역이 너무 크거나 작아 극단적입니다.
  • 그에 반해 DAB-DETR은 다양한 scale의 map을 보여줍니다. 

저자들은 multiple mode property가 학습이 느려지는 주 요인이라고 생각하여 각 query가 특정 지역에 집중하도록 하는 동적 앵커 박스, 즉 dynamic anchor box들을 사용하여 성능을 평가하였고 그거는 위의 figure.3 오른쪽 그림에서 보이는 것처럼 더 좋은 성능을 보여주었다고 주장합니다.

 

DAB-DETR

Encoder는 동일하고, Decoder만 변경된 DAB-DETR 아키텍처
Appendix에 나오는 다른 모델과의 그림인데 참고하시면 좋을 것 같습니다.

OVERVIEW

저자가 제안하는 모델은 CNN backbone, Transformer encoder/decoder, boxes와 labels에 대한 예측 head를 포함하는 end-to-end object detection 모델입니다. 기존 Conditional-DETR과 비교하여 Decoder 부분이 많이 변경되었습니다. 바뀐 부분의 핵심적인 내용은 2D 좌표->4D 앵커 박스로 바뀐 것과, 이 앵커가 각 레이어에서 점진적으로 GT와 가깝게 변한다는 것입니다. 

 

 

LEARNING ANCHOR BOXES DIRECTLY

Content 쿼리는 𝐶𝑞∈𝑅𝐷로 표기하고, Positional 쿼리는 𝑃𝑞∈𝑅𝐷로 표기하고, 𝑃𝑞는 아래와 같이 구해집니다.

 

𝐴𝑞=(𝑥𝑞,𝑦𝑞,𝑤𝑞,ℎ𝑞)는 sigmoid가 취해진 [0, 1] 범위의 앵커 박스들의 좌표들이고, 이 좌표들을 sinusoidal embedding시키는 것이 PE이며, MLP는 Linear Layer(모든 레이어에서 파라미터를 공유)입니다. 

 

𝐴𝑞는 4D의 좌표(𝑥𝑞,𝑦𝑞,𝑤𝑞,ℎ𝑞)로 구성되어 있어 아래와 같이 다시 풀어서 정리합니다. 여기서 Cat은 Concatenation의 약자입니다. 그럼 최종적으로 2D차원의 embedding이 구성되고, 이 2D차원을 D차원으로 변환합니다. 위와 같은 과정들을 통해 D차원의 Positional 쿼리가 나오게 됩니다.

 

추가적으로 MLP 레이어는 linear 레이어와 ReLU로 구성되었습니다.

 

Self-Attention은 아래처럼 진행됩니다.

 

Cross-Attention은 Conditional DETR에 영감을 받아서 동일하게 진행되었다고 설명합니다. 따로 추가적인 설명은 적지 않겠습니다.

 

 

기존의 Conditional DETR의 단점은 위에서 언급했던 것처럼 스케일 크기를 고려하지 못한 feature map이 나온다는 것입니다. Conditional DETR의 Positional 쿼리에 대한 Cross-Attention 연산은 아래와 같습니다.

Conditional DETR - x,y 좌표만 고려하고 있음

 

그래서 해당 논문에서는 새로운, 스케일을 고려한 Modulate-Attention 연산을 적용하였습니다. 여기서 𝑤𝑞,ℎ𝑞가 분모로 들어가는 이유는 계속 normalized한 값을 곱해주기 위해서로 생각이 됩니다. 

 

ANCHOR UPDATE

마지막으로, 앵커 박스 업데이트는 layer-by-layer로 이루어집니다. 기존 DETR과 Conditional-DETR과 대조적으로, 업데이트된 앵커를 고차원 쿼리 embedding으로 다시 변환하는 것이 어려워 layer-by-layer query refinement를 수행하기 어렵습니다.

 

Self-Attn, Cross-Attn의 연산이 끝나고, Prediction head에서 상대적인 좌표, 즉 Offset(Δ𝑥,Δ𝑦,Δ𝑤,Δℎ)를 구하여, 기존 앵커의 좌표와 Summation 하여 업데이트합니다.

 

 

Experiments와 Conclusion은 실험 결과 및 토의 부분이기 때문에 따로 적지는 않았습니다.

반응형