본 포스팅에서는 변환 행렬 (Transformation matrix)에 대해 다루어 봅니다.
변환 행렬이란?
변환 행렬 (Transformation matrix)은 $\mathbb{R}^n$에서 $\mathbb{R}^m$으로의 선형 변환 mapping을 표현하는 $m \times n$ 행렬을 뜻합니다.
\[T(\vec{x}) = A\vec{x} \quad \text{where} \quad A = \begin{bmatrix} a_{11} & a_{12} & ... & a_{1n} \\ a_{21} & a_{22} & ... & a_{2n} \\ ... \\ a_{m1} & a_{m2} & ... & a_{mn} \end{bmatrix}\]기하 변환 (Geometric transformation)
변환 행렬 중 컴퓨터 비전/로보틱스 분야에서 많이 쓰이는 종류는 바로 기하 변환 (geometric transformation) 입니다.
기하 변환의 종류에는 여러 가지가 있지만, 주로 사용되는 변환은 다음과 같습니다.
- Translation transformation
- 거리와 절대 각도 유지 (변환 전후의 local coord의 방향이 동일)
- Rotation transformation
- 거리와 상대 각도 유지 (변환 전후의 local coord의 방향이 다름)
- Homogeneous transformation
- Translation과 rotation을 homogeneous matrix로 한꺼번에 표현
- Similarity transformation
- 상대 각도와 거리 비율 유지 (resizing)
- Affine transformation
- 선형성, 평행성 유지 (scaling, shear)
- Projective transformation (Homography)
- Colinearity 유지 (변환 전의 직선이 변환 후에도 직선)
Homogeneous transformation
Homogeneous transformation matrix는 rotation과 translation을 함께 표현하는 $4 \times 4$ 행렬이며, 다음과 같은 모양을 가집니다.
\[T = \begin{bmatrix} R & p \\ 0 & 1 \end{bmatrix}\]여기서 $R$는 $SO(3)$군에 속하는 $3 \times 3$ 행렬이며, $p$는 $3 \times 1$ column vector입니다.
Homogeneous transformation matrix은 다음의 속성을 가집니다.
- $T^{-1} =
\begin{bmatrix}
R^T & -R^Tp
0 & 1 \end{bmatrix}$ - $(T_1 T_2)T_3 = T_1(T_2 T_3)$
- $T_1 T_2 \neq T_2 T_1$
Homogeneous transformation matrix은 $SE(3)$에 속합니다.
\[T \in SE(3)\]O(3), SO(3), SE(3)
$O(3)$은 $3 \times 3$ 행렬 가운데 determinant가 $\pm1$인 orthogonal matrix를 뜻합니다.
Orthogonal matrix는 $QQ^{-1}=Q^{-1}Q=I$를 만족하는 행렬 $Q$입니다. 즉, $Q^{-1}=Q^T$입니다.
$SO(3)$은 Special Orthogonal group을 뜻하며, $O(3)$ 행렬 중에서 distance-preserving transformation이 성립하는 행렬을 뜻합니다.
$SE(3)$는 Special Euclidean group을 뜻하며, 상기한 $T$ 행렬 가운데 affine transformation과 rigid transformation이 성립하는 행렬을 뜻합니다.