[ 논문 리뷰 ] DETR: End-to-End Object Detection with Transformers

치즈·2022년 7월 26일
0

1. Introduction

object detection의 최종 목표는, 관심 있는 각 object에 대해 category label과 bounding boxes 집합을 예측하는 것이다. 현대의 detector들은 이런 set prediction problem을 간접적으로 다룬다. (예를 들어, surrogate regression과 분류 문제를 수 많은 proposal을 통해서, 혹은 anchors를 통해서, 또는, window center를 통해서 간접적으로 정의한다.) 이 모델들의 성능은 근접-중복(near-duplicate) 예측을 후처리하거나 anchor 셋을 디자인하거나, 타겟 박스를 anchor로 할당하는 휴리스틱를 사용하는 것에 크게 의존한다.

이런 파이프라인을 간소화하기 위해서 surrogate task를 패스하는 direct set prediction을 수행하는 방식을 제안한다. (기존의 indirect set prediction이 아닌). 이 end-to-end philosophy는 기계 번역이나 대화 인식과 같은 굉장히 복잡하게 구조화된 예측 task의 진보로 이끌었지만, 아직 object detection에서는 그 진보를 보여주지 못했다. 이 연구에서는 그 간극을 줄이고자 한다.

[ DETR의 구조 (간단 ver) ]

학습 파이프라인을 direct set prediction problem으로서 다룬다.

1) sequence prediction에 적합한, transformer를 기반으로 하는 encoder-decoder 구조를 채택한다.

: sequence 내 elements들 간의 모든 pairwise 상호작용을 모델링하는 transformer의 self-attention 메커니즘은 이 구조(encoder-decoder 구조)가 중복 예측을 제거하는 등의 set prediction의 제약을 다루기 쉽게 만들어 주었다.

2) DETR는 한 번에 모든 object를 예측하기 위해, 예측된 object와 ground-truth object 간의 양자간 매칭(bipartite matching)를 수행하는 loss 함수 집합을 포함해 end-to-end로 학습한다.

: DETR는 손으로 이전 지식을 인코딩하는, 직접 디자인해야 하는(hand-designed) 여러 요소들(예를 들어, spatial anchors나 non-maximal suppression 등)을 제거하므로 detection pipeline을 간소화한다.

[ DETR의 특징 ]

기존 detection 모델과는 달리, DETR는 customized layer를 필요로 하지 않으며, 표준 ResNet과 Transformer를 포함하는 그 어떤 프레임워크에서도 재생산할 수 있다.

기존의 direct set prediction 작업과 비교했을 때, DETR의 메인 특징은 1) bipartite matching loss (양자간 매칭 loss)2) non-autoregressive parallel decoding을 포함한 transformer의 결합이라 할 수 있다.

반면, 이전 작업들은 RNN을 통한 autoregressive decoding에 중점을 두었다. 이 모델의 matching loss function은 ground truth object의 고유한 예측을 할당하고, 예측된 object의 permutation에는 변동이 없으므로(permuation-invariant), 병렬적으로 autogressive decoding task를 제거할 수 있다.

이 모델은 성능 평가에서 좋은 성능을 보였다. DETR는 large object에 대해 성능이 좋았지만 (transformer의 non-local computation을 가능하게 한 결과이기에), small object에 대해서는 성능이 그리 좋지만은 않았다. 향후 연구가 이런 점을 개선할 수 있으리라 믿는다.

DETR의 학습 환경설정 (Training Settings)은 기존 object detector와는 여러 관점에서 다르다. 새 모델은 추가적으로 매우 긴 학습 스케쥴(extra-long training schedule)을 필요로 하고 transformer에 있는 보조적인(auxiliary) decoding loss를 사용해야 한다.

DETR의 디자인은 더 복잡한 task로더 쉽게 확장될 수 있다. 이 연구에서는 사전 학습된 DETR의 top을 기반으로 학습된 simple segmentation head가 Panoptic Segmentation에서 기존 모델을 성능 상 앞질렀음을 보여줄 것이다.

