FreeAnchor: Learning to Match Anchors for Visual Object Detection Review

Hwan Heo·2021년 12월 5일
1

위 논문은 CNN-based Object Detector 들이 주로 hand-crafted criterion (IoU) 를 통해 ground truth to feature map bin anchor matching 하던 것과는 다르게, 이를 Maximum Likelihood Estimation problem 으로 formulation 하여 anchor matching 을 end-to-end framework 로 편입한다. 이를 통해 architecture 의 변화없이 RetinaNet 의 성능을 향상시켰다.
NeurIPS2019 (Spotlight)

1. Introduction

Image Classification 과 다르게 deeper visual understanding 을 위한 task 인 object detection, segmentation 등은 hand-crafted processing 이 필수적이다.

예를 들어 anchor-based object detection 의 경우엔, RPN 의 high recall rate 를 위해서 굉장히 많은 false-positive 를 region proposal 로써 도출 하는데, 이러한 많은 false-positive 를 제거(for increasing precision rate)하기 위한 Non-Maximum-Suppression 이 필수불가결하다.

FPN architecture 의 경우, RPN 은 학습 과정에서 multiscale feature map 의 한 bin 에 대해 pre-defined 된 aspect-ratio 의 anchor 를 생성 하며, 적절한 model 의 학습을 위하여 이러한 bin 의 anchor 들에 대해서 GT object 와 매칭시킬 필요가 있다.

위 논문은 이전 연구들이 hand-crafted criterion (IoU) 를 통해 GT Object to feature map bin anchor matching 하던 것과는 다르게, 이를 Maximum Likelihood Estimation formulation 을 통한 적절한 anchor matching 을 이루는 것을 목표로 한다. 제시하는 방법론을 통해 다른 architecture 의 변화없이 RetinaNet 의 성능을 향상시켰다는 것이 주목할 만하다.

2. Method

2.1. Detector Training as Maximum Lilekihood Estimation

Anchor-Based one-stage object detector 의 학습 과정을 자세히 소개하도록 한다. 대게의 경우 backbone network 에서 feature extracting 을 통해 main feature map 이 생성되고(multiscale), 이 feature map 의 bin 하나 당 정해진 비율을 갖는 anchor 가 생성되게 된다.

RPN 의 효율적인 학습을 위해서, 생성된 anchor 모두에게 loss 를 할당하는 대신, positive set 과 negative set 을 나누어 object 와 background loss 를 따로 구해야 한다.

이때 기존 detector 들은 주로 GT object box biBb_i \in B 와 생성된 anchor aja_j가 정해진 threshold 이상의 IoU를 갖는다면, Cij=1C_{ij} =1 로 할당한다. (만약 multiple object 와 matching 된다면 largest IoU object 만 match 한다)

이때 positive set 을, anchor가 match 되는 object 가 single object 인 anchor 의 집합으로 정의하고, negative set 은 어떠한 object 와도 match 되지 않는 anchor 들의 집합으로 정의할 수 있다. 즉,

A+: {aj  iCij=1}A: {aj  iCij=0}A_+ : \ \{a_j \ | \ \sum_i C_{ij} = 1 \} \\ A_- : \ \{a_j \ | \ \sum_i C_{ij} = 0 \}

에 대하여 loss function L(θ)\mathcal L(\theta) 를 다음과 같이 정의한다.

L(θ)=ajA+biBCijLcls(θ) + βajAbiBCijLloc(θ) + ajALbg(θ)\mathcal L (\theta) = \sum_{a_j \in A_+} \sum _{b_i \in B} C_{ij} \mathcal L^{\text{cls}}(\theta) \ + \ \beta \sum_{a_j \in A_-} \sum _{b_i \in B} C_{ij} \mathcal L^{\text{loc}}(\theta) \ + \ \sum_{a_j \in A_-} \mathcal L^{\text{bg}}(\theta)

