개요
이제 두 이미지에서 각각 특징점을 추출하고 매칭을 시켰다고하자. 여기서 우리는 매칭된 각 특징점 쌍들의 집합을 분석하여 이미지에 최종적으로 적용할 변환행렬을 구해내야한다.
이동 변환
먼저 단순히 이동 변환으로만 변환행렬을 정의한다고 해보자. 변환행렬은 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)-1ATb
아핀 변환
이젠 단순히 이동에 그치지않고 변환행렬을 아핀변환행렬로 정의하여 이미지의 변환행렬을 구해보자.
아핀 변환 행렬은 다음과 같이 구성된다.
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 변환행렬을 구 할 수 있다.
'인공지능 > 컴퓨터비전' 카테고리의 다른 글
[컴퓨터비전개론][9장]Camera (0) | 2023.04.22 |
---|---|
[컴퓨터비전개론][8장]RANSAC (0) | 2023.04.22 |
[컴퓨터비전개론][6장]Transformations (0) | 2023.04.06 |
[컴퓨터비전개론][5장]feature descriptor (0) | 2023.04.03 |
[컴퓨터비전개론][4장]feature detection (0) | 2023.03.29 |