- 이미지 평면에서 보이는 점들을 바탕으로 11개의 내·외부 파라미터 (intrinsic & extrinsic)를 추정하는 것
# Rearrange the DLT Equation
투영 행렬 P를 다음과 같이 3개의 행렬로 표현
# Estimateting the Elements of P
# Verifiying Correctness
- axP는 위와 같다.
- ayP는 위와 같다.
# Summary
=> 모든 point들에 대해 Stacking하여 하나의 큰 행렬 시스템으로 변환한다.
- 우리는 아래와 같은 동차 선형 방정식 (linear equation)을 풀고자 한다. Ax = 0 - 이는 행렬 A의 null space를 찾는 문제와 같다. - system "MP = 0"을 풀기 위해 P는 0에 대응하는 singular value의 singular vector로 선택된다.
[ Homogeneous System => SVD]
SVD를 활용한 linear system 해법
SVD(Singular Value Decomposition)
- U, V: 직교행렬 - S: 대각행렬 (singular value들만 존재) => 가장 작은 singular value "s12"에 해당하는 "v12" 선택 => 이때, p=v12는 wTw를 최소화 한다.
Obtaining the Projection Matrix
- 위에서 구한 P=v12를 이용해 P를 구한다.
Q) 이 방법은 항상 잘 작용할까?
Critical Surfaces
- M의 rank가 11이어야 SVD를 잘 구할 수 있다. => rank(M)이 11이 되어야 SVD 했을때 singular vector까지 잘 나온다. - 최소 6개의 점이 필요하다. => 3D 상에 point가 골고루 섞여있어야 한다.
EX) => 모든 point Xi가 하나의 평면 위에 있을 경우 해가 존재하지 않거나 부정확하다. (No Solution)
Decomposition of P
Q) Projection matrix(P)로부터 K, R, X0를 구하는 방법은?
위의 정의로부터 유도[QR-decomposition] inverse H 계산정규화를 위해 마지막 요소로 나눠준다. 마지막 행을 001로 만들기 위해
DLT in a Nutshell
1. linear system M을 구성한다.
2. SVD를 이용해 M을 푼다. V matrix의 마지막 열 벡터 "v12"가 해이다
3. 개별 parameter가 필요하다면
Summary
- DLT는 camera의 Intrinsic, Extrinsic parameters를 추정하는 방법 - 최소한 3D 상에서 6개 이상의 control points가 필요하다. - 초기 추정값 없이 linear하게 직접 해를 계산할 수 있다.
Zhang's Method
- Intrinsic parameter를 plane이더라도 구할 수 있다.
- World 좌표계의 원점을 체스보드의 코너로 설정한다. - 모든 점은 Z = 0인 평면 상에 존재 => 이 구조로 수식이 단순화, 계산이 쉬워진다.
Simplication
- 모든 point의 Z 좌표는 0 이므로 Extrinsic 행렬의 3번째 열이 삭제된다.즉, Z좌표가 0인 checkboard 위의 점 1개로부터 이와 같은 식 하나를 만들 수 있다.
Setting up the equaations for determining the parameter
표현을 다음과 같이 바꾼다.이미지 한장에서 여러개의 checkerboard 점을 관측하면 다음과 같은 여러개의 대응식이 생긴다.DLT 방식과 유사하다.
=> 3x3 projection matrix(P) 대신 3x3 Homogeneous matrix(H)를 추정한다.
- 위의 linear system을 통해 H를 추정할 수 있다. - H : DOF = 8 / at least 4 points => DOF가 8이므로 최소한 4개의 점 쌍(즉 8개의 방정식)이 필요하다. => 각 점에서 x,y 2개의 관측치를 주기 때문에 총 4개의 점이면 된다.
Computing K Given H
- r1, r2가 orthogonal 보장이 없다. => QR 분해를 직접 사용할 수 없다. - 방법은?
- 우리는 SVD를 통해 얻은 H - K [r1,r2,t]로부터 내부 행렬 K를 추출해야 한다.
[4 Step Procedure] 1. K, r1, r2에 대한 제약 조건을 활용한다. 2. 행렬 B를 정의 한다.
3. 이 B는 또 다른 homogeneous linear system을 풀어서 계산 가능 4. B를 분해하면 내부 파라미터 K를 얻을 수 있다.
Exploiting Constraints for Determining the Parameter
행렬 B 정의B를 통해 이와 같이 표현
=> B는 미지수 / h는 알고 있다.
Compute B
B는 대칭행렬이므로 총 6개의 독립적인 값이 필요하다.
- 위에서 유도한 2가지 제약 조건을 바탕으로 system of linear equations "Vb = 0"을 구성한다.
Matrix V
여러 이미지의 경우
- 전체적으로 어떻게 되는지만 확인
Solving the Linear System
H를 구하기 위해 필요한 조건
- at least 4 points per plane to compute the matrix H : 한 평면(이미지)(plane)당 4개 이상의 대응점
- Each plane gives us two equations : 한 평면 당 2개의 제약 조건을 제공
- B has 5,6 DOF, we need at least 3 differencet views of a plane : B 행렬은 5~6개의 DOF를 가지므로 최소한 3장의 서로 다른 평면 이미지가 필요하다.
- Solve Vb = 0 to compute K
General Calibration Matrix
Error Minimization
- optimization 방법이다. 정도만
Camera Calibration Summary
- Calibration: camera의 intrinsic parameter를 추정하는 것 - 보정 과정에는 Linear / Non-linear Errors 가 있다. - Linear parameter는 5개 - Zhang's Method: checkerboard를 이용하여 이 5개의 linear parameters를 추정한다. - Non-linear parameters는 두번째 step에서 추정한다.