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

Inc Lomin's avatar
Apr 18, 2021
Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive Training Sample Selection

Introduction

최근 state-of-the-art object detection 알고리즘들은 대부분 anchor를 사용하는 방식을 취합니다. 이들 방식은 굉장히 많은 수의 anchor box를 미리 구성하고, 물체과 겹치는 anchor를 찾아 클래스를 분류하고 위치를 조정합니다. 한편, 최근에는 anchor를 사용하지 않는 알고리즘들이 주목받고 있습니다. 이러한 알고리즘은 크게 두 가지로 나뉩니다. 첫 번째는 CornerNet과 같은 keypoint-based 방식으로, 물체의 경계에 위치하는 점들의 좌표를 직접적으로 예측합니다. 두 번째는 FCOS와 같은 center-based 방식으로, 물체 내부의 어떤 점으로부터 가장자리까지의 거리를 예측합니다.
본 논문은 둘 중에서 후자인 center-based, anchor-free 방식이 사실은 본질적으로 RetinaNet과 같은 anchor-based 방식과 거의 유사하다는 것을 발견하고, 제거할 수 있는 차이점들을 모두 제거한 후 과연 어떤 요소가 남아서 둘 사이의 성능의 차이를 만드는 것인지 밝힙니다.
실험으로부터 두 방식의 차이는 결국 positive/negative sample을 정의하는 방법에 있다는 결론에 도달합니다. 4장에서는 이러한 관찰로부터 이끌어낸 Adaptive Training Sample Selection (ATSS)라는 샘플링 알고리즘을 개발합니다.
 

Proposed Method

Difference Analysis of Anchor-based and Anchor-free Detection

먼저 anchor-based 방식의 RetinaNet과 Anchor-free 방식의 FCOS를 비교해보겠습니다. RetinaNet은 미리 정의된 (여러 scale의) anchor box들 중 물체와 겹치는 것들을 찾는 방식을 사용하고, FCOS는 box가 아니라 균등하게 분포된 점들을 기준으로 한다는 점이 다릅니다. 이 점들을 anchor point라고 표현하겠습니다. 아래 그림을 보면 FCOS에서 anchor point는 결국 anchor box의 중심점과 같은 역할을 하기 때문에, 기본 원리는 비슷하고 다만 다음과 같은 차이가 있다고 볼 수 있습니다.
  • (classification) 물체와 겹치는 anchor box를 찾는 것 vs. 물에에 포함된 anchor point를 찾는 것
  • (regression) Anchor box의 가장자리 좌표를 regression하는 것 vs. Anchor point로부터 물체 가장자리까지의 거리를 regression하는 것
notion image
notion image
 