(Panoptic Segmentation은 최근 인기를 얻고 있는, 어려운 픽셀 단위 인지 태스크이다.)

이 연구는 여러 도메인의 기존 연구를 바탕으로 행해졌다.

1) bipartite matching losses for set prediction

2) encoder-decoder based on the transformer

3) parallel decoding

4) object detection methods

2.1. Set Prediction

가장 기본적인 set prediction task는 multilabel classification이다. 이는 one-vs-rest와 같은 방식으로 분류작업을 시행하고, 보통의 모델은 이 multilabel classification을 통해 예측한다. 이러한 모델은 요소들 간의 가려진(underlying) 구조를 탐지하기 어렵다. 어려운 이유 하나는 near-duplicate (근접 중복 ) 예측을 피하기 때문이다. 대부분의 현대 detector들은 non-maximal suppression과 같은 후처리를 사용하지만, 대체로 direct set prediction은 후처리 방법을 사용하지 않는다. 대부분의 detector는 global inference scheme에서 요소들 간의 상호작용의 redundancy를 피한다. 일정한 사이즈의 set prediction 모델은 dense fully connected network를 가지지만, 비용이 매우 비싸다. 일반적인 접근 방식은 RNN과 같은 auto-regressive sequence 모델을 사용하는 것이다. 이런 auto-regressive(자기추론) 시퀀스 모델을 이용하면 loss function이 예측 순열(permutation) 상에서 변동하지 않는다. 그리하여, loss를 헝가리안 알고리즘(Hungarian algorithm)을 기반으로 디자인하며, ground-truth와 prediction 간의 양자간 매칭(bipartite matching)을 찾는다. 이러한 구조는 타겟 요소가 각각 고유한 매칭을 가져오기 때문에 permutation-invariance를 보장한다. 그리고 bipartite matching loss 방식을 따른다. 이전의 작업과는 달리, autoregressive 모델이 아닌, 병렬 디코딩을 하는 transformer를 사용한다.

2.2. Transformers and Parallel Decoding

Transformer는 Vaswani가 소개한, 기계 번역의 attention-based block이다. Attention 메커니즘은 모든 input sequence 정보를 aggregate하는 neural network layer이다.

Transformer는 Non-Local Neural Networks와 비슷하게, 시퀀스의 각 요소를 스캔하고, 모든 시퀀스의 정보를 aggregate해 업데이트하는, self-attention layers를 가지고 있다. attention 기반의 모델의 가장 큰 장점은 global computations와 perfect memory를 사용한다는 것이며, 이런 장점 때문에 RNN과 같은 긴 시퀀스에 적합하다. Transformer는 자연어 처리, 음성 처리, 컴퓨터 비전 분야에서 RNN의 문제점을 대체할 수 있는 수단이다.

Transformer는 seq2seq 모델을 이어, 1대1 매칭의 output을 생성하는 auto-regressive 모델에서 처음으로 사용되었다. 그러나 (입력 길이, 출력길이가 비례하고, 배치하기 어려운) prohibitive inference cost는 여러 영역 (오디오, 기계 번역, 단어 표현 학습, 음성 인식 등)에서 병렬 시퀀스를 생성하는 것이 개발로 이어졌다. 또한, transformer와 parallel decoding을 결합하는 것은 계산 비용과 global computation 사이의 tradeoff에 적합하다.

2.3. Object detection

2-stage detector는 proposals를 사용하고, 1-stage detector는 anchor/grid를 통해 object의 중심을 찾는다. 최근 연구에서는, 이 시스템의 최종 성능이 초기 추측이 정해지는 정확한 방법에 크게 의존한다고 증명되었다. 그러나 이 모델에서는 이런 귀찮은 과정들을 생략하고, anchor 대신 input image에서 absolute box를 예측한다.

1) Set-based loss

