Triangulation
•
Calibration Parameters 를 아는 cameras 들을 이용해 3D Points 를 reconstuction 하는 과정.
◦
Calibration 은 Corresponding Point 들로 를 구한다음에 decomposition 하는 것이 일반적임.
◦
두 개 초과의 camera 를 사용하면 더 정확한 reconstruction 이 가능함.
•
정확하지 않은 대응점들에 기반한 Ray 는 서로 만나지 않을 수 있고, 이 경우 3D Point 를 정의하기 위해서는 2D 에 projection 한 점과 실제 점의 오차를 기반으로 정의되는 reprojection error 를 사용하여 최적화된 점을 찾을 수 있음.
Triangulation: Computing 3D Point (Algebraic)
•
Multiview 로부터 3D Point 를 계산하는 Algebraic Solution
•
일반적인 3D → 2D projection 의 식은 위와 같음.
•
위 식은 Up-to-Scale 을 포함한 식이기 때문에 이를 제거한 Cross Product 형태로 바꿀 수 있음.
•
DLT 를 사용하게 위해 풀어서 쓰면 다음과 같은 식들로 나눌 수 있음.
•
위 세 번째 식은 사실 첫 번째 식과 두 번째 식으로 만들 수 있어서 (redundant) 사용하지 못하고, 다음과 같은 형태로 DLT 를 구축할 수 있음.
•
개의 view 가 있다면 DLT 의 좌항에 총 개의 row 가 추가되어 좌항은 matrix 가 됨.
•
이후 의 최솟값을 구해 를 optimize 할 수 있음.
Triangulation: Computing 3D Point (Geometric)
•
Multiview 로부터 3D Point 를 계산하는 Geometric Solution
•
예측한 에서 다시 각 Camera 및 Image Plane 에 projection 하여 맺힌 점의 위치와 측정한 점의 위치의 차이를 최소화하는 방법임.
◦
: Reprojected Point
◦
: Measured (Corresponding) Point
•
DLT 로 initialize 하고 optimization based method (e.g. gradient descent) 를 사용하여 최종적으로 해결함.
Traingulation Uncertainty
•
Long Baseline 을 가진 경우 Depth 방향 Uncertainty 가 작지만, Feature Matching (Finding Corresponding Points) 이 어려움.
•
Short Baseline 을 가진 경우 Depth 방향 Uncertainty 가 크지만, Feature Matching (Finding Corresponding Points) 이 쉬움.
•
선택에 대한 정답은 없고, camera 를 여러 개 쓰면 좋음. 다다익카
Structure-from-Motion: Tomasi-Kanade Factorization
•
Casual Video 나 Image 를 입력으로 받아 3D Scene Points 와 Camera Pose 를 출력하는 것
◦
Input: , 는 feature point 의 index, 는 view 의 index
◦
Output: 3D Scene Point
◦
Unknown: Camera Position , Camera Orientation
•
Orthographc Projection 을 가정으로 함.
◦
: Real World 3D Point
◦
: Camera Coordinate
◦
: Image Plane direction
◦
: Displacement from Camera Coordinate to Real World 3D Point
◦
더불어 World Coordinate 의 origin 을 3D point 의 중심점으로 두어, 모든 3D Point 를 더하면 0 이 되도록 가정할 수 있음.
•
Centering Trick
◦
기본적인 이미지의 기준점은 Corner Point 이지만, 이 기준점을 Feature Point 의 중심점으로 옮겨 각 Feature Point 들을 모두 더하면 0 이 되도록 함.
◦
이렇게 하면, 2D Image 의 Projection Point 는 다음과 같이 간략화할 수 있음.
▪
가운데 항은 가정에 의해서 0 이고 제일 끝항은 앞 항의 두 번쨰 항목과 상쇄되어 사라짐.
▪
이렇게 하면, Camera 항목이 Projection 에서 사라져버림.
•
결국 Corresponding Points 를 decompose 만 할 수 있다면 Camera Motion 과 3D Scene Point 를 찾을 수 있음.
◦
를 Observation Matrix 라고 부름.
◦
•
의 Rank 를 맞추기 위해 에 SVD 를 적용하고 3개의 행, 열을 제외하고 다 0으로 바꾸어버릴 수 있음.
◦
이렇게 Rank 를 줄인 로 정의할 수 있음.
•
Decomposition 을 위해서 다음과 같이 가운데 를 반씩 쪼개서 나눌 수 있음.
◦
로, 로 단순하게 지정할 수 있음.
◦
하지만, invertible matrix 에 대해 도 또 다른 해가 됨.
•
여러 가능성 중 하나를 선택하기 위해서 기존에 Camera Motion 의 Orthonormality Constraint 를 활용할 수 있음.
◦
기존 를 다음과 같이 나타낼 수 있음.
◦
위와 같은 세팅에서 기존의 Orthonormality Constraint 는 다음과 같이 변환할 수 있음.
◦
위 식에서 는 DLT 로, 이후에 는 Cholesky Decomposition 을 통해 구할 수 있음.