[arXiv 2019] Combination of Multiple Global Descriptors for Image Retrieval

Fig 1. Paper

네이버에서 주최하는 Mapping & Localization challenge에 참여하여 서베이를 하던 도중 이 논문에 대해 알게되었습니다. 당시에는 image retrieval 이라는 task를 처음 시도하였기에 전체적인 틀 잡기에 급급하여 논문만 개인 저장소에 저장해두고 읽어보지는 않았으나, 현재 어느 정도 이론의 틀이 잡혔고 더 좋은 성능을 내야하는 상황에서 영감을 얻기 위해 읽고 리뷰합니다.

1. CGD ( Combination of multiple Global Descriptor )

논문에서 제안하는 프레임워크는 Combination of multiple Global Descriptor, 즉, CGD 입니다. 주로 image retrieval 에서 global descriptor 는 query 이미지에 해당하는 후보군 top k 이미지를 데이터 베이스에서 선별할 때 사용됩니다. 그래서 좀 더 image representation 이 좋은 network 로 얻은 global descriptor 는 query 이미지와 좀 더 유사한 top k 를 찾아줄 수 있게 되고, 바로 성능 향상으로 이어지게 됩니다. 이 때문에 global descriptor 를 추출해 내는 다양한 연구들이 진행되어 왔습니다. Convolution layer 뒤에 Fully connected layer 를 쌓는 방법, SPoC, MAC, GeM 과 같은 방법들이 제안되어 왔으며 network 들을 각각 따로 학습 시켜서 합치는 앙상블 기법도 사용되어 왔습니다. 그러나 앞서 말한 SPoC, MAC, GeM 같은 방법들은 각자 다른 성질에 집중을 하는 성질이 있어 데이터 셋마다 성능이 달라졌으며, 앙상블 같은 경우에 전체 network 의 크기가 커지고 학습 시간도 오래걸리며 복잡해지게 됩니다. 이러한 단점을 보완하고자 본 논문에서는 아래와 같은 장점을 지닌 CGD를 제안했습니다.

  • end-to-end 방식으로 학습합니다.
  • 앙상블로 network 를 크게하지 않아도 앙상블의 효과를 낼 수 있습니다.
  • 여러 데이터 셋에서 SOTA(state-of-the-art) 달성했습니다.
Fig 2. Network

Fig 2. 와 같이 제안된 CGD는 크게 두 개의 모듈로 이루어져있습니다. 주 모듈은 image representation 을 학습하기 위해 global descriptor 의 결합의 ranking loss를 이용하며, 보조 모듈은 classification task 를 풀면서 network 를 fine-tune 하게 됩니다.

1.1 Main module

주 모듈 내에서도 여러 개의 branch를 지니게 되며, 앞서 설명드린 global descriptor, SPoC, MAC, GeM 을 사용하게 됩니다. 각 브랜치에서 나올 feature vector 는 backbone 을 통해 나오는 feature volume을 차원 축소하고 정규화 하여 얻게 되며, 여러 branch 를 합쳐주고 정규화 해 줍니다. 이렇게 결합하게 되면 앙상블과 유사한 효과를 낼 수 있습니다.

1.2 Auxiliary module

보조 모듈에서는 주 모듈의 network 를 fine-tuning 하게 됩니다. Classification loss 를 이용하게 되는데, 이렇게 학습하게 되면 클래스 간의 성질을 가지는 image representation을 만들 수 있으며, 빠른 학습과 함께 안정적으로 학습하게 됩니다. 그리고 classification loss 로는 softmax cross-entropy loss 에서 temperature scaling 과 label smoothing 을 추가하게 됩니다.

(1)

\tau 가 temperature parameter 이며, 판단이 어려운 입력에 대해 좀 더 학습할 수 있도록 큰 gradient 값을 할당하게 됩니다. 그렇기에 over-fitting을 방지할 수 있고 embedding을 잘 학습시킬 수 있게 됩니다.

2. Experiments

Table 1. Rank=주 모듈, Both=주 모듈 + 보조 모듈

Table 1. 을 보았을 때, 주 모듈만 있는 상황과 보조 모듈도 함께 있는 상황을 비교했을 때 주 모듈과 보조 모듈이 같이 있는 것의 성능이 좋았습니다.

Table 2. temperature scaling 과 label smoothing 성능

Table 2. 를 보았을 때 temperature scaling 과 label smoothing 또한, 둘다 사용했을 때 성능이 제일 좋았습니다.

이러한 분석 이외에도 global descriptor를 concat 한 현재의 CGD 와 concat 없이 각각 loss를 구하는 방식, 정규화를 하지 않고 바로 concat한 방식들과 비교해 본 결과 CGD 가 가장 높은 성능을 내었습니다.

그리고 각각 CARS196, CUB200, SOP(Standard Online Products), In-shop(In-shop Clothes) 데이터 셋들에서 Recall 을 평가한 결과 SOTA 를 달성하게 되었습니다. 이를 통해 기존 global descriptor 들의 단점인 데이터 셋마다 다른 성능을 보였던 점을 보완하였다는 것을 알 수 있었습니다.

3. Reference

[1] https://arxiv.org/pdf/1903.10663.pdf
[2] https://cyc1am3n.github.io/2019/05/02/combination-of-multiple-global-descriptors-for-image-retrieval.html

Author: 조 원

2 thoughts on “[arXiv 2019] Combination of Multiple Global Descriptors for Image Retrieval

  1. ‘주로 image retrieval 에서 global descriptor 는 query 이미지에 해당하는 후보군 top k 이미지를 데이터 베이스에서 선별할 때 사용됩니다.’에서 ‘image retrieval’, ‘global descriptor’, ‘query 이미지’, ‘데이터 베이스에서 선별할 때’ 라는 말들에 대해 조금 설명해 주실수 있나요? 이미지 classification이나 localization과는 다른 목적의 모델인것으로 이해했는데, 맞나요?

    1. Image retrieval 이란 class의 수가 정해지지 않은 classification이라고 생각하시면 이해가 편하실 듯 합니다. Classification에서는 단순히 이 사진의 class가 무엇인지를 맞추는 것이 주된 문제였다면, image retrieval에서는 입력 사진과 가장 유사한 사진을 미리 준비된 데이터 베이스에서 선택하여 class 를 맞추게 됩니다.
      매 입력 사진을 주로 query 이미지라고 부르며 global descriptor란 데이터 베이스에서 query 이미지와 유사한 이미지를 찾을 때 사용하는 encoding vector 입니다. 다만 SIFT 같은 알고리즘과 달리 global descriptor 는 한 이미지의 전 영역에 대해 서술하기 때문에 이미지 하나당 하나의 N 차원 vector로 표현됩니다.
      Classification의 다음 스텝으로 주로 검색 분야에서 많이 사용하는 방법론이라고 생각하시면 될 것 같습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다