몇몇의 object detector는 bipartite matching loss (이분매칭 loss)를 사용하지만, 초기의 딥러닝 모델에서는 서로 다른 예측 간의 관계가 convolutional 혹은 fully-connected layers로만 모델링되고, 수작업으로 생성되는 NMS 후처리는 성능을 향상시킬 뿐이다. 그러나 최근 detector는 NMS와 더불어 ground-truth와 predictions 간의 non-unique assignment rule를 사용한다.

NMS (Non-Maximum Suppression)
: object detector가 예측한 bounding box 중 정확한 bounding box를 선택하는 기법. 항상 optimal solution이지는 않지만, 최소한 local maxima를 찾을 수 있는 방법이다.
(1) 모든 bounding box는 confidence score(객체를 얼마나 잘 캐치하는가에 대한 점수)를 갖는다. confidence score가 threshold 이하인 bounding box는 제거한다.
(2) 제거하고 남은 bounding box를 confidence score 기준 내림차순 정렬한다.
(3) 맨 앞 bounding box를 기준으로, 다른 bounding box와의 IoU (Intersection over Union : Area of Intersection / Area of Union )을 구한다. IoU가 threshold 이상인 bounding box는 제거한다.
(4) 과정을 반복해 모든 bounding box를 비교 및 제거한다.
(5) Confidence threshold가 높을수록, IoU threshold가 낮을수록 더 많은 bounding box가 제거된다.

Learnable NMS 방법과 관계 네트워크(relation networks)는 서로 다른 predictions (with attention) 간의 관계를 명시적으로 모델링한다. direct set losses를 이용해서, 그 어떤 후처리 단계를 요구하지 않는다. 반면, 이런 방법들은 detection 간의 관계를 효율적으로 모델링하기 위해 proposal box 좌표와 같은 수작업이 필요한 추가적인 방법을 이용한다.

2) Recurrent detectors

DETR과 비슷한 detector도 있었다. DETR와 비슷하게, bipartite-matching losses와 encoder-decoder 구조를 사용하여 bounding box 집합을 직접적으로 생성해냈다. 그러나 이런 접근 방식은 small dataset에 대해서만 평가되거나, 최신 기준에서는 평가되지 않았다. 또한, autoregressive 모델을 기반으로 하지만, parallel decoding을 포함하는 최근 tranformer를 사용하지 않는다.

3. The DETR model

direct set prediction을 위해 필요한 2가지가 있다.

✔️ a set prediction loss that forces unique matching between predicted and ground truth boxes

✔️ an architecture that predicts a set of objects and models their relations

3.1. Object detection set prediction loss

DETR는 decoder를 통해서 단 한번의 pass(single pass)로, 고정된 개수인 NN개의 예측을 반환한다. 이 때, NN은 이미지 내 전형적인 object 개수보다도 훨씬 더 큰 수이어야 한다. 학습할 때 어려운 점 하나는, ground truth와 관련해 predicted object에 점수를 부여하는 데에 있다. 예를 들어, class, position, size 등이 있다. loss는 예측된 object와 ground-truth object 간의 이상적인 bipartite matching을 생성하고, object-specific : object 단위(bounding box) losses를 최적화한다.

1️⃣ 첫 번째 단계로, yy를 object 집합의 ground truth라고 하고, y^={y^i}i=1N\hat{y} = \{\hat{y}_i\}^N_{i=1}NN번 예측 집합이라고 하자. NN이 이미지의 object 개수보다 더 큰 값이라고 가정하고, yy\empty(no object)로 패딩된 사이즈 NN의 집합이라 하자. 그러면 NN개 ground-truth set과 NN개 prediction 집합 간의 bipartite matching을 찾기 위해, 적은 비용을 갖는 NN개 요소(σSN\sigma \in \mathfrak{S}_N)에 대한 permutation을 탐색한다.

σ^=arg minσSNiNLmatch(yi,y^σ(i))       (1)\hat{\sigma} = \argmin_{\sigma \in \mathfrak{S}_N}\sum_i^N \mathcal{L}_{match}(y_i, \hat{y}_{\sigma(i)}) \ \ \ \ \ \ \ (1)

