논문 원본 : https://arxiv.org/abs/2005.12872
End-to-End Object Detection with Transformers
We present a new method that views object detection as a direct set prediction problem. Our approach streamlines the detection pipeline, effectively removing the need for many hand-designed components like a non-maximum suppression procedure or anchor gene
arxiv.org
1. Introduction
- Object Detection의 목표는 관심 있는 객체의 bounding box와 category label의 집합을 찾는 것
- 현대 detector들은 set prediction task를 간접적 방식으로 접근
- 수많은 proposals, anchor, 또는 window centers 위에 regression 및 classification 문제를 정의하여 처리
- 이러한 기존 방식은 NMS, anchor set의 설계, anchor와 GT 간의 할당 규칙(heuristics)에 큰 영향을 받음
- 본 논문은 object detection을 direct set prediction 문제로 보고 학습 파이프라인 간소화
- 이를 위해 Transformer 기반의 Encoder-Decoder 구조 채택
- 내부의 Self-Attention 매커니즘은 요소 간의 관계를 모두 모델링할 수 있어, 중복 예측 제거에 적합
- DETR (DEtection TRansformer)는 모든 객체를 한 번에 예측
- bipartite matching 기반의 set loss function을 통해 end-to-end 학습됨 (예측한 객체들과 실제 객체들을 1:1로 매칭 학습)
- anchor나 NMS 등과 같은 사전 지식 기반 구성 요소를 제거하여 파이프라인 단순화
- 또한, 기존 탐지기들과 달리 커스텀 레이어(ex. RPN, anchor generator)가 전혀 필요 없으며, CNN과 Transformer만 있다면 어떤 프레임워크에서도 쉽게 재현 가능
3. The DETR model
3.1 Object detection set prediction loss
- DETR은 N개의 예측 결과를 한 번에 출력하며, 이 N은 이미지 안에 실제 존재하는 객체 수보다 충분히 큰 수로 설정
- 정답 객체 수보다 예측 수가 많으므로, 정답 객체 세트도 빈 객체(∅) 로 패딩하여 크기를 N으로 맞춤
Bipartite Matching
- 예측 결과와 정답 객체를 1:1로 짝지어야 함 (중복 없이)
- 예측된 객체 집합(y hat)과 실체 객체 집합(y) 사이의 최적의 bipartite matching을 찾음
- 두 집합 사이의 matching loss의 합을 가장 작게 만들어주는 σ(최적의 matching 결과)를 찾음
- 이 과정을 Hungarian algorithm 으로 최적화
- matching cost는 class 예측과 예측 박스와 정답 박스 간의 유사도를 모두 고려하여 계산
- ground truth 집합의 각 요소는 yi = (ci,bi)이며, ci는 class label (∅일 수도 있음) , bi는 bounding box
- bounding box는 중심 좌표, 높이, 너비에 대한 정보를 담고 있고 관련 값들은 0~1사이로 normalize 함
- Matching Loss
- class가 잘 매칭이 됐고, bounding box가 유사할 때 Loss 값이 줄어드는 형태
- 즉, 클래스가 존재할 경우(cᵢ ≠ ∅), 클래스 예측 확률이 높을수록 비용이 낮아지고, 박스 오차가 작을수록 비용이 낮아짐
- -log(확률)은 값의 범위가 0~무한대라서, 박스 손실이랑 값 범위가 안 맞음
- p̂는 0~1 사이 값이므로, 박스 손실과 크기를 맞춰서 비교하기 쉬움
- 정답이 ∅인 경우 비용을 고정값 1.0으로 처리
- Hungarian Loss
- bipartite matching이 수행된 이후에 모델의 output 값과 실제값이 유사하게 만들어 줘야 됨
- 클래스 예측에 대한 음의 로그 우도 손실과 박스 오차 손실의 선형 결합 (σ̂는 1단계에서 구한 최적 매칭)
- 실제로는 클래스가 없는 경우(cᵢ = ∅), log 확률 항의 가중치를 10배 줄여서 클래스 불균형 문제를 보완
- Bounding box loss
- L1 Loss : 박스의 중심 좌표, 높이/너비가 얼마나 차이 나는지를 숫자로 계산 (단점 : 큰 박스일수록 손실 커짐)
- GIoU Loss : 두 박스가 얼마나 겹치는지 비율로 비교 (장점 : 상대적 크기 차이에 강함)
- λ : 가중치를 사용하여 작은 박스, 큰 박스 모두에 대해 균형 잡힌 학습 가능
3.2 DETR architecture
- pytorch에서 DETR의 추론 코드는 50줄 미만으로 구현 가능
- 그만큼 DETR은 간단한 구조
CNN Backbone
- 초기 이미지에서 시작하여 CNN backbone을 거쳐
- activation map 추출 (일반적으로 C=2048, H,W = H0/32,W0/32)
Transformer Encoder
- 먼저, 1x1 Conv로 activation map 차원 C를 더 작은 차원 d로 줄임
- encoder의 입력으로 sequence를 기대하므로, z0의 공간 차원을 하나의 차원으로 축소하여 dxHW feature map 생성
- positional encoding 추가 -> 위치 정보 보존
- Multi-head Self Attention + FeedForwrad 구조로 global feature 추출
Transformer decoder
- N개의 learnable한 object queries가 입력으로 들어감
- 각 object query는 encoder에서 온 시각 정보와 attention
- 한 번에 N개의 객체 예측 → 병렬 디코딩
- 각 디코더 층 후마다 보조 예측과 Loss 계산 (auxiliary loss)
Prediction Head (FFN)
- 각 object query → 3-layer FFN에 들어감
- 출력
- Bounding Box: 중심좌표, 높이, 너비 → 정규화된 값
- Class label: softmax 통해 C+1 클래스 분류 (∅ 포함)
Auxiliary decoding losses
- 각 디코더 층마다 예측을 하게 하고,
- 해당 예측도 Hungarian Loss로 학습에 반영
- 목적: 학습 초기에 정확한 객체 수를 예측하도록 도움
4. Experiments
4.1 Comparison with Faster R-CNN
- DETR은 COCO 2017에서 Faster R-CNN과 유사하거나 더 나은 성능을 보여줌
- 특히 큰 객체 탐지에서 매우 뛰어남 (+7.8), 반면 작은 객체 에서는 다소 약함 (-5.5)
- 학습 스케줄: 300~500 에폭, AdamW 옵티마이저, ResNet-50/101 백본 사용
4.2 Ablations
- Encoder : 글로벌 관계 학습에 필수. 없으면 성능 -3.9
- Decoder 층 수 : 층이 깊을수록 AP 크게 향상됨 (+8.2)
- FFN : 없으면 AP -2.3 → 중요
- Positional Encoding : object queries는 필수. 입력 위치 인코딩은 성능 향상에 도움됨
4.3 Loss Ablations
- Classificaiton loss : 필수
- GIoU loss : 매우 효과적, 단독으로도 좋은 성능
- L1 loss : GIoU 없이 사용하면 성능 저조
4.4 Decoder output slot analysis
- 각 object query는 특정 위치/크기에 전문화된 예측 경향 보임
- 심지어 COCO에 없는 24마리 기린이 있는 합성 이미지도 잘 탐지 → 일반화 능력 우수
4.4 DETR for panoptic segmentation
- DETR에 mask head만 붙이면 바로 panoptic segmentation 가능
- 객체와 배경 구분 없이 통합 처리 가능
- 기존 방법들보다 stuff 클래스에서 특히 우수한 성능
- FPN 스타일 업샘플링과 DICE+Focal Loss 사용
5. Conclusion
- Transformer + Bipartite matching Loss 사용을 통해 Direct Set Prediction Problem 해결
- Large Object에서는 Faster R-CNN보다 더 좋은 성능을 보임
- Small Object에 대한 성능 향상이 앞으로의 과제
'논문 리뷰 > CV' 카테고리의 다른 글
[X:AI] NeRF 논문 리뷰 (0) | 2024.07.28 |
---|---|
[X:AI] VAE 논문 리뷰 (1) | 2024.07.26 |
[X:AI] MOFA-Video 논문 리뷰 (1) | 2024.07.20 |
[X:AI] GAN 논문 리뷰 (2) | 2024.07.17 |
[X:AI] SimCLR 논문 리뷰 (3) | 2024.07.14 |