Notice
Recent Posts
Recent Comments
Link
«   2024/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
관리 메뉴

ShuyaVision

[논문 리뷰] DETR (End-to-End Object Detection with Transformers) 본문

Vision AI

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

Sangbro 2023. 6. 28. 11:08

DETR은 Object Detection 분야에 Transformer를 도입한 논문이다.

DETR은 기존의 object detection 모델들이 사용하는 복잡한 샘플링, post processing 단계를 제거하고, Transformer를 사용하여 전체 이미지에 대한 detection을 수행한다. Object와 bounding box를 직접 예측하고 bi-partite matching을 이용하여 예측된 객체와 실제 객체를 matching 시키면서 end-to-end로 학습을 진행한다.

 

Abstract & Introduction

DETR은 기존의 object detection 방법에서 벗어나, 새로운 접근법을 제시한다. 기존의 방법들은 주로 객체들의 bounding box를 예측하기 위해 anchor box generation 등의 방법을 사용했다. 예를 들어, 수 많은 anchor box와 window center를 regression 방식으로 bounding box를 아이디어를 들 수 있다. 이는 예측 후보군에 따라 bounding box의 형태가 달라지거나, 또는 중복된 bounding box를 처리하기 위해 NMS(non-maximum suppresion)를 사용하는 등  추가적인 지식 즉, prior knowledge를 요구했다. 또한 threshold나 hyper parameter를 추가로 설정해주어야 하는 복잡한 post-processing 단계를 필요로 했다.

DETR은 보다 단순하게 문제를 재정의한다. 기존의 object detection이 개별적인 객체를 독립적으로 탐지하는데 초점을 맞추었었다면,  DETR은 Object Detection을 "set prediction problem"으로 정의한다. 이를 통해 이미지 내의 모든 객체를 한번에 고려할 수 있도록 집합 예측하는 문제로 재정의한것이다. DETR은 이를 위해 두가지 중요 요소를 활용한다. 첫번째로는, bi-partite matching(이분 매칭)을 수행하여 set-based global loss that forces unique predictions을 달성한다. 두번째로는, Transformer encoder-decoder architecture를 활용한다. Transformer의 self-attention 메커니즘은 시퀀스 내의 모든 쌍(pairwise) 상호작용을 명시적으로 모델링하는데, 이는 중복 예측을 제거하는 것과 같은 집합 예측의 특정 제약 조건을 특히 더 적합하게 만든다. 이러한 방법을 통해 DETR은 추가적인 post-processing 과정 없는 end-to-end 학습 과정을 제공한다. DETR은 각각의 이미지에 대해 고정된 수의 객체를 예측하며, 특정 threshold보다 낮은 객체에 대해서는 'no object'로 취급한다. 이를 통해 DETR에서는 bounding box와 class를 동시에 예측했다.

 

** set prediction problem ** 이란

set은 집합으로, 중복되는 원소가 없고, 순서 또한 상관이 없는 특징을 가지고 있다. 객체를 탐지함에 있어서, 중복되는 원소가 없게하고, 또한 어떤 객체를 먼저 탐지하는 지 상관이 없기 때문에 집합의 특징과 같다고 할 수 있다. 

 

** self-attention 메커니즘이 집합 예측의 제약 조건을 더 적합하게 만드는 이유 **

이는 DETR의 bipartite matching loss가 수행하는역할과도 연관이 있다. 이 손실함수는 각 예측에 대해 가장 적합한 ground truth 객체를 찾아 매칭하고, 한 번 매칭된 grountd truth 객체는 다른 예측에 의해 다시 매칭되지 않는다. 이 때, self-attention은 시퀀스 내 모든 요소간의 상호 작용 정보를 활용하는 메커니즘이다. -> self-attention은 CNN이 local receptive field를 활용하는 개념과 달리 모든 요소들을 학습하는 개념이라는 의미이다. 따라서, bipartite matching loss가 수행됨에 있어서, 매칭을 시킬 때, 다른 요소들까지 모두 고려하기 때문에 최종적으로 중복 예측을 제거하는 효과를 이루어 내는데, 이는 집합의 제약 조건과 일맥 상통한다고 할 수 있다. 

 

bi-partite matching

이분 매칭은 그래프 이론의 일부로서, 두 그룹 간에서 가장 이상적인 매칭을 찾는 문제이다. 이를 이해하기 위해서는 이분 그래프에 대한 이해가 필요하다. 이분 그래프는 노드를 두 가지 유형으로 분리하여, 같은 유형의 노드 사이에는 edge가 없는 그래프를 말한다. 예를 들어 노드를 '사람'과 '일'로 분류하고, 각 사람이 수행 가능한 일에만 edge를 연결하여 이분 그래프를 만들 수 있다.

이분 매칭은 이러한 이분 그래프에서 하나의 노드가 한 번만 매칭되는 가장 큰 매칭 세트를 찾는 문제이다. 즉, 한 사람이 여러 일을 동시에 수행할 수 없고, 한 일도 여러 사람에게 동시에 수행될 수 없는 상황에서, 가장 많은 일이 수행될 수 있도록 사람과 일을 매칭하는 문제이다.

논문에서는 매칭의 총 비용을 최소화하기 위해 Hungarian algorithm을 활용했다. 이분 매칭에 관해 설명한 블로그를 첨부한다.

https://supermemi.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-Hungarian-Maximum-Matching-Algorithm-Kuhn-Munkres-algorithm

 

[알고리즘] Hungarian Maximum Matching Algorithm (Kuhn-Munkres algorithm)

