Manduss life

[MVG] Extrinsic Matrix and its Inverse / Camera Center 본문

전산/MVG

[MVG] Extrinsic Matrix and its Inverse / Camera Center

만두쓰 2022. 4. 12. 14:57

교수님과 석사 선배들의 카톡으로 갑작스럽게 다음과 같은 이슈가 나왔다.  

$$\begin{bmatrix}
R & t\\ 
0 & 1
\end{bmatrix}^{-1} = \begin{bmatrix}
R^{-1} & -R^{-1}t\\ 
0 & 1
\end{bmatrix}$$

Transform matrix를 역행렬 취한 값과 Rotation, Traslation 성분 따로 역 계산했을 시 동일한 matrix가 나오는지 ?

나같은 경우는 Inverse 변환을 취해야할 때 주로 Transform matrix을 구하여 역행렬을 취하여 주고, 
다른 석사 선배는 Rotation, Traslation 성분 따로 계산을 해주었다고 한다.

그렇게 역행렬을 취해주었을 시 같은 결과가 나오는지 특정 Transform matrix로 계산하여 (석사 선배 이ㅇ규님이) 확인해보았고, 추가적으로 수식을 사용하여 증명을 해보았다.

  • 코드 상 확인
    먼저, 특정 Transform matrix로 두 가지 방법으로 계산해 보았을 때 동일한 결과가 나왔다. 

출처 : 이ㅇ규 석사

위 결과를 보면 P_inv 행렬의 3x3행렬값과 R_inv 행렬이 동일하고, P_inv 행렬의 마지막 열벡터값이 t_inv값과 동일함을 알 수 있다. 

  • 수식 증명

다음과 같이 수식으로 증명을 해보았다. 

$$\begin{bmatrix}
R & t\\ 
0 & 1
\end{bmatrix}^{-1}$$

$$=\left (\begin{bmatrix}
R & 0\\ 
0 & 1
\end{bmatrix}\begin{bmatrix}
I & t\\ 
0 & 1
\end{bmatrix}\right) ^{-1}$$

$$=\begin{bmatrix}
I & t\\ 
0 & 1
\end{bmatrix}^{-1}
\begin{bmatrix}
R & 0\\ 
0 & 1
\end{bmatrix}^{-1}$$

$$=\begin{bmatrix}
I & -t\\ 
0 & 1
\end{bmatrix}
\begin{bmatrix}
R^{-1} & 0\\ 
0 & 1
\end{bmatrix}$$

$$=\begin{bmatrix}
R^{-1} & -R^{-1}t\\ 
0 & 1
\end{bmatrix}$$

이 과정으로 위 두 행렬이 동일하다는 증명이 가능하다. 

  • 추가로 알아야하는 것

먼저 알아야할 것은 Extrinsic Matrix는 '월드좌표계에서 카메라 좌표계의 변환 관계'라는 것이다. 

MVG(Multi View Geometry) 책에서 또한 Rotation, Translation 변환 관계를 World to Cam으로 설명한다. 

출처 : Multi View Geometry in Computer Vision, p.156

그렇다면, 월드좌표계에서 카메라좌표계 변환 행렬과 반대인 카메라좌표계로부터 월드좌표계 관계식을 작성해보겠다.

$$\begin{bmatrix}
R & t\\ 
0 & 1
\end{bmatrix}=\begin{bmatrix}
R_{c2w} & C\\ 
0 & 1
\end{bmatrix}^{-1}$$

$R_{c2w}$ 는 카메라좌표계에서 월프좌표계로의 Rotation 행렬이고, $C$는 카메라의 센터이다. 월드좌표계로의 변환이라면 카메라 위치만 보면 (0, 0, 0)에서 카메라좌표($C$)로 변환된 것이기 때문에 저 변환식이 가능하다. 

$$=\left (\begin{bmatrix}
R_{c2w} & 0\\ 
0 & 1
\end{bmatrix}\begin{bmatrix}
I & C\\ 
0 & 1
\end{bmatrix}\right) ^{-1}$$

$$=\begin{bmatrix}
I & C\\ 
0 & 1
\end{bmatrix}^{-1}
\begin{bmatrix}
R_{c2w} & 0\\ 
0 & 1
\end{bmatrix}^{-1}$$

$$=\begin{bmatrix}
I & -C\\ 
0 & 1
\end{bmatrix}
\begin{bmatrix}
{R_{c2w}}^{-1} & 0\\ 
0 & 1
\end{bmatrix}$$

$$=\begin{bmatrix}
{R_{c2w}}^{-1} & -{R_{c2w}}^{-1}C\\ 
0 & 1
\end{bmatrix}$$

그리하여 결국 다음과 같은 식을 얻을 수 있다. 

$$R={R_{c2w}}^{-1}$$

$$t=-{R_{c2w}}^{-1}C \\
= -RC$$

대표적으로, 카메라 센터를 다음과 같이 Rotation, Translation matrix로 표현할 수 있다. 

$$C=-R^{-1}t$$

+) Rotation matrix는 orthogonal matrix이기 때문에 Transpose결과와 inverse 결과와 동일하다.

 그리하여  $C=-R^{T}t$로도 표현한다. 

'전산 > MVG' 카테고리의 다른 글

[MVG] Epipolar Geometry  (0) 2022.02.07
Comments