이러한 본질적인 차이 외에도 FCOS의 구현에는 GroupNorm, GIoU Loss 등등 RetinaNet에 없던 다양한 테크닉이 포함되어 있습니다. RetinaNet의 구현에도 이것들을 모두 포함하여 이러한 차이들을 제거하면 성능 갭이 어떻게 달라지는지 보겠습니다. 또한, FCOS의 anchor point를 anchor box에 대응하면 위치별로 scale이 하나밖에 없는 anchor box와 같기 때문에 원래 각 위치별로 3개씩 있던 RetinaNet의 anchor scale을 하나로 줄이겠습니다. 이를 RetinaNet (#A=1)이라고 표현합니다. COCO minival 셋에 테스트한 결과는 아래와 같습니다.
notion image
불필요한 차이를 모두 제거했음에도 여전히 0.8%의 차이가 납니다. 이 성능의 차이는 어디서부터 오는 것일까요? 이것을 이해한다면 더 나은 방법을 만들 수 있을 것입니다.
 

Essential Difference

두 방식의 본질적인 차이 (classification과 regression)를 하나씩 살펴보겠습니다.
Classification
RetinaNet은 anchor와 물체의 매칭을 위하여 IoU를 사용합니다. IoU가 positive threshold 보다 높으면 positive sample로, negative threshold보다 낮으면 negative sample로 취급하고 나머지 샘플들은 학습에 사용하지 않습니다. 반면 FCOS는 먼저 anchor point가 물체 영역에 포함된 것인지 판단한 후, 각 pyramid level에 정의된 scale range에 포함되는 것만 걸러 positive sample로 선택하고 나머지는 negative sample이 됩니다. 이러한 차이는 결국 anchor의 크기와 밀도가 같더라도 positive, negative 샘플이 달라지는 결과를 낳습니다. 아래 표는 RetinaNet 방식(box)과 FCOS 방식(point)이 서로 다른 두 샘플링 방식을 사용하였을 때 성능을 실험한 결과입니다.
notion image
위 결과를 보면 anchor box를 쓰는지 anchor point를 쓰는지에 상관 없이, RetinaNet의 샘플링 방식을 사용하는 것에 비하여 FCOS의 샘플링 방식을 사용하는 것이 0.8%정도 더 높은 성능을 보여주고 있습니다.
Regression
RetinaNet은 anchor box로부터 object box까지 네 경계의 차리를 예측하는 반면, FCOS는 anchor point로부터 object box의 네 경계까지 거리를 예측합니다. 하지만 위 표를 보면 같은 샘플링 방식을 사용하는 경우 두 알고리즘간의 차이는 거의 없습니다. 따라서 regression 방법 자체는 중요한 것이 아니라는 결론을 내릴 수 있습니다.
 

Adaptive Training Sample Selection

지금까지 실험으로 알아본 바에 의하면 FCOS가 RetinaNet보다 높은 성능을 보일 수 있는 것은 positive, negative sample을 정의하는 방식이 기존의 IoU 기반의 방식보다 낫기 때문입니다. 이로부터, 샘플링 방식을 개선하는 Adaptive Training Sample Selection (ATSS)라는 방식을 제안합니다. ATSS는 IoU threshold로 고정된 값를 사용하는 대신 매 순간 자동으로 선택하기 때문에 hyperparameter가 없으며, adaptive한 특성 덕분에 항상 가장 적절한 값을 사용하여 높은 성능을 낼 수 있습니다.
알고리즘은 다음과 같이 동작합니다.
  1. 먼저 각각의 gt와 겹치는 positive sample의 candidate를 pyramid level 별로 k개씩 찾습니다. 이 때 k개를 고르는 기준은 gt와 anchor box의 center 사이의 L2 distance가 가까운 순서입니다. 이 과정 이후에는 gt별로 k x L 개의 positive sample이 할당됩니다. L은 pyramid level의 갯수입니다.
  1. Positive candidate들과 gt box 사이의 IoU를 모두 계산합니다.
  1. 모든 IoU 값들의 mean + std를 IoU threshold로 설정합니다.
  1. 이 threshold보다 높은 것이 positive, 낮은 것은 모두 negative sample이 됩니다.
notion image
 
핵심은 IoU threshold 값을 고정된 hyperparameter로 사용하는 것이 아니라 gt와 anchor box들의 관계를 고려하여 adaptive하게 설정한다는 것입니다. 아래 그림은 각각의 level별로 candidate가 하나밖에 없는 경우 ATSS의 효과를 설명하고 있습니다.
왼쪽의 (a)는 IoU 값들의 mean과 std가 모두 큰 경우를, 오른쪽의 (b)는 모두 작은 경우를 의미합니다. 즉 (a)는 높은 퀄리티의 샘플이 존재한는 경우이고 (b)는 대부분의 level에서 gt와 많이 겹치는 샘플이 없는 경우입니다. (a)와 같이 std가 높은 경우 gt와 큰 비율로 겹치는 적당한 pyramid level이 있다는 뜻이므로, threshold를 높여서 그것만 학습에 사용합니다. (b)와 같이 많은 anchor box와 pyramid level들에서 IoU가 비슷해서 std가 낮다는 것은 이들이 모두 기여도가 비슷하다는 뜻이므로 threshold를 낮춰서 많은 샘플을 활용합니다.
notion image
 

Experiment

아래 표는 RetinaNet과 FCOS에 ATSS를 적용한 결과입니다. 두 경우 모두 높은 성능 향상 폭을 보여주고 있습니다. FCOS에 붙은 Center sampling은 ATSS 중에서 앞 부분, 즉 gt와 가장 center가 가까운 k개의 anchor만 선택하는 로직을 추가한 실험입니다. FCOS는 원래 gt box에 포함된 anchor point를 모두 활용하므로 low quality sample이 많은데 이것을 개선하여 성능이 올랐습니다.
notion image
 
ATSS 알고리즘은 hyperparameter가 거의 없지만, pyramid level별로 선택하는 anchor 갯수인 k를 조절할 수 있습니다. 하지만 아래 k를 변화시킨 실험에서 결과는 그다지 크지 않았습니다. 즉 ATSS는 hyper-parameter의 세팅에 꽤 robust한 특징이 있습니다.
notion image
아래 실험은 anchor의 scale과 aspect ratio를 조절하면서 실험한 결과입니다. 이 값들 역시 결과에 큰 영향을 미치지 않음을 알 수 있습니다.
notion image
notion image
 
FCOS는 기본적으로 각 위치별로 anchor의 갯수가 1개로 제한되지만, RetinaNet은 그렇지 않습니다. RetinaNet에 앞서 설명한 GN과 같은 universal improvements를 적용한 38.4% 모델과 비교하면, anchor 갯수를 9개가 아니라 1개로 제한하더라도 ATSS를 사용한 모델의 성능이 훨씬 높음을 알 수 있습니다. 또한 ATSS를 적용하면 anchor의 scale과 aspect ratio에 따라 성능이 크게 바뀌지 않는데, 이는 ATSS의 hyper-parameter에 민감하지 않은 특성을 보여줍니다.
notion image
 
아래는 다른 알고리즘들과의 비교입니다.
notion image
 

Conclusions

이 논문에서는 one-stage anchor-based detector와 center-based anchor-free detector간의 차이가 positive, negative sample을 정의하는 방식의 차이에 있다는 것을 밝히고, 이 샘플링 방식이 성능에 중요한 요소라는 관찰로부터 adaptive하게 IoU threshold를 정하는 ATSS 알고리즘을 개발하였습니다. 또한 이 방식을 사용하면 같은 위치에 여러 스케일의 anchor를 타일링하는 것은 그다지 효과가 없는 일이 된다는 것을 보였습니다. MSCOCO 데이터셋에 수행한 실험에서는 거의 overhead가 없이 높은 성능 향상을 이루어 state-of-the-art를 달성하였습니다.
 
 
Share article