Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector

Inc Lomin's avatar
Oct 29, 2021
Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector

Introduction

Few-shot object detection을 통해 object detection이 특정 task를 위해 많은 데이터와 긴 학습시간을 필요로 하는 문제를 해결하고자 합니다. 본 논문에서는 Few-shot object detection이 주어진 novel target object에 대한 support image가 있을 때 test set에서 target object category에 속하는 모든 foreground 물체를 잡아내는 문제로 정의합니다.
notion image

contribution

  1. 재학습 및 fine-tuning이 필요없는 General few-shot object detection model을 제안합니다.
      • 대칭적으로 학습하도록 고안된 RPN의 attention module와 Detector를 통해 object pair의 relation을 예측합니다.
  1. 1000개의 카테고리가 카테고리 별 적은 수의 샘플로 구성된 데이터셋을 새롭게 제안합니다.
      • 이 데이터셋을 이용함으로써 기존 COCO보다 더 나은 성능을 달성했습니다.

A Highly-Diverse Few-Shot Object Detection Dataset(FSOD)

Few-shot learning의 핵심은 novel category에 대한 모델의 generalization ability에 있습니다. 따라서 많은 object category를 통해 높은 다양성을 가진 데이터셋은 unseen object를 detect하도록 학습될 수 있습니다. 하지만 기존 데이터셋은 제한된 category를 가지며 few-shot evaluation에 적합하지 않습니다.

Dataset Construction

기존 large-scale object detection 데이터셋을 기반으로 데이터셋을 만들었습니다. 하지만 이러한 데이터셋은 다음과 같은 이유로 직접 사용이 어렵습니다.
  • 같은 semantic meaning을 같지만 다른 단어로 label이 된 경우를 포함.
  • 많은 분량의 데이터가 noisy하고 라벨이 없거나 중첩됨.
  • train/test split이 같은 category를 가짐. unseen category에 대한 generality를 위해서 서로 다른 category를 가져야함.
 
데이터셋은 다음의 과정을 통해 만들어졌습니다.
1) Open Image dataset과 ImageNet을 기반으로 same semantic label를 가진 leaf label(예를 들어 polar bear와 ice bear)을 하나의 카테고리에 묶어주었습니다.
2) leaf가 속하지 않는 category는 삭제했습니다.
3) 부적절한 크기와 라벨이 부정확한 경우를 삭제했습니다.
  • 이미지 크기의 0.05%보다 작은 박스들을 포함한 박스라벨을 포함한 경우 제외
4) few-shot learning의 세팅을 위해서 train과 test category로 split
  • training category는 MS COCO dataset에서 선정.
  • test category는 기존 training category와 거리가 먼 200개의 category를 선정.
  • 이때 distance는 Wordnet: a lexical database for english에서 두 단어를 잇는 가장 짧은 거리를 의미합니다.
  • 학습셋의 카테고리를 800개로 merge
  • 541개의 카테고리는 ImageNet에서 469개의 카테고리는 Open Image dataset에서 이미지를 구성
 

Dataset Analysis

notion image
 
  • High diversity in category
notion image
  • Challenging setting: 다양한 크기의 박스와 aspect ratio를 가지게 됨.

Methods

1. Problem Definition

target object에 가까운 support image 와 query image 가 주어졌을 때 support category에 속하는 모든 target objects를 찾는 것입니다.
N개의 support set과 K개의 category를 갖는 경우 N-way K-shot detection라고 부릅니다.
 

2. Deep Attentioned Few-shot Detection

여기서는 RPN module과 detector에서 support set과 query간의 general relation을 매칭하는 novel attention network를 제안합니다.
아래 그림에서 전체적인 구조를 볼 수 있습니다. Weight shared network를 사용하는 multi branch를 도입하여 query 이미지와 support set을 분리하여 처리합니다. Weight shared network는 Faster-RCNN 구조입니다. 이 프레임워크를 사용하여 얻은 support 와 query feature간의 관계를 매칭하도록 활용합니다. 이 프레임워크에 기반해서 novel attention RPN과 multi-relation module을 제안합니다.
 
notion image
 