이 때, Lmatch(yi,y^σ(i))\mathcal{L}_{match}(y_i,\hat{y}_{\sigma(i)})는 ground-truth yiy_i와 index σ(i)\sigma(i)번째 prediction y^σ(i)\hat{y}_{\sigma(i)} 간의 pairwise matching cost이다.

matching costclass prediction과, predicted boxes/ground-truth boxes 간의 similarity 2가지를 모두 고려한다. ground-truth 집합의 ii번째 원소는 yi=(ci,bi)y_i = (c_i,b_i)로 표현할 수 있다. cic_i는 (\empty가 될 수도 있는) target class label이고, bi[0,1]4b_i \in [0,1]^4는 ground-truth box의 중심 좌표와 높이, 너비에 해당하는 좌표이다.

✔️ 이 때, 중심 좌표와 높이, 너비는 이미지 크기에 대비하므로, 0에서 1 사이의 값으로 나타낼 수 있게 된다.

또, 인덱스 σ(i)\sigma(i)를 예측을 하기 위해서, class cic_i의 예측 확률을 p^σ(i)(ci)\hat{p}_{\sigma(i)}(c_i)로, predicted box를 b^σ(i)\hat{b}_{\sigma(i)}로 정의할 수 있다. 이렇게 명명하면, Lmatch(yi,y^σ(i))\mathcal{L}_{match}(y_i, \hat{y}_{\sigma(i)})를 다음과 같이 다시 쓸 수 있다.

Lmatch(yi,y^σ(i))=1{ci}p^σ(i)(ci)+1{ci}Lbox(bi,b^σ(i))\mathcal{L} _{match}(y_i, \hat{y}_{\sigma(i)})=-1_{\{c_i\ne \empty \} } \hat{p}_{\sigma(i)}(c_i) + 1 _{\{c_i \ne\empty\}}\mathcal{L}_{box}(b_i, \hat{b}_{\sigma(i)})

이렇게 matching을 찾는 과정은 최신 detector에서 match proposal(RPN)이나 anchor(FPN)를 ground truth object로 매칭하는 heuristic assignment rules와 같은 역할을 한다. 가장 많이 다른 점은, “중복 없이” direct set prediction을 위한 일대일 매칭을 찾아야 한다는 것이다.

2️⃣두 번째 단계는, 이전 단계에서 매칭한 모든 쌍에 대해 Hungarian loss를 계산하는 것이다.

LHungarian(y,y^)=i=1N[logp^σ(i)^(ci)+1{ci}Lbox(bi,b^σ^(i))]}     (2)\mathcal{L}_{\mathsf{Hungarian}}(y,\hat{y}) = \sum^N_{i=1}\bigg[ -\log \hat{p}_{\hat{\sigma(i)}}(c_i) + 1_{\{c_i \ne \empty\}} \mathcal{L}_{\mathsf{box}}(b_i, \hat{b}_{\hat{\sigma}}(i)) \bigg]\} \ \ \ \ \ (2)

이 때, σ^\hat{\sigma}는 첫 단계, 식 (1)에서 계산한 최적의 assignment이다. 실제로, class imbalance를 설명하기 위해서 c=c=\empty일 때의 log probability term을 factor 10 정도로 down-weight한다.

object와 \empty간의 matching cost는 prediction에 의존하지 않는다. 즉, 그 어떠한 경우에도 cost일정하다(constant). 그 상황에서는 log확률 대신 p^σ^(i)(ci)\hat{p}_{\hat{\sigma}(i)}(c_i)를 사용한다. 이는 class prediction term을 Lbox(,)\mathcal{L}_{box}(\cdot, \cdot)와 상응하게 만들어주어 성능을 향상시킬 수 있다.

[Bounding box loss]

matching cost와 Hungarian Loss에서 2번째 파트인 Lbox()\mathcal{L}_{box}(\cdot)은 bounding box에 대한 score이다.

