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
'논문 리뷰 > 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 |