본 논문을 읽고 요약한 내용이며 잘못 해석한 내용이 있을 수 있습니다. 설명에 오류가 있다면 댓글로 알려주시면 감사하겠습니다. 

1. Motivation

 efficiently and accurately match local features across images. It builds upon SuperGlue, improving its efficiency in terms of memory and computation, and enhancing its accuracy and training ease. LightGlue is especially effective in scenarios where rapid matching is essential, like 3D reconstruction. The key innovation of LightGlue lies in its adaptability to the complexity of image pairs, enabling faster inference for easier matches.

2. Methodology

Figure 1. The LightGlue architecture.

Problem formulation 

 LightGlue는 SuperGlue에 따라 image A와 B로부터 추출된 local feature sets에서 partial assignment를 예측하는 것을 목표로 한다. 각 local feature i는 2D point position으로 구성되어있고, image size, visual descriptor에 따라 normalized된다. a와 b는 각각 M와 N개의 local features를 가지며 인덱스 집합을 A = [1, …, M], B = [1, …, N]으로 나타낸다. 최종 목표는 local features로 구성된 두 집합에 대해 Partial (soft) assignment P를 추론하는 neural network를 디자인하는 것이다. 

Overview 

 전체적인 구조는 Figure 1과 같다. LightGlue는 두 개의 set을 공동으로 처리하는 L개의 identical layer로 이루어져있다. 각 layer는 각 point의 representation을 업데이트하는 self-, cross- attention unit으로 구성되어있다. classifier는 불필요한 계산을 방지하기 위해 각 레이어에서 inference를 중단할 것인지를 결정한다. lightweight head는 최종적으로 set of representations로부터 partial assignment를 계산한다.

2.1. Transformer backbone 
\(I \in \{A, B\}, x_i^I \in  R^d\). state는 대응되는 visual descriptor \(x_i^I <- d_i^I\)로 초기화되고 각 레이어에서 업데이트된다. 여기서 레이어는 하나의 self-attention과 하나의 cross-attention 단위의 연속으로 정의한다. 

Attention unit
attention unit은 입력된 특징들 사이의 상호작용을 모델링한다.  각 점(데이터의 한 부분)은 다른 모든 점들과의 관계를 계산하여, 어떤 점들이 더 중요한지를 결정한다. 
각 unit에서 MLP는 source image \(S \in \{A, B\}\)에서 집계된 message miI  S에 따라 상태를 업데이트한다. 
$$x_i^{I <-  S} <- x_i^{I <- S}+MLP([x_i^I| m_i^{I<-  S}]) , (1) $$
여기서 \([ \cdot | \cdot]\)는 두 벡터를 stack하는 것을 의미한다. 이는 두 이미지의 모든 점에 대해 병렬로 계산된다. self-attention unit에서는 동일한 이미지의 지점에서 정보를 가져오기 때문에 S=I이다. 반대로 cross-attention unit에서는 다른 이미지의 지점에서 정보를 가져온다. 
 message는 attention mechanism에 따라 image S의 모든 상태 j의 가중치 평균으로 계산된다. 
$$m_i^{I<-  S} = \sum_{j \in S} \text{Softmax}_{k \in S} (a_{ik}^{IS})_j W x_j^S, (2)$$  
여기서 W는 projection matrix, \(a_{ik}^{IS}\)는 I와 S의 i, j point 사이의 attention score를 의미한다. 

Self-attention
self-attention은 동일한 이미지 내의 점들 사이의 관계를 학습한다. 즉, 하나의 이미지 내에서 각 점이 다른 모든 점들과 어떻게 관련되는지를 학습한다. 먼저 각 point i에 대해 현재 상태 xi가 key, query vector로 재구성된다. i와 j 사이의 attention score는 아래와 같이 정의된다. 
$$a_{ij}=q_i^TR(p_j-p_i)k_j,     (3) $$  

