DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection
DETR은 Transformer 기반의 detector algorithm으로 object detection 문제를 set prediction task로 보고 bipartite graph matching을 통해 label을 assign하는 방식을 사용합니다.
Apr 20, 2022
Introduction
DETR은 Transformer 기반의 detector algorithm으로 object detection 문제를 set prediction task로 보고 bipartite graph matching을 통해 label을 assign하는 방식을 사용합니다.
DETR의 큰 단점은 학습 수렴이 느리며 query의 의미가 분명하지 않다(unclear)는 점입니다.
DETR의 단점을 개선한 모델들이 많이 제안되었지만 여전히 SOTA의 classical model(DyHead, Swin, SwinV2, HTC++, etc..)에 비해 성능이 떨어집니다. 또한 DETR 계열 모델의 scalability에 대한 연구 또한 보고된 적이 없습니다. (large backbone, large-scale data set)
Fig. 1.
저자는 DN-DETR, DAB-DETR, 그리고 Deformable DETR에 사용된 기술과 새로운 몇가지 테크닉을 추가하여 DINO라는 새로운 모델을 만들었고 다른 DETR 모델들에 비해 높은 성능을 보였습니다.
Table 1. ResNet50 backbone. 1x setting(12epoch)
또한 scalability 실험을 통해 COCO test-dev leaderboard에서 63.3 AP라는 새로운 기록을 달성하였습니다.
main contribution은 다음과 같습니다.
- 3 가지 새로운 technique을 사용한 새로운 DETR 계열의 모델인 DINO를 개발.
- 여러 다른 DETR design choice에 대한 ablation study를 진행하여 ResNet-50과 multi-scale feature를 사용하여 12 epoch에서 48.3AP, 36 epoch에서 51.0AP를 달성. small object에 대해 +7.4AP
- Object365 dataset, SwinL backbone을 사용하여 COCO val2017에 대해 63.2AP, COCO test-dev에 대해 63.3AP을 보임으로써 DETR 계열 모델 처음으로 classical model을 넘어서는 SOTA 성능을 보임.
Proposed Method
기존의 DETR모델과 동일하게 backbone과 transformer구조를 가집니다.
backbone에서 얻은 multi-scale feature를 positional embedding과 함께 Encoder에 입력합니다. Encoder에서 출력된 feature를 새로 제안하는 mixed query selection 전략으로 anchor를 초기화 하여 decoder의 positional query로 사용합니다. 이때 contents query는 초기화 하지 않고 학습되도록 합니다.
Decoder에서 initialized anchor와 learnable content query를 deformable attention을 사용하여 update합니다. 최종 출력은 refined anchor와 content query로 예측된 classification 결과 입니다.
DN-DETR과 마찬가지로 denoising training을 위한 DN branch가 있습니다. 이 때 기존의 방법을 개선한 새로운 contrastive denoising training approach를 사용합니다.
또한 Refined box의 정보를 앞선 layer에 잘 전달하기 위해 기존의 방식(Deformable DETR)을 개선한 look forward twice method를 사용하였습니다.
Contrastive DeNoising Training
DN-DETR은 denoising(DN) training method를 제안하여 bipartite matching의 불안정에 기인한 DETR의 느린 수렴문제를 해결하였습니다.eeeeeeeeee
hyperparameter e 를 설정하여 아래와 같은 noeise를 더e한 gt를 입력으로 사용하여 gt를 reconstruction하는 방법입니다.
이 방법은 prediction이 gt의 가장 가까운 anchor box를 통해서 이루어지도록 유도합니다.
그러나 이 방법은 anchor 주위에 object가 없는 경우에 대한 대응 방법이 없습니다.
Contrastive DeNoising (CDN)은 사용되지 않는 anchor를 reject하는 방법을 제안합니다.
두개의 hyperparameter $\lambda_1$이상 $\lambda_2$ 이하의 구간을 negative query로 설정하여 “no object”를 예측하도록 합니다.
Fig. 3. 우측 box의 가운데 점은 gt를 의미
이 방식은 duplicate prediction과 small object detection을 개선함을 보였습니다.
Mixed Query Selection
DETR과 DN-DETR에서의 decoder query는 각 이미지의 encoder feature를 사용하지 않는 static embedding입니다. anchor(혹은 positional query)를 학습 데이터로 부터 학습하고 content query는 0으로 setting합니다. (a)
Deformable DETR에서 제안한 “two-stage”방식에서는 encoder로 부터의 top K feature를 decoder의 positional, content query로 사용합니다. (b)
DINO에서는 anchor box query를 초기화 하는데만 top K feature를 사용하고 content query는 static으로 남겨둡니다. Deformable DETR의 경우 선택된 content feature는 refinement되지 않기 때문에 decoder에 ambiguity를 줄수 있습니다. (?) 반면 mixed query selection approach에서는 모델이 positional query를 사용하여 encoder의 feature로 부터 content feature를 더 잘 뽑을 수 있도록 도울 수 있다고 합니다.(?)
Look Forward Twice
Fig. 6. 점선은 gradient가 흐르지 않는 부분.
Deformable DETR에서 사용한 iterative box refinement 방식에서 layer $i$의 parameter는 box $b_i$로 부터의 auxiliary loss로만 업데이트 됩니다. 이를 저자는 “Look forward once” 방식(Fig. 6. (a))이라 이름지었습니다.
저자는 layer $i$의 parameters를 업데이트 하는데에 다음 레이어($i$+1)의 정보도 중요할 것이라 판단하여 “Look forward twice” 방식을 사용하였습니다.
Experiment
Dataset:
- COCO 2017 object detection dataset (train2017, val2017), Object365, test-dev
Backbone:
두가지 backbone 사용.
- ResNet-50 (trained on train2017)
- SwinL (trained on Object365, fine-tuned on train2017)
Main Results
Ablation
Table 4. Ablation comparison of the proposed algorithm. QS: Query Selection, CDN: Contrastive De-Noising Training, LFT: Look Forward Twice.
Conclusions
DETR 기반의 모델로 SOTA의 성능을 달성했다는 점에서 의미가 있는 것 같음.
Share article