아이공의 AI 공부 도전기

[논문 Summary] CFOCNet (2021 WACV) "Class-agnostic Few-shot Object Counting"

 

     

 

논문 정보

Citation : 2023.02.03 금요일 기준 21회

저자

Shuo-Diao Yang, Hung-Ting Su, Winston H. Hsu, Wen-Chin Chen

 

논문 링크

Official

https://openaccess.thecvf.com/content/WACV2021/papers/Yang_Class-Agnostic_Few-Shot_Object_Counting_WACV_2021_paper.pdf

 

Arxiv

 

 

 

논문 Summary

Abstract

 

 

0. 설명 시작 전 Overview

 

Few shot learning을 활용한 object counting을 진행한 첫 논문이라 주장.

보지 못한 object class에 대한 count가 가능하도록 함.

이를 위해 Class-agnostic Few shot Object Counting Network(CFOCNet)을 제안함.

본 모델은 query image와 reference image 간의 similarity를 구함으로써 자체적으로 count가 가능하게 함.

Resnet을 활용하고 matching score의 다양한 크기들을 모아 자동 학습시킴.

 

1. Introduction

 

일반적인 Object counting은 사람, 차, 동물 등의 물체 카테고리에 맞게 그 개수를 세는 것에 초점이 맞춰져 있다. 그러나 이는 다른 물체 class에 대해서는 불가능하다.

 

다른 물체에 대해서 counting을 하기 위해서는 

1) 재학습이 필요하고 2) label된 큰 데이터가 필요하고 3) 많은 시간이 필요하다.

 

object의 숫자를 세는 방법은 크게 2가지

1) object detector에서 개수를 세는 것

2) 예측한 density map을 sum하는 것

 

본 논문에서는 Class-agnostic Few-shot Object Counting Network (CFONet)을 제안한다. 이 모델에서 query 이미지 한 장과 몇 장의 reference 이미지들을 입력으로 넣으면 임의의 object class에 대한 counting 정보를 알 수 있다.

 

본 네트워크는 query 이미지와 reference 이미지들간 다른 크기별 similarity를 계산하는 효율적인 네트워크다.

 

Resnet을 사용할 것이고 데이터 세트로는 COCO dataset으로 훈련한다.

 

2. Related work

Few-shot learning - 중략

Object counting - 중략

 

3. Methods

 

문제 정의

 

주어지는 것 : 여러 종류의 object가 포함된 한 장 query 이미지, query 이미지에 존재하는 한 종류의 객체에 대한 reference 이미지들

해결하는 것 : query 이미지 속에 reference 이미지의 객체가 몇 개가 있을까

 

입력 유의

 

본 모델에서 활용하는 COCO Dataset에서는 한 장의 query 이미지에 다양한 임의의 object가 존재하므로 임의의 하나의 종류 class를 선택한다.

 

훈련 단계에서 label 정보 없이 network에 한 장의 query 이미지와 다수의 reference 이미지들을 넣는다.

testing 단계에서 training data에 보이지 않았던 reference 이미지 카테고리 object를 통해 합리적인 결과를 도출한다.

 

Network architecture

본 네트워크는 two-stream Resnet encoder와 doecder로 이루어짐 

 

Resnet encoder

 

encoder는 2개의 stream을 가짐.

하나는 query stream 또 다른 하나는 reference stream

강력한 feature representation때문에 Resnet-50에서 3 개의 block을 사용

 

query stream : i는 3개의 Resblock을 각각 나타냄

reference stream : i는 3개의 Resblock을 각각 나타냄, j는 k개의 shot을 나타냄 (k-shot)

  

Matching mechanism

 

Resnet Encoder에서 추출한 reference image 결과들을 j 차원에 따라 pooling operation을 진행하여 종합함.

 더 많은 reference 이미지를 제공하면 더 좋은 성능을 이끌어낼 수 있음.

 

$R_i^{query}, R_i^{ref}$ 사이의 matching socre를 구하기 위해 아래와 같이 진행.

 

단, 이때 계산량 감소때문에 $r \times r$의 feature map resolution 감소를 위한 max pooling operation를 진행함. 진행시 spatial dimension(height와 width)를 따라 진행. 경험적으로 r=4가 가장 좋음

 

또한, self-attention mechanism을 query branch에 적용함으로써 모델이 반복적으로 발생하는 같은 물체에 대한 self-similarity에 집중할 수 있게 한다.

 

 

Density map decoder

 

 

 

 

Conv : $1 \times 1$을 통해 채널을 1로 줄임

Sum을 통해 scalar로 바꿈

Softmax를 통해 서로 다른 matching score map에 상응하는 weight normalize 진행

 

Matching Score map을 합치기 위해 다음과 같이 계산

 F는 원본 이미지의 1/8이므로 transpose conv와 bilinear upsampling을 진행

 

4. Experiments

 

Dataset

COCO dataset을 사용

80개의 category 중 60개는 훈련에 20개는 test에 사용 

 데이터의 instance 개수에 따른 이미지의 양의 차이가 있어 5개 혹은 그 이상의 instance가 있는 이미지를 선별함.

 

Ground Truth Density Map

 

 

COCO dataset은 bounding box annoation만 있으므로 중앙에 해당하는 부분만을 1로 놓고 Gaussian kernel을 conv하여 Ground Truth Density Map 구성함.

 

Settings

 

query 이미지는 랜덤하게 256 x 256으로 crop하고 0.5의 확률로 flip

reference 이미지들은 padding과 함께 64x64로 resize

matching score를 계산에 사용하기 위한 1x1 conv feature map channel을 256으로 줄임.

본 논문에서는 5-shot matching problem을 사용

 

Loss

 

 

$P_i$  : 예측한 Density Map

$GT_i$ : Ground Truth Density Map

 

 

SSIM 지표를 활용한 regularization을 적용. 

$\lambda = 1e - 5$ 

Adam Optimiaer

learning rate $1e-4$

batch size 20

Tensorflow

V100 GPUs 사용

 

Evaluation

 

 

Results

 

 

 

Ablation Study

weighted fusion과 self-attention 활용이 필요함. 

 

Reference

공식 Github

https://github.com/SinicaGroup/Class-agnostic-Few-shot-Object-Counting

 

GitHub - SinicaGroup/Class-agnostic-Few-shot-Object-Counting: pytorch implementation of a WACV 2021 Paper "Class-agnostic Few-sh

pytorch implementation of a WACV 2021 Paper "Class-agnostic Few-shot-Object-Counting" - GitHub - SinicaGroup/Class-agnostic-Few-shot-Object-Counting: pytorch implementation of a WACV 2021...

github.com

 

도움이 되는 YouTube 1. WACV Official Paper Presentation

 

https://youtu.be/4sncN5BpDsI

 

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading