CV 과제해야 되는데... 과목들한테서 핀포인트로 조져지는 것 같네 ㅎㅎ;
작성자의 상태에 따라 잘못된 내용이 있을 수 있읍니다. 댓글 & 지적 환영
Triangulation
- 어떤 3D 좌표상의 점 X에 대해, 2개의 카메라가 다른 각도로 그 점을 촬영했다고 생각해보자.
- 각 카메라는 서로 다른 Camera Matrix P와 P'을 가질 것이고, 그 Image 상에 서로 다른 점 x, x'에 X가 projection 되었을 것이다.
- P, P', x, x'이 모두 주어졌다고 가정한다.
- Image 1번의 점 x와 3D 좌표 X를 잇는 선(ray)을 어떻게 구할 수 있을까?
- 카메라의 원점을 찾고, Camera Matrix P의 pseudo-inverse Matrix P+를 x에 곱해준다.
- 그런데, P+는 완전한 Inverse Matrix가 아니라, Pseudo-Inverse Matrix이고 Image 자체에도 noise가 있을 수 있기 때문에, 정확히 ray를 구할 수 없다.
- Image 2에 대해서도 똑같이 수행할 수 있고, 마찬가지로 오차가 존재할 수 있다.
- 두 Image에 대한 ray들의 교점, 혹은 제일 가까운 점이 X의 좌표가 될 것이다.
Epipolar Geometry
- 어떤 3D 좌표상의 점 p를 두 카메라가 서로 다른 각도로 촬영했다고 생각한다.
- 용어정리
- Baseline: 두 카메라의 카메라 원점을 이은 선분
- Epipolar plane: 두 카메라의 카메라 원점과 p가 이루는 한 평면
- Epipolar line: Epipolar plane과 각 카메라에 의한 Image 평면이 만나는 교선
- Epipole: Epipolar Line과 Baseline이 만나는 교점. 다른 카메라의 원점이 해당 Image 상에 맺히는 상이라고 볼 수 있다.
- p는 어떤 카메라의 Image 상의 점 x에 Mapping 될 것이다.
- x의 Potential Match들은 다른 카메라의 Image의 Epipolar line에 상이 맺힐 것이다: Epipolar Constraint
- 한편, Epipole은 항상 실제 Image위에 있지 않을 수도 있다.
Parallel Camera
- 각 Epipolar Line들이 한 점에서 만나지 않고 평행한 경우.
- 즉, Epipole이 거의 무한으로 가도 없을 수 있다.
- 두 카메라가 거의 같은 방향으로 바라보고 찍은 경우이다.
Forward Moving Camera
- 두 사진의 Image가 같은 방향을 바라보고 있다.
- 그 움직임이 Image Plane에 대해 수직이다.
- 두 Image 모두 Epipole이 같은 좌표상에 있다.
- 점들은 "Focus of Expansion"으로 부터 퍼져나가는 선 상에서 움직인다.
- Focus of Expansion은 간단히 말하자면, 사진의 중앙부이다.
- Epipolar Line이 계속 직진하여 어떤 점 X에 닿는다면, 그 점이 Focus of Expansion이다.
Epipolar Constraint & Stereo Vision
- 왼쪽에서 찍은 Image와 오른쪽에서 찍은 Image가 있다고 하자.
- 왼쪽에서 찍은 Image 상의 Point들이 오른쪽에서 찍은 Image 상의 Point들에 일치시켜야 한다.
- 또, 왼쪽 Image에서 어떤 두 점 A, B가 순서대로 있다면, 오른쪽 Image에서도 같은 순서대로 있어야 한다.
- Epipolar Constraint에 따르면 어떤 점은 다른 Image 상의 한 Epipolar Line 상에 있으므로, 전체 Image를 다 둘러볼 필요가 없다.
- 그러면, Epiploar Line을 어떻게 찾을까? → Essential Matrix!
Essential Matrix
- Epipolar Constraint를 Basis로 한다.
- Essential Matrix: 어떤 Image 상의 한 점이 주어졌을 때, 다른 Image상의 Epipolar Line을 찾아주는 Matrix.
- 즉, 어떤 Essential Matrix E 에 대해서, Ex = l' 이 만족한다.
- 2차원 좌표의 Homogeneous Coordinate간의 변환행렬 : size = (3, 3)
- Image 상의 어떤 점 x와 그 점을 포함하는 Epipolar Line은 서로 수직이다.
- Epipolar Line의 벡터를 l이라고 하면, x·l = xTl = 0
- 따라서, x'TEx = 0 이 성립한다.
Homography와 Essential Matrix는 어떤 차이가 있나?
- 둘 다 3*3 Matrix이다.
- Homography는 점과 점 간의 변환행렬이다(Rank: 3).
- Essential Matrix는 점과 선(epipolar line) 간의 변환행렬이다(Rank: 2).
- SVD를 취하면 singular value가 하나는 0이 나온다.
Essential Matrix를 어떻게 구할 수 있나?
Fundamental Matrix
- Essential Matrix: 모든 점들이 Camera Coordinate System에 대해서 나타내어지는 좌표를 갖는다는 가정을 갖고 시작한다(Calibrated Camera).
- 그러나, Camera Parameter를 모르면 구할 수 없다.
- Fundamental Matrix는 그러한 가정이 없더라도, 두 Image 상의 점 x와 x'간의 변환을 나타낼 수 있는 Matrix이다.
- Essential Matrix의 일반화라고 볼 수 있다.
- Essential Matrix에서, x'TEx = 0 에서의 x', x는 Camera Coordinate에서의 좌표를 나타낸다.
- 그러나, Camera Coordinate system을 모른다면, x'과 x는 Image Coordinate system의 좌표로 나타내어 질 것이다.
- 이 경우, xi = Kxc가 성립한다. 이 식을 정리하여 x'TEx = 0 에 대입하면 다음과 같다.
x'iTK'-TEK-1x = 0
다시 정리하면, x'iTFx = 0
- 이 때, F를 Fundamental Matrix라고 한다.
- Image coordinate system에서도 똑같이 적용되는 Matrix가 있음을 알아내었다.
- 그렇다면, F를 어떻게 구할 수 있는가? → Eight-Point Algorithm
Fundamental Matrix를 구하는 방법: Eight-point Algorithm
2019/12/8 2차 작성
'Major in CS > Computer Vision(컴퓨터비전)' 카테고리의 다른 글
Computer Vision (7) - Geometric Camera Models (0) | 2019.12.06 |
---|