카테고리 없음

영상처리 및 비전을 공부해보자 - Linear Algebra & Transformation(하)

ralmyon 2026. 4. 11. 01:13

개념3 - 이미지 왜곡(Image Warping)과 선형 변환(Linear Transformation)

이전 글에서 이미지는 행렬이고, 픽셀은 위치 좌표와 색상 정보를 가진 벡터라고 설명하였다. 그렇다면 이미지를 돌리고, 키우고, 비트는 작업은 수학적으로 어떻게 일어날까? 이미지를 왜곡(Warping)한다는 것은 수많은 픽셀들의 원래 위치 좌표 $(x, y)$ 를 새로운 좌표 $(x^{\prime}, y^{\prime})$ 로 이동시키는 과정을 의미한다.

이때 이동된 새로운 좌표들은 원래 좌표들에 대한 선형 방정식(Linear equations) 으로 다음과 같이 묘사될 수 있다.

$${x^{\prime}} = a_{00} x + a_{01} y + a_{02}$$
$${y^{\prime}} = a_{10} x + a_{11} y + a_{12}$$

1. 선형성(Linearity)의 수학적 유도와 조건

어떤 함수가 선형(Linear) 이라고 불리기 위해서는 가산성(Additivity)동차성(Homogeneity) 이라는 두 가지 성질을 만족해야 한다. 픽셀 변환 식 $x^{\prime} = a x + b y + c * 1$ 을 예로 들어 이를 증명해 보자.

  • 가산성 (Additivity): 두 입력 벡터의 합에 대한 결과가 각각의 결과의 합과 같아야 한다. 만약 좌표 $(x, y, 1)$$(z, 0, 0)$ 을 더한 $(x+z, y, 1)$ 을 입력으로 넣는다면, 결과는 $a(x+z) + by + c$ 가 되어 기존 결과 $x^{\prime}$$a z$ 가 더해진 $x^{\prime} + z^{\prime}$ 형태가 된다.
  • 동차성 (Homogeneity): 입력에 상수 $s$ 를 곱하면 결과도 $s$ 배가 되어야 한다. 입력 좌표에 $s$ 를 곱한 $s * (x, y, 1)$ 을 넣으면 결과 역시 $s x^{\prime}$ 이 되어 이 조건을 만족한다.

이 식을 자세히 보면 우리가 익히 아는 벡터의 내적(Dot product) 과 형태가 같다.

$$x^{\prime} = \begin{bmatrix} a & b & c \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix}$$

이를 $y^{\prime}$ 까지 확장하면 다음과 같은 행렬 곱셈 형태가 완성된다.

$$\begin{bmatrix} x^{\prime} \\ y^{\prime} \end{bmatrix} \equiv \begin{bmatrix} a_{00} & a_{01} & a_{02} \\ a_{10} & a_{11} & a_{12} \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix}$$

2. 동차 좌표계(Homogeneous Coordinates)의 비밀

위의 식에서 좌표 뒤에 1 을 붙이는 이유는 무엇일까? 이동 변환( $a_{02}, a_{12}$ )은 일반적인 $2 \times 2$ 행렬 곱셈만으로는 표현할 수 없고 반드시 '더하기( $+b$ )' 항이 따로 붙어야 한다. 하지만 좌표계에 1차원을 추가하여 $(x, y, 1)$ 로 표현하면, 이동 변환까지 포함하여 모든 변환을 단 하나의 행렬 곱셈으로 통합할 수 있다. 이를 동차 좌표계 라고 부른다.

이렇게 정리하면 여러 단계의 변환을 하나의 행렬로 축소(Reduce) 할 수 있다는 엄청난 장점이 생긴다.

  • 1단계 변환: $Y = A X$
  • 2단계 변환: $Z = C Y$
  • 최종 변환: $Z = C (A X) = (CA) X = E X$

즉, 아무리 복잡한 이미지 변형 과정이라도 결국 하나의 $3 \times 3$ 행렬 $E$ 만 곱하면 끝나는 셈이다.

3. 주요 선형 변환 행렬 카탈로그

실제 컴퓨터 비전에서 사용하는 대표적인 변환 행렬들의 수식은 다음과 같다.

  • 크기 조절 (Scale): 가로 배율 $W$ , 세로 배율 $H$ 만큼 늘리거나 줄인다.
  • $$\begin{bmatrix} x^{\prime} \\ y^{\prime} \end{bmatrix} = \begin{bmatrix} W & 0 \\ 0 & H \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} + \begin{bmatrix} 0 \\ 0 \end{bmatrix}$$
  • 회전 (Rotate): 원점을 중심으로 $\theta$ 만큼 회전시킨다.
  • $$\begin{bmatrix} x^{\prime} \\ y^{\prime} \end{bmatrix} = \begin{bmatrix} \cos \theta & \sin \theta \\ -\sin \theta & \cos \theta \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} + \begin{bmatrix} 0 \\ 0 \end{bmatrix}$$
  • 기울임 (Shear): 이미지를 한쪽 방향으로 민다.
    • x 방향 기울임: $\begin{bmatrix} 1 & \tan \phi \\ 0 & 1 \end{bmatrix}$
    • y 방향 기울임: $\begin{bmatrix} \tan \psi & 0 \\ 1 & 1 \end{bmatrix}$ (또는 유사한 형태)
  • 반전 (Flip): 축을 기준으로 뒤집는다. 가로 반전 행렬의 첫 항은 $-1$ , 세로 반전은 $y$ 관련 항이 $-1$ 이 된다.

4. 구현의 핵심: 역변환(Inverse Transform)

이미지를 변환할 때 원본 좌표를 새 좌표로 보내는 방식(Forward mapping)을 쓰면 픽셀 사이에 빈틈이 생겨 구멍이 뚫린 것처럼 보일 수 있다. 이를 해결하기 위해 실제 구현에서는 역변환 방식을 사용한다.

즉, 결과 이미지의 모든 픽셀 좌표 $(x^{\prime}, y^{\prime})$ 에 대해 역행렬 ( $A^{-1}$ ) 을 곱하여 "이 픽셀은 원본의 어디에서 왔는가?"를 역추적해 값을 가져오는(Fetch) 방식이다. 이 과정 덕분에 선형 변환이 적용된 이미지가 깨지지 않고 부드럽게 출력될 수 있다.

이러한 수학적 원리를 이해하면, 단순히 필터를 입히는 수준을 넘어 실시간으로 피사체의 구도를 분석하거나 카메라 앵글을 보정하는 고도화된 비전 서비스를 설계할 수 있는 기초 체력이 길러진다.