최신 detector는 최초 예측에 대한 box prediction을 행하는 것과 달리, 이 방식은 직접적으로 box prediction을 수행한다(directly). 실행하는 건 간단하지만, loss의 relative scaling 문제를 야기한다. 흔히 쓰이는 l1l_1 loss는 relative error가 비슷하더라도 크고 작은 박스에 대해 서로 다른 scale을 갖는다. 이런 이슈를 해결하기 위해, l1l_1 loss과 generalized IoU loss Liou(,)\mathcal{L}_{iou}(\cdot, \cdot)의 선형 결합을 사용하는데, 이는 scale-invariant(scale에 따라 변동하지 않음)하다. box loss를 다음과 같이 정의할 수 있을 것이다.

Lbox(bi,b^σ(i))=λiouLiou(bi,b^σ(i))+λL1bib^σ(i)1\mathcal{L}_{box}(b_i, \hat{b}_{\sigma(i)})= \lambda_{iou}\mathcal{L}_{iou}(b_i, \hat{b}_{\sigma(i)})+ \lambda_{L1}||b_i - \hat{b}_{\sigma(i)}||_1

이 때, λio,λL1R\lambda_{io}, \lambda_{L1} \in \R는 하이퍼파라미터이다.

⭐ 이 2가지 loss는 배치 내부의 object 개수로 normalize한다.

3.2. DETR architecture

DETR 구조는 3가지 요소로 이루어져 있다.

✔️ CNN backbone : compact feature representation 추출

✔️ encoder-decoder transformer

✔️ simple feed forward network (FFN) : 최종 detection 예측 반환

1) Backbone

input image가 ximgR3×H0×W0x_{\mathsf{img}} \in \R^{3\times H_0 \times W_0}이라고 하자. CNN backbone은 저해상도 활성화 매핑 (activation map) fRC×H×Wf \in \R^{C\times H \times W}를 생성해낸다. C=2048,H=H032,W=W032C=2048, H = \frac{H_0}{32}, W = \frac{W_0}{32}이다.

2) Transformer encoder

1×11\times 1 convolution은 high-level activation map ff의 차원을 CC에서 더 작은 dd로 낮춘다. 이로 인해 새로운 feature map z0Rd×H×Wz_0 \in\R ^{d\times H\times W}가 만들어진다. encoder는 시퀀스가 입력되어 spatial dimension z0z_0을 1차로 낮추어야 한다. 즉, d×HWd\times HW의 feature map을 만든다.

각 encoder layer는 표준 구조를 띠며, multi-head self-attention module과 feed forward network (FFN)으로 이루어져 있다. Transformer 구조는 permutation-invariant(순서에 무관)하기 때문에 이 구조에 추가적인 fixed positional encoding을 추가했다. 그리고 이는 각 attention 레이어의 input에 더해진다.

3) Transformer decoder

decoder도 transformer의 표준 구조를 따라, 사이즈 ddNN개 embedding을 multi-headed self-attention 메커니즘과 encoder-decoder attention 메커니즘을 이용해 변환한다.

기존 transformer와 다른 점은, 각 decoder layer에서 병렬적으로 NN개 object를 디코딩한다는 것이다.

⭐ 기존의 Vaswani et al.이 제시한 transformer의 경우, 한 번에 하나의 output sequence를 예측하는 autoregressive model을 사용한다.

Decoder도 permutation-invariant(순서 무관)하기 때문에 서로 다른 결과를 얻으려면 NN개 input embedding이 서로 달라야만 한다. 이 input embedding은 object queries라고도 하는 positional encodings를 학습한다. 그리고 encoder와 유사하게, 이들을 각 attention layer에 추가한다.

NN개 object queries가 decoder에 의해 ouput embedding으로 변환된다. 그리고, FFN에 의해 “독립적으로” box coordinate과 class labels로 디코딩된다. 그 결과, NN개의 final predictions이 나오게 된다.