\(R(\cdot) \in R^{dxd}\)는 point 사이의 relative position의 rotary encoding을 의미한다. 주어진 공간을 d/2개의 2차원 subspace로 나눈다. 각 subspace는 Fourier Features에 따라 learned basis \(b_k \in R^2\)에 대한 투영에 해당하는 각도로 회전한다. 

 rotary encoding은 모델이 점 i로부터 학습된 상대적 위치에 있는 점 j를 검색(retrieve)할 수 있게 해준다. 위치 인코딩은 값 \(v_j\)에 적용되지 않으므로 상태 \(x_i\)로 전달되지 않는다. 이 인코딩은 모든 계층에 대해 동일하며, 따라서 한 번 계산되고 캐시된다.

Cross-attention 
query없이 각 요소에 대해 key \(k_i\)를 계산한다. 
$$a_{ij}^{IS}=k_{i}^{IT}k_j^S!=a_{ji}^{SI} .   (5)$$  
이 과정은 O(NMd)의 복잡도를 가지기 때문에 이러한 bidirectional attention 방식이 효과적이다. (절반으로 계산량을 감소시키는효과). 이미지 사이의 상대적 위치는 효과적이지 않기 때문에 어떠한 positional information도 더하지 않는다. 

2.2. Correspondence prediction
Assignment scores
먼저 두 이미지 사이의 score matrix \(S \in R^{M X N}\)을 계산한다. 
$$S_{ij}= \text{Linear}(x_i^A)^T\text{Linear}(x_j^B),     \all  (i, j) \in  A X B,      (6)$$  
Linear\((\cdot)\)는 learned linear transformation with bias를 의미한다. 또한 각 point에서 matchability score를 아래의 식으로 계산한다. 
$$\sigma_i = \text{Sigmoid}(\text{Linear}(x_i)) \in  [0, 1],     (7)$$

 위의 점수는 i가 corresponding point를 가질 가능성을 인코딩한다. 다른 이미지에서 감지되지 않는 점은 매칭될 수 없고 따라서 위의 점수가 0에 가까워진다. 

Correspondences 
similarity와 matchability score를 통합하여 soft partial assignment matrix P를 다음과 같이 구할 수 있다. 
$$P_{ij} = \sigma_i^A \sigma_j^B \text{Softmax}_{k \in A}(S_{kj})_i \text{Softmax}_{k \in B}(S_{ik})_j.    (8)$$
 두 포인트가 matchable할 것으로 예측되고 이미지 사이에서 다른 지점들보다 높은 유사도를 가지고 있을 때 한 쌍의 점 (i,j)는 대응을 생성한다. 저자들은 \(P_{ij}\)가 threshold보다 크고 다른 행과 열에 있는 요소들보다 클 때 pair를 선택한다. 

2.3. Adaptive depth and width 
 불필요한 연산을 줄이고 inference time을 줄이기 위해 두 가지 방식을 사용한다. i) reduce the number of layers depending on the difficulty of the input image pair; ii) prune out points that are confidently rejected early. 

Confidence classifier

 LightGlue의 backbone은 context를 이용해 input visual descriptor를 강화한다. 만약 두 이미지가 많이 overlapping되어 있고 appearance change가 적다면 early layer에서 만족하고 나머지 layer는 결과가 동일할 것이다. (이미 앞쪽에서 매칭을 완수했으면, 같은 과정을 여러번 거쳐도 결과가 변하지 않음) 따라서 각 layer의 마지막 부분에서 LightGlue는 각 point의 예측된 assignment의 confidence를 추론한다. 

 값이 큰 것은 i의 representation이 reliable하고 최종적임을 의미한다. compact MLP를 더하는 것은 대부분의 경우에서 시간을 절약할 수 있으며 worst case의 경우에도 inference time을 오직 2% 증가시킨다. 

Exit criterion 

위의 exit 식이 일정 비율을 만족하면 inference를 종료한다. 초기 레이어에서 confident가 떨어지기 때문에 각 classifier의 validation accuracy에 근거하여 decay한다. exit threshold 는 accuracy와 inference time의 trade-off를 조정한다. 

