cs [논문 리뷰] Combination of Multiple Global Descriptors for Image Retrieval
본문 바로가기
  • 매일 한걸음씩
  • 매일 한걸음씩
개발/CV(Computer Vision)

[논문 리뷰] Combination of Multiple Global Descriptors for Image Retrieval

by 시몬쯔 2021. 5. 10.
728x90
반응형

 

Image Retrieval 즉 이미지 검색과 관련된 논문을 검색하던 중 Paper with code에서 굉장히 높은 성능을 보여주는 것에 관심을 가져 본격적으로 리뷰를 하기로 결심했다.

 

네이버/라인 분들이 쓰신 논문이라 더 정이 가기도 한다. 암튼 시작!!

 


Abstract

 

최근 이미지검색 연구들은 다른 모델들을 앙상블하고 다양한 global descriptors를 결합하는 방법이 성능을 개선한다는 것을 보여주고 있다.

하지만, 앙상블을 하기 위해 여러모델을 학습하는 것은 어렵고 시간과 메모리소모가 크다는 점에서 비효율적이다.

 

이 논문에서는 새로운 프레임워크를 제안하는데, 이는 여러 end-to-end방식으로 학습이 가능한 global descriptors를 통해 앙상블 효과를 갖는다. 이 프레임워크는 유연하고 확장이 가능하다는 큰 장점을 가지고 있는데 이를 정량적, 정성적 분석으로 논문에서 보여준다. 또한 실험을 통해서 여러개가 결합된 descriptor가 하나의 global descriptor보다 성능이 우수한 것을 확인할 수 있다.

(모델이 다양한 feature 특징들을 사용할 수 있기 때문에) 

 

 


 

Introduction

 

2012년에 열린 ImageNet competition이후로 CNN기반의 image descriptors는 비전에서 일반적으로 사용되고 있다. 

또한, 최근 Deep CNN기반의 최근 연구들이 이미지검색 분야에서도 나타나고 있는데 그 전까지 이미지검색 분야에서는 전통적인 방법(local descriptor matching, re-ranking with spatial verification)을 사용해왔으므로 이미지 검색분야에서도 딥러닝으로 인해 흐름이 바뀌고 있다고 볼 수 있다.

 

Global-pooling방법에 의해 만들어진 대표적인 global descriptors는 다음 방법들을 포함한다.

 

1. Sum Pooling of Convolutions(SPoC)

2. Maximum Activation of Convolutions(MAC)

3. Generalized Mean pooling(GeM)

 

 

이러한 global descriptor의 성능은 데이터셋마다 다른데, descriptor마다 특징이 다르기 때문이다.

예를 들어, SPoC는 좀 더 큰 영역에 초점을 맞추고 MAC는 좀 더 디테일한 영역에 초점을 맞춘다.

 

위에서도 언급했듯이, 요즘 연구들은 앙상블 방법을 이미지검색에 도입하는 방식을 연구하는데 초점을 맞추고 있다. 기존의 전통적인 앙상블 기법이 여러 모델이 따로 학습을 하고 결합된 모델을 사용하는 방식으로 성능에 개선을 보여줘왔기 때문이다. 

 

최근 Google landmark retrieval challenge의 높은 순위의 방법론은 다른 global descriptors를 결합함으로써 성능을 올렸는데 이러한 global descriptors는 따로 학습된 descriptors이다. 하지만, 이러한 방법은 자연스럽게 시간과 메모리를 크게 차지한다.

 

이러한 문제를 해결하기위해, 다른 앙상블 방법론들도 제안되었는데, 이는 검색모델을 end-to-end 방식으로 학습하는 방식이다. 이러한 방식들은 까다로울 수 있는데,  learners간의 다양성을 제어하기 위해 특수하게 전략과 loss function을 디자인해야하기 때문이다. 이러한 디자인 방식에서 또 인력이 소모되게 된다.

 

위의 시간/메모리/인력 소모를 줄인 논문이 바로 이 논문이다. 이 논문의 저자들은 어떻게 여러개의 global descriptors를 이용해서 여러개의 learner를 학습하고 learner들간의 다양성을 제어하는 것 없이 앙상블 효과를 얻었는지에 대해 초점이 맞춰져 있다. 다음과 같이 이 논문의 기여를 정리할 수 있다.

 

(1) 새로운 프레임워크 제안.

: End-to-end 방식으로 학습이 가능한 여러개의 global multiple global descriptors를 결합한 방식의 프레임워크를 제안했다. 유연하고 확장이 가능한 프레임워크로 하나의 descriptor를 위해 여러 타입의 global descriptors를 최초로 사용하였다. '

 

(2) 정량적과 정성적인 분석으로 여러개의 global descriptors를 합치는 것에 대한 효과를 조사했다.

 

(3) 이렇게 제안된 프레임워크는 몇개의 데이터셋에서 SOTA의 성능을 보여준다.

 

 


Proposed Framework

 

이 논문에서는 CGD framework라는 간단하지만 효과적인 이미지 검색 프레임워크를 제안한다.

CGD 프레임워크는 여러개의 global descriptors를 쌓아서 만들어진 통합된 descriptor를 end-to-end 방식으로 학습한다.

 

 

 

