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)
- Randomly sample 'minimal set of data'
- Estimate model with sampled data
- Evaluate model score
if(current score > so-far-best score): Update score
- 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.