VGGT의 얼린 특징이 카메라 포즈 실패를 스스로 알려준다
Does VGGT Know What It Does Not Know?
무엇인가
이 논문은 피드포워드 3D 재구성 모델 VGGT가 카메라 포즈를 한 번의 순전파로 예측하면서도 그 포즈가 틀렸는지에 대한 불확실성은 전혀 내놓지 않는다는 문제를 다룬다. 상대 포즈가 크게 틀려도 출력만 보면 정답과 구분되지 않아 SLAM, 매핑, 신규 시점 합성 같은 하위 시스템이 신뢰할 수 있는 포즈와 아닌 포즈를 가릴 수 없다. 저자들은 모델을 얼린 채 내부 특징에 선형 프로브를 붙여, VGGT가 자신의 포즈 실패를 내부적으로 알고 있는지 묻는다.
어떻게 동작하나
방법은 VGGT 1B를 전혀 미세조정하지 않고 두 장의 RGB 입력을 518px 기준으로 리사이즈해 한 번에 넣고, 포즈 인코딩에서 외부 파라미터 R_i|t_i와 내부 파라미터 K_i를 디코드하는 절차로 시작한다. HardMatch에는 정답 포즈가 없으므로 VGGT의 상대 포즈 R=R2R1^T, t=t2−Rt1로 기본행렬 F를 만들고, 손으로 주석된 대응점마다 대칭 에피폴라 거리를 계산해 그 중앙값이 50px를 넘으면 실패로 라벨링한다. 프로브는 표준화한 특징을 PCA로 128차원으로 줄인 뒤 L2 정규화 로지스틱 회귀로 학습하고, HardMatch 카테고리 단위로 묶은 10겹 교차검증을 써서 테스트 카테고리는 학습에서 보지 않게 했다. VGGT가 이미 출력하는 포인트맵 신뢰도, 깊이 신뢰도, 선명도, 예측 회전각, 초점거리 비율과 모든 출력을 쓴 분류기까지 같은 프로토콜로 비교한다.
무엇과 다른가
HardMatch의 유효 쌍 903개, 97개 카테고리에서 VGGT는 50px 기준 34.9% 쌍에서 실패했고 공식 테스트 분할의 mAA@10px는 19.9%였다. 포인트맵 신뢰도의 ROC-AUC는 79.7%, 깊이 신뢰도는 66.5%, 예측 회전각은 62.9%, 초점거리 비율은 51.1%였으며 VGGT의 모든 출력을 쓴 분류기도 77.7%에 그쳤다. 반면 늦은 층 특징에 붙인 선형 프로브는 93~94%, 대표 설정에서 93.5%를 기록했고 신뢰도 통계를 더해도 성능이 변하지 않았다. 0.5로 임계값을 잡으면 프로브는 87.5% 정확도로 실패의 87.6%를 잡아내며 정밀도 78.9%였고, VGGT 신뢰도는 비슷한 수의 쌍을 표시했을 때 정확도 74.0%, 재현율 68.3%, 정밀도 61.4%였다. 가장 자신 있는 절반에서도 12.2%가 실패했는데, 이 구간에서 프로브는 AUC 90.0%로 신뢰도의 69.9%를 앞섰다.
어떻게 쓰나
신호가 어디서 생기는지 층별로 훑으면 이미지별 인코더는 65.2%를 넘지 못하고, 두 뷰를 번갈아 섞는 집계기의 전반부도 블록 10까지 63~66%에 머문다. 그러다 블록 11의 69%에서 블록 12의 81%, 블록 13의 88%, 블록 15의 93%로 급상승해 마지막까지 93~94%를 유지한다. 즉 두 뷰가 만난다는 사실 자체가 아니라 중간 집계 블록의 좁은 구간에서 실패 정보가 계산된다. 두 뷰의 평균 풀링 특징 사이 코사인 유사도는 마지막 블록에서 83.7%까지 올라가 VGGT 신뢰도보다 좋은 훈련 없는 판독이 되지만, 카메라 토큰에서는 71.0%로 떨어지고 학습된 프로브만 93.2%를 유지한다. 두 번째 모델 π3도 같은 쌍에서 34.6% 실패했고 VGGT 실패 라벨과 81% 일치했으며, 마지막 디코더 블록 프로브가 91.7%로 자체 출력 분류기 76.9%를 크게 앞섰다.
전제와 한계
PhotoTourism에서는 HardMatch에서 학습한 프로브를 재학습 없이 그대로 적용해 회전 실패를 10도 기준 AUC 94.6%, 15도 기준 97.5%, 5도 기준 87.1%로 예측해 모든 임계값에서 VGGT 신뢰도를 앞섰고 PhotoTourism 자체로 학습한 프로브와 비슷했다. 회전 오차 로그와의 스피어만 상관도 0.43으로 신뢰도의 0.33보다 높았다. 단순히 겹침이 적은 쌍을 감지한 것인지도 검증했는데, 정답 공동 가시성 자체보다 프로브가 실패를 더 잘 맞혔고, 거의 겹치지 않는 쌍만 모아도 프로브가 86.9~89.5%로 신뢰도 79%와 공동 가시성 74~76%를 앞섰다. 16장 이미지 그래프 1,200개 엣지에서는 15도 초과 회전 실패를 98.6%로 분리했지만, 프로브가 의심하는 엣지를 10% 버려도 회전 평균 오차가 0.70도에서 0.66도로 줄어드는 데 그쳐 강건 평균 대비 뚜렷한 하위 이득은 없었다.
ScanNet-1500에서는 VGGT의 회전이 중앙값 1.2도로 정확하고 5도를 넘는 쌍이 2.1%뿐이며, 포즈 오차 15도 초과 115쌍 중 113쌍이 회전 오차 5도 미만인 전형적인 짧은 베이스라인 변환 실패를 보였다. 카메라 간 거리가 10cm 미만이면 47%에서 변환 방향이 15도 넘게 틀렸지만 40cm 초과에서는 1% 미만이었다. HardMatch 프로브는 40cm 초과에서 나는 회전 실패에는 79.5%로 전이됐고 신뢰도 58.7%보다 좋았지만, 짧은 베이스라인 변환 실패에는 44~48%로 무작위에 가까웠다. 반대로 ScanNet으로 학습한 프로브는 그 변환 실패를 AUC 90.5~91.0%로 잡아냈다. 저자들은 실패 인식이 하나의 스칼라가 아니라 회전 오류용 판독과 조건이 나쁜 변환 오류용 판독이 따로 필요하다고 해석한다.
개발자 입장에서 이 결과는 VGGT를 SLAM이나 매핑 파이프라인에 넣을 때 모델이 이미 계산한 특징 위에 선형 레이어 하나를 붙여 신뢰도 신호를 얻을 수 있음을 뜻한다. HardMatch에서 프로브가 신뢰하는 상위 50%만 쓰면 실패율이 3.8%, mAA@10px가 34.9%였고, VGGT 신뢰도로 줄 세우면 실패율 12.4%, mAA@10px 29.7%였다. 다만 이 신호는 학습된 실패 라벨에 의존하고, HardMatch에서 전용 매처 LoMa로 라우팅하는 실험은 LoMa가 거의 항상 낫거나 비슷해 오라클 선택도 52.1%에 그쳤으므로 만능 라우터로 오해하면 안 된다. 여러 뷰를 넣으면 실패 자체가 줄어 16뷰에서 5도 초과 회전 실패가 0.3%까지 내려가고, 두 뷰 프로브의 우위도 사라진다.
저자들이 밝힌 한계는 분명하다. VGGT와 π3 두 모델만 다뤘고 더 크거나 새로운 모델은 다르게 행동할 수 있으며, HardMatch에는 정답 포즈가 없어 약 11개 주석 대응점의 에피폴라 오차로 실패를 정의하므로 회전, 변환, 내부 파라미터 오류가 섞인다. PhotoTourism과 ScanNet-1500의 정답 포즈로 회전 실패는 확인했지만 실패 수가 적고, 주 실험은 HardMatch가 쌍 단위 정답을 주기 때문에 두 뷰에 한정된다. 프로브는 실패 라벨로 학습되는 반면 VGGT 신뢰도는 공짜로 나오는 신호라는 감독 비대칭도 있으며, 하나의 프로브가 짧은 베이스라인 변환 실패까지 포괄하지는 못한다.