이때 cls, loc, bg loss 는 각각 BCE (with GT class), SmoothL1, BCE (with 0 vector) 와 같다.

잘 학습된 network model 의 loss 를 MLE 관점에서 본다면, loss 가 낮을수록 전체 training dataset 에 대한 classification, localization probability 가 높을 것이다. 즉, loss 에 대해서 model MLE probability 를 다음과 같이 나타낼 수 있다.

P(θ)=eL(θ)=ajA+(biBCijeLcls(θ))ajA(biBCijeβLloc(θ))ajAeLbg(θ)=ajA+(biBCijPcls(θ))ajA(biBCijPloc(θ))ajAPbg(θ)\begin{aligned} \mathcal P (\theta) &= e^{- \mathcal L(\theta)} \\ &= \prod_{a_j \in A_+} \bigg ( \sum _{b_i \in B} C_{ij} e^{-\mathcal L^{\text{cls}}(\theta)} \bigg ) \cdot \prod_{a_j \in A_-} \bigg( \sum _{b_i \in B} C_{ij} e^{- \beta \mathcal L^{\text{loc}}(\theta) } \bigg ) \cdot \prod_{a_j \in A_-} e^{-\mathcal L^{\text{bg}}(\theta)} \\ &=\prod_{a_j \in A_+} \bigg ( \sum _{b_i \in B} C_{ij} {\mathcal P^{\text{cls}} (\theta)} \bigg ) \cdot \prod_{a_j \in A_-} \bigg( \sum _{b_i \in B} C_{ij} \mathcal P^{\text{loc}} (\theta) \bigg ) \cdot \prod_{a_j \in A_-} \mathcal P^{\text{bg}} (\theta) \end{aligned}

이때 matrix C 를 배우는 적절한 방법을 제시함으로써, 위 anchor matching 을 hand-crafted criterion 을 이용한 heuristic 한 방법론이 아닌, end-to-end 관점에서 학습시킬 수 있다.

2.2. Detection Customized Likelihood

matrix C 를 학습하는 방법론을 세우기 전에 주목해야할 점은, region proposal 이 high recall rate 와 high precision rate 를 동시에 유지해야 한다는 점이다. Recall rate 는 true-positive 와, precision 은 false-positive 와 관련되기 때문에 recall 은 matched GT object, precision 은 background 와 연관되어 있음을 알 수 있다.

즉, 위의 heuristic matching 과 마찬가지로 positive (recall) probability 와 negative (precision) probability 를 따로 설정하게 된다.

  • Positive 의 경우 computation cost 를 위해 top-n ranked anchors 인 bag of anchor 에서 classification, location 모두 jointly closest to object 인 box 를 고른다.

    Precall(θ)=i maxajA(Pcls(θ)Ploc(θ))\mathcal P _{\text{recall}} (\theta) = \prod_i \ \max_{a_j \in A}( \mathcal P^{cls} (\theta) \cdot P^{loc} (\theta))

    이때 jointly 하게 이를 고르는 까닭은 NMS post-processing 의 정확도를 위해 highest confidence anchor 가 lowest location difference 를 갖게 학습되기 원하기 때문이다.

  • Negative 의 경우 positive case 와 반대로 poor localization anchor 를 poor classification (background) 로 학습되기 원하기 때문에 다음과 같은 objective function 을 갖게 된다.

    Pprecision(θ)=i (maxiP{ajbi})(1Pbg(θ))\mathcal P _{\text{precision}} (\theta) = \prod_i \ ( \max_i \mathcal P\{a_j \rightarrow b_i\} ) \cdot (1- P^{bg} (\theta))

이때, NMS post-processing 을 위해 P{ajbi}\mathcal P\{a_j \rightarrow b_i\} 는 다음과 같은 property 를 갖는다.

  1. P{ajbi}\mathcal P\{a_j \rightarrow b_i\} : IoU 에 대해 단조증가하는 함수
  2. IoU 가 threshold 보다 작을 시, P{ajbi}\mathcal P\{a_j \rightarrow b_i\} 는 0에 가까울 것
  3. GT object 에 대해, 단 하나의 anchor 만 P{ajbi}=1\mathcal P\{a_j \rightarrow b_i\} = 1 에 할당될 것.

