Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

JUPPI.log

DETR: DEtection TRansfomer 본문

Deep Learning

DETR: DEtection TRansfomer

JUPPI 2020. 11. 10. 03:55

 

DETR의 두 가지 핵심 아이디어 !

1. 이분매칭

2. 트랜스포머

 

1. Introduction

Object Detection의 목표는 관심있는 각 객체에 대한 bounding box 및 category label 집합을 예측하는 것 ! 최신 모델들은 large set of proposal, anchor, window centers에 surrogate regression 및 classification 문제를 정의하여 간접적인 방식으로 해당 set prediction 작업을 처리함

위에 언급한 최신모델들의 성능은 거의 중복된 예측을 축소하기 위한 후처리단계(nms), anchor set의 설계 및 anchor에 target box를 할당하는 heuristic에 의해 크게 영향을 받음

→ 이런 후처리단계 사전지식(prior)을 요구함: bounding box의 형태, bounding box가 겹칠 때의 처리 방법 등..

→ detr은 사전지식 노필요, data-driven

이러한 파이프라인을 단순화하기 위해 DETR에서는 관련된 작업을 우회하는 direct set prediction approach를 제안함 !

end-to-end philosophy는 기계 번역 또는 음성인식과 같은 복잡한 구조적 예측작업에서 상당한 발전을 가져왔지만, 아직 Object Detection에서는 아님

DETR은 ?

  • Object Detection을 direct set prediction 문제로 보고 훈련 파이프 라인을 간소화함

  • sequence prediction을 위한 architecture인 transformer에 기반한 encoder-decoder를 채택함

  • sequence의 요소 간의 모든 pair-wise 상호 작용을 명시적으로 모델링하는 transformer의 self-attention 메커니즘은 architecture의 중복된 예측 제거 같은 set prediction의 특정 제약 조건에 적합하게 만듬

  • DEtection TRansformer는 모든 객체를 한 번에 예측하고 예측 된 객체와 ground truth 객체 간의 이분 일치(bipartite matching)를 수행하는 set loss function으로 end-to-end로 훈련됨

  • DETR은 spatial anchor 및 nms(non-maximal suppression)같은 사전 지식을 인코딩하는 수작업으로 설계된 여러 구성요소를 삭제해서 detection pipeline을 단순화 함

  • 기존 방법들과 달리 customize된 layer가 필요하지 않기 때문에 standard CNN 및 transformer class가 포함 된 모든 프레임 워크에서 쉽게 재현할 수 있음

  • direct set prediction에 대한 이전 작업과 비교했을 때 DETR의 주요한 차별점은 (non-auto-regressive) parallel decoding을 사용하는 이분 매칭 손실 (bipartite matching loss) 및 transformer의 결합이다.

    —> 이전 연구는 대조적으로 RNN을 사용한 auto-regressive decoding에 중점을 두었음

    —> DETR의 matching loss function은 예측을 ground truth 객체에 고유하게 할당하고, 예측된 객체의 순열에 불변하므로 병렬로 내보낼 수 있다.

  • DETR은 transformer의 non-local computation으로 인해 큰 객체에서 더 좋은 성능을 보여줌.

    —> 작은 객체에서는 성능이 떨어지고, FPN이 faster RCNN에서 했던 것 처럼 같은 방식으로 향후 작업이 이 문제를 개선할 수 있을 것으로 기대됨.

  • DETR은 매우 긴 훈련 일정이 필요하며, transformer의 auxiliary decoding loss로 인한 이점을 누릴 수 있음

2. Related Work

DETR은 set prediction을 위한 bipartite matching loss, transformer 기반 encoder-decoder architecture, parallel decoding, object detection method 같은 여러 영역의 prior work를 기반으로 함