위의 그림에서도 볼 수 있듯이 CGD는 CNN backbone과 두 개의 modules로 구성되어 있다.

 

첫번째 module은 main module로, ranking loss로 image의 representation을 학습한다. 두번째 module은 보조적인 역할을 하는 module로 CNN을 classification loss로 fine tuning한다. 전체 프레임워크는 이 두개의 모듈로부터 나오는 ranking loss와 classification loss를 합쳐 end-to-end방식으로 학습된다.

 

 

이제 하나씩 자세히 살펴보자.

 

1. Backbone Network

 

앞서 언급했듯이 CNN backbone이 사용되는데, 예시로는 BN-Inception, ShuffleNet-v2, ResNet 그리고 그 외 변형 모델등이 있다. 정보 손실을 최대한 막기위해, 논문 저자는 Stage 3와 4사이의 down-sampling 과정을 삭제했다고 한다. 이러한 삭제를 통해 14X14 사이즈의 feature map이 나오게 되며 좀 더 많은 정보를 가진 feature가 된다.

 

2. Main Module : Multiple Global Descriptors

메인이 되는 모듈은 마지막 convolutional layer에서 다양한 global descriptors를 사용함으로써 다양한 image representation을 내는 여러개의 branch로 구성되어 있다. 이 논문에서는 각 branch에서 3개의 global descriptor 타입을 사용했는데, SPoC, MAC 그리고 GeM이다.

 

Image $I$가 주어졌을 때, 마지막 convolutional layer의 output은 3차원 텐서로 C X H X W의 차원이다. 여기서 C는 feature map의 수가 된다.

$\mathcal{X}_c$가 H X W차원의 activation들의 집합이라 해보자.(c는 feature map)

 Global descriptor는 $\mathcal{X}$를 input으로하여 벡터 $f$를 pooling과정을 거쳐 만들어낸다. 이러한 pooling과정을 식으로 나타내면 다음과 같다.

 

위의 식에서 $p_c$가 1일 때가 SPoC(Sum Pooling of Convolutions), $\inf$로 갈 때가 MAC(Maximum Activation of Convolutions), 그 외 케이스가 GeM이 된다. 

 

i번째 branch에서 나온 Output feature vector $\Phi^{\left(a_{i}\right)}$ 는 FC layer와 $l_2$ normalization layer를 거쳐 dimeonsionality reduction에 의해 만들어진다.

 

 

Final feature vector는 여러 branches의 output feature vectors를 결합하고 $l_2$ normalization를 거쳐 만들어진다.

 

이러한 Descriptor는 어떤 ranking loss를 사용해서도 학습이 가능하다. 저자들은 batch-hard triplet loss를 사용했다고 한다.

 

CGD framework는 다양한 global descriptors를 결합하는 점에서 두 가지 장점을 갖는데,

 

첫번째는 몇 개의 추가적인 파라미터만 가지고 앙상블의 효과를 얻는다는 것이고, 두번째는 어떠한 diversity 제어없이 각 branch의 output에 대해 다양한 특징을 자동으로 제공한다는 것이다. (기존에는 잘 디자인해서 컨트롤 했었어야 했다.)

 

 

3. Auxiliary Module : Classification Loss

 

Auxiliary Module은 Main module의 첫번째 global descriptor에 기반해서 CNN을 classification loss를 사용하여 fine-tuning한다. 이를 통해, class간의 거리를 maximize하여 model이 빠르고 안정적으로 학습할 수 있게 한다.

 

Softmax loss는 다음과 같다.(w/ label smoothing & temparature scaling)

 

 

Temperature parameter $\tau$는 더 어려운 예시에 대해 더 큰 gradient를 지정하고 class내에서 데이터가 compact하게 만들고 class사이는 벌어지게 만든다. Label smoothing는 모델을 개선시키는데 이로써 더 모델이 일반적으로 작동하게 만든다. 

 

이러한 Label smoothing과 temparature smoothing($\tau$)으로 인해 overfitting을 예방하고 더 잘 embedding을 학습할 수 있게 된다. 

 

 

 

4. Configurations of Framework

 

CGD framework은 global descriptor의 branch를 늘림으로써 확장이 가능하다. 

앞서 말했듯이 논문에서는 SPoC(S), MAC(M), GeM(G)를 사용하고 auxiliary module을 위해 첫번째 globa descriptor가 사용됐기 때문에 12가지의 설정이 가능하다. (S, M, G, SM, MS, SG, GS, MG, GM, SMG, MSG, GSM)

(예를 들어 SMG의 경우에, first descriptor로 S가 사용되고 뒤에 M, G가 concat된 descriptor형태이다.)

 

각 Global descriptor는 각각의 특징을 가지기 때문에 성능은 데이터셋에 따라 다르다. 그럼 어떻게 최적의 설정을 찾을 수 있을까?

👉🏻 하나씩 평가를 해보고 최고와 second highest descriptor를 선정해 결합하는 형태이다. 

 

앞서 언급했듯이, 이 프레임워크는 몇개의 파라미터만 추가해서 앙상블처럼 사용하므로 시간과 메모리 측면에서 효율성을 가진다. 

 

 


 

뒷 부분은 다음 포스팅에서 이어집니다.

 

 

728x90
반응형

댓글