728x90
반응형
나의 정리
- NLP에서 주로 사용되던 Transformer를 object detection task에 사용하여 간단하고 경쟁력 있는 모델을 만들었다.
- direct set prediction 문제로 정의하여 bipartite matching을 통하여 유니크한 예측을 한다.
bipartite matching은 GT와 prediction의 optimal assignment를 찾아서 loss 값을 줄여나가는 방향으로 학습을 진행한다. - Transformer의 endcoder-decoder 구조를 가지고 있고 positional encoding을 통하여 N개의 object queries 만들어내 decoder를 거친 값을 FFN을 거쳐서 최종적으로 각각 독립적으로 class, bbox coordinate 값을 predict 한다.
기존과 다르게 parallel 하게 decoding이 진행된다. - 기존의 모델들과 다르게 global information에 대해서 학습을 할 수 있다는 장점이 있지만 작은 object에는 성능이 떨어지고 학습 시간과 자원이 많이 소요된다는 단점이 있다.
Abstract
- object detection을 direct set (집합) prediction 문제로 바라보는 방법을 소개 집합은 중복과 순서가 없다.
- hand-designed component인 NMS, anchor generation 등을 제거해 파이프 라인을 간소화하였다.
- transformer의 구조인 encoder-decoder 구조를 가지고 있고 bipartite matching(양자화 매칭)을 통해 유니크한 예측을 한다.
Introduction
- 이전 모델들의 성능은 postprocessing (NMS, anchor, region proposal 등)에 크게 의존되었다.
이러한 과정들을 없앴다. - 첫째, transformer의 encoder-decoder 구조를 채택, self-attention mechanism은 이 구조가 removing duplicate prediction과 같은 set prediction의 제약을 다루기 쉽게 만들어 주었다.
removing duplicate prediction이란?
중복 제거 예측!
주로 NMS와 같은 방법으로 예측된 object bbox가 중복되지 않도록 만들어 주는 것
- 둘째, prediction과 GT 사이의 Bipartite matching을 수행하는 a set loss function을 수행 detection pipeline의 간소화
- matching loss function은 GT object의 유니크한 예측을 할당하므로 예측된 object들의 순서는 변하지 않기 때문에 병렬적으로 autoregressive decoding task를 제거할 수 있다.
- Large object에 대한 성능이 좋지만 small object에 대한 성능은 그리 좋지 않았다.
- transformer에 있는 보조적인 decoding loss도 사용해야 하고, 긴 학습 스케줄이 필요하다.
Related work
아래와 같은 도메인의 기존 연구를 기반으로 연구 진행
- bipartite matching losses for set prediction
- encoder-decoder architectures based on the transformer
- parallel decoding
- object detection methods
Set Prediction
- target object와 prediction이 1대 1로 매치되도록 모델을 동작시키는 것
- 기본 목적은 multilabel classification이고 이런 task에서 어려움은 근접한 중복의 처리이다.
- Hungarian algorithm을 기반으로 한 loss를 디자인하여서 처리한다.
Transformers and Paralled Decoding
- Attention은 모든 input sequence의 정보를 합치는 network이다.
- set prediction을 위한 cost와 성능에 대한 적절한 trade-off를 위하여 transformer와 parallel decoding을 사용한다.
Object detection
- 기존 방식들의 성능은 anchor나 proposal 등의 시스템에 종속적인 결과가 나온다.
- set prediction은 1개의 object에 대해서 1개의 bbox만을 예측하게 된다.
이는 어떠한 post-processing step이 필요로 하지 않는다.
The DETR model
detection에서 direct set prediction을 위해 2가지가 필요하다.
- GT와 prediction 간에 unique matching을 할당하게 하는 set prediction loss
- a set of object들을 예측하고, 이들의 관계를 모델링하는 architecture (single pass)
Object detection set prediction loss
- 고정된 개수의 N개를 예측하는데 이는 image 내의 object 개수보다 훨씬 커야 한다.
- 첫 번째 과정으로 GT값과 prediction값의 bipartite matching을 진행한다.
optimal assign을 찾는 과정을 통하여 pair-wise 한 matching을 해주게 되는데 이는 Hungarian algorithm을 사용해 최적의 쌍을 찾는다. - matching cost는 class prediction와 predict와 GT box 간 similarity 두 가지 모두를 고려한다.
- matching cost는 위와 같이 정의된다.
- 두 번째 과정으로 이전 스텝에서 매칭 한 모든 pairs에 대한 Hungarian loss를 연산한다.
흔한 object detector의 loss들과 유사하게 정의한다. - class prediction과 box의 loss를 위해 negative log-likelihood의 linear combination을 사용한다.
결과적으로 중복이 없는 prediction이 가능해진다. (pair-wise 한 predict) - 정리
- 이분 매칭을 통하여 prediction과 GT값의 optimal assignment를 찾는다.
- Loss function으로 prediction이 값과 유사해질 수 있게 한다.
DETR architecture
- 깔끔하고 간단한 구조를 가진 DETR의 메인 요소는 3개로 이루어져 있다.
- compact feature representation을 추출하는 CNN backbone
- encoder-decoder transformer
- 최종적인 detection 예측을 반환하는 simple feed forward network (FFN)
- Backbone
- input image를 전통적인 CNN backbone 모델을 거쳐 낮은 차원의 activation map을 생성한다.
- Transformer encoder
- 각각의 encoder layer는 기본적인 구조를 가지고 있고 multi-head self-attention module과 feed forward network로 구성되어있고 positional encoding을 추가했다.
- Transformer decoder
- decoder 또한 기본적인 구조인 multi-head self-attention module, encoder decoder attention 메커니즘을 사용하여 N embedding of size d를 transformer 한다.
- 기존 transformer와 다른 점은 각 decoder layer에서 병렬적으로 N object를 디코딩하는 것이다.
- input embedding은 positional encoding을 학습하는데 이를 object queries라고 부른다.
- 그 이후 decoding 결과를 FFN을 통과시켜 Class와 bbox 좌표로 독립적으로 디코딩되어 N개의 final prediction이 나온다.
- Prediction feed-forward networks (FFNs)
- 최종 예측은 ReLU activation layer, hidden dimension d layer, linear projection layer로 이루어진 3-layer perceptron에 의해 연산된다.
- FFN은 input image에 대한 normalized center coordinates, height, width를 예측하며 linear layer는 softmax를 이용해 class label을 예측한다.
Experiments
- Technical details
- transformer: AdamW with LR 10^-4
- weight decay: 10^-4
- transformer의 weight initialization은 xavier init을 이용해 초기화
- backbone: AdamW with LR 10^-5 ImageNet pretrained ResNet - BN layer frozen 시켜 사용
- augmentation
- resize
- random crop augmentation
- transformer → dropout 0.1
- 작은 object들에 대해서 성능이 좋지 않고 Training 시간이 오래 걸린다.
하지만 큰 object들에 대해서 성능이 높게 나와 경쟁력 있는 모델이다.
Ablations
- 마지막 encoder layer의 attention map을 시각화한 자료인데 이를 통하여 encoder는 instance를 개별로 분리할 수 있고, 이런 특징은 decoder가 object를 추출하고 localize 하는 데 도움이 되는 것으로 보인다.
- 위와 비슷하게 decoder attention을 시각화하였을 때 주로 attention이 물체의 말단에 집중되는 것을 볼 수 있는데 이는 encoder는 global attention을 통해 instance를 분리한다면, decoder는 class와 object boundaries를 찾기 위해 object의 말단을 catch 한다는 것을 알 수 있다.
Importance of positional encodings
두 개의 positional encoding이 사용된다.
- spatial positional encodings
- output positional encodings (object queries)
- Output positional encoding은 무조건 필요하다. (실험적인 결과를 통해 알 수 있다.)
- transformer component인 global self-attention in encoder, FFN, multiple decoder layers, positional encodings 등은 최종적인 performance에 큰 기여를 했음을 알 수 있다.
DETR for panoptic segmentation
- segmentation task에서도 좋은 성능을 냄
Conclusion
- Transformer와 bipartite matching loss를 통한 global information을 이용하여 좋은 성능으로 동작하였다.
728x90
반응형
'Paper review > 2D Object detection' 카테고리의 다른 글
[논문 리뷰] CornerNet: Detecting Objects as Paired Keypoints (2018) (0) | 2022.07.07 |
---|---|
[논문 리뷰] Deformable DETR: Deformable Transformers for End-to-End Object Detection (0) | 2022.07.05 |
[논문 리뷰] (RetinaNet) Focal Loss for Dense Object Detection (0) | 2022.07.01 |
[논문 리뷰] SSD: Single Shot MultiBox Detector (0) | 2022.06.30 |
[논문 리뷰](YOLO)You Only Look Once:Unified, Real-Time Object Detection (0) | 2022.06.28 |