Zhiyuan You, Kai Yang, Wenhan Luo, Xin Lu, Lei Cui, Xinyi Le
https://arxiv.org/abs/2201.08959
본 연구는 few-shot object counting을 통해 query 이미지에 밀집된 target object에 대해 counting을 진행한다.
Similarity comparison module과 feature enhancement module을 포함하는 새로운 learning block을 제안한다.
우선 score map을 구하고 point-wise similarity를 활용하여 support feature으로 query feature 향상시킨다.
이렇게 함으로써 support image와 유사한 영역에 집중하게 만들어 다른 물체들 간 명확한 경계를 이끈다.
SOTA 성능을 얻음
본 논문은 기존 단일 class에 대한 object를 counting하는 방식이 아닌 few-show learning을 접목시킨 방법이다.
이를 통해 보지 않았던 class에 대한 support를 기준으로 counting이 가능하게 한 논문이다.
이때 few shot learning을 통한 object class의 similarity를 구하기 위해 Similarity-Aware Feature Enhancement Block을 도입한다. 본 block은 Similarity Comparison Module(SCM)과 Feature Enhancement Module(FEM) 둘로 구성되어 있다.
이들을 통해 더 SOTA에 가까운 few shot object counting이 가능하다.
Object Counting은 query image의 특정 물체가 얼마나 있는지 조사하는 것을 목적으로 한다. 그러나 학습한 모델은 특정 물체 class에 대해서만 counting하기때문에 제약이 있다.
최근 Few-Shot object Counting(FSC)를 통해 일반화 문제를 풀어 가고자 하고 있다. 이 방법을 통해 우리는 단일 모델을 사용하여 다양한 물체에 대한 counting가 가능하도록 하고 추가적인 재학습 없이도 모델이 새로운 class에 적응하도록 한다.
최근 Few-Shot object Counting(FSC)의 2가지 방법
1) Feature-based approach (Figure 2. (a))
2) Similarity-based approach (Figure 2. (b))
이에 따라 본 논문에서는 Similarity-Aware Feature Enhancement bloack for object Counting(SAFECount)를 제안한다.
2가지 모듈 제안 : Similarity Comparison Module(SCM), Feature Enhancement Module(FEM)
(위 Figure 2. (c), 아래 Figure 3)
SCM
SCM은 feature projection을 학습한 후 projected feature들 간의 비교를 통해 score map을 유도한다.
모든 support 이미지들과 관련한 score map들을 모음으로써 reliable similarity map을 유도한다.
이후 exemplar dimension과 spatial dimension에 따라 normalizing을 진행
FEM
FEM은 point-wise similarity를 수행하고 query feature과 support feature의 융합한다.
이로써 enhanced query feature은 support 이미지에 의해 정의된 exemplar object와 유사한 영역에 더 집중한다.
더 정확한 counting이 가능하게 함.
결과적으로 다양한 데이터 세트에 대해 SOTA보다 향상된 결과를 보임
Class-specific object counting : crowd counting
Few-shot object counting(FSC)
Few-shot learning : 새로운 물체를 탐지하기 위해 input image와 support image 간 similarity를 활용한다.
Few-Shot object Counting(FSC)은 적은 양의 support image를 사용하여 query image에 있는 exemplar object의 숫자를 세는 것을 목표로 한다.
한 개의 query image에 K 개의 support image를 사용할 때 K-shot FSC라고 한다.
Similarity-Aware Feature Enhancement Block의 Notation(표기)
$f_S$ : support feature
$f_Q$ : query feature
Similarity Comparison Module (SCM)
$R_0$ : score map
$R$ : reliable similarity map
Feature Enhancement Module (FEM)
$f_R$ : similarity-weighted feature
$f_Q^\prime$ :
Density map : Regress($f^\prime_Q$)
Similarity Comparison Module (SCM)
reliable similarity map을 구성하기 위해 3 단계를 거침
Step 1: Learnable Feature Projection
$f_S$ & $f_Q$는 1x1 convolutional layer로 project
shared layer normalization 추가
Step 2: Feature Comparison
$g(\cdot)$ : 1x1 convolutional layer + layer normalization
Step 3: Score Normalization
$R_{EN}$ : Exemplar Normalization (ENorm)
$R_{SN}$ : Spatial Normalizationo (SNorm) (최대 1, 0~1 사이 값)
element-wise multiplication
Feature Enhancement Module (FEM)
feature는 similarity보다 많은 정보를 담고 있지만 support query과의 관계를 덜 정확하게 포착한다.
이에 similarity를 feature 향상을 위한 guidance로 활용한다. → f_S를 Flip하여 kernel로 활용
2 단계로 구성됨
Step 1: Weighted Feature Aggregation
flip는 horizontally vertically 모두 진행
Step 2: Learnable Feature Fusion
$h(\cdot)$ : 2개의 conv layer
Comparison with Attention
query, key, value를 사용하는 고전적인 attention module : similarity(q,k)v
spatial location 정보가 없는 기존 attention module과 달리 제안한 SAFECount는 spatial 구조를 유지함으로써 물체간 깔끔한 경계를 학습할 수 있다.
Feature Extractor
ImageNet으로 pre-train된 fixed ResNet-18을 feature extractor로 사용
Resize + Concatenate
support feature는 ROI pooling으로 얻음
Regression Head
f`_Q를 density map으로 바꿀 때 여러 conv layer들과 leaky ReLU, Bi-linear upsampling 진행
Multi-block Architecture
query feature f_Q와 enhanced feature f`_Q는 같은 shape
이를 반복적으로 활용 가능
논문에서는 4회 block 사용
Object Function
많은 counting dataset는 target object의 좌표가 annotate되어 있다.
우리는 label coordinate로부터 ground-truth density map D_GT를 생성하고 adaptive window size를 활용한 Gaussian smoothing을 진행한다.
이를 우리가 생성한 Density map과 MSE Loss 진행
i번째 query 이미지의 예측된 그리고 GT 개수를 활용한 성과평가 지표를 계산
query image size : 512 x 512
query feature map size : 128 x 128
support feature map size : 3 x 3
projected feature : 256
# multi-block : 4
Optimizer : Adam
Epochs : 200
Batch size : 8
learning rate : 2e-5, 80 epoch마다 0.25배씩 감소
Tab. 5a : SCM and FEM
모두 사용 권장
Tab. 5b : Score Normalization
ENorm과 SNorm 모두 사용 권장
Tab. 5c : Block Number
4일 때가 가장 좋음
Tab. 5d : Regressing from Similarity Map vs Enhanced Feature
4 block Enhanced Feature로부터 density map 회귀 권장
Tab. 5e : Comparison with Attention
제안 방법이 feature의 Spatial structure 활용에 있어 더 좋음
Tab. 5f : Kernel Flipping in FEM
Flip하는 것이 더 좋음
Tab. 5g : Training vs Freezing Backbone
Backbone은 Freeze하는 것이 더 좋음
Few-Shot object Counting을 위해 SCM과 FEM으로 구성된 Similarity-Aware Feature Enhancement Block를 제안한다.
이들을 통해 모델은 support image와 유사한 영역에 더 많은 과심을 가지고 이에 따라 밀집된 물체들의 분명한 경계를 구분한다.
ImageNet으로 pre-trained ResNet18을 feature extractor로 선택
Q : 3 x 512 x 512
resize & concatenate & conv dim 256: 256 x 128 x 128
ROI pooling : 3 x 3
K-shot support feature : K x 256 x 3 x 3
https://github.com/zhiyuanyou/SAFECount
실행을 위해서는 거의 다 shell로 실행해야 함.
train은 확인했으나 eval이나 test는 error 때문에 확인 못함.