인공지능/컴퓨터비전

[컴퓨터비전개론][7장]Image alignment

우향우@ 2023. 4. 22. 17:14

개요

이제 두 이미지에서 각각 특징점을 추출하고 매칭을 시켰다고하자. 여기서 우리는 매칭된 각 특징점 쌍들의 집합을 분석하여 이미지에 최종적으로 적용할 변환행렬을 구해내야한다.

 

이동 변환

먼저 단순히 이동 변환으로만 변환행렬을 정의한다고 해보자. 변환행렬은 x이동,y이동 두개의 매개 변수로 정의될 수 있다. 이는 간단히 다음과 같이 구할 수 있다.

각 특징점 쌍들의 x,y위치 차이를 평균낸다. 그 위치 차이만큼 이동하는 행렬이 최종 변환 행렬이다.

하지만 여기서 그치지 않고 이를 선형 회귀의 관점에서 구해보자.

구하고자하는 변환 행렬의 이동량 x,y를 각각 tx,ty라 해보자.

이때 한 이미지의 특징점들의 x+tx,y+ty는 다른 이미지의 각 특징점 x`,y`과 최대한 근접해야 한다.

각 특징점 쌍에 대한 [(x+tx) - x`]^2 + [(y+tx) - y`]^2의 총합을 가장 적게하는 tx,ty가 선형 회귀로 구할 수 있는 tx,ty이다.

즉 선형회귀를 통해 오차의 제곱합을 최소화 한 값을 구할 수 있다.

여기서

A =

1 0
0 1
... ...
1 0
0 1

t = [tx,ty]T

b = [x1` - x1, ... , xn` - xn]

으로 잡으면 At = b라는 선형회귀 방정식이 만들어진다. 여기서 선형대수학의 선형회귀를 사용하면 오차의 제곱합을 가장 줄이는 t를 다음과 같이 구할 수 있다.

t = (ATA)-1AT

 

아핀 변환

이젠 단순히 이동에 그치지않고 변환행렬을 아핀변환행렬로 정의하여 이미지의 변환행렬을 구해보자.

아핀 변환 행렬은 다음과 같이 구성된다.

a b c
d e f
0 0 1

이를 이용하여 선형회귀 방정식을 구하면 다음과 같다.

A=

x1 y1 1 0 0 0
0 0 0 x1 y1 1
...          
xn yn 1 0 0 0
0 0 0 xn yn 1

t = [a,b,c,d,e,f]T

b = [x1`,y1`,...,xn`,yn`]

 

여기서

At=b가 곧 아핀변환이 이상적으로 적용된 꼴을 나타내는 선형회귀 방정식이 된다.

위와 마찬가지로 t를 구하면 a~f값을 구하여 아핀 변환을 구 할 수 있다.

t = (ATA)-1ATb

 

Homographies

마지막으로 homograpies 변환이다. 이 경우 중간에 z나누기 연산이 들어가기에 단순 t = (ATA)-1ATb로는 구할 수 없다. 따라서 고유 벡터의 기하학적의미를 사용하여 구한다. 일단 다음과 같이 방정식을 만든다.
A=

x1 y1 0       -x1`x1 -x1`y1 -x1`
      x1 y1 0 -y1`x1 -y1`y1 -y1`
...                
xn yn 0       -xn`xn -xn`yn -xn`
      xn yn 0 -yn`xn -yn`yn -yn`

t = [a, ..., i]T

b = [0, ..., 0]T = 0

 

따라서 다음과 같은 방정식이 나온다.

At = 0  

여기서 t는 다음과 같이 구할 수 있다.

ATA의 고유값이 가장 작은 고유벡터가 곧 t가 된다.

이를 통해 homograpies 변환행렬을 구 할 수 있다.