2.1 Attention-Based Region Proposal Network
X: support feature
Y: query feature
X: support feature Y: query feature
few-shot object detection에서 RPN은 잠재적으로 연관된 박스들을 얻어내는데 유용합니다. 특히 RPN은 object, non-object classification 뿐만 아니라 support category에 속하지 않는 negative object를 걸러낼 수 있습니다. 그러나 support image의 정보 없이는 support category와 관계 없이 object score가 높은 것을 모두 활성화 하게 됩니다. 이를 방지하기 위해 Attention RPN을 도입했습니다.
 
Attention RPN은 support information을 활용해서 background와 category와 matching되지 않는 box들을 제거합니다. 이를 통해서 높은 확률로 target object를 포함하는 candidate proposal을 얻을 수 있습니다. RPN에 attention mechanism을 통해 support information을 도입하여 다른 카테고리의 proposal을 w줄이도록 했습니다. support와 query의 feature map 사이의 similarity를 depth-wise로 계산하여 correlation attention map을 얻습니다.
  • support feature
  • query feature
  • depth-wise correlation similarity attention map
support feature 는 query feature map에대해 depth wise cross correlation 방식으로 kernel 연산을 하게됩니다. 여기서는 RPN model의 input으로 이 feature를 사용했습니다. 이때 S의 kernel 크기는 1이 잘동작했습니다. 이를 통해 global feature가 objectness classification 뿐만 아니라 해당하는 object의 정보를 제공할 수 있다는 점을 알 수 있습니다.
 
Attention map은 3x3 convolution을 거쳐 objectness classification layer와 box regression layer로 들어가게 됩니다. attention RPN loss 은 기존 Faster-RCNN과 같이 joint로 학습됩니다.
 
2.2 Multi-Relation Detector
notion image
Multi-relation detector는 query의 proposal boxes와 support objects 간의 similarity를 효율적으로 측정할 수 있는 모듈입니다. 이 Detector는 Figure 6에서 볼 수 있듯이 세가지 모듈로 구성되어있습니다.
  • Global-relation head: global matching을 학습하기 위함.
    • ⇒ avg pooling된 query feature와 support feature를 concat하여 두개의 Fully connected layer를 거쳐 class score를 얻음.
       
  • Local correlation head: support와 query proposal 사이의 pixel-wise와 depth-wise cross correlation을 학습하기 위함
    • ⇒ query feature, support feature를 conv를 1x1 conv거친 후 support_feature에 대한 convolution 결과를 weight로 query feature에 대해 convolution 연산을 수행하여 local correlation을 구하고 이에 대해 fully connected를 거쳐 class score를 얻음.
       
  • Patch-relation head: patch-matching을 학습하기 위함.
    • ⇒ query feature와 support feature를 concat한 feature에 대해 3개의 convolution layer와 끝단에 linear layer를 붙여 class score를 얻음.
       
위 세가지 모듈의 상호보완을 통해 성능을 보이는 것을 실험적으로 확인할 수 있습니다.
세개의 호환의 경우 class score를 합해서 사용.
Copy of code for relation head
 
3. Two-way contrastive training strategy
기존의 학습방식은 같은 카테고리 c에 속하는 를 training pair로 만들어 매칭하도록 학습하는 것 입니다. 하지만 좋은 모델은 같은 카테고리를 매칭하는 것 뿐만 아니라 다른 카테고리를 구분할 줄 알아야합니다. 이를 위해서 2-way contrastive training strategy를 적용했습니다.
notion image
1) 임의로 같은 카테고리 c인 물체를 포함하는 query image 와 support image 를 선택합니다.
2) 카테고리 c를 포함하지 않는 support image 을 뽑습니다.
3) training triplet 을 구성합니다. 이때 입니다.
4) 학습 시에는 카테고리 c만 foreground로 나머지는 background로 취급합니다.
 
Relation network는 attention RPN이 생성한 proposal로 의 같은 카테고리를 매칭하고 을 구분하도록 학습해야 합니다. 하지만 학습중에는 대부분의 proposal에는 background가 대부분이게 됩니다. 이 때문에 query proposal과 support의 matching pair 비율 을 1:2:1로 맞춰주었습니다.
그리고 multi task loss를 사용하여 Loss 가 됩니다.
 

Experiments

