참고로, Detect-to-Retrieve: Efficient Regional Aggregation for Image Search(review, paper 참고) 의 연구에서는, NetVLAD의 concept를 준 deep featuere + 고전(??) vlad기반으로 SOTA를 기록한 연구임
이러한 특징으로 3가지 데이터셋(Holidays, Oxford5k, Paris6k)에 대해 SOTA
관련 코드는 공개 안했음.
The Proposed Method
the main differences
각각의 2-scales local features's max-pooling를 결합한 > NetVLAD
2x2 & 3x3 max sampling
여기서 주의할점은, 2 scale은 multi-layer feature가 아니라, 1 scale layer로 input으로 하여 2x2 & 3x3를 적용한 의미하는 것같다.(그림1를 보면)
hard+semi-hard sampling 기반의 triplet loss > 이러면 극도의 hard sample를 제거하는 목적
이에 대한 구조
Pooling of local CNN features
max-pooling할때, kernel 크기를 2x2 & 3x3로 함. (condition stride=1)
좀더 정교하고 세밀한 representation 획득하기 위해 ( so to obtain representations at finer and larger detail.)
이 의미는 한 layer로부터 커널의 크기가 다른 activation function을 둔다라는 의미.
최종적으로 1 × 1 × f “column feature” 형태의 feature 구성을 위해라는데, 이 의미는 local descriptor에 대한 global descriptor로 convert하는 형태를 의미하는 것 같다. > 이런 과정을 aggregated ..,이라고 표현
이는 위의 두개의 feature를 concat하는 형태로 multi-scale descriptor 로 표현한다.
보통 kernel 관련 변화는 context라고 하는데, 여기서 convolution 연산이 아닌 max-pooling연산이라 그런가??(좀 고민해봐야함.)
aggregated : 여러개의 local descriptor > global descriptor로..
고전적인(old ??) vlad 개념으로 부터 차용한 DL 기반의 NetVLAD로 구성한다.
https://arxiv.org/abs/2004.09695