ResNet-50을 사용하여 CNN backbone을 구성 (입력 이미지에서 **feature map을 추출하는 역할)**
본 논문의 모델은 **transformer 기반의 encoder-decoder 구조**를 채택
전반적인 인스턴스간의 상호작용을 잘 파악
픽셀별 연관성 정보도 제공하는 **self-attention mechanism**을 활용
결론적으로 Set prediction에서 필요했던 **중복 예측 제거** 기능을 수행
DETR은 Object와 Ground truth object 간의 이분매칭을 통해 set loss function을 사용해 end-to-end한 학습을 함 → spatial anchors나 NMS같은 것들이 필요하지 않다.
**DETR**의 가장 큰 특징 두 가지는 **Partite matching (이분매칭)**과 병렬처리가 가능한 **Transformer** 구조
Related work
The DETR model
DETR 모델은 direct set predictions을 하기 위해서 두가지 정도의 방법을 사용.
(1) Predicted된 box와 Ground truth box 간의 unique한 matching을 하기 위한 set prediction loss를 사용
(2) set of objects을 예측하고 그들의 관계를 모델링 하는 architecture 사용
Object detection set prediction loss
DETR은 디코더의 single pass로 고정된 크기 N개의 예측을 하는데, 이때 N은 실제 이미지에 있는 일반적인 object 개수보다 훨씬 크게 설정된다. 학습 과정 중 어려운 점은 예측된 object(class, position, size)를 ground truth에 비교하여 점수를 매기는 것이다. 우리의 loss는 예측된 값과 gt값의 최적 bipartite matching을 구하고 object-specific loss를 구한다.
최적의 이분매칭을 위해 쓰는 것은 Hungarian algorithm (추가 공부 필요)
Hungarian algorithm 수식
Bounding box loss
많은 detector들이 초기 guess에 대한 차이로 bounding box를 예측하는 것과 달리, DETR은 바로 box를 예측한다. 이러한 접근법이 implementation을 간단하게 만들었지만, loss에 대한 상대적인 scaling이 이슈가 될 수 있다.
DETR architecture
아키텍쳐는 3가지 요소를 가지고 있다.
1) 피쳐를 뽑기 위한 CNN backbone
2) encoder-decoder transformer
3) 최종 디텍션 예측을 하기 위한 simple feed forward network(FFN).
Transformer Encoder
1x1 convolution으로 차원 C를 더 작은 차원 d로 바꿔주어 새로운 feature map으로 만든다.
Transformer Decoder
원래 트랜스포머는 output sequence를 하나하나 넣어주는 방식으로 autoregressive하게 진행했지만, 우리의 모델은 한번에 N개의 obejct를 병렬로 예측
Prediction FFN
3개의 perceptron과 ReLU, linea projection으로 이루어진다. FFN은 상대적인 중앙값을 예측하고, 이후 linear layer는 softmax를 통해 class를 예측한다.