상기된 property 들을 만족하는 Saturated Linear function 을 다음과 같이 정의한다.

Saturated Linear(x,t1,t2) ={0xt1(xt1)/(t2t1)t1<x<t21xt2\text{Saturated Linear} (x, t_1 , t_2) \ = \begin{cases} 0 \quad x \le t_1 \\ {(x-t_1) / {(t_2 - t_1) }} \quad t_1 < x < t_2 \\ 1 \quad x \ge t_2 \end{cases}

따라서 위의 Saturated Linear function 을 통한 최종 detection customized likelihood objective 는 다음과 같이 정의된다.

P(θ)=Precall(θ)Pprecision(θ)=i maxajA(Pcls(θ)Ploc(θ))j maxiP{ajbi}(1Pbg(θ))\begin{aligned} \mathcal P' (\theta) &= \mathcal P _{\text{recall}}(\theta) \cdot \mathcal P _{\text{precision}} (\theta) \\ &= \prod_i \ \max_{a_j \in A}( \mathcal P^{cls} (\theta) \cdot P^{loc} (\theta)) \cdot \prod_j \ \max_i \mathcal P\{a_j \rightarrow b_i\} \cdot (1- P^{bg} (\theta)) \end{aligned}

2.3. Anchor Matching Mechanism

P(θ)=eL(θ)\mathcal P (\theta) = e^{- \mathcal L(\theta) } 로부터 다음과 같이 detection customized likelihood loss 를 정의할 수 있다.

L(θ)=logP(θ)=i log( maxajA(Pcls(θ)Ploc(θ)))j log((1P{ajA})(1Pbg(θ)))\begin{aligned} &\mathcal L' (\theta) =\\ & - \log \mathcal P' (\theta) = \\ & -\sum_i \ \log \bigg ( \ \max_{a_j \in A}( \mathcal P^{cls} (\theta) P^{loc} (\theta)) \bigg ) - \sum_j \ \log \bigg ( (1- \mathcal P\{a_j \in A_-\}) \cdot (1- P^{bg} (\theta)) \bigg ) \end{aligned}

이때 저자들은 early stage 에서의 낮은 confidence 품질 때문에 초기 학습 단계가 어렵다고 보고, max function 대신에 값이 낮을땐 mean 값처럼, 값이 높을 땐 max 값처럼 행동하는 Mean-Max function 을 도입한다.

즉,

  1. 학습 초기 단계에서는 bag of anchor 모두 loss 를 할당받아 학습에 참여하다가,
  2. confidence 품질이 높아질수록 bag of anchor 에서 GT object 와 가까운 anchor 만이 학습에 참여하여 hard negative 의 품질을 높이게 될 것이다.

따라서 Mean-Max function 을 이용해 변경된 detection customized likelihood loss 는 다음과 같다.

L(θ)=w1i log(Mean-Max(Xi))+w2j FL(P{ajA}(1Pbg(θ))\begin{aligned} \mathcal L' (\theta) &= -w_1\sum_i \ \log (\text{Mean-Max}(X_i)) + w_2\sum_j \ \text{FL} ( \mathcal P\{a_j \in A_-\} \cdot (1- P^{bg} (\theta)) \end{aligned}

background 에 대한 easy negative sample 의 weight 를 줄이기 위하여 Focal Loss 를 사용하였다.

전체 알고리즘은 다음과 같이 나타낼 수 있다.

3. Experiments

Baseline Architecture 로 RetinaNet 을 사용하였으며, RetinaNet 을 바탕으로 위의 MLE-formulated Training 만을 적용하여 성능 향상을 이끌어냈다.

profile
기타치는AI Researcher

0개의 댓글