2.1 Set Prediction

  • 집합을 직접적으로 예측하는 canonical deep learning model은 없음

  • 기본 set prediction 작업은 baseline approach인 one-vs-rest가 요소들(near-identical) 사이에 기초적인 구조가 있는 detection과 같은 문제에 적용되지 않는 multi-label classification임

  • 해당 작업의 첫번째 어려움은 중복을 피하는 것임

    —> 대부분의 최신 detector는 이 문제를 해결하기 위해 nms같은 후 처리 작업을 사용

    —> direct set prediction은 nms같은 후 처리 작업이 필요 없음

  • 중복성을 피하기 위해 모든 예측된 요소 간의 상호작용을 모델링하는 global inference schemes가 필요함

  • 일정한 크기의 set prediction을 위한 dense fully connected network는 좋지만 비용이 많이 든다

    —> 일반적인 접근 방식은 recurrent neural network같은 auto-regressive sequence model을 사용하는 것임

  • 모든 경우에서, loss function은 prediction의 순열에 따라 변하지 않아야함.

    —> 일반적인 해결책은 Hungarian algorithm을 기반으로 loss를 설계하여 ground truth와 예측 사이의 bipartite matching을 찾는 것임

    —> 이는 순열 불변성을 적용하고 각 대상 요소가 고유한 match를 갖도록 보장함

  • DETR은 bipartite matching loss 접근법을 따름

    —> 기존 작업과 달리, auto-regressive model에서 벗어나 parallel decoding이 있는 transformer를 사용함

2.2 Transformers and Parallel Decoding

  • Transformer는 machine translation을 위한 새로운 attention-based building block으로, Vaswani et al에 의해 도입되었음

  • attention 메커니즘은 전체 입력 시퀀스에서 정보를 집계하는 neural network임

  • Transformer는 Non-Local Neural Network와 유사하게, 시퀀스의 각 요소를 스캔하고 전체 시퀀스의 정보를 집계하여 업데이트하는 self-attention layer를 도입함

  • attention based 모델의 주요 장점 중 하나는 global computation과 perfect memory로, 긴 시퀀스에서 RNN보다 더 적합함

  • transformer는 이제 NLP, 음성 처리 및 컴퓨터 비전의 많은 문제에서 RNN을 대체하고 있음

  • transformer는 초기 sequence-to-sequence 모델에 따라 auto regressive model에서 처음 사용되어 출력 토큰을 하나씩 생성해냈음

    —> 그러나 엄청 많은 추론 비용(출력 길이에 비례하고 배치하기 어려움)은 오디오, 기계 번역, 단어 표현 학습, 음성 인식의 영역에서 parallel sequence 생성의 발전으로 이어짐

  • 또한 computational cost와 집합 예측에 필요한 global computation을 수행하는 능력 간의 trade-off를 통해 transformer와 parallel decoding을 결합함.

2.3 Object detection

w.r.t (with regard to) : ~에 관해서

최근 연구는 아래와 같은 시스템이 최종 성능이 초기 추측이 설정되는 방식에 크게 좌우된다는 것을 보여줌

  • 대부분의 최신 object detection method는 초기 추측과 관련하여 예측함
  • two-stage detector는 proposal과 관련된 상자를 예측하는 반면, one-stage는 anchor 또는 가능한 객체 중심의 격자와 관련하여 예측함

DETR에서는 이와 같은 수작업을 제거하고, anchor가 아닌 입력 이미지와 관련하여 absolute box prediction으로 탐지 세트를 직접 예측함으로써 detect과정을 간소화할 수 있음

Set-based loss

여러 detector는 bipartite matching loss를 사용함.

그러나 이러한 초기 딥러닝 모델에서는 서로 다른 예측간의 관계가 convolution 또는 FCL로만 모델링되었으며, 수작업으로 설계된 NMS를 통해 성능을 향상시킬 수 있었었음

최근의 Detector는 NMS와 함께 ground truth와 예측간의 고유하지 않은 할당 규칙을 사용함

학습가능한 NMS 및 relation networks는 attention을 사용하여 서로 다른 예측간의 관계를 명시적으로 모델링함

direct set loss를 사용하면 nms같은 후 처리 단계가 필요하지 않음

그러나 이러한 방법은 proposal box coordinate 같은 추가 수작업 context feature를 사용하여 detection간의 관계를 효율적으로 모델링하지만, 모델에 인코딩된 사전 지식을 줄이는 솔루션을 찾게끔함