1. Training details
  • end-to-end로 4개의 Tesla P40 GPU에 학습
  • SGD에 batch size 4를 사용
  • 초기 56000 iteration까지 lr 0.002를 사용하고 이후 4000 iteration 동안 0.0002를 사용
  • ImageNet, COCO pretraining은 low-level feature를 stable하게 해주고 더 나은 성능에 수렴하게 함
  • 위에 따라서 pretrained ResNet 50를 사용하였고 ResNet 1-3 block의 weight를 고정
 
  • query 이미지의 짧은 변은 600 pixel로 resize하고 긴 변은 1000 pixel로 자름
  • support image는 target object 주변으로 16pixel의 여유를 주고 자른 후 zero-padding 및 320x320으로 resize
  • few-shot을 위해서 같은 카테고리의 object feature를 average하고 attention RPN과 multi-relation detector의 input으로 사용
 
2. Ablation studies
  • relation heads
notion image
FSOD dataset에 대해서 1-way 1-shot으로 학습하고 5-way 5-shot으로 평가한 결과입니다. 각 head를 비교하면 local-relation head가 가장 좋은 성능을 보였습니다. 복잡한 patch-relation이 의외로 낮은 성능을 보였는데 이는 복잡한 구조로 인해 모델이 학습하기 어려워진 것으로 보입니다.
두가지 종류의 relation model을 결합하면 더 나은 성능을 보이고 세개를 모두 사용했을 경우 가장 높은 성능을 보였습니다.
 
  • 2-way contrastive training strategy
2-way 1-shot의 Attention RPN 실험이 없는 이유는?
2-way 1-shot의 Attention RPN 실험이 없는 이유는?
위의 제안에 따른 2-way 1-shot 학습 방법의 경우 1-way 1shot 대비 7.9%의 증가가 있었습니다.
5shot으로 학습할 경우 더 나은 성능을 얻을 수 있었습니다. 하지만 5way는 2way보다 나은 성능을 보여주지 못했습니다. 이 결과에 따라서 2-way 5shot을 학습에 사용했습니다.
 
3. Comparison with sota methods
1) ImageNet Detection dataset
notion image
 
2) COCO dataset
 
notion image
 
4. Realistic applications
 
Figure 8. FSOD test set에 대한 1-shot object detection의 결과
Figure 9. 5-shot object detection의 결과
Figure 8. FSOD test set에 대한 1-shot object detection의 결과 Figure 9. 5-shot object detection의 결과
1) Novel Category Detection.
원하는 물체를 탐지하기 위해서 fine-tuning조차 라벨링이 필요하므로 fine-tuning을 하는 LSTD와 fine-tuning을 하지 않는 본 모델의 성능을 비교해보았습니다. LSTD를 Faster R-CNN을 기반으로 변경하고 5개의 fixed support set에 대해서 재학습을 했습니다.
notion image
2) Wild Car Detection
KITTI와 Cityscapes dataset에 대해 실험을 진행했습니다.
  • domain adaptation을 위해서 대량의 labeled data와 unlabeled data를 사용한 DA Faster R-CNN와 비교
  • 제안하는 방식에서는 fine-tuning 없이 10 support image를 사용.
 
4. More Categories vs. More Samples?
few-shot object detection dataset으로서의 이점을 위해서 각 카테고리 별로 적은 수의 샘플을 가지도록 했습니다. 이에 대한 효과를 확인하기 위해 실험을 해보았습니다.
먼저 MS COCO에 80개의 카테고리, 115000장에 대해 학습을 진행하고 이후 FSOD에 다른 수의 카테고리 숫자로 학습 이미지 수를 유지하면서 학습을 했습니다. 다음 표 7번을 통해서 카테고리를 늘릴 수록 더 좋은 성능을 보여줍니다. 따라서 다양한 카테고리가 few-shot object detection에 필수적임을 알 수 있습니다.
notion image
 

Conclusions

Attention-RPN, Multi-Relation Detector, Contrastive training strategy등을 통한 few-shot object detection 방법을 제안했습니다. 또한 1000개의 카테고리를 포함한 FSOD 데이터셋을 만들어 few-shot object detection에 활용할 수 있도록 했습니다.
 
 
Share article