Figure 2. Point pruning. As LightGlue aggregates context, it can find out early that some points are unmatchable and thus exclude them from subsequent layers. Other, non-repeatable points are excluded in later layers. This reduces the inference time and the search space to ultimately find good matches fast.

 

Point Pruning 
 exit criterion을 만족하지 않는 것은 점들이 confident하고 unmatchable하게 예측됨을 의미한다. 따라서 각 레이어에서 이러한 점들을 제거하고 남은 점들만 다시 일련의 과정을 수행한다. 2차 복잡도로 주어진 attention 연산을 줄일 수 있으며 accuracy에 큰 영향을 주지 않는다. 

2.4. Supervision 
 LightGlue를 두 단계로 훈련한다. 먼저, correspondence를 예측하도록 학습하고 그 후에 confidnece classifier를 학습한다. 후자는 최종 레이어나 convergence of training에 영향을 주지 않는다. 

Correspondence 
 homography 또는 pixel-wise depth와 상대적 포즈가 주어졌을때, A의 점들을 B로, 그리고 그 반대로 매핑한다. Ground truth matches M은 두 이미지에서 낮은 projection error와 일관된 depth를 가진 점들의 쌍이다. 일부 점들 \( \bar{A} \in A \) 와 \( \bar{B} \in B\)는 그들의 reprojection 또는 depth error가 충분히 클 때 매칭 불가능한 것으로 라벨링된다. 그런 다음 각 레이어 l에서 예측된 assignment의 log-likelihood를 최소화하여 LightGlue가 정확한 대응 관계를 조기에 예측하도록 한다. 

 첫번째 항은 모델이 대응점을 예측할 때, 실제로 대응되는 점들에 대해 얼마나 잘 예측하는지를 측정한다. 두번째 항은 이미지 A에서 매치될 수 없는 점들에 대한 예측을 측정한다. 세번째 항은 이미지 B에 대해서 같은 작업을 수행한다. 실제로 대응되는 점들을 정확히 예측하면서도, 대응되지 않는 점들을 정확히 식별할 수 있도록 설계되었다. 이러한 방식으로 모델은 정확한 correspondence를 찾고, 오류를 최소화하도록 학습된다. 

Confidence classifier 
 Eq (9)의 MLP를 학습시켜 각 레이어의 예측이 최종과 동일한지를 예측한다. \(l m_i^A \in B \cup {\cdot} \)을 layer l에서 B에 있는 점에 대응되는 i의 인덱스로 정의한다. 만약 i가 매칭 불가능하다면 \(l m_i^A= \cdot \)  이다. 각 점의 ground truth binary label은 \([l m_i^A = L m_i^A]\)  이며 B에 대해서도 동일하다. 그런 다음, 레이어의 classifier에 대한 binary cross-entropy를 최소화한다. ( cf. binary cross-entropy는 실제 라벨과 모델이 예측한 라벨 사이의 정보 불일치를 측정. 이 값이 작을수록 모델의 예측이 실제 라벨에 가깝다는 것을 의미함.)

2.5. Comparsion with SuperGlue
 SuperGlue는 absolute point position을 인코딩하고 descriptor의 앞 단에 이 부분을 fused한다. layer를 통과하면서 positional information을 잊어버리는 경향이 있다는 것을 관측하였다. 따라서 LightGlue는 각 self-attention unit에 relative encoding을 더하였다. 
 SuperGlue는 Sinkhorn 알고리즘을 이용하여 assignment를 계산한다. 이는 많은 iteration이 필요하다. 또한 dubstin 대신 유사도를 사용하여 예측을 효율적으로 하였다. 
 Sinkhorn의 계산량 때문에 SuperGlue는 각 레이어 이후에 예측을 할 수 없고 마지막에서만 예측이 사용되었다. 반면, LightGlue는 각 레이어에서 assignment를 예측하는 것이 가능하고 supervise할 수 있다. 따라서 convergence 속도를 높이고 몇 개의 레이어 이후에 exiting 하는 것이 가능해졌다. 