Recurrent detectors

  • DETR의 접근방식과 가장 비슷한 것은 Object Detection[43] 및 instance segmentation[41,30,36,42]에 대한 end-to-end set prediction임

    —> 이들은 CNN activation에 기반한 encoder-decoder architecture와 함께 bipartite-matching loss를 사용하여 bounding box set을 직접 생성함

    —> 그러나 이런 접근방식은 최신 기준이 아닌 소규모 데이터 세트에서만 평가되었음

    —> 특히 auto-regressive 모델 (더 정확하게는 RNN)을 기반으로 하므로 parallel decoding과 함께 최신 transformer를 사용하지 않음

3. The DETR model

detection에서 direct set prediction을 하기 위해서는 두가지 요소가 필수적임

  1. 예측된 상자와 ground truth 사이의 고유한 matching을 강제하는 set prediction loss
  2. 객체 set을 단일 패스로 예측하고, 그 관계를 모델링하는 아키텍처 (Fig. 2)

3.1 Object Detection set prediction loss

  • DETR은 decoder를 통한 단일 패스에서 고정된 크기의 N개의 prediction의 set를 추론함

    —> 여기서 N은 이미지의 일반적인 객체 수 보다 훨씬 크게 설정됨.

  • 훈련의 주요 어려움 중 하나는 ground truth와 관련해서 예측된 개체 (class, position, size)에 점수를 매기는 것 !

    —> 모델의 loss는 예측된 객체와 ground truth 객체 간의 최적의 bipartite matching을 생성한 다음, 객체 별 bounding box loss를 최적화 함

  • 물체의 ground truth set을 $y$로 나타내고, $\hat{y} = \{ \hat{y}i \}^N{i=1}$는 N개의 prediction set을 나타냄

  • N이 이미지의 객체 수보다 크다고 가정하면 $y$는 "∅ (no object)"으로 채워진 크기 N의 집합으로 간주됨

    → 이 두 세트간의 이분 매칭을 찾기 위해 가장 적은 비용으로 N개의 요소($σ ∈ \mathfrak{S}_N$)의 순열을 탐색함

    $$\hat{σ} = \argmin_{σ ∈ \mathfrak{S}N} \sum^N_i \mathcal{L}{match}(y_i, \tilde{y}_{σ(i)}),$$

  • 여기서 $\mathcal{L}{match}(y_i, \tilde{y}{σ(i)})$는 ground truth와 prediction간의 pair-wise matching cost임

  • 이 optimal assignment는 사전작업에 따라 Hungarian algorithm으로 효율적으로 계산됨

    → 가중 이분 매칭, loss가 가장 적은 최적의 매칭을 찾는 문제라고 볼 수 잇음

    → 이런 최적 할당 문제는 헝가리안 알고리즘을 이용해 빠르게 계산 가능

  • matching cost는 class prediction과 prediction 및 ground truth box의 유사성을 모두 고려함

  • ground truth의 각 요소 i는 $y_i = (c_i, b_i)$로 볼 수 있음

    → 여기서 $c_i$는 대상 클래스 label (∅ 일 수 있음)이고, $b_i ∈ [0, 1]^4$는 ground truth box의 중심 좌표와 이미지 크기에 비혜한 높이와 폭을 정의하는 vector임.

  • index $σ(i)$를 사용한 prediction의 경우, $c_i$의 클래스의 확률을 $\hat{p}{σ(i)}(c_i)$로 정의하고 predicted box를 $\hat{b}{σ(i)}$로 정의함

    → 해당 표기법을 사용해서 $\mathcal{L}{match}(y_i, \tilde{y}{σ(i)})$를 $-1_{\{c_i\neq \emptyset \} }\hat{p}{σ(i)}(c_i) + 1{\{c_i\neq \emptyset \} }\mathcal{L}{box}(b_i, \hat{b}{σ(i)})$로 정의함


    $$\mathcal{L}{match}(y_i, \tilde{y}{σ(i)}) = -1_{\{c_i\neq \emptyset \} }\hat{p}{σ(i)}(c_i) + 1{\{c_i\neq \emptyset \} }\mathcal{L}{box}(b_i, \hat{b}{σ(i)})$$


  • matching을 찾는 이 절차는 match proposal 또는 anchor를 현대 Detector의 ground truth 객체에 매칭하는 데 사용되는 휴리스틱 할당 규칙과 동일한 역할을 함

  • 주요 차이점은 중복없이 direct set prediction을 하기 위해 1:1 matching을 찾아야한다는 것임

  • 두번째 step은 이전 단계에서 일치하는 모든 쌍에 대한 Hungarian loss인 loss function을 계산하는 것 (일반적인 object detector의 loss와 유사하게 loss를 정의함)

    —> 즉, class prediction을 위한 negative log-likelihood와 나중에 정의된 box loss의 선형 조합


    $$\mathcal{L}{Hungarian}(y, \tilde{y}) = \sum^N{i=1} [-\log \hat{p}{\hat{σ}(i)}(c_i) + 1{\{c_i\neq \emptyset \} }\mathcal{L}{box}(b_i, \hat{b}{\hat{σ}}(i))]$$


  • 여기서 $\hat{σ}$은 첫번째 단계에서 계산된 optimal assignment임

  • 실제로 클래스 불균형을 설명하기 위해 $c_i = \emptyset$일 때, log-probability term에 10배만큼 가중치를 줄임

  • 이것은 Faster R-CNN의 훈련절차가 sub sampling을 통해 positive/negative proposal의 균형을 맞추는 방법과 유사함

  • 객체와 $\empty$ 간의 matching cost는 prediction에 따라 달라지지 않음

    → 이는 그 경우에 cost가 상수라는 것을 의미함

  • matching cost에서 DETR은 log-probability 대신에 probability $\hat{p}_{σ(i)}(c_i)$를 사용함

    → 이것은 class prediction term을 $\mathcal{L}{box}(b_i, \hat{b}{σ(i)})$와 동등하게 만들고, 경험적으로 더 나은 성능을 관찰할 수 있게 해줌