Hungarian Maximum Matching Algorithm 에 대하여 알아보자 이 글을 참고하여 작성하였습니다. Hungarian Maximum Matching Algorithm | Brilliant Math & Science Wiki The Hungarian matching algorithm, also called the Kuhn-Munkres algorithm, is

supermemi.tistory.com

논문에서는 이분 매칭을 활용하여, 각 예측에 대해 가장 적합한 Ground Truth를 찾으며, 매칭 과정에서는 총 Loss를 최소화하는 방향으로 진행된다.

논문에서는 N=100으로 놓았다고 되어 있고, 위 예시에서는 N=6인 case이다. (N은 예측 object 개수)

모델이 어떤 image를 받아 왼쪽의 예측 결과를 내놓았을 때,  실제 값과 이분 매칭을 통해 하나씩 매칭이 된다. 이 때 매칭을 했을 때 가장 Loss 값이 낮은 값과 매칭이 되기 때문에, 예측과 가장 비슷한 Ground truth가 매칭이 된다. 그리고 6번째 예측처럼 잘못 예측을 했더라도, no object와 매칭이 되도록 구성하였기 때문에, 이를 통해 총 Loss 값을 구하고 역전파를 수행하게 된다.

 

이를 통해 "set-based global loss that forces unique predictions"을 달성할 수 있다.

"Set based" : 예측된 객체들이 순서에 무관한 집합을 형성하도록 만드는 것이다. 이분 매칭 알고리즘을 활용하면, 순서와 상관이 없기 때문에, 전통적인 Object Detection과 달리, DETR이 여러 객체의 위치를 동시에 고려할 수 있도록 만들어 준다.

"Global Loss" : 모든 객체를 동시에 고려할 수 있는 Loss Function을 활용한다. 이분 매칭 알고리즘을 활용하면, 각 예측과 매칭된 ground truth의 Loss의 합이 줄어드는 방향으로 이분 매칭을 수행하기 때문에 global loss를 고려할 수 있다.

"forces unique predictions" : 이분 매칭 알고리즘을 통해, 각각의 Ground Truth 바운딩 박스가, 정확히 하나의 예측과 매칭되도록 강제할 수 있다. 이를 통해 각각의 객체에 대한 유일한 예측을 생성하도록 모델을 강제함으로써, 여러 예측이 동일한 객체를 가리키는 상황을 방지한다.

 

Transformer

 

 

Encoder

CNN(backbone)으로 받은  feature map을 input으로 하여 인코딩을 수행한다. 추가적으로 Positional encoding 정보 또한 input으로 받는다.

 

Decoder

N개의 object query를 초기 입력으로 받으며, Encoder로부터 받은 정보를 활용한다.

각 object query는 이미지 내 서로 다른 객체를 구별하여 매칭된다.

 

 

 

 

아래 그림은 validation을 수행할 때, Encoder의 self-attention map을 시각화한 모습이다. 개별 인스턴스를 잘 분리하는 것을 확인할 수 있다. 아래 그림은 각 픽셀에 대해서 self-attention, 즉 얼마나 연관성을 가지고 있는지에 대한 값을 시각화 한 것이다. 예를 들어 검은 소의 한 픽셀을 골라서 시각화 했을 때 아래 그림의 결과로 미루어 보아, 해당 픽셀은 검은 소의 픽셀 값들과 연관이 있다는 것을 잘 학습했다는 것을 보여준다.

아래 그림은 Decoder의 결과값이다. N개의 object query를 초기 입력으로 이용하여, Encoder가 global attention을 통해 인스턴스를 분리한 뒤에, decoder는 각 인스턴스의 class와 bounding box를 추출한다.

 

The DETR model

 

prediction loss


첫번째 식의 좌측의 yi는 truth 값, 우측 ^은 예측 값이다. Matching Loss 값의 합을 가장 작게 만들어주는 σ를 찾는 것이다. σ는 매칭된 결과 값이라고 볼 수 있다. 즉, 가능한 모든 matching 결과 중에서 가장 Loss가 낮은 case를 찾아서, matching이 가장 잘된 case에서의 σ값을 σ^으로 기록한다. 이러한 최적화는 위에서 설명한 Hungarian algorithm을 통해서 이루어진다. NN의 output은 (ci, bi) 이다. ci는 class, bi는 bounding box를 말한다. ci != ∅ 부분은 class가 없지 않다면, 이라는 뜻이다.

 

DETR architecture

1. Backbone에서는 feature map을 추출하기 위한 목적으로  사용하며 backbone을 거쳐서 Transformer input을 만들어낸다. Typical values는 Channel은 2048, H, W는 각각 /32 한다.

2. Transformer Encoder에서는 첫번째로 1x1 convolution을 사용해서 dimension을 낮춘다. 이를 통해 sequence 하게 input을 넣게 되어 있는 Transformer의 구조를 바꾸지 않았고, multi-head attention 후 FFN을 거치는 구조 또한 바꾸지 않았다. 또한 positional encoding도 그대로 사용했다.

3. Transformer Decoder에서는 각 N개의 object query가 존재한다고 했을 때, 각 query가 decoding이 되어 이미지의 인스턴스, 개별적인 사물에 매칭된다. 위 예시에서는 4개의 object query가 존재하고, 빨강과 노란 결과 값은 각 새에 매칭이 되고, 나머지는 no object로 매칭되는 것을 볼 수 있다.

4. Feed-forward networks(FFN)은 3-layer perceptron with ReLu activation, hidden dimension d, 그리고 linear projection layer로 구성되어 있다.

5. Auxiliary decoding losses을 부가적으로 활용한다.

 

 

한계점

큰 물체는 잘 잡는데, 작은 물체는 잘 못잡는 한계가 있었고

학습이 너무 오래 걸린다는 단점이 존재했다.