안녕하세요. 첫번째 X-review네요.
바로 시작하겠습니다.

1. Introduction
VPR에서는 주로 two stage로 retrival을 진행하는데, 먼저 global retrival과 reranking을 진행합니다. 지금까지의 논문들은 먼저 global retrival로 top N개의 이미지를 먼저 선정하고, 이 이후에 RANSAC와 같은 geometric verification을 진행하는 방식으로 reranking을 진행했습니다. 그러나 R2Former은 geometric한 정보뿐만 아니라 task-relevant information도 사용하여서 reranking을 진행할 수 있다고 얘기하고 있습니다.
그리고 R2former는 backbone으로 기존 CNN이 아닌 ViT를 선택했습니다. 최근 연구들이 VPR에서 ViT가 강한 성능을 보이기에 선택했다고 얘기하지만, 특이하게도 local한 영역을 보기에 local information이 encode되는 CNN계열과 다르게 ViT계열은 global한 receptive field를 가지기에 local한 matching을 바로 진행하기 어렵다고 지적하고 있습니다.
이 논문의 contribution은 아래와 같습니다.
- One-stage(global retriaval+reranking)로 two-stage 방법론보다 높은 성능
- 중요한 local feature에 attention하는 reranking module 설계
- 기존 reranking 방법론보다 빠르고, 메모리도 적게 듦

2. Problem Formulation and Training Objective
먼저 positive와 negative를 정의하고 있습니다.
positive는 10m이내이며, embedding space상에서 가장 가까운 image를 positive로 사용합니다. 단순히 제일 가까운 거리를 기반으로 택하는 것이 아닌, 10m이내이며 encoder를 타고나온 feature embedding을 기반으로 선택합니다.
negative는 25m 이상인 이미지를 전부 negative로 정의합니다.
query, positive, negative의 feature embedding을 E_q, E_p, E_n으로 표현한다면
global retrieval loss는 아래와 같습니다.

(||와 제곱은 L2 norm을 의미하고,m은 margin을 의미합니다)
local한 matching을 위한 reranking loss는 아래와 같습니다.
reranking module은 2개의 이미지를 input으로 받아 two-logit score L을 내놓습니다.

(L: logits score, I: GT label for query-reference pair, CE: Cross Entropy)

3. Global Retrival Module
Gloabl한 descriptor를 뽑는 module입니다. ViT를 backbone으로 사용합니다.
특징으로는 query와 reference 이미지 모두 하나의 encoder를 사용합니다.
global descriptor를 뽑아내는 과정에서 aggregation이나 keypoint extraction과정이 없습니다. 해당 논문은 transformer 모듈만을 통해서 feature들을 뽑아내고 있는 점을 강조하고 있습니다. 자세히 알아보겠습니다.
먼저 이미지를 patch token으로 변환한 후 ViT를 통과시킵니다. (추가적으로 Positional Embedding을 interpolation하는 방식으로 다양한 해상도도 처리 가능하게 해줬다고 얘기하고 있습니다)
그리고 encoder를 거친 CLS token을 linear layer를 거쳐 global feature용 256차원으로 변환해줍니다.
또한 뒤에서 두번째 layer(penultimate)에서 뽑은 patch tokens을 local feature용 128차원으로 변환해줍니다.
(local feature를 256이 아닌 128차원으로 뽑은 이유는 연산과의 trade-off 때문입니다)
global feature: CLS[B, 1, 768] => [B, 1, 256]
local feature: patch tokens[B, N, 768] => [B, N, 128]
4. Reranking Transformer Module
이 부분이 핵심이라고 생각합니다. 결국 reranking 과정은 local한 level에서 판단을 해야하는데, database와 query의 semantic정보(db에는 없는 차량이 나타나는 경우 등)가 다르거나, 환경(시간대, 밤낮)이 다른 경우를 다루기 위한 방법을 R2former는 matching을 이용하여 해결합니다. 물론 기존의 알고리즘적 방법론이 아닌 transformer를 이용한 module을 제시하여 해결합니다. 자세히 알아보겠습니다.
640×480의 이미지가 있고, 한 patch가 16×16이라면 1200개의 patch가 생깁니다. 저자는 patch들 중 일부만 의미있는 정보를 담고 있다고 주장합니다. 기존 연구들은 모든 scale의 local feature를 다 쓰거나, 추가 module을 이용해서 attention map을 만들었지만, 저자는 기존 attention map의 topK만 쓰는 방법을 통해, 더 간단하고 성능도 잘 나오는 방법을 택했습니다.
1200개의 patch와 CLS token 1개의 상관관계는 스스로 내적해서 (1200+1) x (1200+1)의 correlation matrix로 표현할 수 있습니다. 하지만, global retrival에서 CLS token의 정보를 이용해서 retrival을 진행했던 점을 생각하면, CLS token이 집중하는 곳이 global context에 기여하는 token임을 알 수 있습니다. 따라서 CLS token 기반 500개의 patch를 뽑고, 각 patch마다 x,y좌표, attn value을 추가로 더하여 131(128+3)차원으로 저장합니다.
이제 뽑은 patch들과 정보를 가지고 reranking을 진행합니다.
기존 RANSAC과 같은 geometric verification은 positional value만 사용하기에, R2former는 positional value에 attention value, correlration을 같이 고려해줍니다. 위에서 뽑은 500개의 token에 대해 각 좌표, attention value, cosine similarity를 계산한 500x500x7의 correlation matrix를 만듭니다. 연산의 효율을 위해, 각 token에 대해 feature 공간에서 가장 가까운 5개만 선택하여 2개의 500x5x7의 matrix로 축소합니다. 그리고 concat한 후 linear layer을 통해 1000x5x32로 확장시킵니다.
그 후 2개의 transformer block을 통과시켜 최종적으로 reranking score를 뽑아냅니다.
transformer block1은 가장 가까운 5개의 쌍에서 중요한 정보를 CLS token으로 압축하고,
transformer block2는 1000개의 cls token정보를 32차원의 vector로 변환합니다. 그리고 최종적으로 linear head를 거쳐 True/False(같은 장소 여부)로 이진 분류합니다.

