
Mickey: Keypoint matching pipeline인데, 기존과는 다르게 3D keypoint의 metric correspondences를 바로 예측한다고 함. 따라서 외부 depth sensor없이 바로 metric한 relative pose estimation이 가능함. 학습 시 심지어 3D Model 혹은 이미지 중복 정보도 필요하지 않으며, 오로지 image pair와 해당 relative pose만 필요하다고 함.
보통 Map-free Relocalization setting에 사용되는 방법들은 2가지 문제점이 있음


< descriptor mathing 확률 >

< keypoint selection 확률 > ->
네트워크는 각 키포인트의 confidence (신뢰도) 값을 예측 -> 이 신뢰도 값들에 대해 Spatial Softmax (공간 Softmax) 연산을 수행하여 확률로 변환
-> Pose error를 keypoints와 descriptors 모두에 backpropagate 하는 것이 목적.
Soft Inlier Counting: 일반적인 RANSAC은 Inlier Count를 기준으로 후보를 선택하지만, 이는 미분 불가능함. MicKey에서는 Sigmoid 함수를 활용한 부드러운 인라이어 카운팅을 사용하여 해결.

Differentiable Refinement: pose 후보 ℎ를 더 정밀하게 개선. 인라이어 집합 𝐼를 재선택하고, 다시 Kabsch Solver를 적용. 마지막 iteration에만 backpropagating을 적용하여 미분 가능하도록 유지


최종 Loss는 다음과 같이 표현한다고 함. 
첫 번째 항: 대응점 확률을 조정하기 위한 gradient (키포인트 쌍 매칭을 향상), 두 번째 항: 키포인트 좌표 자체를 직접 최적화하는 gradient (정확한 3D 좌표 예측을 위해 학습). b는 baseline으로, variance를 줄이기 위해 평균 loss를 빼줌.
Why REINFORCE 방식이 필요?
: 대응점 확률 기반 샘플링이 반드시 필요 -> 샘플링은 미분 불가능 (discrete sampling) -> Policy Gradient만이 이런 상황에서 gradient 제공 가능
처음에는 쉬운 예제부터 학습하고, 훈련이 진행될수록 점점 더 어려운 예제들을 포함시켜 네트워크를 안정적으로 학습을 진행.
✅ MicKey의 Curriculum Learning 과정:
1. 훈련 배치(Batch)에서 여러 이미지 쌍들을 준비합니다.
2. 각 이미지 쌍에 대해 VCRE loss를 계산합니다.
3. loss가 낮은(쉬운) 이미지 쌍들만 선택해서 학습합니다.
4. 학습이 진행될수록 선택하는 이미지 쌍의 수를 점차 늘립니다.
✅추가 안전장치: Null Hypothesis (무효 가설)
가끔은 RANSAC 후보군 전체가 모두 실패하는 경우도 존재. 이 경우를 대비해 Null Hypothesis를 추가:
-> 코드를 보면서 이해하는게 더 좋을 것 같음.
Shared Encoder와 multi-head 구조를 사용. 인코더로는 DinoV2를 사용.

-> MicKey는 조밀한 격자(coarse grid) 상의 오프셋을 예측하여 효율성을 유지하면서도 서브픽셀 정확도(sub-pixel accuracy)의 대응점 추정이 가능.


1) 2D 이미지 패턴에만 의존하지 않음 → 3D 공간 기반 학습: 존의 대부분 매칭 기법은 이미지의 겹치는 부분에서 모서리, 엣지, 질감 패턴 같은 저수준 시각 정보로 대응점 찾음. 반면 MicKey는 아예 3D 카메라 좌표계 상의 metric keypoint를 직접 학습. 따라서 이미지가 많이 겹치지 않아도, 카메라 좌표계 상에서 비슷한 공간 위치의 키포인트를 찾을 수 있
2) 유연한 확률적 학습 + Curriculum Learning → 비정형 상황 학습 가능. MicKey는 훈련 시 minimal overlap 이미지 쌍도 적극적으로 학습. 치지 않는 이미지도 점진적으로 학습하면서 "겹침이 적더라도 맞는 상대 자세를 추정"하는 방법을 배움. 기존 방법들은 overlap이 전제조건이라 학습이 힘듬.
3) Feature의 역할 자체가 다름 → 고수준 공간 reasoning: 기존 기법들은 벽이나 바닥처럼 반복적이고 무의미한 패턴에 쉽게 의존. MicKey는 훈련 과정에서 "이 점이 자세 추정에 얼마나 도움이 되는가?"를 직접 학습. 그래서 단순한 벽 패턴 대신 실제 3D 물체 구조를 고려해 대응점을 설정하는 경향이 강함.
4) 3D Pose Loss 기반 학습 → Pose Recovery 자체 최적화: Keypoint와 Descriptor 모두 "정확한 상대 자세 추정"을 기준으로 학습됨. 따라서 "겹치는 영역을 잘 매칭"이 아니라 "정확한 pose를 잘 추정할 수 있는 keypoint"를 찾도록 직접 최적화. Minimal Overlap에서도 자세가 맞으면 Loss가 작으니, MicKey는 이런 상황을 효과적으로 해결하는 방향으로 학습됨.