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
즉,
$$\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를 이용할 수도 있음.
2022.04.28 - [Programming/ML] - [Fitting] Ordinary Least Squares : OLS, 최소자승법
유도 과정 요약
- 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
2024.06.22 - [Programming/ML] - [Fitting] Total Least Square Regression
2024.06.01 - [.../Math] - [Math] Optimization 이란 (Introduction)
'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 |