Deep Image Retrieval

**딥 이미지 검색(deep image retrieval)**은 수공예 전역 이미지 디스크립터(시각적 단어 가방, VLAD, Fisher 벡터)를 신경망이 생성하는 임베딩으로 대체한다: 이미지 II는 컴팩트한 벡터 f(I)RDf(I) \in \mathbb{R}^D로 매핑되어, 같은 장소(또는 같은 물체)의 이미지들은 임베딩 공간에서 가깝고, 다른 장소의 이미지들은 멀리 떨어지도록 한다. 검색은 이렇게 되면 데이터베이스 임베딩 사이의 (근사) 최근접 이웃 탐색으로 귀결된다 — 이는 SLAM 시스템이 루프 클로저 후보 생성과 재위치추정을 위해 필요로 하는 연산과 정확히 같다.

CNN 특징에서 전역 디스크립터로

이미지에 적용된 합성곱 백본은 H×W×CH \times W \times C 활성화 텐서를 산출한다 — 이는 사실상 CC차원 지역 특징의 조밀한 격자다. 딥 검색 방법들은 주로 이 텐서를 하나의 벡터로 풀링하는 방식에서 차이를 보인다.

fc=(1XcxXcxp)1/pf_c = \left( \frac{1}{|\mathcal{X}_c|} \sum_{x \in \mathcal{X}_c} x^{\,p} \right)^{1/p}

여기서 Xc\mathcal{X}_c는 채널 cc의 활성화 집합이다. p=1p = 1로 설정하면 평균 풀링이 되고 pp \to \infty이면 맥스 풀링이 된다. 실제로는 학습된 p3p \approx 3이 잘 동작한다(Radenović 외).

V(j,k)=iaˉk(xi)(xi(j)ck(j))V(j,k) = \sum_i \bar{a}_k(\mathbf{x}_i)\,\big(x_i^{(j)} - c_k^{(j)}\big)

여기서 aˉk\bar{a}_k는 군집 유사도에 대한 소프트맥스이다. 행렬 VV는 내부 정규화된 후 평탄화되고 L2 정규화된다.

결과 디스크립터는 보통 PCA + 화이트닝으로 수백 차원으로 압축되며, 이미지는 코사인/L2 거리로 비교된다.

학습: 메트릭 학습

임베딩은 분류 손실이 아니라 랭킹 목적 함수로 학습된다. 고전적인 선택은 앵커 aa, 양성 pp(같은 장소), 음성 nn(다른 장소)에 대한 **트리플렛 손실(triplet loss)**이다.

L=max(0,  m+d(fa,fp)d(fa,fn))L = \max\big(0,\; m + d(f_a, f_p) - d(f_a, f_n)\big)

이는 양성을 음성보다 앵커에 최소 마진 mm만큼 더 가깝게 밀어낸다. 감독(supervision)은 저렴하게 얻을 수 있다.

전역 검색 + 지역 재정렬

전역 디스크립터만으로는 시각적으로 비슷하지만 서로 다른 장소를 혼동할 수 있다(지각적 앨리어싱). 그래서 현대 파이프라인은 2단계 설계를 사용한다.

  1. 전역 디스크립터 거리로 상위 kk개의 데이터베이스 이미지를 검색한다(빠르고 확장 가능).
  2. 지역 특징 매칭과 기하학적 검증(예: 에피폴라 또는 PnP 모델에 대한 RANSAC)으로 후보를 재정렬 / 검증한다.

DELF/DELG는 두 단계를 하나의 네트워크로 결합한다(어텐션으로 선택된 딥 지역 특징에 전역 헤드를 더한 것). HF-Net은 전역 검색 헤드와 SuperPoint 스타일의 지역 특징을 하나의 네트워크로 증류하여 **계층적 위치추정(hierarchical localization)**을 수행한다 — 이는 hloc 툴박스와 대규모 시각적 재위치추정 시스템에서 사용되는 패턴이다. Patch-NetVLAD는 대신 이미지 패치들의 다중 스케일 NetVLAD 디스크립터로 재정렬한다.

SLAM에서의 의미

루프 클로저 검출과 재위치추정은 검색 문제다: 현재 프레임이 주어졌을 때, 같은 장소를 보여주는 이전에 맵핑된 프레임을 찾는 것이다. 고전적인 BoW(DBoW2)는 외관이 안정적일 때는 잘 작동하지만, 수공예 지역 디스크립터 위에 구축되어 있기 때문에 낮/밤, 계절, 날씨 변화에서는 크게 성능이 저하된다. 학습된 전역 디스크립터는 정확히 이러한 조건 변화에 불변하도록 학습되며, 키프레임당 하나의 컴팩트한 벡터를 생성한다 — 키프레임 데이터베이스에 저장하기 저렴하고 검색이 빠르다. 검색-후-검증 구조를 이해하면 현대 재위치추정 스택(HF-Net/hloc, Patch-NetVLAD)의 아키텍처와, 로봇 간에 장소를 매칭해야 하는 협업 SLAM 시스템의 아키텍처도 설명된다.

실습

관련 문서