Paper : https://arxiv.org/pdf/2212.06137.pdf
GitHub : https://github.com/jozhang97/DETA
Introduction
오늘 읽어볼 논문은 2022년 12월 쯤 나온 "NMS Strikes Back" 라는 논문입니다. Object Detection 모델 중 DETR(Detection Transformer)라는 논문이 있는데, 이 논문에서 나온 one-to-one Hungarian matching 방법과 NMS(Non-Maximum Supervision)가 있는 기존 Detector의 one-to-many label assignment 방법을 이 논문에서 비교합니다. 이러한 one-to-many assignments with NMS 방법은 기존 방식보다 최대 2.5 mAP 정도 이득을 얻는다고 합니다.
아래 그림을 보면 왼쪽은 DETR의 Bipartite matching 방법이고, 오른쪽은 이 논문에서 제안한 기존 IoU assignment 방법입니다. DETR의 방법 같은 경우 일치하는 loss가 최소화 되는 하나의 모델 예측을 하나의 GT 객체에 일치시킵니다. 오른쪽 방식은 IoU가 높은 여러개의 anchor 또는 proposal 들을 GT 객체에 할당시킵니다. 이러한 Multiple positive label은 training signal을 풍부하게 한다고 하네요!
따라서 본 논문은 기존에 잘 알려져있는 one-to-one mapping 방식이 highly-performant detection 이라는 오해를 수정하기 위해 작성되었다고 합니다. 그래서 논문 제목도 NMS strikes Back이 아닌가 싶네요. ㅎㅎ 아무튼 그래서 이 논문에서 제안하는 NMS를 이용한 Detector를 DETA(Detection Transformers with Assignment)라고 제안합니다.
Preliminary
DETR
먼저 여기서 알아야 할 사전 지식이 있는데, 바로 DETR detector입니다. 이 detector는 backbone, transformer encoder, transformer decoder로 나누어 설명할 수 있습니다. 먼저 backbone은 D-dimensional feature map으로 down-sampling 되고, 이 feature map은 $M$개의 feature map으로 구성되어 있습니다. 이 feature map $M$은 vinilla DETR 에서 $M = w \times h$ 로 나타내거나 multi scale feature resolution에서 $M = \sum_l w_l \times h_l$로 나타냅니다. transformer encoder는 positinal embedding의 기능을 하는 self-attention을 이용하여 feature map을 refine 하게 됩니다. 그리고 feature map을 업데이트 하게 됩니다. transformer decoder는 query set $Q \in \mathbb{R}^{N \times D'}$를 N개의 unique object detection(or background) $O = \left\{ \hat{b_i}, \hat{s_i} \right\}_{i=1}^{N}$로 변환하게 됩니다. 그동안 각 query는 encoded feature map에 cross-attend 됩니다. self-attention layer는 object가 중복을 전혀 가지지 않도록 보장하므로 NMS를 암묵적으로 학습할 수 있습니다.
Two-stage DETR
vainilla DETR에서 object query $Q$는 learnable network parameter이고, 모든 테스트 이미지에 대해 고정되어있습니다. 여러 연구들에 의하면 image dependent query가 학습 수렴 및 성능을 향상시킨다고 하는데요, two-stage Deformable DETR은 transformer encoder는 fixed initial boxes $b_i^{init}$에서 ranked proposal boxes $b_i^{prop}$를 densely predict 합니다. top N proposal은 second stage 에 대한 query를 형성하게 됩니다. 그 다음 fixed query 대신 first stage의 feature를 입력으로 사용하게 됩니다.
Hungarian matching loss
학습하는 동안 DETR은 각 network output을 background 또는 하나의 주석이 달린 객체에 할당하게 됩니다. annotation이 0부터 K깨 까지 있으면, output에 이를 할당하게 됩니다. DETR은 NMS를 학습하기 위해 one-to-one matching을 수행하게 되고, 각 객체들은 서로 다른 class를 갖습니다. DETR은 best matching을 다음과 같이 수행합니다.
여기서 $L_{cls}$는 classification loss 기반의 focal loss이며, $L_{box}$는 bounding box loss(GIoU + L1 loss)입니다. 매칭되지 않은 output은 background score를 예측하게 되고, box loss를 발생시키지 않습니다. DETR은 Hungarian algorithm을 사용하여 최적의 매칭을 찾게됩니다.
IoU assignment in transformer detectors
First stage assignments
DETA는 아까 보여드린 식1의 assignment procedure을 변경합니다. 여기서 multiple output $i와 j$가 같은 GT에 할당되도록 허용하게 됩니다.DETA는 Deformable-DETR 구조에서 파생된 fixed initial query feature를 사용합니다. 각 query $i$는 이미지 내의 특정 위치 $(x_i, y_i)$에 고정됩니다. 그러나 proposal에는 box overlap metric에 필요한 natural width and height가 존재합니다. 그래서 본 논문에서는 constant box size를 $w_i = 0.1 \times 2^{-l_i} \times W$과 $h_i = 0.1 \times 2^{-l_i} \times H$를 사용합니다. 여기서 $l_i \in$ {0, ..., 3}는 feature resolution 입니다. 여기서 inital box definition $b_i^{init}$은 다음과 같습니다.
또한 본 논문에서 positional embedding 및 overlap-based assignment process에 이러한 inital boxes를 사용하게 됩니다. 겹치는 부분이 threshold 보다 클 경우 각 예측을 가장 많이 겹치는 GT object에 할당하게 됩니다. training 시작 시 GT object는 때때로 threshold와 겹치는 예측을 갖지않습니다. object를 일치하지 않는 상태로 유지하든 가장 가까운 예측에 할당하든 차이가 없으므로 본 논문에서는 후자를 가정한다고 하네요. anchor $i$는 아래 조건을 만나게 되면 object k에서 가장 가깝게됩니다.
assignment procedure은 다음과 같습니다.
본 논문에서 first stage에서는 threshold는 0.7을 사용합니다. first stage에서 query feature 당 single box width, height를 사용하기 때문에 IoU는 anchor free detector의 centerness와 매우 유사합니다. 첫 단계의 classification loss는 binary focal loss를 사용합니다. 그 다음 proposal boxes에 NMS를 적용합니다. 이는 계산 부담을 줄이고 first-stage의 coverage를 늘리게됩니다.
Second stage assignments
second stage assignment는 first stage를 따르게 되며, fixed initial boxes $b^{init}$ set을 사용하는 대신 first stage $b^{prop}$의 출력을 사용하여 equivalent assignment $\sigma^{prop}_i $을 정의하게 됩니다. 또한 동일한 loss를 사용하여 학습하며, Faster RCNN에 따라 hyper-parameter $\gamma $를 사용하여 foreground object의 비율의 균형을 맞춥니다. 즉 positive query의 수가 $N \times \gamma $보다 크면 무작위로 $N \times \gamma $개의 positive query를 샘플링합니다. 여기서 더 많은 positive query를 위해 threshold를 0.6으로 설정합니다.
Object Balancing
각 GT object에 대해 항상 하나의 예측이 있는 one-to-one mapping과는 달리 본 논문의 IoU assignment는 GT object에 대해 여러개의 예측을 할당 할 수 있습니다. 더 큰 object는 더 작은 object 보다 더 많이 겹치는 예측이 나올 가능성이 높습니다. 이러한 불균형은 성능을 저하시키기 때문에 GT에 대해 대부분 positive assignment를 샘플링하는 간단한 object-balancing technique를 제안합니다. $ \mu_k^n$은 주석 k개에 대한 가장 높은 IoU라고 하고, $\mu_k^n = max(\tau , \mu_k^n) $를 새로운 dynamic threshold라고 합니다. 아래와 같습니다.
Experiments
본 논문에서는 ResNet50 backbone을 사용하여 COCO 및 LVIS validation에 대한 AP를 측정했습니다.
다른 논문들과 비교한 결과는 아래와 같습니다.
정성평가 결과는 다음과 같습니다. 확실히 DETA 방식이 성능이 좋은거 같네용
'AI Research Topic > Deep Learning' 카테고리의 다른 글
[Paper Review] Attention Mechanisms in Computer Vision, A Survey (0) | 2022.07.05 |
---|---|
[Deep Learning] Pre-trained model로 gray image를 학습하는 방법 (0) | 2022.04.06 |
[Paper Review] ResNet strikes back: An improved training procedure in timm (0) | 2022.03.30 |
[Deep Learning] Weight Standardization (+ 2D, 3D 구현 방법) (0) | 2020.12.20 |
[Paper Review] DCNv2 : Deformable Convolutional Networks v2 (3) | 2020.11.01 |