3. Dataset

fine-tuned with MegaDepth dataset 
test : HPatches(homography estimation), MegaDepth(relative pose estimation), Aachen Day-Night benchmark(visual localization). 

4. Result 

4.1. Homography estimation 
 SuperGlue를 따라 reprojection error 3픽셀에서 정밀도와 재현율을 비교하였다. 또한 robust하고 non-robust한 solver를 사용하여 homograpy accuracy를 계산하였다. 각 이미지 쌍에 대해, 4개의 이미지 코너의 평균 재사영 오류를 계산하고 AUC 아래 영역을 1픽셀과 5픽셀 값까지 비교하였다.  
 모든 이미지를 smaller dimension이 480 pixel이 되도록 조정하고, SuperPoint로 1024 local feature 추출하여 matcher를 비교하였다. 공정한 비교를 위해 dense matcher LoFTR, MatchFormer, ASpanFormer의 경우에도 top 1024개의 결과를 사용해 비교하였다. 

Table 1. Homography estimation on HPatches.


P는 precision, R은 recall을 의미한다. SuperGlue, SGMNet과 유사한 recall 값을 가지면서 더 높은 precision을 갖는 것을 볼 수 있다. LightGlue는 LoFTR과 같은 dense matcher에 비해 더 좋은 성능을 보인다. coarse threshold 5px에서 sparse keypoint의 제약이 있음에도 불구하고 LoFTR보다 더 정확하다. 

4.2. Relative pose estimation 
 strong occlusion과 challenging lighting 및 구조적 변화를 보이는 outdoor scene에서 성능을 평가하였다. MegaDepth-1500 dataset로 평가를 진행하였다. (테스트 세트에는 two popular phototourism destinations: St. Peters Square and Reichstag의 1500개의 이미지가 포함된다.)
 vanilla RANSAN과 LO-RANSAC을 사용하여 essential matrix를 추정하고 이를 rotation과 translation으로 분해한다. inlier 임계값은 테스트 데이터에 대해 각 접근 방식에 맞게 조정된다. 
각 이미지에서 2048개의 local feature를 추출하고 1600 pixel의 larger dimension을 가지도록 resize한다. dense deep matcher의 경우 그들의 largest dimension을 840 pixel (LoFTR, MatchFormer) 또는 1152 pixel (ASpanFormer)로 resize한다. 더 큰 이미지는 accuracy를 향상시키지만, runtime과 memory 측면에서 허용할 수 없는 정도이기 때문에 dense matcher의 사이즈를 위와 같이 조정하였다. 

Table 2. Relative pose estimation

Table 2는 LightGlue가 기존 접근법을 능가함을 보여준다. 더 나은 대응점과 더 정확한 relative pose estimation을 제공하고 inference time을 30% 정도 줄인다. 

4.3. Outdoor visual localization

Table 3. Outdoor visual localization

 대규모 Aachen Day-Night benchmark를 사용하여 challenging condition에서 long-term visual localization을 평가하였다. 저자들은 hloc toolbox와 Hierarchical Localization framework를 따른다. 먼저 4328개의 daytime reference image로부터 알려진 포즈와 보정을 사용하여 sparse 3D point cloud를 COLMAP을 사용해 삼각측량한다. 824개의 daytime과 98 night time 쿼리에 대해 NetVLAD와 50개의 이미지를 검색하여 각각을 매칭하고 카메라 포즈를 추정한다. RANSAC과 Perspective-n-Point solver를 사용한다. 다양한 임계값에서 포즈 재현율을 보고하고 매핑과 위치 결정동안의 매칭 단계에서 평균 정확도를 보고하였다. 
 SuperPoint를 사용해 4096개의 feature를 추출하고 각 matcher로 매칭을 진행하였다. LightGlue는 SuperGlue와 유사한 정확도를 가지면서 2.5배 많은 throughput을 만든다. 


