논문 읽기/Object Detection

[논문 읽기] DETR(2020), End-to-End Object Detection with Transformers

AI 꿈나무 2021. 7. 13. 14:59
반응형

 안녕하세요, 오늘 읽은 논문은 End-to-End Object Detection with Transformers 입니다.

 

 해당 논문은 direct set prediction을 위한 transformer eocoder-decoder 구조와 set prediction을 위한 bipartite matching loss를 제안합니다. set prediction은 object detection 모델이 각 object에 대하여 set of bounding boxes와 category labels을 예측하는 task를 의미합니다. 기존 방법들은 이 set prediction은 proposals를 사용하여 간접적으로 문제를 해결해 왔습니다.

 

 기존 object detection 성능은 (1) postprocessing step인 NMS, (2) anchor set 설계, (3) target box를 anchor에 할당하는 heuristic에 의해 큰 영향을 받았습니다. 논문에서 제안하는 DETR은 위에서 언급한 3가지 요소를 제거하고 direct set prediction 접근 방법을 제시합니다.

 

DETR model

 

 DETR은 (1) a set prediction loss that forces unique matching between predicted and ground truth boxes, (2) architecture that predict a set of objects and models their relation 두 가지 요소를 사용합니다.

 

(1) Set prediction loss

 DETR은 decoder를 거쳐서 한번에 고정된 N개의 prediction을 예측합니다. 이 N은 이미지 내에 존재하는 objects의 수보다 훨씬 많습니다. 이제 Loss는 이 N개의 prediction과 ground truth 사이의 bipartite matching을 생성합니다.

 

 ground truth $\hat{y}$는 N보다 적은 수를 갖습니다. 따라서 N개가 되도록 $\phi$(no object) 로 padding 을 합니다. 이제 N개의 ground truth와 prediction을 bipartite matching을 하기 위해 가장 낮은 cost를 갖도록 N개의 순열을 탐색합니다.

 

 

 여기서 $L_{match}$는 prediction과 ground truth 사이의 pair-wise matching cost 입니다. 이 cost를 최소화하도록 할당 알고리즘 Hunfarian algorithm을 사용하여 둘을 bipartite matching을 합니다.

 

 matching cost는 class prediction과 rpedicted, gt와의 유사도를 설명합니다. yi는 ci,bi로 구성되어 있으며 c는 class, b는 바운딩박스 좌표를 나타냅니다.

 

 $L_{match}$는 다음과 같이 정의합니다.

 

 

 이 값이 최소가 되도록 헝가리안 알고리즘을 사용하여 prediction과 gt를 matching 합니다. 이 과정은 기존 od에서 gt를 anchor에 할당하고 anchor에 해당하는 proposals를 할당하는 역할을 수행합니다.

 

 matching이 완료되면 loss function을 계산합니다. 이전에 모든 매칭된 pair에 대하여 hungarian loss를 계산합니다.

 

 

 $L_{match}$와 다르게 class 확률 앞에 log를 사용하는 것을 확인할 수 있습니다. 이는 ci = $\phi$(no object)인 경우에 down-weight 하는 역할을 합니다. 즉, class imbalance 문제를 해결합니다.

 

 bounding box loss는 아래와 같이 설계합니다.

 

 

 L1 loss만 사용하면 큰 객체와 작은 객체 사이에 different scale을 갖습니다. 따라서 $L_{iou}$를 추가하여 scale-invariant 성질을 갖도록 합니다. 이 loss는 batch 내에 존재하는 객체의 수에 의해 normalize 됩니다.

 

DETR architecture

 

 DETR 구조는 3가지 요소로 구성되어 있습니다. (1) feature representation을 추출하기 위한 CNN backbone, (2) encoder-decoder transformer, (3) final detection prediction을 위한 feed forward networks(FFN)

 

 backbone을 거쳐서 c=2048 채널을 가진 H/32, W/32 크기의 feature map을 생성합니다.

 

 생성된 feature map에 차원 축소를 목적으로 1x1 conv를 적용해 d 차원을 갖도록 합니다.

 

 dxHW로 flatten하여 encoder의 input으로 입력합니다. d는 각 sequence의 입력이 되어 결국 d개의 1xHW token이 encoder로 입력됩니다. 기존의 transformer와 동일하게 positional embedding을 적용합니다. decoder를 거쳐서 N개의 output embedding이 생성되고 각각은 독립적으로 FFN에 전달되어 N개의 final prediction을 생성합니다.

 

Experiments

 backbone은 renset, optimization은 AdamW를 사용합니다. 아래 표에서 DC5는 5stage에서 dilated를 했다는 것을 의미합니다.

 

 

 encoder size의 효과

 

 last encoder의 attention map

 

 NMS 유무

 

 rare class에 대한 generalization

 

 decoder의 attention map

 

 different positional encodings

 

 다양한 loss function 실험

 

 segmentation을 위한 DETR 구조와 qualitative result

 


참고자료

[1] https://arxiv.org/abs/2005.12872

반응형