본문 바로가기
논문 리뷰/CV

[X:AI] Detr 논문 리뷰

by hyeon827 2024. 7. 23.

End-to-End Object Detection with Transformers

 

Abstract

  • 본 논문에서는 Object Detection을 direct set prediction problem으로 보고 있음
  • 해당 접근 방식은 Prior Knowledge (NMS or anchor generation)를 사용하지 않아 detection pipeline 간소화
  • DETR(DEtection TRansformer) 주요 요소는 set-based global loss를 기반으로 한  bipartite matching과 Transformer Encoder-Decoder Architecture
  • Fast R-CNN과 유사한 정확도와 panoptic segmentation에서도 활용할 수 있을 정도로 잘 generalize 되어 있음

 

1. Introduction

  • Object Detection의 목표는 관심 있는 객체의 bounding boxs와 category labels의 집합을 찾는 것
  • 현대 detectors는 set prediction task를 간접적을 접근 
  • surrogate regression and classification problems on a large set of proposals, anchors, or window centers
  • 해당 detectors의 성능은 중복된 예측을 제거하기 위한 postprocessing 과정에 크게 영향을 받음
  • 본 논문에서는 detection pipeline을 단순화하기 위해 direct set prediction 접근 방식 제안 
  • Seqeunce 예측에 있어 좋은 성능을 보인 Transformer 기반의 Encoder-Decoder Architecture 채택
  • Transformer의 self-attention mechanism은 인스터스 간의 상호작용 및 픽셀별 연관성 정보를 파악하여 중복 예측 제거에 도움을 줄 수 있음
  • Detr은 모든 객체를 한 번에 예측하며, 예측된 객체와 실체 객체 간의 bipartite matching을 수행하는 set loss functiond으로 end-to-end 훈련 수행
  • spatial anchors나 NMS와 같은 prior knowledge가 필요 없어 detection pipeline 단순화
  • Autoregressive하게 학습하는 RNNs 구조를 사용 X
  • Transformer 구조를 사용하여 병렬 처리
  • 이는 순서에 영향받지 않는 Set prediction에 적합

 

  • 하지만 Detr은 large object에서 좋은 성능을 보였으나 small object에서는 낮은 성능을 보임
  • 또한, 매우 긴 training 기간이 소모
  • 보조적인 Decoding loss를 transformer에 추가
  • 추가로, Ablation study를 통해 일부 component를 제외해 보면서 DETR이 왜 좋은 성능을 보이는지 분석
  • DETR은 Segmentation 등 다양한 Task에 확장 가능성을 보여줌

 

2. The DETR model

 

   2.1 Object detection set prediction loss

  • N을 이미지 내의 instance를 모두 포함할 수 있도록 충분히 크게 설정

   [1]

  • 우선 예측된 객체 집합(y hat)과 실체 객체 집합(y) 사이의 최적의 bipartite matching을 찾음
  • 두 집합 사이의 matching loss의 합을 가장 작게 만들어주는 σ(최적의 matching 결과)를 찾음
  • optimal assignment은 Hungarian algorithm을 사용하여 효율적으로 찾음

 

  • matching cost는 class 예측과 예측된 bounding box의 유사성을 모두 고려
  • ground truth 집합의 각 요소는 yi = (ci,bi)이며, ci는 class label, bi는 bounding box
  • bounding box는 중심 좌표, 높이, 너비에 대한 정보를 담고 있고 관련 값들은 0~1사이로 normalize 함
  • Matching Loss 세분화
  • class가 잘 매칭이 됐고, bounding box가 유사할 때 Loss 값이 줄어드는 형태

 

  

   [2]

  • bipartite matching이 수행된 이후에 모델의 output 값과 실제값이 유사하게 만들어 줘야 됨
  • 아래 Loss를 통해 class가 유사하도록 bounding box가 잘 맞도록 학습 수행

 

   Bounding box loss (세분화)

 

 

   2.2  DETR architecture

  • pytorch에서 DETR의 추론 코드는 50줄 미만으로 구현 가능
  • 그만큼 DETR은 간단한 구조

 

   Backbone

  • 초기 이미지에서 시작하여 CNN backbone을 거쳐

  • activation map 추출 (일반적으로 C=2048, H,W = H0/32,W0/32)

 

   Transformer encoder

  • Transformer에 들어가기 위해서 형태가 또 변형시켜줘야 함
  • 먼저, 1x1 Conv로 activation map 차원 C를 더 작은 차원 d로 줄임

  • encoder의 입력으로 sequence를 기대하므로, z0의 공간 차원을 하나의 차원으로 축소하여 dxHW feature map 생성
  • 각 encoder layer는 표준 아키텍처를 가지고 있으며, multi-head self-attention module과 feed forward network(FFN)으로 구성

   Transformer decoder

  • N개의 object quries가 병렬적으로 decoding
  • object query는 학습한 가능한 positional embedding이고 개별적으로 각각의 instance 구별할 수 있도록 만들어짐
  • 즉, 결과적으로 N개의 query는 N개의 final prediction을 뽑아냄
  • 특히 DETR는 self-attention과 encoder-decoder attention을 사용하여  global하게 사물을 추론하면서도, 결과적으로 각 객체를 명확히 구분해줌

   Prediction feed-forward networks  (FFNs)

  • 최종 예측은 3-layer perceptron with ReLU와 linear projection layer에 의해 계산
  • 예측 정보 : normalized center coordinates(x,y), height, width, class
  • 빈 class는 "no object"로 처리

   Auxiliary decoding losses

  • 성능을 높이고자 보조적인 decoding loss 추가

3. Conclusion

  • Transformer + Bipartite matching Loss 사용을 통해 Direct Set Prediction Problem 해결
  • Large Object에서는 Faster R-CNN보다 더 좋은 성능을 보임
  • Small Object에 대한 성능 향상이 앞으로의 과제

Reference

https://www.youtube.com/watch?v=hCWUTvVrG7E

https://velog.io/@kbm970709/%EB%85%BC%EB%AC%B8-%EB%A6%AC%EB%B7%B0-End-to-end-object-detection-with-transformers

'논문 리뷰 > CV' 카테고리의 다른 글

[X:AI] BYOL 논문 리뷰  (0) 2024.08.05
[X:AI] NeRF 논문 리뷰  (0) 2024.07.28
[X:AI] MOFA-Video 논문 리뷰  (0) 2024.07.20
[D&A] GAN 논문 리뷰  (0) 2024.07.17
[X:AI] SimCLR 논문 리뷰  (1) 2024.07.14