RANSAC

전종원·2022년 10월 10일
1

1. inlier와 outlier

이미지 스티칭에서 descriptor를 이용해 feature point 매칭을 진행하고 Fundamental matrix를 이용해 이 매칭이 잘된 매칭인지 아닌지 검사한다.
xFx' = 0 이용.

1.1. outlier 제거 왜 필요한가?

1.1.1. 컴퓨터 비전에서 통용되는 2가지 최적화방법.

  • Closed-form algorithm
    • only accepts geometrically consistent data
  • Iterative optimization
    • only accepts stariscally consistent data

만약 데이터에 outlier가 껴있다면? accept 되지못함.

1.1.2. 컴퓨터 비전에서 최적화 시 에러값을 계산하는 법.

  • SSE(Sum of square error): r1^2 + r2^2 + r3^2
  • SAE(Sum of absolute error): r1 + r2 + r3

위 이미지에서 M1이 더 좋은 모델임에도 outlier로 인해 M2가 더 좋은 모델로 추론된다.
-> outlier의 존재는 모델피팅에 큰 영향을 미친다.

2. RANSAC(1981)

  1. Randomly sample 'minimal set of data'
  2. Estimate model with sampled data
  3. Evaluate model score
    if(current score > so-far-best score): Update score
  4. return to step 1

2.1. RANSAC의 장단점

  • 장점
    • 빠른 시간에 outlier 제거가능.
    • 알고리즘이 간단하고 이해하기 쉬움
  • 단점
    • random성이 있어 매번 결과값이 다름
    • outlier가 inlier보다 많은 경우 시간이 오래걸림
    • 동시에 여러모델을 추정할 수 없음

2.2. Modern RANSACs

2.2.1. PROSAC

descriptor를 비교 시 L2-norm이나 Hamming distance같은 거리기법을 사용하는데 이 거리가 짧을 수록 Inlier일 확률이 높다는 점을 이용. 기존 RANSAC에서의 random sampling 기법을 거리가 가까운 순으로 샘플링 하도록 함.

2.2.2. Lo-RANSAC

Inlier는 모여있고 Outlier는 산개해있는 경향을 이용.
한번 inlier를 찾으면 더좋은 모델은 그 근처에 있어서 다시 random한 위치로 이동할 필요가 없다.
inlier를 찾으면 그 안에서 inner RANSAC을 시행.

2.2.3. Early-stop method

좋은 모델을 운좋게 빨리 찾았을 경우 더 이상 진행하지 않고 RANSAC을 종료하는 기법.
세가지 변수를 설정해야함.

  • minimum iteration
    • success score 이상의 모델을 발견해도 돌아야하는 최소 iteration.
  • maximum iteration
    • 좋은 모델을 찾지 못한 경우 도는 최대 iteration
  • success score
    • 좋은 모델인지 판단하는 기준이 되는 score.

0개의 댓글