본문 바로가기

VISION/Stereo Vision

Stereo Vision : 8 Point Algorithm (Find Fundamental Mat)

Fundamental Matrix를 구하는 방법

 

0. Point를 정규화 한다.

이미지 크기 width, and height 의 최대 크기인 M으로 데이터값을 나누어주어 scaling 하자.

이미지 크기 구하는 함수 [python] : size

이때 변환 행렬 T를 이용하자. 

마지막에 F를 계산한 후에는 unscale 한다. 

x_norm = Tx

F_unnorm = T'FT 

 

1. 선형 시스템을 구성하자. 

M개의 점이 매칭되어 있을 때 에피폴라 제약에 따라 다음을 만족해야 한다.

F는 3x3 행렬이므로 9개의 unknowns를 homogeneous 선형 시스템으로 풀자.

 

F를 f1~f9 로 나타내고, 점을 homogeneous 로 표시하여 정리하면, 

2-3. A에서 SVD로 X (=F)를 알아내자.

[주의!] homography와 다른점

         x,y point 좌표가 아닌 1개의 scalar 식만을 만든다. 즉, 적어도 8 point 쌍이 있어야 해를 계산가능!

 

4. Unscaling  수행전에 F 행렬에 rank2 제약을 준다.

valid fundamental matrix F는 한점에서 모든 에피폴라 라인이 교차되어야 한다.

그러나 일반적으로 실제적인 포인트들에 대해 8 point algorithm 은 이 조건에 만족하지 못하는 경우가 많다. 

강제적으로 rank2 제약을 주기위해, F를 SVD 분리하자. 

F = UΣV'

그리고 Σ 행렬(diagonal matrix)에서 가장 작은 singular value = 0 으로 셋하여 rank2를 만들 수 있다. 이를 ε 라고 하면

F_rank2 = UεV'

 

5. 구한 F를 제련하자 (Refine)

해를 제련하기 위해 geometrix cost function을 만들어 locally minimizing 하자.

F를 unscaling 전해 할것.!

 

6. Unscaling 수행하여 원래 크기로 전환한다.

'VISION > Stereo Vision' 카테고리의 다른 글

Stereo Vision : Rectification  (0) 2022.04.17
Stereo Vision : Match  (0) 2022.02.05
Stereo Vision : Rectification 예제 (Matlab)  (0) 2022.02.02
Stereo Vision : Triangulation  (0) 2022.01.22