ABOUT ME

학습한 것을 정리하는 공간입니다. csw3575@snu.ac.kr

Today
Yesterday
Total
  • Degeneracy Detection in Solver
    Optimization 2025. 3. 21. 15:12
    PnP 자세추정에서 Gauss-Newton 최적화의 Degeneracy 감지

    PnP 자세추정에서 Gauss-Newton 최적화의 Degeneracy 감지와 적응형 Eigenvalue 임계값 설정

    SLAM이나 비전 기반 시스템에서 PnP (Perspective-n-Point) 자세 추정은 카메라의 6-자유도 자세(위치 및 방향)를 2D-3D 대응점으로부터 구하는 핵심 문제이다. 일반적으로 Gauss-Newton 최적화 같은 비선형 최소자승 기법을 사용하지만, 점들의 분포가 특이하거나 degeneracy 상태라면 under-constrained가 되어 해가 불안정해질 수 있다.

    여기서는 Gauss-Newton 최적화 과정에서 Hessian 행렬의 Eigenvalue들을 통해 degeneracy 여부를 판별하고, 그 Eigenvalue들에 대해 adaptive 임계값을 설정해 “어떤 방향이 약하게 관측되었는지” 식별하는 전략을 정리한다.


    1. 왜 Degeneracy 감지가 중요한가?

    PnP 문제에서 3D 점들의 배치(공간 분포)에 따라, 특정 축으로 카메라가 움직이거나 회전해도 projection error가 거의 변하지 않는 경우가 생긴다.

    • 평면에만 점이 분포: 카메라가 그 평면에 수직 방향으로 움직여도 2D 재투영 오차가 크게 변하지 않아, 해당 축이 모호해진다.
    • 점들이 거의 일직선: 특정 축을 기준으로 회전해도 투영이 달라지지 않는다면, 회전 degeneracy가 발생한다.

    이처럼 degeneracy 상황에서는 최적화 대상 함수가 특정 방향으로 민감하지 않아 Hessian 행렬이 거의 특이(singular)하게 될 수 있다. 그 결과 랭크 결손이 생기면 역행렬 계산이 불안정해지고, 잘못된 업데이트가 발생할 가능성이 커진다. 이를 예방하려면, degenerate한 축을 찾아내어 업데이트에서 제외하거나, 그 방향으로는 작은 prior 등을 통해 정규화(regularization)하는 방식으로 해결한다.


    2. Hessian Eigenvalue로 Degeneracy 축 찾기

    Gauss-Newton 접근에서는 각 이터레이션마다

    H=JJH=JJ

    (여기서 JJ는 residual의 Jacobian) 을 구한다. 그리고 HH의 고유값 λiλi를 분석하면, 작은 고유값을 가지는 축이 “충분히 관측되지 않은(under-constrained) 방향”임을 알 수 있다.

    • 작은 λiλidegeneracy → under-constrained
    • λiλi → 잘 관측된 방향

    고유값 분석으로 Degeneracy 판단

    Hessian이 특이에 가까울수록 min(λi)min(λi)가 거의 0에 근접한다. 그러한 축은 목적함수가 거의 변하지 않아, 솔버의 업데이트가 불안정해질 위험이 커진다.


    3. 적응형(Adaptive) 고유값 임계값 설정

    고유값들 중 어느 정도 이하를 “작다”고 볼지 결정하는 것은 문제의 스케일이나 노이즈 수준에 따라 달라진다. 대표적인 적응형 방식으로 다음과 같은 세 가지가 있다.

    3.1 최대 고유값 대비 비율

    λi<τλmaxλi<τλmax

    가장 널리 쓰이는 방법으로, ττ는 0.001 같은 소수로 두고, λmaxλmax는 고유값 중 최댓값이다. 예를 들어 λmax=100λmax=100, τ=103τ=103라면 0.10.1보다 작은 고유값들은 모두 퇴화축이라고 판단한다.

    3.2 고유값 분포의 평균/표준편차

    고유값 λ1,,λnλ1,,λn의 평균 μμ와 표준편차 σσ를 구해,

    λi<μkσλi<μkσ

    (k=2k=2 등) 인 값을 “작다”고 간주한다. 고유값이 전반적으로 크면 임계치도 그만큼 커지므로, 문제 스케일 변화에 좀 더 유연하게 대응할 수 있다.

    3.3 스펙트럼 갭(Spectral Gap)

    고유값을 오름차순 정렬해 λ1λ2λnλ1λ2λn라 할 때, 인접한 고유값 비율 λi+1/λiλi+1/λi 중 가장 큰 지점을 “스펙트럼 갭”으로 보고, 그 이전까지를 “작은 값 그룹(퇴화)”으로 분류한다. 고유값이 두 그룹으로 뚜렷이 나뉠 때 특히 유용하다.


    4. Degenerate 축 처리 & 솔버 안정화

    이렇게 찾아낸 degenerate한 축은 업데이트에서 제외하거나 약화하는 식으로 처리한다. 예컨데,

    1. H의 고유분해 H=VΛVH=VΛV를 구한다.
    2. 작은 λλ에 해당하는 고유벡터 열을 0으로 만들어 ˜V~V를 만든다.
    3. 업데이트 ΔxΔx에 대해 Δx(V˜V)ΔxΔx(V~V)Δx로 투영(projection)한다.

    즉, 관측이 충분한 방향만 반영하고 관측 부족한 방향은 억제함으로써, 솔버가 그 축으로 발산하거나 엉뚱한 해를 내지 않도록 막는다.


    5. 결론

    • Gauss-Newton 최적화에서 발생하는 degeneracy는 Hessian 고유값 분석으로 간단히 감지할 수 있다.
    • 최대 고유값 대비 비율, 평균/표준편차, 스펙트럼 갭 등 adaptive 임계값 설정을 통해 문제 스케일이나 노이즈 변화에 대응이 가능하다.
    • Degenerate 축을 업데이트에서 제외하거나, 별도의 regularization을 넣어 안정화함으로써, 잘못된 솔루션으로 치우치는 것을 예방할 수 있다.

    결과적으로, PnP 문제뿐 아니라 ICP나 기타 SLAM 모듈에서도 비슷한 원리로 under-constrained 축을 검출하여 수치적으로 안정된 해를 구하는 것이 널리 활용된다.

    'Optimization' 카테고리의 다른 글

Designed by Tistory.