Unifying Deep Local and Global Features for Image Search (DELG)

Inc Lomin's avatar
Oct 29, 2021
Unifying Deep Local and Global Features for Image Search (DELG)

개요

Image Retrieval 의 주요 접근방법인 local feature 와 global feature 를 모두 활용하여 주어진 문제를 해결하는 모델인 DELG(DEep Local and Global features)를 제안한 논문이다.

Motivation

Global Feature (= global descriptor)
이미지의 전체적인 맥락을 표현하나 이 과정에서 부분적인 시각적 정보가 소실됨
⇒ 서로 다른 위치에서 촬영한 이미지 사이의 유사성(Similarity)를 학습할 수 있다. (better at recall)
Local Feature (= local descriptor)
이미지의 특정 부분에 대한 기하학적 정보의 표현이 가능하나 전체적인 맥락을 모름
⇒ 특정 부분의 기하학적인 정보가 포함된 특징을 통해 더 확실한 유사성을 표현 가능 (better at precision)
 
일반적으로 두 특징을 모두 사용하여 문제를 풀어내는데, 서로 다른 모델에서 각각의 특징을 추출하게 되면서 비효율적으로 리소스를 사용하게 된다. (High Memory and Low Latency)

Contribution

주요한 Contribution은 다음과 같다.
  1. 기존의 비효율적인 학습 및 리소스 문제를 해결할 수 있는 Local Feature와 Global Feature를 end-to-end로 학습할 수 있는 모델(DELG)을 제안
  1. autoencoder 기반 차원축소를 통해 학습의 효율과 매칭 성능을 향상시킴 ( > PCA)
  1. Image-level supervision 만을 사용하여 end-to-end 학습을 가능하게 만듬

DELG

Overview

notion image
모델의 전체적인 흐름을 요약하면 다음과 같다.
  1. CNN Backbone 으로부터 feature map 을 얻는다.
  1. Global Feature, Local Feature 를 각각 계산한다.
  1. Global Feature 를 사용하여 Local Feature 를 re-ranking 한다.

Model

