동일한 장면(scene)을 서로 다른 두 지점에서 촬영한 영상의 기하학적 관계, epipolar 기하학 정리
Epipolar Geometry
- Epipolar geometry는 동일한 사물 또는 장면에 대한 영상을 서로 다른 두 지점에서 획득했을 때, 영상 A와 영상 B의 매칭쌍들 사이의 기하학적 관계를 다루는 것
-6.-Epipolar-Geometry_image_1.png)
1. Epipolar 기본 개념
1.1. epipole & epiline
- 3차원 공간상의 한 점 가 영상 에서는 가 투영되고, 영상 에서는 에 투영될 때, 두 카메라 원점을 잇는 선과 이미지평면이 만나는 점 을 epipole이라 부름
- 과 각 이미지평면의 투영점()을 잇는 직선 을 epiline (또는 epipolar line) 이라 함
1.2. epipolar 성질
- 실제 좌표 는 이미지 에 로 투영되면서 깊이(Depth)정보를 손실하게되며, 이미지 B에서 투영된 는 반드시 epiline 위에 존재할 것 임
- 모든 epiline은 epipole을 통과함
- 의 영상좌표 로부터 대응되는 의 영상좌표 을 유일하게 결정할 수는 없지만 이 지나는 직선인 epiline 은 유일하게 결정할수 있음
- epipole 과 epiline을 구하기 위해서는 Fundamental Matrix와 Essential Matrix가 필요함
-6.-Epipolar-Geometry_image_2.png)
2. Essential Matrix
임의의 두 지점에서 찍은 영상의 매칭점들은 항상 관계지을 수 있으며, 이 때 관계식을 epipolar constraint(또는 essential constraint)라 하고, 이 3x3 행렬 E를 Essential Matrix라 부름 camera intrinsic paramete가 고려되지 않는 경우(= intrinsic parameter가 단위행렬)를 가정
2.1. epipolar constraint
- 는 3x3의 Essential Matrix
2.2. Essential Matrix 유도
- 임의의 두 카메라 좌표축 사이의 관계를 회전, 평행이동에 의해 관계지을 수 있으므로, 3x3 회전행렬 , 3x1 평행이동 벡터를 라 했을 때, 외부 공간상의 한 점을 두 카메라 좌표계에서의 관계를 아래와 같이 표현함 (는 A카메라 좌표계, 은 B카메라 좌표계)
- 이 때, essential matrix E를 다음과 같이 정의하면
- 다음을 만족함
3. Fundamental Matrix
Essential Matrix가 정규화된 이미지 평면에서의 매칭 쌍들 사이의 기하학적 관계를 설명하는 행렬이라면, Funcamental Matrix는 카메라 파라미터까지 포함한 두 이미지의 실제 픽셀(pixel) 좌표 사이의 기하학적 관계를 표현하는 행렬 (Essential Matrix에서 카메라 intrinsic parameter(=K matrix)를 모두 같이 고려하는 matrix)
3.1. Fundamental Matrix 유도
- 임의의 두 이미지 A, B에 대하여, 매칭되는 픽셀 좌표 , 사이에는 항상 다음과 같은 관계를 만족하는 행렬 F가 존재하고, 이러한 행렬 F를 fundamental matrix라 부름
- 이 때, 이미지 A에 대한 카메라 내부 파라미터 행렬을 , 이미지 B에 대한 카메라 행렬을 , 이미지 A, B 사이의 essential matrix를 라 하면 funamental matrix 는 다음과 같이 주어짐
4. OpenCV 관련 함수
- findFundamentalMat(): 두 이미지 사이의 fundamental matrix를 계산하여 반환. 입력으로는 8쌍 이상의 매칭 이미지 좌표쌍을 입력
- findEssentialMat(): 두 이미지 사이의 essential matrix를 계산하여 반환. 입력할 내용은 5쌍 이상의 매칭 이미지 좌표쌍과 카메라 파라미터(초점거리, 주점). 내부적으로 5-point 알고리즘을 사용. 이미지 좌표로는 normalized 좌표가 아닌 픽셀 좌표를 입력
- decomposeEssentialMat(): 입력 essential matrix로부터 회전변환 R, 평행이동 t를 추출해 줌. 가능한 4가지 조합의 [R|t]를 반환
- recoverPose(): 입력된 essential matrix와 두 이미지에서의 매칭쌍으로부터 두 이미지의 상대적인 [R|t] 관계를 추출해 줌. decomposeEssentialMat()이 [R|t]를 유일하게 결정하지 못하고 해를 여러개 반환하는 반면, recoverPose()는 부가적인 기하학적 조건 검사를 통해 [R|t]를 유일하게 결정하여 반환해 줌
5. 프로젝트
- 프로젝트 결과 참고 : (Stereo) Stereo Vision System
참고
- 다크 프로그래머 :: [영상 Geometry #7] Epipolar Geometry
- [52편] 스테레오비전 기초1-Epipolar.. : 네이버블로그
- [개념 정리] Epipolar Geometry
- [개념 정리] Essential Matrix와 Fundamental Matrix