-
[Object detection] End-to-End Object Detection with Transformers 번역 및 정리 (DETR)Paper review/Object Detection 2021. 11. 3. 13:55반응형
@ 굵은 글씨는 중요한 내용, 빨간 글씨는 내가 추가한 내용
https://arxiv.org/pdf/2005.12872.pdf
주요 기여:
- 기존의 object detectino에 비해 간단하고 좋은 성능
- DETR 제안: 이분 매칭 손실 함수 + Transformer 적용
0. Abstract
본 논문은 Object detection을 set prediction 문제로 다룸으로써 NMS(non-maximum suppression)이나 anchor generation과 같은 사전 지식 요소를 제거하여 pipeline을 간소화한다. Set prediction은 수학에서의 집합의 의미와 비슷하다. Set은 중복되지 않고 순서에 상관없다는 특징을 활용하여 휴리스틱한 NMS나 anchor와 같은 사전 지식을 제거한다.
DETR (DEtection Transformer)은 이분 매칭 알고리즘을 통해 고유한 예측을 하는 set-based global loss와 transformer encoder-decoder 구조이다. Transformer의 장점 중 하나인 병렬 디코딩을 통해 이분매칭을 수행한다.
특수 library를 필요로 하지 않고, MSCOCO dataset에서 Faster R-CNN만큼의 정확도와 run-time 성능을 보인다.
Panoptic segmentation에서도 쉽게 일반화한다.
더보기(b) Semantic segmentation: 같은 class object 구분X
(c) Instance segmentation: 같은 class여도 object 구분
(d) Panoptic segmentation: 배경 + object instance까지 구분(semantic + instance)
1. Introduction
Object detection은 각 object에 대한 bounding box와 class에 대한 set을 예측하는 것이다.
기존 object detection 모델들은 heuristic한 방법을 사용하기 때문에 후처리 부분의 영향을 많이 받는다.
이러한 pipeline을 단순화하기 위한 direct set prediction approach를 제안한다.
본 논문은 Object detection을 direct set prediction으로 다룬다.
Sequence prediction에서 주로 사용되는 아키텍쳐인 transformers에 기반한 encoder-decoder 아키텍쳐를 채택한다.
Sequence의 모든 요소가 쌍방향으로 상호작용하는 transformer의 self-attention 메커니즘이 중복 예측 제거와 같은 set prediction에 적합하다. (Self-attention 메커니즘은 전반적인 각 인스턴스들의 상호작용 정보를 잘 파악할 수 있도록 만들어 주고, 각 픽셀 별로도 서로 연관성을 많이 가지고 있는지에 대한 정보도 잘 추출할 수 있다. 이를 통해 중복 예측 결과를 줄일 수 있는 효과가 있다.)
DETR은 모든 object를 한번에 예측하고 predicted object와 ground truth object 간의 이분 매칭을 수행하는 set loss function로 end-to-end 학습한다.
기존 Direct set prediction 연구와 비교했을 때, DETR의 특징은 이분 매칭 loss와 RNN을 사용하지 않는 transformers를 활용함으로써 (non-autoregressive) parallel decoding이 가능하다는 것이다.
COCO dataset에서 실험 결과 Faster R-CNN(최근 성능 기준)과 DETR이 비슷한 성능을 달성한다는 것을 보인다.
DETR은 large object에서 좋은 성능을 보이지만, small object에서 낮은 성능을 보인다.
향후 FPN을 통해 이러한 측면을 개선할 것으로 기대한다.
DETR의 학습을 위한 설정은 표준 object detector와 다르다.
추가적인 학습 시간이 필요하고 transformer에서 auxiliary(보조적인) decoding losses로부터 이점을 얻는다.
DETR은 transformer+이분 매칭을 통해 많은 CNN 기반의 방식에 적용될 수 있고 이는 더 복잡한 task로 쉽게 확장된다. DETR에 간단한 segmentation head를 붙였을 때, panoptic segmentaion의 최근 성능을 능가하는 것을 보인다.
2. Related Work
2.1. Set Prediction
NMS와 같은 post processing을 제거하기 위해 모든 예측 요소 간의 상호작용을 모델링하는 global inference가 필요했고 이를 위해 RNN과 같은 autoregressive sequence model을 사용해왔다.
그러나 우리는 autoregressive 모델에서 벗어나 병렬 디코딩이 존재하는 transformer를 사용한다. (+set prediction을 위해 이분 매칭을 사용한다.)
2.2. Transformers and Paralled Decoding
Transformer는 기계 번역을 위한 attention-based 모델이다. Attention 매커니즘은 전체 입력 시퀀스의 정보를 모두 이용하는 네트워크이다. Transformer는 self-attention layer를 도입하여 긴 시퀀스에서의 학습을 가능하게 한다. (이미지로 생각하면 각 픽셀에 대한 연관성 파악에 용이하다는 특징이 있다.)
Transformer는 현재 가장 일반적인 방법으로 활용이 되고 있고 시퀀스적인 데이터를 처리하는 데 높은 성능을 보인다. 본 논문에서도 transformer와 병렬 디코딩을 사용하여 계산 비용을 줄인다.
2.3. Object detection
2-stage detector는 proposal과 함께 box를 예측하고, 1-stage detector는 anchor 또는 object center grid를 사용하여 예측한다. Detector의 최종 성능은 이러한 초기 추측에 따라 크게 좌우된다. 본 모델은 anchor가 아닌 input image를 사용하여 absolute box prediction으로 detection set를 직접 예측함으로써 hand-crafted process를 제거하여 detection process의 효율성을 높인다.
Set-based loss. 이분 매칭 loss를 사용하여 object detection을 수행한 연구가 존재했지만, 부족한 부분이 많았다. Set-based loss를 사용하더라도 NMS와 같은 단계를 거치게 되면 성능이 많이 개선되었다. (NMS가 거의 필수적)
Recurrent detectors. DETR에 가장 근접한 것은 end-to-end set prediction이다. 이는 CNN activation에 기반한 인코더-디코더 아키텍처와 이분 매칭 손실을 사용하여 directly predict set을 수행한다. 그러나 RNN(자기 회귀 모델)을 사용하여 병렬 디코딩을 수행하지 못한다.
3. The DETR model
Detection 시 direct set prediction에 필수적인 요소는 다음과 같다.
- Prediction와 ground truth boxes 사이의 고유한 매칭을 위한 set prediction loss
- Object set을 예측하고 이들의 relation을 모델링하는 아키텍쳐
3.1. Object detection set prediction loss
DETR은 한 번의 decoder 통과에서 N개의 set을 예측한다. 이때, N은 이미지 내의 object 수보다 매우 크게 설정한다.
우리의 loss는 predicted object와 ground truth object 사이의 optimal 이분 매칭을 진행하여 object(bounding box) 별 loss를 최적화한다.
y는 object의 ground truth set을 나타내고, y_hat은 N개의 prediction set을 나타낸다. N이 이미지의 object 수보다 크다고 가정하고 y도 ∅(no object)로 채워진 N크기의 set으로 간주한다. 이 때, 두 set 사이의 매칭 loss 값의 합을 가장 적게 만드는 σ 를 찾는다. 아래 수식의 σ_hat은 매칭 결과 (y, y_hat 조합) 를 의미한다.
L_match는 ground truth y와 prediction y_hat의 pair-wise matching cost이다. 일대일로 매칭 시켰을 때의 loss값을 의미한다. Hungarian algorithm은 가능한 모든 경우의 매칭 loss값을 가장 작게 만들 수 있는 경우를 찾는 방법이다.
매칭 cost는 class prediction과 bounding box prediction을 모두 고려한다. Ground truth set는 y_i=(c_i/,b_i)로 표현된다. c_i는 target class label이고 b_i는 bounding box의 중심좌표, 높이, 너비인 4차원 정보를 나타내는 것이다 (0~1사이의 값). Predicted class의 확률값은 p_hat으로 나타내고, predicted bounding box는 b_hat으로 나타낸다.
이때, L_box는 bounding box가 얼마나 유사한지에 대한 loss값이다.
수식에서의 1은 if 조건문과 같은 역할을 한다. Class가 no object인 경우는 0을 의미하고 학습을 수행하지 않는다.
매칭 탐색은 ground truth object에 proposal 또는 anchor를 매칭시키는 것과 동일한 역할을 한다. 주요 차이점은 중복이 존재하지 않는 direct set prediction을 위해 일대일 matching을 찾는 것이다.
두 번째 단계에서는 이전 단계 (1)에서 L_match를 가장 작게 만드는 σ_hat (조합)에 대한 헝가리안 기반의 loss를 통해 학습을 진행한다.
우리는 class 불균형을 해결하기 위해 ci = ∅인 경우 로그 확률값에 대해 10배의 down-weight한다. Object와 ∅(no object) 사이의 매칭 cost는 일정하다 (Prediction에 영향X).
Bounding box loss. Region proposal이나 anchor 기반으로 bounding box를 예측하는 기존 방식과 달리 directly box prediction을 수행한다. Scale을 고려하기 위해 prediction과 ground truth의 차이에 대해 L1 loss와 GIoU를 함께 사용한다.
3.2. DETR architecture
DETR의 아키텍쳐는 feature 추출을 위한 CNN backbone, encoder-decoder 구조의 transformer, 최종 detection prediction을 수행하는 FFN(Feed Forward Network)로 이루어져 있다.
1. Image에 대해 CNN을 통해 feature map 추출
2. 시퀀스 데이터로 변형 (d x HW) + positional encoding (위치 정보)
3. encoder에 positional encoded sequence data(2번) 입력 -> attention 매커니즘을 거쳐 인코딩 수행
4. decoder에 N개의 object query(positional embeddings)를 초기 입력으로 하며 인코딩 data(3번) 활용 -> 각 object query마다 고유한 인스턴스
Backbone. 초기 이미지 x_img ∈ R_(3×H0×W0) (3 color channels)에서 conventional CNN backbone은 lower-resolution activation map f ∈ R_(C×HJ×W)를 생성한다. 이때, C=2048,H=H0/32, W=W0/32 로 사용한다.
Transformer encoder. 첫째, 1x1 convolution은 high-level activation map f의 채널 차원을 C에서 d로 감소시켜 새로운 feature map z_0 ∈ R_(d×H×W)를 생성한다. 인코더에 시퀀스 형식의 input을 제공하기 위해 d x HW feature map으로 차원을 축소한다. Positional encoding을 통해 이미지의 위치정보를 제공한다.
Transformer decoder. Transformer decoder에서는 N개 object의 임베딩에 대해 디코딩한다. Self-attention과 encoder-decoder 구조를 사용함으로써 전체 이미지를 고려하여 중복되지 않는 N개의 object를 예측한다.
Prediction feed-forward networks (FFNs). FFN는 디코딩된 임베딩값을 통해 중심 좌표, 높이, 폭으로 이루어진 4차원 벡터를 예측하고, linear layer는 softmax 함수를 사용하여 class를 예측한다.
Auxiliary decoding losses. 학습 중에 디코더에서 각 class의 정확한 object 수를 output하는 데에 auxiliary losses를 사용하면 도움이 된다는 것을 발견한다. 이에 따라 각 디코더 layer 후에 prediction FFN과 헝가리안 loss를 추가한다.
4. Experiments
- 비교 모델: Faster R-CNN
- Dataset: COCO minival
- Optimizer: AdamW
- Backbone: ResNet(pre-train ImageNet), ResNet101(pre-train ImageNet)
- 훈련 GPU : 16개의 V100 GPU
- 훈련 epoch : 300 (Faster R-CNN의 경우 500)
- 훈련 시간 : 72 시간
4.1. Comparison with Faster R-CNN
DETR은 Faster R-CNN에 비해 충분히 높은 성능을 보인다. 그러나 AP_L(큰 object)에 대해서는 높은 성능을 보이지만, AP_S(작은 object)에 대해서는 낮은 성능을 보인다.
4.2. Ablations
global scene reasoning을 사용하는 encoder가 object를 분리하는 데 중요하다.
위 그림은 각 픽셀에서의 attention을 시각화한 것이다. 겹쳐져 있는 object에 대해서도 잘 분리해서 detect하는 것을 확인할 수 있다. 인코더에서는 인스턴스를 분리하여 디코더의 object 추출 및 위치 파악을 단순화한다.
디코더는 인코더와 다르게 머리나 다리와 같은 물체의 가장자리에 주목한다는 것을 확인할 수 있다.
4.3. Analysis
4.4. DETR for panoptic segmentation
5. Conclusion
Direct set prediction을 위해 transformers와 이분 매칭 loss를 기반으로 하는 object detector인 DETR을 제안한다.
해당 알고리즘은 COCO dataset에서 Faster R-CNN과 유사한 성능을 달성하고, 구현이 간편하여 확장 가능성이 높다.
Self-attention을 통해 global processing을 수행함으로써 Faster R-CNN보다 큰 object에 대해 높은 성능을 달성하지만 작은 object detection에 대한 개선이 필요하다.
반응형'Paper review > Object Detection' 카테고리의 다른 글