이런 embedding을 따라 self-attention과 encoder-decoder attention을 사용하면서, 모델은 모든 object 간 pair-wise relations을 사용해 추론한다.

4) Prediction feed-forward networks (FFNs)

최종 예측은 ReLU 활성화 함수dd차원 은닉층, linear projection layer(선형투영층)을 사용하는 3-layer perceptron으로 계산된다. FFN은 입력 이미지에 대한 정규화된 중심좌표, 높이, 너비를 예측하고, linear layer는 softmax함수를 이용하여 class label을 예측한다.

NN개(고정된 개수) bounding box의 집합을 예측하기 때문에, 추가적인 class label \empty는 그 슬롯 내에 아무 물체도 탐지되지 않았음을 표현한다. 즉, background를 표현하는 셈이다. 따라서 이미지 내 존재하는 실제 object 개수보다 훨씬 커야 한다.

5) Auxiliary decoding losses

학습 중, decoder auxiliary losses(보조 손실)을 사용하는 것이 굉장한 도움이 된다. 매 decoder layer의 출력은 공유된 layer-norm으로 정규화되어, 공유된 prediction heads(classification, box prediction)에 입력된다. 그러고는 Hungarian loss를 적용한다.

4. Experiments

1) Dataset

COCO 2017 detection과 panoptic segmentation datasets에 대해 실험을 한다. 각 이미지는 bounding box와 panoptic segmentation이 주석이 달려 있다. 평균적으로 각 이미지 당 7 instance가 있으며, 학습 데이터셋에서 단일 이미지에 최대 63개 instance가 있다.

이 논문에서는 bbox AP를 (특별히 명시되지 않은 이상) AP라고 기록했으며, 이는 integral metric over multiple thresholds이다. 다른 모델과의 비굘,ㄹ 위해, 마지막 학습 에폭에서 validation AP를 기록하였으며, ablation에서는 마지막 10개 에폭의 median을 기록하였다.

2) Technical details

[ DETR ]

  • Transformer : AdamW with learning rate 10410^{-4}
  • Backbone : AdamW with learning rate 10510^{-5}
  • Weight decay : 10410^{-4}

모든 Transformer의 가중치는 Xavier init으로 초기화되며, backbone은 ImageNet에 pretrain된 ResNet을 batchnorm layers frozen 시킨 채 초기화된다. 2가지 서로 다른 backbone에 대해 결과를 기록한다. : ResNet-50, ResNet-101. 그리고 각 결과에 대응하는 모델을 DETR와 DETR-101이라 칭한다.

Fully Convolutional Instance-aware Semantic Segmentation

위 연구처럼, backbone의 last stage에 dilation을 더하고, 해당하는 stage의 첫 convolution으로부터 stride를 제거하여 feature resolution을 증가시킨다.

— Fully Convolutional Instance-aware Semantic Segmentation —
(수정예정)
대응되는 모델을 각각 DETR-DC5, DETR-DC5-R101 (dilated C5 stage)이라 부른다. 이런 수정은 resolution을 2배 상승시켰기 때문에, small object에 대해서 성능이 향상된다. : encoder의 self-attention의 연산량이 16배 상승하기 때문에 전반적인 연산량이 2배 증가해버린다.

resolution과 computational cost 간의 tradeoff,

저자들은 scale augmentation을 사용한다. 이로써, 이미지의 가로, 세로가 최소 길이가 480~800 픽셀을, 최대 길이가 1333 픽셀을 가지도록 한다. encoder의 self-attention을 통해 global relationship을 학습할 수 있게끔, 학습 도중 random crop augmentations를 진행하고, 이로 인해 대략적으로 1 AP만큼의 성능 향상을 이끌어냈다. 구체적으로는, 학습 이미지가 50% 확률로 random rectangular patch를 갖게끔 crop된다. 그러곤, 다시 800~1333 사이즈로 resize된다.

transformer는 기본 dropout 0.1을 사용한다.

