티스토리 뷰

Linear Transformation

Linear Transformation 은 Linear Mapping, Linear Map 선형변환, 선형사상, 선형함수 등으로도 불린다.

선형변환은 행렬로 표현될 수 있는데, 예를 들어 n차원 벡터 $\mathbf{x}$ (m x n) 행렬 A를 곱하면 m차원 벡터가 얻어진다. 행렬A로 인해 다른 벡터로 옮기는 변환이 결정된 것이다. 단순한 하나의 예시로는 점을 점으로 옮기는 이미지가 연상되지만 공간이 행렬로 인해 어떻게 변하는지 떠올려야한다. 

$A=\begin{pmatrix} 1&-0.3\\0.7&0.6 \end{pmatrix}$ 와 같은 행렬에 의해 공간이 어떻게 변하는지 떠올리기 위해서는
다음과 같이 생각할 수 있다.

$e_{1} = \begin{pmatrix} 1\\0 \end{pmatrix} e_{2}= \begin{pmatrix} 0\\1 \end{pmatrix} $ 을 각각 $\begin{pmatrix} 1\\-0.7 \end{pmatrix}$와  $\begin{pmatrix} -0.3\\0.6 \end{pmatrix}$ 로 이동시킨다. 

행렬의 곱도 이처럼 이해할 수 있다. $\mathbf{z}=BA\mathbf{x}$ 에서 $\mathbf{x}$를 A를 이용해 $\mathbf{y}$로 변환한다. $\mathbf{y}$를 B를 이용해 $\mathbf{z}$로 변환한다. 
이 과정을 행렬곱 BA를 이용해 한번에 z로 변환하는 것이다. 

 

Ax=b 에 대한 해석도 두 가지로 볼 수 있다.

  1. A column들에 대한 linear combination으로 b가 만들어진다.
  2. A에 의해 x가 b로 transform 된다. 

2번의 관점에서 보면 행렬 A(m x n)에 의한 transform은 $T : \mathbb{R}^{n} \to \mathbb{R}^{m}$

아래 그림에서 transformation T에 의한 x의 이미지는 T(x)이다.

T는 행렬 A에 의해 정의역(Domain)에서 공역(Codomain) 으로 매핑이 되며 
만약 모두 독립이라면 공역은 치역(Range)과 같다.

예를 들어 3 x 3 행렬에서 모두 독립이라면 $\mathbb{R}^{3}$를 span하며 공역=치역 이다.
다만 2개만 독립이라면 평면이라고 볼 수 있기에 치역은 공역의 일부라 볼 수 있다. 

 

위의 transformation에서 Linear Transformation이 되기 위한 조건은 다음과 같다. 

  1. f(u+v)=f(u)+f(v)
  2. f(cu)=cf(u)

이 조건을 확장하면 T가 선형이면 $T(c_{1}v_{1}+\cdots +c_{p}v_{p})=c_{1}T(v_{1})+ \cdots +c_{p}T(v_{p})$

때문에 T(x)=$\mathbf{Ax}$로 표현되는 것은 모두 Linear Transform이다. 

2D Transformation

위치를 평면이동하는 translation
translation에 회전까지 고려한 Euclidean
scale까지 고려한 similarity
변형이되었지만 평행이 유지가 된 affine 변환
투영과 관련된 projective 변환 이 있다.

1. Translation 

크기, 각도, 면적을 유지하며 위치만 이동하는 경우이다. 
x' = x + t_{x}
y' = y+t_{y}

다만 translation을 2x2 행렬 M으로 표현하기에는 문제가 따르며 
이를 해결하기 위해서는 homogeneous 좌표계가 필요하다. 

알다시피 성분 1을 추가하여 3차원 형태로 나타내며 
결국 translation 변환 행렬은 다음과 같이 정의할 수 있다.

$\begin{bmatrix}
x'\\
 y'\\1
\end{bmatrix}=
\begin{bmatrix}
1 & 0 & t_{x} \\
0 & 1 & t_{y} \\
0 & 0 & 1 \\
\end{bmatrix} 
\begin{bmatrix}
x \\
y \\1
\end{bmatrix} $

이처럼 3x3 변환행렬로 변경되어야 변환이 가능하다.

2. 다양한 변환

 

3. Matrix Composition

