Camera Model Parameter Estimation:
$\underset{\textbf{x}}{\text{argmin }} \mathbf{x}^\top A^\top A \mathbf{x}$
Camera Model Parameter Estimation 문제를
$$\underset{\mathbf{x}}{\text{argmin }} \mathbf{x}^\top A^\top A \mathbf{x} \\ \text{subject to } \ ||\mathbf{x}||=1$$
constrained optimization problem로 유도하는 과정을 설명함.
Camera Model Parameter Estimation의 기본 배경
Camera Model Matrix $P$ (projection matrix라고도 불림)는
- world space, 3D 공간의 점 $(x, y, z)^\top$를
- (virtual) image plane 2D 평면의 점 $(u, v)^\top$ (sensor coordinate, camera calibration 적용 안 된 좌표)로 변환하는 역할을 함.
$$P = K \begin{bmatrix} R & \mathbf{t}\end{bmatrix}$$
2024.06.22 - [Programming/DIP] - [CV] Geometric Camera Model
[CV] Geometric Camera Model
Geometric Camera Model (or Camera Model)은 real world 와 camera의 pose에 따라,real world 와 camera의 image 간의 관계를approximation 함. 이 문서에서는 기본적인 Pinhole Camera Model에 기반하여 설명함.Pinhole Camera Model
dsaint31.tistory.com
즉,
$$\begin{pmatrix} u \\ v \\ 1 \end{pmatrix} = P \begin{pmatrix} x \\ y \\ z \\ 1 \end{pmatrix}$$
여기서
- $\begin{pmatrix} u \\ v \end{pmatrix}$는 이미지 좌표 (sensor coordinate),
- $\begin{pmatrix} x \\ y \\ z \end{pmatrix}$는 3D 세계 좌표를 나타냄.
일반적으로 $P$ 는 3x4 matrix임.
Camera Matrix $P$를 추정하기 위해 여러 3D-2D 점 correspondences를 이용함.
- 여러 쌍의 3D 점 $\begin{pmatrix} x_i \\ y_i \\ z_i \end{pmatrix}$ 와
- 그에 대응하는 2D 점 $\begin{pmatrix} u_i \\ v_i \end{pmatrix} $가 주어질 때 $P$ 를 추정함.
- $P$의 DoF가 11이므로, 최소한 6개의 correspondances가 필요.
Matrix Equation (=Linear System) of Camera Model
3D 점 $\begin{pmatrix} x_i \\ y_i \\ z_i \end{pmatrix}$와 2D 점 $\begin{pmatrix} u_i \\ v_i \end{pmatrix}$ 사이의 관계는 다음과 같이 주어짐:
$$\begin{pmatrix} u_i \\ v_i \\ 1 \end{pmatrix} = P \begin{pmatrix} x_i \\ y_i \\ z_i \\ 1 \end{pmatrix}$$
이를 Linear Equation 형태로 나타내면:
$$
\begin{bmatrix}
x_i & y_i & z_i & 1 & 0 & 0 & 0 & 0 & -u_i x_i & -u_i y_i & -u_i z_i & -u_i \\
0 & 0 & 0 & 0 & x_i & y_i & z_i & 1 & -v_i x_i & -v_i y_i & -v_i z_i & -v_i
\end{bmatrix}
\begin{bmatrix}
p_{1,1} \\ p_{1,2} \\ p_{1,3} \\ p_{1,4} \\ p_{2,1} \\ p_{2,2} \\ p_{2,3} \\ p_{2,4} \\ p_{3,1} \\ p_{3,2} \\ p_{3,3} \\ p_{3,4}
\end{bmatrix}
=
\begin{bmatrix}
0 \\ 0
\end{bmatrix}
$$
여기서
- $(u_i, v_i)$는 이미지 좌표,
- $(x_i, y_i, z_i)$ 는 대응되는 3D 좌표임.
여러 점에 대해 이 방정식을 쓰면:
$$A \mathbf{p} = \mathbf{0}$$
여기서 $A$는 $2n \times 12$ 행렬이고, $\mathbf{p}$ 는 $P$ 의 벡터화된 형태임 ($n$은 number of correspondances).
Optimization Problem
Camera Model Parameter Estimation 문제는 $A \mathbf{p} = \mathbf{0}$을 만족하는 $\mathbf{p}$를 찾는 문제임.
하지만 이는 이상적인 경우이며, 카메라 측정등에서의 noise로 인해 여러 correspondences를 측정할 경우 over-determined system이 되는 경우가 일반적임.
때문에 다음과 같이 Sum of Squared Errors를 최소화하는 $P$를 구하는 것으로 대체됨:
$$ \underset{\mathbf{p}}{\text{min }}\sum_{i=1}^n \{ p_{1,1} x_i + p_{1,2} y_i + p_{1,3} z_i + p_{1,4} - u_i (p_{3,1}x_i + p_{3,2} y_i + p_{3,3} z_i + p_{3,4}) \}^2 \\ + \{ p_{2,1} x_i + p_{2,2} y_i + p_{2,3} z_i + p_{2,4} - v_i (p_{3,1}x_i +p_{3,2}y_i+p_{3,3}z_i+p_{3,4})\}^2$$
이는 다음과 같이 Least Squares 문제로 변환하여 해결함을 의미함.:
$$\underset{\mathbf{p}}{\text{argmin}} || A \mathbf{p} ||^2$$
참고로, 여기서 벡터 $\mathbf{p}$ 는 1로 정규화되는 경우가 일반적임.:
$$||\mathbf{p}|| = 1$$
Note: 왜 벡터 $\mathbf{p}$는 정규화되어야 할까?
벡터 $\mathbf{p}$ 를 Normalization(정규화)하는 이유는 단순화와 solution(해)의 일관성을 위해서임.
- 단순화:
- 만약 벡터 $\mathbf{p}$ 를 정규화하지 않는다면, $\mathbf{p}$ 의 크기를 여러 가지로 만들 수 있음.
- 예를 들어, $\mathbf{p}$ 가 $\mathbf{q}$ 의 2배라면, 두 벡터는 같은 방향을 가리키지만 길이는 다름.
- 정규화 조건을 추가하면, 길이가 1인 벡터들만 고려하기 때문에 문제를 단순화할 수 있음.
- 일관성:
- 정규화 조건이 없다면, $A \mathbf{p}$ 가 0이 되는 여러 벡터를 찾을 수 있음 (solution이 여러개).
- 정규화 조건을 추가하면, solution(해)가 유일하게 결정되며, 모든 사람이 같은 벡터 $\mathbf{p}$를 찾게 됨.
최종 문제 설정
따라서 문제는 다음과 같이 유도됨:
$$\underset{\mathbf{p}}{\text{argmin }} \mathbf{p}^\top A^\top A \mathbf{p} \quad \text{s.t.} \quad ||\mathbf{p}|| = 1$$
이 문제는 fitting algorithm으로 풀거나, gradient decent를 이용할 수도 있음.
[Math] EVD 및 SVD로 $\textbf{x}^TA^TA\textbf{x}$의 최소값 및 해 구하기: Total Least Squares
Vector $\mathbf{x}$ 와 Matrix $A$가 주어졌을 때,$\mathbf{x}^T A^T A \mathbf{x}$의 minimum (or lower bound)를 구하는 방법에 대해Singular Value Decomposition(SVD)와 Eigenvalue Decomposition(EVD)을 이용하는 방법. $\underset{\mathbf{x
dsaint31.tistory.com
2022.04.28 - [Programming/ML] - [Fitting] Ordinary Least Squares : OLS, 최소자승법
[Fitting] Ordinary Least Squares : OLS, 최소자승법
Ordinary Least Squares : OLS, 최소자승법Solution을 구할 수 없는 Over-determined system에서 solution의 근사치(approximation)을 구할 수 있게 해주는 방법임.Machine Learning에서 Supervised Learning의 대표적인 task인 Re
dsaint31.tistory.com
유도 과정 요약
- 3D 점 $\begin{pmatrix} x_i \\ y_i \\ z_i \end{pmatrix}$ 와 2D 점 $\begin{pmatrix} u_i \\ v_i \end{pmatrix}$ 사이의 관계를 나타내는 선형 방정식 유도.
- 여러 점에 대해 행렬 $A \mathbf{p} = \mathbf{0}$ 형태로 표현.
- 최소 제곱 문제로 변환하여 $\min | A \mathbf{p} |^2 $ 문제로 설정.
- 벡터 $\mathbf{p}$가 1로 정규화된다는 조건 추가.
- 최종적으로 $\underset{\mathbf{x}}{\text{argmin }} \mathbf{p}^\top A^\top A \mathbf{p} \quad \text{s.t.} \quad ||\mathbf{p}|| = 1 $ 형태로 유도.
같이 보면 좋은 자료들
2024.06.22 - [Programming/DIP] - [CV] Geometric Camera Model
[CV] Geometric Camera Model
Geometric Camera Model (or Camera Model)은 real world 와 camera의 pose에 따라,real world 와 camera의 image 간의 관계를approximation 함. 이 문서에서는 기본적인 Pinhole Camera Model에 기반하여 설명함.Pinhole Camera Model
dsaint31.tistory.com
[Math] EVD 및 SVD로 $\textbf{x}^TA^TA\textbf{x}$의 최소값 및 해 구하기: Total Least Squares
Vector $\mathbf{x}$ 와 Matrix $A$가 주어졌을 때,$\mathbf{x}^T A^T A \mathbf{x}$의 minimum (or lower bound)를 구하는 방법에 대해Singular Value Decomposition(SVD)와 Eigenvalue Decomposition(EVD)을 이용하는 방법. $\underset{\mathbf{x
dsaint31.tistory.com
2024.06.22 - [Programming/ML] - [Fitting] Total Least Square Regression
[Fitting] Total Least Square Regression
Total Least Squares (TLS) RegressionTotal Least Squares (TLS) 회귀는 데이터의 모든 방향에서의 오차를 최소화하는 회귀 방법임.이는 특히 독립 변수와 종속 변수 모두에 오차가 포함되어 있는 경우에 유용함.
dsaint31.tistory.com
2024.06.01 - [.../Math] - [Math] Optimization 이란 (Introduction)
[Math] Optimization 이란 (Introduction)
Optization(최적화)란 무엇인가?Optimization(최적화)는feasible candidates(가능한 후보)들 중에서Optimal element(최적의 요소)를 찾아내는 과정임.쉽게 말해, 어떤 문제에 대해 Optimal solution을 찾는 것임.Feasible
dsaint31.tistory.com
'Programming > DIP' 카테고리의 다른 글
[CV] Epipolar Geometry [작성중] (0) | 2024.06.28 |
---|---|
[CV] Two View Geometry (0) | 2024.06.28 |
[CV] Geometric Camera Model and Camera Calibration: Pinhole Camera (0) | 2024.06.22 |
[Fitting] Hough Transform (0) | 2024.06.13 |
[CV] Fitting (0) | 2024.06.13 |