5. Experiment
학습 데이터셋은 MSLS(Mapillary Street-Level Sequences)를 사용했습니다.
평가 데이터셋은 MSLS의 Val / Challenge set, Pitts30k, Tokyo 24/7, R-SF, St Lucia.
또한 25m 이내인 경우를 정답으로 처리했습니다.
Comparision with State-of-the-art

기존의 SOTA들과 비교하였을 때의 결과입니다. Validation set에서는 2.9%의 향상이 있었고, Challenge Set에서는 9.1%라는 큰 향상이 있었습니다. MSLS라는 대규모 데이터셋으로만 학습했음에도 Pitts, Tokyo에서도 SOTA를 달성함을 보아 대규모 데이터로 학습하는 것이 real-world deployment에 횔씬 좋다고 주장합니다.

기존 Reranking 방법론들은 주로 RANSAC기반의 Geometric Verification을 사용합니다. CPU에서 작동하는 RANSAC과 다르게 R2Former은 GPU상의 Forward Pass 한번으로 동작하기에 병렬처리에 용이하고 기존 방법론 대비 20배 빠르다고 주장하고 있습니다. 그리고 이미지당 Top-500개의 local feature만 저장하기에 메모리 역시 189배 절감할 수 있다고 주장합니다.
6. Ablation Study

Ablation study를 통해, RANSAC기반의 Geometric Verification보다 횔씬 우수한 성능을 보인다는 것을 증명했습니다. 또한 추론 시간도 RANSAC의 22% 미만으로 뛰어난 성능 뿐만 아니라 추론 속도 역시 좋음을 보였습니다.

다양한 Backbone을 적용해보아 ViT가 가장 높은 성능을 낸다는 사실을 알 수 있었습니다. 그런데 의외로 ViT-Small와 ViT-Base의 성능차이가 Reranking을 적용했을 때 차이가 적었고, 또 Reranking을 적용했을 때는, ResNet50기반의 Backbone도 ViT와의 성능 간극을 상당히 줄인 것도 볼 수 있었습니다.
7. Visualization

Attention map을 보기 infomative한 부분에 잘 집중하고 있었고, RANSAC처럼 엄격하게 기하학적 부분을 매칭하진 않았지만, 의미 있고 정확한 매칭 쌍을 찾고 있음을 보여주고 있습니다.