PROSAC

Chum과 Matas(2005)가 제안한 **PROSAC (Progressive Sample Consensus)**은, 일반 RANSAC이 버리는 한 가지 사실을 활용하는 RANSAC 변형이다: 대응점은 인라이어일 가능성이 동일하지 않으며, 우리는 보통 이를 예측하는 매칭별 품질 점수 — 디스크립터 거리, 또는 더 좋게는 최근접 이웃과 두 번째 최근접 이웃 사이의 거리 비율인 Lowe의 비율 d1/d2d_1 / d_2 — 를 가지고 있다는 것이다.

아이디어

nn개의 후보 대응점을 품질이 높은 순으로 정렬한다. 모든 nn개의 매칭에서 최소 집합을 균일하게 샘플링하는 대신, PROSAC은 상위 순위 매칭들의 점진적으로 성장하는 부분집합에서 샘플을 뽑는다:

형식적으로는, 성장 함수(growth function)가 풀 크기가 mm에서 m+1m+1로 증가하기까지 몇 번의 샘플링이 필요한지를 결정한다; 각 샘플은 새로 추가된 매칭 하나와, 상위 mm개에서 뽑힌 s1s-1개의 매칭으로 구성된다. 설계 목표는 PROSAC이 RANSAC이 뽑을 것과 (근사적으로) 동일한 샘플 집합을 뽑되, 다른, 품질 기반의 순서로 — 가장 유망한 것부터 — 뽑는 것이다.

알고리즘 개요

  1. 대응점을 품질 점수가 높은 순으로 정렬한다.
  2. 현재 풀 크기 mm(초기값 m=sm = s)과 그 성장 스케줄을 유지한다.
  3. 각 반복마다 위에서 설명한 대로 상위 mm개의 매칭으로부터 최소 샘플을 구성하고, 모델을 피팅한 후 전체 nn개의 대응점에 대해 검증한다.
  4. 인라이어 개수로 최적 모델을 추적하며, RANSAC 방식의 신뢰도 기준(무작위가 아닌 인라이어 개수와, 현재 인라이어 비율 추정에 충분한 샘플 수)이 충족되면 종료한다.
  5. 표준 RANSAC과 마찬가지로, 모든 인라이어에 대해 최소제곱법으로 재적합(refit)한다.

특성

P(success)=1(1ws)N1ηP(\text{success}) = 1 - (1 - w^s)^N \geq 1 - \eta

실용적 노트

SLAM에서의 의미

관련 문서