Bounding box loss

  • matching cost와 Hungarian loss의 두 번째 부분은 bounding box에 점수를 매기는 $\mathcal{L}_{box}(.)$

  • 몇 가지 초기 추측과 관련해서 box prediction을 ∆로 수행하는 많은 detector들과 달리, box prediction을 직접 수행함

  • 이러한 접근 방식은 구현을 단순화하지만, loss의 상대적인 scaling에 문제가 됨

  • 가장 일반적으로 사용되는 L1 loss는 상대적인 error가 유사하더라도 큰 상자와 작은 상자에 대해 다른 scale을 가짐

  • 이 문제를 완화하기 위해 DETR은 스케일 불변의 L1 loss와 generalized IoU loss $\mathcal{L}_{iou}(. ,.)$의 선형조합을 사용함

  • 전반적으로 box loss는 $\mathcal{L}{box}(b_i, \hat{b}{σ(i)})$가 $λ_{iou}\mathcal{L}{iou}(b_i,\hat{b}{σ(i)}) + λ_{L1}||b_i - \hat{b}_{σ(i)}||_1$로 정의 됨

    → $λ_{iou}, λ_{L1} ∈ \mathbb{R}$ 는 hyperparameter임

  • 이 두 loss는 batch 내의 객체의 수로 정규화 됨

3.2 DETR architecture

  • 전체 DETR architecture는 놀랍도록 간단하며 Figure 2에 설명되어 있음

  • architecture에는 세 가지 주요 구성요소가 포함되어 있음

    1. compact feature representation을 추출하는 CNN backbone
    2. encoder-decoder transformer
    3. 최종 detection prediction을 하는 간단한 feed forward network
  • 많은 최신 detector와 달리, DETR은 일반적인 CNN backbone 및 몇백 line의 transformer architecture 구현을 제공하는 모든 딥러닝 프레임워크에서 구현될 수 있음

Backbone

  • 초기 이미지 $x_{img}$에서 시작하여 기존 CNN backbone은 저해상도 activation map $f$를 생성

$$x_{img} ∈ \mathbb{R}^{3×H_0×W_0} , f ∈ \mathbb{R}^{C×H×W}$$

  • 이 논문에서 사용하는 일반적인 값은 $H, W = \frac{H_0}{32}, \frac{W_0}{32}$, C = 2048임

