-
[16] Back Projection and Depth EstimationMultiple View Geometry 2021. 4. 14. 15:53
본 포스트는 학습한 것을 정리할 목적으로 작성되었습니다.
해당 포스트의 내용 및 그림, 수식 등은 'Multiple View Geometry in Computer Vision' 책을 참고하였습니다.
(1) Back projection of points to ray
Image plane상에 point $\textbf{x}$가 주어졌을 때 이 점으로 투영되는 ray는 P의 pseudo-inverse를 이용하여 다음과 같이 계산할 수 있다.
$$ P^+ = P^T(PP^T)^{-1} \ , \ \ PP^+ = I $$
$$ P(P^+ \textbf{x}) = \textbf{x} \ \Leftrightarrow \ P^+ \textbf{x} \ \ lies \ on \ the \ ray$$
$$ Ray \ : \ \textbf{X}(\lambda) = P^+ \textbf{x} + \lambda \textbf{C} $$
Finite camera의 경우에는 $P=KR[I|-\tilde{\textbf{C}}]=[M| \textbf{p}_4]$ 이므로 다음과 같이 표현할 수 도 있다.
$$ \tilde{\textbf{C}} = -M^{-1} \textbf{p}_4 $$
$$ \textbf{X}(\mu) = \mu \begin{bmatrix} M^{-1}\textbf{x} \\ 0 \end{bmatrix} + \begin{bmatrix} -M^{-1} \textbf{p}_4 \\ 1 \end{bmatrix} = \begin{bmatrix} M^{-1}(\mu \textbf{x} - \textbf{p}_4) \\ 1 \end{bmatrix}$$
(2) Depth estimation
Camera center에서 어떤 점 $\textbf{X}$ 까지의 depth는 다음과 같다.
$$ depth(\textbf{X} ; P) = (\tilde{\textbf{X}} - \tilde{\textbf{C}})(\textbf{m}^3) \ \ where \ \ \textbf{m}^3 \ : \ third \ row \ of \ M$$
$$ w = (P\textbf{X})^3 = (M(\tilde{\textbf{X}} - \tilde{\textbf{C}}))^3 = (\tilde{\textbf{X}} - \tilde{\textbf{C}})(\textbf{m}^3) $$
$$ depth(\textbf{X} ; P) = \frac{sign(det(M)) w}{|| \textbf{m}^3 ||} $$
이 때 부호는 world coordinate에서 camera coordinate로의 변환 시 $R$의 방향에 따라 달라진다.
실제로는 $w$의 값을 알 수 없으므로 한 장의 이미지로부터 depth를 추정 하는것은 불가능하다.
'Multiple View Geometry' 카테고리의 다른 글
[18] Camera Calibration (2) (0) 2021.04.21 [17] Camera Calibration (1) (0) 2021.04.21 [15] General Projective Cameras (0) 2021.04.14 [14] Finite Camera Matrix (0) 2021.04.12 [13] 2D Homography Estimation (3) (0) 2021.04.11