Motivation
동일한 건물을 촬영한 두 개의 영상이 있다. 그리고 이 두 영상간의 관계를 통해 서로 어디서 영상을 촬영했는지를 알아내고 싶다. 이를 위해 우리는 두 영상에서 실제로 동일한 지점이라고 생각되는 '매칭점'을 알고 있다고 가정해보자. 한쪽 영상의 매칭점들은 하나의 어떤 행렬(이걸 fundamental matrix라 함)을 통해 다른 쪽 영상의 대응되는 매칭점으로 변환이 가능하다. 이러한 행렬이 존재하는 이유는 두 영상의 매칭점간의 3차원 기하학적 관계가 성립하기 때문이다(이는 epipolar geometry를 공부하면 이해할 수 있음). 즉, 우리가 만약 정확한 매칭점을 충분히 많이 알 수 있다면 이 변환 행렬을 구할 수 있다는 뜻이 된다. 그리고 이 변환 관계를 안다는 것은 상대적인 카메라 포즈의 변화도 알 수 있다는 뜻이 되어, 앞서 제시한 문제가 해결될 수 있게된다는 것을 의미한다.
그러나, 실제로는 두 영상을 촬영하는데 사용된 카메라가 동일하다는 보장이 없다. 즉, 카메라 자체(내부)의 요인으로 인해 정확한 fundamental matrix를 구하는 것은 어려운 문제가 된다. 하지만 camera calibration을 통해 이러한 내부 요인을 배제할 수 있다면 이를 해결할 수 있다. 이렇듯 calibration이 수행된 영상 간의 변환 행렬을 essential matrix라고 한다. 즉, 정확하게 따지만 우리는 essential matrix와 두 영상의 카메라 내부 요인(intrinsic parameters)을 모두 알아야 fundamental matrix를 구할 수 있다.
Topics
앞서 설명한 내용을 실제로 구현하기 위해서는 아래와 같은 개념, 기법들을 모두 이해해야한다.
- 매칭점을 구하는 방법(SIFT 등)
- 매칭점 변환을 이해하기 위한 영상 쌍 간의(stereo) 3차원 기하(epipolar geometry)
- Fundametal matrix까지 확장하는데 필요한 camera intrinsic과 calibration
- 변환 행렬을 구하기 위한 알고리즘(5-point, 8-point algorithm 등)
* 8-Point Algorithm
컴퓨터 비전에서, 여덟 쌍의 매칭점으로 부터 두 카메라 영상간의 essential matrix 나 fundamental matrix 를 추정하는데 사용하는 알고리즘. 본 알고리즘은 선형이면서 빠르고 쉽게 구현이 가능하다는 장점을 가지고 있다(여덟 쌍의 매칭점이 있으면 선형방정식이 세워짐). 만약 여덟 쌍 보다 더 많은 매칭점을 알고 있다면 최소자승법(leaset square method)을 통해 더 좋은 결과를 얻을 수도 있다. 하지만 매칭 결과의 노이즈에 취약하다는 단점을 가지고 있기도 하다.
'Geometry' 카테고리의 다른 글
OpenCV 특징점 검출 및 매칭 (0) | 2021.03.26 |
---|---|
Visual Odometry (0) | 2021.03.17 |
Solution for Fundamental Matrix - Essential / Fundamental Matrix (0) | 2021.03.05 |
Solution for Fundamental Matrix - Epipolar Geometry (0) | 2021.03.05 |
Solution for Fundamental Matrix - Matching Point (0) | 2021.03.05 |
댓글