Transformer encoder

  • 첫째, 1x1 convolution은 high-level activation map f의 채널 차원을 C에서 더 작은 차원 d로 줄임

    → 새로운 feature map $z_0 ∈ \mathbb R^{d×H×W }$생성

  • encoder는 입력으로 sequence를 예상하기 때문에 $z_0$의 공간 차원을 하나의 차원으로 축소하여 d x HW의 feature map을 생성

  • 각 encoder layer에는 표준 architecture가 있음

    → multi-head self-attention module 및 feed forward network (FFN)로 구성

  • transformer architecture는 permutation-invariant 임

    → 각 attention layer의 입력에 추가되는 fixed positional encoding으로 보완 (appendix에서 설명)

Transformer decoder

  • decoder는 transformer의 표준 아키텍퍼를 따름

  • multi-headed self-attention 및 encoder-decoder attention mechanism을 사용

    → d 사이즈의 N개의 embedding을 변환함

  • 원래 transformer와의 차이점

    → DETR은 각 decoder layer에서 N개의 객체를 병렬로 decoding함

    → Vaswani et al이 제안한 transformer는 출력 시퀀스를 한번에 한 요소씩 예측하는 auto-regressive model을 사용

    → 보충자료 참조

  • decoder 또한 permutation-invariant

    → 다른 결과를 생성하려면 N개의 입력 임베딩이 달라야 함 !!

    → 이러한 입력 임베딩은 object query라고 하는 학습된 positional encoding이며, 인코더와 유사하게 각 attention layer의 입력에 추가함

  • N개의 object query는 decoder에 의해 임베딩 된 출력으로 변환됨

  • 그런 다음 FFN에 의해 상자 좌표와 클래스 레이블로 각각 디코딩되어 N개의 최종 예측을 생성

  • 이러한 self-attention 및 encoder-decoder attention 을 사용하여 모델은 전체 이미지를 context로 사용할 수 있는 동시에 모든 개체 간의 pair-wise 관계를 사용하며 모든 개체에 대해 global하게 추론함

인코더는 글로벌 어텐션을 통해 각각의 인스턴스를 분리해주는 역할

디코더는 말단 정보를 잘 캐치해서 클래스를 적절히 구분

Prediction feed-forward networks (FFNs)

  • 최종 예측은 ReLU와 은닉 차원 d 및 linear projection layer를 갖는 3-layer perceptron에 의해 계산됨

  • FFN은 정규화된 중심좌표, 입력 이미지와 관련된 box의 중심좌표, 높이 및 너비를 예측함

  • linear layer는 softmax를 사용하여 클래스 레이블을 예측함

  • 고정된 크기의 N개의 bounding box 집합을 예측하기 때문에 N은 일반적으로 이미지에서 실제 관심 대상 객체 수 보다 훨씬 큼 !

  • 추가적인 special class label ∅은 slot 내에서 객체가 감지되지 않음을 나타냄

    → background와 유사한 역할

Auxiliary decoding losses

  • 훈련 중에 decoder에서 auxiliary loss를 사용하는 것이 도움이 된다는 사실을 발견

    → 특히 모델이 각 클래스의 객체의 수를 정확하게 출력하는 데 도움이 됨.

  • 각 decoder layer 뒤에 prediction FFNs과 Hungarian loss를 추가

  • 모든 prediction FFNs는 매개변수를 공유함

  • 추가적으로 공유된 layer-norm을 사용해 다른 decoder layer의 prediction FFNs에 대한 입력을 정규화 함

5. Conclusion

  • 해당 논문은 direct set prediction을 위한 transformer와 bipartite matching loss를 기반으로 한 object detection 시스템인 DETR을 제안함
  • 이 접근 방식은 까다로운 COCO dataset에서 optimized Faster R-CNN과 비슷한 결과를 얻어냄
  • DETR은 구현이 간단하고, panoptic segmentation으로 쉽게 확장할 수 있는 유연한 아키텍처와 경쟁력 있는 결과를 제공함
  • self-attention에 의해 수행되는 global한 정보저리 덕분에 큰 객체에서 faster rcnn보다 더 나은 성능을 달성함
  • 한계
    1. 작은 객체에 대한 훈련
    2. 최적화 및 성능에 관련된 훈련