논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection

Problem

객체 검출 분야에서 흔히 사용되는 방법 중에는 anchor-based detector와 anchor free detector가 있다. Anchor free detector도 두가지 방식이 있는데, (1) 미리 정의된 지점을 먼저 찾고, 그 다음 객체의 크기를 찾는 keypoint-based method와, (2) 객체의 중심점 혹은 영역들을 이용하여 positive를 정의하고, prositive 들로부터 객체 박스를 정의하는 4개 값을 prediction하는 center-based method로 나눌 수 있다.

이러한 anchor free detector들은 anchor를 설계하는데 필요했던 hyper parameter들을 없애고 anchor based detector보다 뛰어난 성능을 보였다.

keypoint based method는 보통의 keypoint estimation과 유사하기 때문에 논외로 하더라도 사실 center-based detector는 anchor based detector와 유사한 구조를 가지며, anchor based detector가 한개의 anchor를 가지는 케이스로 생각할 수 있다.

두 방법의 대표적인 모델인 RetinaNet과 FCOS를 예로 들어보면 큰 차이는 다음과 같다.

  1. 위치마다 할당된 앵커의 수 (여러 anchor vs 한개의 anchor)
  2. Positive, netgative 샘플의 정의 (IOU 기반 vs spatial, scale에 의한 제한)
  3. regression의 기준 (anchor box 기준 vs anchor point 기준)

[56]의 연구에서 FCOS가 RetinaNet보다 더 나은 성능을 보였다고 하였고, 위의 3가지 차이점에서 어떤 것이 성능 차이를 만들어냈는지 확인해보고자 한다.

Essence

실험을 해 보았을 때, 두 방법의 가장 핵심적인 차이는 positive와 negative를 정의하는 방법에 있었다. 두가지 모델에 동일한 positive, negative 정의를 사용하면 성능도 비슷해짐을 알 수 있었다.

여기에 영감을 받아 객체 특성에 맞게 자동적으로 positive와 negative 샘플을 선택하는 Adaptive Training Sample Selection (ATSS)를 제안하였다. 이는 anchor-based와 anchor-free detector들 사이를 연결시켜주는 역할을 할 수 있다.

Detail

먼저 RetinaNet과 FCOS의 차이 중에서 앵커 수에 대한 차이는 동일한 조건으로 하기 위하여 RetinaNet에서는 한 위치마다 정사각형 앵커를 하나만 배치하였다. 이제 남은 2가지 차이에 대해서만 집중하겠다.

DB는 MS COCO를 사용하였고 백본은 ImageNet으로 학습된 ResNet-50을 백본으로 사용하였다. RetinaNet은 5개 feature pyramid 마다8S 개의 크기를 갖는 앵커를 할당하였다.

이렇게 학습시킨 RetinaNet은 FCOS보다 성능이 떨어진다. 여기에 FCOS에 적용되어있던 GroupNorm, GIoU loss, limiting positive sample in GT box, centerneess branch, trainable Scalar, 등을 적용시키면 AP가 조금 더 상승하게 되나 여전히 차이는 존재한다.

Classification

RetinaNet은 IoU를 활용하여 positive, negative를 결정하는데, 먼저 각 객체에 대한 best anchor를 선택하고, 이 앵커가\text{IoU} \gt \theta_p이면 positive로,\text{IoU} \lt \theta_p이면 negative로 간주한다. 나머지 anchor는 학습에서 무시된다.

FCOS는 GT 박스 내에 들어있는 anchor point들을 선택하고, 이들 중에서 pyramid level에서 정의되는 scale range에 의해서 최종 positive 샘플이 선정되고, 나머지 anchor들은 negative로 사용된다.

이 차이로 인하여 두 방법은 서로 다른 positive/negative 샘플을 생성해 내고, 이 부분이 성능 차이를 가져오는 가장 큰 이유이다. FCOS에서 IoU기반의 방법을 사용할 경우 AP가 떨어져 성능 차이가 거의 없어짐을 알 수 있었다.

Regression

RetinaNet은 anchor box를 기준으로 하여 4개의 offset을 regression 하지만, FCOS는 anchor point를 기준으로 4개의 거리를 regression한다. 하지만 위의 표2에서 보인 것처럼 같은 다른 방법을 사용하더라도 성능에 큰 차이는 없었다.

결국 positive/negative를 선택하는 방법에 가장 큰 성능 차이를 가져온 것이다.

Adaptive Training Sample Selection

IoU이나 scale range 기반의 방법 모두 하이퍼파라미터에 영향을 많이 받는다. 이러한 영향을 최소화 하기 위해서 ATSS 방법을 제안하였다. 이는 자동적으로 객체 특성에 맞게 positive와 negative sample을 선택해줄 수 있다.

먼저 GT boxg에 대해 positive 후보를 찾아야 한다. 각 pyramid level에서 GTg에 가장 가까운k개의 anchor를 선택한다. 따라서k \times \mathcal{L}개의 anchor가 선택된다. 다음 모든 anchor에 대해IoU를 계산하고, 그것의 평균m_g과 표준 편차v_g를 계산한다. 이제 IoU threshold로t_g = m_g + v_g를 사용하여 이보다 IoU가 높은 anchor를 positive로 나머지 anchor를 negative로 간주한다. 만약 어떤 anchor box가 여러 객체에 할당 되었을 경우 가장 큰 IoU를 갖는 객체만 선택한다. 또한 anchor의 중심이 객체 영역을 벗어난 경우에는 학습에서 제외하였다.

만약m_g이 높다면 anchor 후보군이 높은 품질을 지니고 있다는 것이고, 낮으면 그렇지 않다는 것이다. 한편v_g가 높다면 해당 객체를 검출할 수 있는 pyramid level이 있다는 뜻이며 따라서m_g + v_g로 threshold를 높여 해당 level에서의 anchor를 선택하는 효과가 있으며,v_g가 낮으면 여러 pyramid level에서 객체를 선택할 수 있다는 의미로 생각할 수 있다.

흥미롭게도 IoU의 분포가 표준 정규 분포를 따르는 것은 아니지만, 통계적으로 보았을 때 크기에 관계 없이0.2 \times k \mathcal{L}개가 positive 샘플로 선택되었다. 하지만 RetinaNet이나 FCOS이 사용하는 방법은 큰 객체의 경우 더 많은 positive 샘플을 갖게되어 객체마다 공평하지 않은 학습이 이루어진다.

사용되는 단 하나의 파라미터는k인데, 실험을 통해서k를 변화시켜도 결과에 민감하지 않다는 것을 확인하였다.


Add a Comment Trackback