추론(inference time) 시에, 몇몇 슬롯은 empty class를 예측한다. AP를 최적화하기 위해서는, 즉 성능을 향상시키기 위해서는, empty class를 second highest scoring class로 대체하여 2 AP 정도의 성능 향상을 이루어냈다.

4.1. Comparison with Faster R-CNN and RestinaNet

4.2. Ablations

1) Number of encoder layers

encoder layer 개수를 변화시켜 global image-level self-attention의 중요도를 평가하고자 한다. encoder layer 없으면, AP는 3.9 포인트만큼 떨어지고, large object에 대해서는 6.0 AP 포인트만큼이나 떨어진다. 따라서 encoder는 object를 구분하는데 매우 중요하다. Fig. 3을 보면, 학습 모델의 마지막 encoder layer의 attention maps를 시각화한다. encoder는 instance를 개별로 분리할 수 있을 뿐만 아니라, decoder가 object를 추출하고 localize하는 데에 큰 도움이 줌을 보인다.

2) Number of decoder layers

이 논문의 저자들은 각 decoder layer의 중요도를 디코딩 각 단계에서 예측될 수 있는 object를 평가하여 분석하였다.

Fig. 6을 보면, decoder의 attention이 fairly local함을 확인할 수 있다. 즉, 대체로 물체의 말단(멀, 다리)에 집중됨을 볼 수 있다. encoder가 global attention을 통해 instance를 분리하고 난 후라면, decoder는 class와 object boundary를 추출하기 위해 물체의 말단만을 확인해도 된다는 의미이다.

3) Importance of FFN

Transformer 내부의 FFN은 1×11\times 1 convolutional layer로 볼 수 있다. 이 연구에서는, transformer layer 내에 attnetion만을 남기고 완전히 제거하려 했다. 그런데, network parameter 개수를 41.3M에서 28.7M으로 줄이고, transformer 내에 10.8M만을 남겼더니, 성능이 2.3 AP만큼 감소하였다. 따라서, 좋은 결과를 위해서는 FFN이 중요함을 알 수 있다.

4) Importance of positional encodings

이 모델에는 2개의 positional encoding이 쓰인다.

1️⃣ spatial positional encodings (부분 위치 정보)

2️⃣ output positional encodings (object queries)

output positional encodings은 무조건 필요하다.

(1) 첫 번째 실험에서는 spatial positional encoding을 완전히 제거하여 output positional encodings만을 decoder의 input에 통과시켰는데, 7.8AP만큼 성능이 하락했다.

(2) 기존 transformer와 같이 (Attention is all you need 연구), 고정된 sine spatial positional encodings를 사용하고 output encodings를 한 번 input에 적용하였을 때에, 1.4 AP만큼 하락했다.

(3) 그런데 (learned)학습된 spatial encodings가 attention layer에 적용되었을 때에는 비슷했다.

(4) encoder에 spatial encodings를 전달하지 않았더니, 오직 1.3 AP만이 하락했다.

attention에 encoding을 전달하면, 이는 모든 층을 거쳐 공유되고, output encodings(object queries)는 항상 학습된다.

⭐이런 ablations를 고려해, Transformer 요소들 중 global self-attention in encoder, FFN, multiple decoder layers, positional encodings가 성능에 큰 기여함을 확인할 수 있다.

5) Generalization to unseen numbers of instances

4.3. DETR for panoptic segmentation

1) Training details

2) Main results

5. Conclusion

DETR는 bipartite matching loss와 transformer를 기반으로 하는 object detection system의 새로운 모델이다. DETR는 실행하기에도 간단하고, 유연한 구조를 가져 panoptic segmentation에 대해서도 쉽게 확장 가능하다. 더욱이, self-attention에 의해 행해지는 global information에 대한 처리 덕분에 large obejct에 대해서도 확연히 좋은 성능을 보였다.

이런 새로운 디자인은 새로운 도전 과제를 불러왔다. 특히, small object와 관련된 학습, 최적화, 그리고 성능에 관한 과제들이다.

profile
차근차근 배워나가요

0개의 댓글