본문 바로가기
공부/컴퓨터비젼

[컴퓨터비젼] 9. RANSAC

by 맑은청이 2021. 4. 12.
728x90
반응형

주로 매칭이 잘 되는 피처를 inliers라고 하고 잘못 된 걸 outliers 라고 함

이 아웃라이어를 어떻게 찾아내고 인라이어만 이용할지를 알아봄

 

 

오른쪽에 빨간색이 더 일치하는 선인데 outliers 때문에 파란색으로 대표하는 regression이 잡힘 

 

 

어떻게 할 수 있을까?

가설의 선을 그리고 

부합하는지 계산 

-> 가능한 라인을 다 그리고 제일 많은 인라이너가 부합하는 선을 찾으면 됨 

 

단점은 simple closed-form solution이 없다는 거 

 

 

translator vector 을 적용하면 포인트간에 차이를 계산할 수 있음 

차이를 따라서 인라이언지 아웃라이언지 구분 가능 

 

match를 다해보고 인라인어의 갯수가 가장 많은 걸로 선택 

제일 중요한 건 Best 한 translation vector 를 찾는 거임 

 

모든 인라이어는 트랜스레이션 벡터를 만족 아웃라이어는 만족하지 않는다라는 아이디어로 나옴 

아웃라이어가 50% 미만일때만 Guarantee가 됨

 

 

그럼 어떻게 잘 결정 할 수 있을까?

주로 threshold를 두고 거리상에 어느 정도 이하면 인라이어라고 결정

보통 가우시안으로 결정하게 됨

 

또 다른 중요한 파라미터는 '라운드의 개수' , 얼마나 해야 원하는 만큼의 아웃라이어를 찾을 수 있을까 확률을 보장 받을 수 있을까  

 

20%의 아웃라이어가 있다고 했을때 99퍼의 확률로 맞출려면 얼마나 많은 라운드가 필요한가 

 

 

어떻게 라인을 그리냐. 점 두개만 있으면 됨 

최소 두개만 있으면 라인을 그을 수 있고 인라이어를 계싼할 수 있음. 

 

1. x개의 샘플을 랜덤하게 선택, 모델을 만들기 위한 최소한의 개수 

2. 샘플을 가지고 모델을 계산 

3. 계산된 라인이나 매트릭스를 계산하여 적용하고 인라이어인지 판단 

4. N번 반복

5. 가장 많은 인라이어를 가지는 모델 선택 

 

 

그럼 얼마나 라운드를 많이 해야하나? 

통계적으로 나와있음

 

그럼 샐플 사이즈는 얼마나 커야하나 

motion model 에 의존적으로 

 

 

RANSAC 장단점 

랜섹의 주목적은 아웃라이어를 없애는 거. 

마지막에 least square를 구해야함 (여기서는 초록색으로 가장 best를 뽑았음)

 

 

 

과정

이 다음에는 파노라마를 만들 수 있다. 

728x90
반응형