하루에 논문 한편씩, 핵심만 읽고 요약하기 : Paper 02



Paper Link : https://ai.facebook.com/research/publications/end-to-end-object-detection-with-transformers



1. Abstract
: Object detection을 direct set prediction 문제로 해결하는 새로운 방법을 제안하였습니다. 해당 방법은 NMS(non-maximum suppression)이나 anchor 생성과 같은 직접 설계해야하는 요소들을 필요로 하지 않습니다. DETR(DEtection TRansformer)은 set-based global loss와 transformer encoder-decoder 구조입니다. 흔히 사용되는 detector와 달리 DETR은 매우 간단하며 별도의 라이브러리를 필요로 하지 않습니다.




DETR은 모든 objects를 한번에 검출하며 end-to-end로 학습됩니다. DETR의 가장 큰 특징은 bipartite matching과 transformers의 결합(conjunction)입니다. 



2. The DETR Model

DETR은 크게 CNN backbone, encoder-decoder transformer, 그리고 FFN으로 구성되어 있습니다. DETR은 ResNet과 같이 흔히 사용되는 CNN backbone를 사용합니다. 해당 backbone을 통과하여 얻은 features를 flatten하고 positional encoding을 보충해준 후에 transformer encoder에 넣어줍니다. Transformer decoder는 object queries라고 불리는 고정된 적은 수의 학습된 positional embeddings을 input으로 받고 추가적으로 encoder output도 input으로 사용합니다. Decoder에서 얻은 각각의 output embedding을 shared feed forward network (FFN)에 통과시켜 detection 결과 (클래스 정보와 bounding box) 혹은 "물체 없음 (no object)"을 예측합니다.





아래는 논문에 부록으로 실린 DETR pytorch 코드이며 자세한 내용은 해당 논문의 github에서 확인하실 수 있습니다.






다음은 loss function을 살펴보도록 하겠습니다.




위의 식에서  는 ground truth와 prediction 사이의 pair-wise matching cost입니다.




위에서 구한 sigma 값을 이용하여 아래의 loss function을 계산하게 됩니다.



아래의 식은 L1 loss와 IoU loss를 결합한 bounding box loss입니다.






3. Result




4. Ablation


학습된 모델의 마지막 encoder layer의 attention maps을 시각화한 결과입니다. 이를 통해 encoder가 이미 객체들(instances)을 분리하고 있으며, 이를 통해 decoder가 object extraction과 localization을 더욱 용이하게 할 수 있음을 짐작할 수 있습니다.



이번에는 decoder의 attention을 시각화한 결과입니다. Decoder는 일반적으로 각 물체의 가장자리를 focusing하고 있는 것을 확인할 수 있습니다.