4.4. Insights 
Ablation study 

 SuperGlue와 비교할 때, LightGlue는 훨씬 빠르게 수렴하며 +4%의 재현율과 +12%의 정밀도를 달성한다.  matchability classifier가 없을 때, 네트워크는 좋고 나쁜 매치를 구분하는 능력을 잃게 된다. 유사성 행렬은 많은 가능성 있는 매치를 제안하는 반면, 매칭 가능성 필터는 부정확한 제안들을 걸러낸다. 따라서 partial assignment는 상호 가장 가까운 이웃과 학습된 inlier 분류기의 elegant fusion으로 볼 수 있다. 이는 SuperGlue의 optimal transport problem보다 훨씬 빠르다. 

 학습된 absolute positional encoding을 상대적 위치 인코딩으로 대체함으로써 정확도가 향상되고, minor penalty로 인한 쿼리와 키의 각 셀프 어텐션 레이어를 개선한다. relative position을 사용하여 LightGlue는 이미지 간의 기하학적 패턴을 학습하여 매치한다. 이는 각 레이어의 위치에 대해 상기시키는 것은 정확도를 개선한다. 

 Bidirectional cross-attention은 standard cross attention과 동일한 정확도를 가져오면서 20%의 runtime 감소효과가 있다. 현재 bottleneck은 두 차원을 따라 softmax를 계산하는 것에 있다. 

 deep supervision을 사용하는 것은 또한 중간 레이어가 의미있는 결과를를가지도록 한다. 5 레이어만 지났을 때에도 모델은 90%가 넘는 recall을 얻는다. 마지막 레이어에서 네트워크는 outlier를 제거하는 데 집중하여 match precision을 개선할 수 있다.

Adaptivity

비디오의 연속된 프레임들 같은 경우 네트워크는 빠르게 수렴하고 몇 개의 레이어 후에 빠져나와 1.86배의 속도를 향상시킨다. visual overlap이 낮은 경우, 예를 들어 loop closure의 경우 네트워크가 수렴하기 위해 더 많은 레이어가 요구된다.

Efficiency 
Figure 7은 input keypoint의 개수에 따른 run time을 보여준다. visual localization의 흔한 세팅인 2k keypoint에서 LightGlue는 다른 네트워크를 능가하는 결과를 보여준다. 

5. Conclusion & Limitation

 이 논문은 이미지 전반에 걸쳐 sparse local feature들을 매칭하기 위해 훈련된 deep neural network인 LightGlue를 소개한다. 제안된 모델은 자체 예측에 대한 확신을 내부적으로 파악하는 능력을 부여한다. 모든 예측이 준비되면 초기 레이어에서 inference를 멈출 수 있고, 매칭되지 않는 것으로 판단된 포인트들은 초기 단계에서 더 이상의 단계를 거치지 않고 버려진다. 제안된 모델은 더 빠르면서 정확하며 훈련하기 쉽다. 

*) Rotary Positional Embeddings : Additive form이 아닌 Multiplicative 기법 + Sinusoid 아이디어를 활용한 방법. 통합적인 Relative Position Information을 위하여 Query, Key의 inner product, 함수 g로 정의된 position encoding을 찾고 싶고, g는 Word Embeddings과 상대적인 Position m-n만을 input으로 가질 수 있도록 정의하고자 하는 것이 목적이다. 2D plane의 Geometric property를 사용한다. 원래 벡터에 회전을 적용하여 위치정보가 인코딩된 상태로 표현한다. 

*) Fourier Features Positional Encoding 
In the context of the learnable Fourier features, instead of having fixed frequencies and amplitudes like in the traditional method, you would have learnable parameters. Let’s represent these parameters as: 

 

아래는 세미나에서 발표한 발표 자료입니다. 

[24-01-19] LightGlue_ Local Feature Matching at Light Speed.pdf
1.01MB

+ Recent posts