본문 바로가기

Computer Vision/3D

Vision Geometry :: 5가지 2D Transformations 정리

728x90

2D에서의 변환 (Tranformation)

 
2D에서 두 이미지 사이의 매칭 관계를 모델링할 때 변환 행렬이 사용됩니다.
2D에서의 변환 모델은 Translation, Euclidean, Similarity, Affine, Projective 변환 이렇게 5가지가 있습니다.
주어진 과제에 따라 변환에 어떤 제약을 줄 수 있을지 고려하여 변환모델을 잘 선택해야 합니다.
이어서 5가지의 변환 모델에 대해서 알아보겠습니다.

 

본 글에서의 $\overline{\boldsymbol{x}}$는 Homogeneous Coordinate를 따릅니다.

Homogeneous Coordinate에 대해서는 여기를 먼저 참고 하시고 글을 읽으시면 이해에 도움이 될 겁니다.


 

Translation 변환

 

 
$$
\overline{\boldsymbol{x}}^{\prime}=\left[\begin{array}{cc}
\boldsymbol{I} & \boldsymbol{t} \\
\mathbf{0}^{\top} & 1
\end{array}\right] \overline{\boldsymbol{x}}=\left[\begin{array}{ccc}
1 & 0 & t_x \\
0 & 1 & t_y \\
0 & 0 & 1
\end{array}\right] \overline{\boldsymbol{x}}
$$

 
Translations의 변환 행렬을 보면 rotation과 scale 부분이 identity matrix로 표현되어 있습니다.
오직 2개의 축을 기준으로 평행이동만으로 표현이 가능하고 $t_x, t_y$에 대해서 2의 Degree Of Freedom(DOF)를 가지고 있습니다.
 

Euclidean 변환

 

 
$$
\overline{\boldsymbol{x}}^{\prime}=\left[\begin{array}{cc}
\boldsymbol{R} & \boldsymbol{t} \\
\mathbf{0}^{\top} & 1
\end{array}\right] \overline{\boldsymbol{x}}=\left[\begin{array}{ccc}
\cos \theta & -\sin \theta & t_x \\
\sin \theta & \cos \theta & t_y \\
0 & 0 & 1
\end{array}\right] \overline{\boldsymbol{x}}
$$

 
Euclidean 변환은 translation 변환에서 rotation이 추가된 것입니다.
변환 행렬을 보면 $\cos \theta$와 $\sin \theta$로 정의된 회전 변환 행렬과 translation 변수가 주어집니다.
Euclidean 변환의 성질은 객체의 Euclidean distance와 angle을 유지하면서 이동된다는 것입니다.
$\theta, t_x, t_y$에 대해서 3 DOF를 가집니다.
 

Similarity 변환

 

 

$$
\overline{\boldsymbol{x}}^{\prime}=\left[\begin{array}{ll}
s \boldsymbol{R} & \boldsymbol{t} \\
\mathbf{0}^{\top} & 1
\end{array}\right] \overline{\boldsymbol{x}}=\left[\begin{array}{ccc}
s \cos \theta & -s \sin \theta & t_x \\
s \sin \theta, & s \cos \theta & t_y \\
0 & 0 & 1
\end{array}\right] \overline{\boldsymbol{x}}
$$

 
점점 앞의 변환에서 하나씩 추가가 되는데요.
Similarity 변환은 앞의 Euclidean 변환에서 Scale 요소가 추가되었습니다.
변환 행렬을 보면 회전변환행렬 부분 앞에 's' scale 변수가 추가되어 객체의 크기를 조절할 수 있게 되었습니다.
성질은 객체의 각 edge들의 angle 관계를 유지하면서 변환된다는 것입니다.
자유도의 경우 $s, \theta, t_x, t_y$에 대해서 4 DOF를 가집니다.
 

Affine 변환

 

 

$$
\overline{\boldsymbol{x}}^{\prime}=\left[\begin{array}{cc}
\boldsymbol{A} & \boldsymbol{t} \\
\mathbf{0}^{\top} & 1
\end{array}\right] \overline{\boldsymbol{x}}=\left[\begin{array}{ccc}
a_{11} & a_{12} & t_x \\
a_{21} & a_{22} & t_y \\
0 & 0 & 1
\end{array}\right] \overline{\boldsymbol{x}}
$$

 
아핀 변환이라고 불리기도 하며 2D에서 발생할 수 있는 가장 일반적인 변환입니다.
앞서 정의되어 있던 회전 변환 행렬과 scale 부분이 아무 제약 없이 임의의 값이 주어질 수 있게 됩니다.
성질은 서로 평행관계를 이뤘던 edge들은 평행상태를 유지하면서 변환된다는 것입니다.
자유도의 경우 $a_{11}, a_{12}, a_{21}, a_{22}, t_x, t_y$에 대해서 6 DOF를 가집니다.
 

Projective 변환

 

 
$$
\overline{\boldsymbol{x}}^{\prime}=\boldsymbol{H} \overline{\boldsymbol{x}}=\left[\begin{array}{lll}
h_{11} & h_{12} & h_{13} \\
h_{21} & h_{22} & h_{23} \\
h_{31} & h_{32} & h_{33}
\end{array}\right] \overline{\boldsymbol{x}}
$$

 
perspective 변환 혹은 Homography라고도 불립니다.
변환행렬의 경우 모든 원소에 임의의 값이 주어질 수 있게 됩니다.
성질은 한 직선상에 있었던 점들은 변환 후에도 한 직선 위에 위치한다는 것입니다.

 


자유도의 경우 예상과는 다르게 9가 아닌 8 DOF를 가집니다.
왜냐,, $\overline{\boldsymbol{x}^{\prime}}=H\overline{\boldsymbol{x}}$에서 $\overline{\boldsymbol{x}^{\prime}}, \overline{\boldsymbol{x}}$가 homogeneous coordinates이기 때문입니다.

Homogeneous 좌표계 특성상 scale 값이 정해지지 않기 때문에 $\overline{\boldsymbol{x}^{\prime}} = kH\overline{\boldsymbol{x}}$가 성립됩니다. (k는 0이 아닌 임의의 scalar값입니다)

때문에 파라미터 하나를 1로 만들어 줄수도 있게 되죠.

실제로 1이 되게 나누어 하나의 point에 대해서 2개의 방정식을 생성해 문제를 해결하기도 합니다.

728x90

'Computer Vision > 3D' 카테고리의 다른 글

Vision Geometry :: 카메라 모델 (Camera model)  (2) 2023.06.04