여러 변환을 하나의 행렬곱으로 표현할 수 있다.
아래와 같은 예시를 보면 회전변환, 스케일링, Translation을 행렬곱을 통해 적용하는 것을 볼 수 있다.
$\begin{bmatrix}x'\\ y'\\1\end{bmatrix}=
\begin{bmatrix}1 & 0 & t_{x} \\0 & 1 & t_{y} \\0 & 0 & 1 \\\end{bmatrix} 
\begin{bmatrix}a & 0 & 0 \\0 & b & 0 \\0 & 0 & 1 \\\end{bmatrix} 
\begin{bmatrix}\cos\theta & -\sin\theta & 0 \\\sin\theta &\cos\theta & 0 \\0&0&1\end{bmatrix} 
\begin{bmatrix}x \\y \\1\end{bmatrix} $

회전변환 행렬(2차원, 3차원)

2차원에서 회전 변환 행렬은 다음과 같다. 

  • $R(\theta)=\begin{bmatrix}
    \cos\theta & -\sin\theta \\
    \sin\theta &\cos\theta \\
    \end{bmatrix} $
  • 각도 $\theta$ 만큼 반시계 방향으로 회전한다고 생각할 수 있다.
    혹은 $ e_{1} = \begin{pmatrix} 1\\0 \end{pmatrix} e_{2}= \begin{pmatrix} 0\\1 \end{pmatrix} $ 가 이동한다고 생각하는 것이 더 좋아보인다.
더보기

증명

2차원 회전행렬에서 파생된 것으로 직관적으로 이해할 수 있는데,
기준이 되는 축의 값이 변하지 않도록 되어있다.

좌표계 변환

한 공간에서 취할 수 있는 기저는 다양하다. 때문에 문제에 따라 알맞은 basis를 취하여 쉬운 문제로 만들 수 있다.

$\mathbb{R}^{2}$에서 $\mathbf{x}=\begin{bmatrix}4\\-2 \end{bmatrix}$를 다른 basis B: $\mathbf{b}_{1} =\begin{bmatrix} 1 \\ -1 \end{bmatrix}, \mathbf{b}_{2} =\begin{bmatrix} 1 \\ 1 \end{bmatrix}$ 를 사용한다면 다른 좌표로 나타날 것이다. 
$ [\mathbf{x}]_{\mathbf{B}}=\begin{bmatrix}3\\1 \end{bmatrix} $ 로 좌표가 바뀌었지만 같은 벡터이다.

변환 방법은 $\begin{bmatrix}1 & 1 \\ -1 & 1 \\ \end{bmatrix} 
\begin{bmatrix} x_{1} \\x_{2} \end{bmatrix} = 
\begin{bmatrix} 4 \\ -2 \end{bmatrix} $ 에서 $x_{1},x_{2}$ 를 구하여 B 좌표계로 변환할 수 있다.

좌표계변환 행렬은 일반적인 변환행렬의 역이라고 할 수 있다.
직관적으로 보자면 일반적인 변환 행렬은 좌표를 옮기지만 좌표계를 옮기게 되면 본래 좌표가 반대로 이동하는 것처럼 보인다.
이것이 바로 역행렬로 변환이 수행되는 것이다.

더보기

변환 행렬 찾기

affine의 경우

projective의 경우

행렬 9개 파라미터에서 scale을 고려하지 않으면 8개의 원소를 결정해야함. 
4개 쌍 점으로 h 벡터와 8 x 9 행렬 곱 식이 나옴. (h벡터는 변환 행렬 H의 요소들)
행렬에 대해 SVD(singular value decomposition) 계산 -> H의 norm을 1로 제약? ->의미 없는 해 없게

가장 작은 singular vector 를 찾아 행렬 찾을 수 있음 

RANSAC 알고리즘

RANSAC 알고리즘을 이용한 사영 행렬 
특징점 쌍 랜덤 결정, 변환 후 inlier 결정? 
inlier, outlier 선별, inlier에 의한 파라미터 결정
(inlier: 두 이미지에서 겹치는 point, outlier: 두 이미지에서 겹치지 않는 포인트)

랜덤 샘플을 이용한 반복
4개의 쌍 선정 필요
inlier 개수 판단 

예시 : 파노라마 이미지에 적용 가능

이미지 와핑 Warping

시점이 변한듯한 효과를 주는 기술 

1. forward 
T에 의해 변환 후 결정, 때문에 변환 후 픽셀에 포인트가 존재하지 않을 수도 있음
기존 이미지에 T

2. backward
모든 픽셀 사용?
결과 이미지에서 T inverse 적용 

픽셀에 위치하지 않을 때 splatting 사용
-> 주변 픽셀에 적당한 가중치를 적용해 퍼뜨림. 

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함