카테고리 없음

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

ralmyon 2026. 4. 3. 22:36

개념1 - 이미지 처리에 선형대수학(Linear algebra)가 왜 필요할까?

1. 컴퓨터가 이미지를 인식하는 방법: 행렬(Matrix)

우리가 보는 이미지는 연속적인 시각 정보 같지만, 컴퓨터는 이를 숫자의 배열인 행렬(Matrix)로 인식한다.

기본적으로 흑백(Gray-level) 이미지는 2차원 행렬로 표현된다. 하지만 우리가 일상적으로 보는 컬러 이미지는 Red, Green, Blue 세 가지 색상의 조합으로 이루어져 있다. 즉, 각 픽셀이 [R, G, B] 라는 3개의 값을 가지게 되며, 이를 수학적으로는 3개의 채널을 가진 행렬(또는 3차원 Tensor)로 표현하여 이미지를 컬러감 있게 볼 수 있는 것이다.

결국 "이미지 = 행렬"이기 때문에, 이미지를 분석하고 처리하기 위해서는 행렬과 벡터를 다루는 선형대수학이 필수적인 도구가 된다.

2. 픽셀과 벡터(Vector), 그리고 선형 변환(Linear Transformation)

이미지를 구성하는 최소 단위인 픽셀(Pixel)을 다룰 때, 우리는 벡터(Vector)라는 개념을 적극 활용한다. 픽셀은 크게 두 가지 관점에서 벡터로 표현될 수 있다.

  1. 위치 좌표로서의 벡터: 픽셀의 위치는 2차원 공간 상의 좌표 (x, y)로 표현된다.
  2. 색상 정보로서의 벡터: 앞서 말한 컬러 정보 [R, G, B] 역시 1D array 형태의 벡터이다.

우리가 이미지를 회전시키거나, 크기를 줄이거나, 위치를 이동시키는 등의 작업을 할 때, 수학적으로는 픽셀의 (x, y) 좌표 벡터에 특정 행렬을 곱하여 새로운 좌표로 보내는 작업을 수행한다. 이를 선형 변환(Linear Transformation)이라고 부르며, 이미지 처리의 본질은 결국 수많은 픽셀 벡터들을 계산하고 변환하는 과정이다.

3. 벡터의 특징과 주요 연산

선형대수학에서 벡터(Vector)는 1개 이상의 숫자로 구성된 1차원 배열(1D array)을 의미하며, 공간상에서 크기(Magnitude)와 방향(Direction)을 가진다.

벡터 간의 곱셈 연산은 대표적으로 두 가지가 있으며, 결과값의 형태에 따라 명확한 차이가 있다.

  • 내적 (Inner Product / Dot Product)
    • 특징: 두 벡터를 연산한 결과로 단 하나의 스칼라(Scalar) 값이 나온다.
    • 주로 두 벡터가 얼마나 유사한 방향을 향하고 있는지(유사도)를 구할 때 사용된다.
  • 외적 (Cross Product)
    • 특징: 두 벡터를 연산한 결과로 새로운 벡터(Vector)가 나온다.
    • 주로 두 벡터가 이루는 평면에 수직인 법선 벡터를 구할 때 사용된다.
  • 공통점: 두 연산 모두 입력(Input)으로는 동일한 크기(Size)를 가진 2개의 벡터가 필요하다.

4. 수학 기호 표기법 (Notation) 정리

논문이나 전공 서적에서 수학 기호를 표기할 때는 다음과 같은 규칙을 따른다. 이를 알아두면 수식을 읽는 데 큰 도움이 된다.

  • 스칼라 (Scalar): 이탤릭체 소문자 (예: x, y, a)
  • 벡터 (Vector): 볼드체 소문자, 이탤릭체 사용 안 함 (예: x, y, v)
  • 행렬 (Matrix) 및 텐서 (Tensor): 볼드체 대문자, 이탤릭체 사용 안 함 (예: X, A, W)
  • inner prodcut의 출력 : <v,w>

개념2 - 벡터의 투영(Projection)과 수식 이해하기

선형대수학에서 두 벡터의 관계를 다룰 때 투영(Projection)은 필수적으로 등장하는 개념이다. 수식만 보면 복잡해 보이지만, 핵심은 아주 간단합니다. 바로 그림자를 구하는 과정이다.

1. Projection이 무엇인가?

어떤 벡터 v가 있고, 그 아래에 기준이 되는 다른 벡터 w가 있다고 가정해 보자. w 벡터와 수직인 방향에서 빛을 비춘다면, 벡터 vw 위에 그림자가 생기게 된다. 이 그림자에 해당하는 새로운 벡터를 구하는 것이 바로 Projection(투영)이다.

투영된 새로운 벡터를 구하려면 크기(Magnitude)방향(Direction) 두 가지 정보가 필요하다.

 

2. 그림자의 '크기' 구하기

삼각함수의 기본 원리에 의해, 빗변이 v이고 밑변이 그림자인 직각삼각형을 떠올려 볼 수 있습니다. 두 벡터 사이의 각도를 $\theta$라고 할 때, 그림자의 길이는 다음과 같이 구해집니다.

  • 그림자의 크기 (Scalar): ||v|| cos(θ)

2. 그림자의 '방향' 구하기

그림자는 기준이 되는 벡터 w 위에 맺히므로, 방향은 w와 완전히 동일하다. 하지만 우리는 순수하게 '방향'만을 나타내는 단위 벡터(길이가 1인 벡터)가 필요하다. 따라서 벡터 w를 자신의 전체 길이로 나누어준다.

  • 그림자의 방향 (Direction Vector): w / ||w||

3. 수식 합치기 : 투영 벡터 완성

이제 구한 '크기'와 '방향'을 곱해주면(Scalar multiplication) 우리가 원하는 투영 벡터의 공식이 나온다.

여기서 한번 더 표현식을 정리해주면 다음과 같이 표현할 수 있다.

앞서 언급한 내적의 기본 공식을 활용하기 위해, 위 식의 분모와 분자에 똑같이 ||w||를 곱해주어 내적 기호 <v, w> 로 치환합니다.

마지막으로, 벡터 자기 자신의 크기를 두 번 곱한 분모의 ||w|| ||w|| 는 자기 자신을 내적한 <w, w> 와 수학적으로 완전히 동일하게 된다.

따라서 최종적으로 가장 깔끔한 형태의 투영 벡터 공식이 완성된다.

이러한 벡터의 투영 원리는 단순히 수학적인 계산을 넘어, 카메라 앵글과 피사체의 구도를 실시간으로 분석해 정확한 피드백을 제공하는 등 컴퓨터 비전 서비스의 핵심적인 기초가 된다.