notion image
  1. 주어진 이미지에 대해 CNN backbone 을 통과시킨다. 마지막에 shallow(S), deep(D) activation을 각각 적용하여 2가지 feature map을 얻는다. 각각 local feature, global feature 를 계산하는데 사용한다.
    1. Deep Activation(D)을 aggregate 하기위해 GeM(Generalized-Mean) Pooling 을 적용. 이 후 whitening 을 위해 FC(Fully-Connected) Layer를 통과시킨다.
      1. notion image
        What is GeM?
        GeM 은 각 Feature 마다 weight를 주고 Pooling 하는 방식으로 학습가능한 pooling layer 라고 생각하면 된다.
        notion image
        : Average Pooling
        : Max Pooling
        Whitening
        입력 feature를 uncorrelated 하게 바꾸고 분산을 1로 만드는 작업
    1. 매칭을 위한 특징점을 추출하기 위해 Attention 모듈을 사용한다. 많은 local feature를 compact 하게 표현하기 위해 autoencoder 모듈을 함께 사용한다.
      1. , ⇒ (M은 작은 Convolution Network)
        , ⇒ (T는 오토 인코더 모듈, 개의 1 x 1 filter 적용)
        notion image

    Training


    Global Features
    데이터셋의 라벨이 매우 많기 때문에 식별력을 극대화 하기위해 ArcFace Loss Function를 사용한다.
     
    계산된 global feature 에 대해 과의 cosine similarity 를 계산 후 ArcFace margin 을 적용
    notion image
    notion image
    Classifier의 Loss로 Cross Entropy 를 적용한다.
    notion image
    Local Features
    2 가지의 loss 를 사용.
    1. Autoencoder가 원래 이미지로 얼마나 잘 복원하는지를 평가
      1. notion image
    1. attention module의 결과에 의해 강조되는 local feature의 식별력을 평가.
      1. 먼저 각 이미지 픽셀에 대해 각각 대응되는 attention score를 곱하여 평가에 사용할 keypoint를 선택
        notion image
        이후 classifier를 통과시킨 뒤 cross-entropy를 적용
        notion image
        이 과정은 결과적으로 적절한 attention 의 weight를 크게하여 식별력을 향상시키게 된다.
     
    Total Loss
    global classifier loss, local classifier loss, reconstruction loss 를 가중치를 주고 더한 것이 최종 loss가 된다.
    notion image
    Controlling Gradients
    앞서 언급한 Total Loss 에 대해 Naively Optimizing을 하는 경우 Attention Loss와 Reconstruction Loss가 backbone의 hierarchical feature를 왜곡하게 되면서 학습이 제대로 이루어지지 않는다고 한다. 지역적인 정보와 전역적인 정보 모두를 백본에 전달하게 되면서 이도저도 아니게 되어버린 것으로 예상된다.
    저자들은 이러한 문제를 다루기 위해 back-propagation 과정에서 Attention Loss와 Reconstruction Loss가 전파되지 않도록 stop gradient를 적용하였다. 결과적으로는 backbone은 Global Feature 에 대한 Loss만 적용하게 되며, 이를 통해 backbone이 hierarchical feature representation을 생성할 수 있도록 만들었다고 한다.

    Experiment

    Dataset
    • Training : GLD (1.2M Images from 15k landmark, train 8 : validation 2)
    • Validation :
      • Oxford and Paris(5k + 6k images from 11 + 11 landmarks, 70 test images)
      • GLDv2(4M train images from 203k landmarks, 118k test images)
    Model Initialization : ImageNet pretrained weights
    Augmentation : random crop → distorting →resize (512 x 512)
    Environment : batch 16, 21 Tesla P100 for 1.5M steps
    Hyperparameter
    • channels :
    • num attention layers : 2
    Input
    global feature : { } scale의 이미지에 대해 각각 global feature를 추출 후 합친 값을 사용local feature: global feature 와 마찬가지의 3 scale 뿐만 아니라 무거운 세팅을 위해 [0.25, 2] 범위의 scale 을 추가로 적용 (3 or 7 - default)
    notion image
     
    Local Feature
    notion image
    • 기존 PCA 기반으로 차원을 축소한 것보다 Auto Encoder를 사용한 것이 더 좋은 성능을 보여줌
    • Local Feature의 Loss에 대해 stop gradient를 적용하지 않으면 학습이 제대로 되지 않음
    notion image
    잘 학습된 ImageNet Pretrained 모델의 경우 레이어를 지날 때마다 activation sparsity 가 높아진다.
    여기서 사용한 backbone 의 경우 conv4(S) 에서 45%, conv5(D) 에서 82%를 가진다. activation sparsity 가 높으면 global feature 와 같은 high-level feature를, 낮으면 local feature 와 같은 low-level feature를 잘 표현한다고 이해하면 된다.
    위에서 언급된 naive training 이란, backbone에 local feature의 loss를 전파하도록 하는 학습 방법이라고 보면 된다. 결과를 분석해보면 다음과 같이 요약할 수 있다.
    • stop gradient를 적용하는 경우 ImageNet 과유사한 sparsity 가 유지된다.
    • stop gradient를 적용하지 않은 경우 학습이 진행되면서 Conv4의 activation sparsity 가 높아진다.
      • ⇒ hierarchical feature가 사라지게 되면서 Shallow Layer에서 지역적인 특징을 추출하지 못함
     
    Global Feature
    notion image
    • GeM polling, ArcFace Loss 가 성능향상에 큰 영향을 미침(9.5%, 14%)
    • global feature 를 따로 학습시킨 것과 비슷한 성능을 보여줌
      • ⇒ 같이 학습을 한다고 해서 따로 학습시킨 것보다 성능이 나쁘지는 않다.
     
    Image Retrieval Task
    notion image
    Local Feature Aggregation + re-ranking (A, previous work : DELF)
    • 이전 모델보다 대부분의 측면에서 성능이 향상됨
      • ⇒ global feature 기반 re-ranking이 더 좋은 성능을 만들어냄
    Global Feature Matching (B)
    • 이전 모델들보다 훨씬 좋은 성능
    • scale 이 클때 성능차이가 더욱 두드러짐
    Global Feature + Local Feature re-ranking (C)
    • Global Feature만 사용한 것보다 Local Feature에 대해 Global Feature 기반으로 re-ranking을 적용했을 때 성능이 크게 향상 (R101-DELG의 경우 약 9.1%)
    • 기존 sota 모델의 re-ranking 알고리즘인 Deep Spatial Matching(DSM) 보다 월등한 성능 (> 10%)
     
    Re-ranking experiment
    다른 local feature re-ranking 모델과의 비교
    (Re-ranking 에는 R50-DELG에서 학습한 Global Descriptor를 사용)
    notion image
    • 일부는 DELG로 학습한 Global Feature만 쓴 것과 큰 차이가 없는 성능
      • ⇒ 랜드마크 매칭에 적합하지 않은 feature가 생성된 것이 원인
    • D2-Net 의 경우 Re-ranking을 통해 더 좋은 성능을 얻게됨
     
    따로따로 학습한 것보다 같이 학습했을 때 더 좋은 성능을 보여준다는 것을 말하고 싶은 것으로 보임
     
    Latency and Memory
    notion image
    • 동일한 입력에 대해 Feature 를 추출하는 시간이 크게 개선된 것을 확인할 수 있음
      • R50-DELG (3 scales, 118ms) < R50-GeM(100ms) + DELF(3 scales, 98ms)
    • binarization을 적용하는 경우 데이터베이스 메모리 사용량이 크게 개선되는 것을 확인할 수 있음
      • R101-DELG* (21.1 GB) < R101-DELG (437.1 GB)
     
    notion image

    Reference

     
    Share article