개요
이미지에는 여러 사물같은 오브젝트들이 존재한다. 컴퓨터비전에서 우리는 이러한 이미지 속 오브젝트들을 구분해내고 싶은데 이럴때 유용하게 사용할 수 있는 것이 특징점이다. 특징점은 쉽게 말해 이미지에서 특징을 잡아 구분해내기 쉬운 특정 오브젝트의 한 점이다. 특이점은 자신을 식별할 수 있는 데이터를 벡터형태로 가지게된다.특이점의 조건은 다음 같은 것들이 있다.1. 한 실체점에 대해 유니크한 값을 가져 식별할 수 있어야한다.2. 한 이미지에서 많은 특이점을 추출할 수 있어야한다.3. 이미지의 색변화나 왜곡에서도 식별할 수 있어야한다.4. 추출 성능이 좋아야한다.대표적인 특이점으로 코너등이 있으며 이를 이용하여 오브젝트의 한 점을 구분해낼 수 있다. 이번장에서는 이러한 특징점, 그중 대표적인 코너를 추출해내는 방법을 배운다.
파노라마 이미지
파노라마는 한 장면을 여러 이미지로 찍은 뒤 그 장면을 합치는 기법이다. 이는 각 이미지에서 특이점들을 찾아낸 뒤 각 이미지에서 매칭되는 특이점들끼리 이어붙여 최종이미지를 만들어 낸다. 특이점을 활용한 가장 기본적인 예시라 할 수 있다.
파노라마 이미지를 합치는 과정은 다음 세가지로 볼 수 있다.
1. 특이점 추출
2. 특이점 매칭
3. 이미지 합치기
이번 장에서는 이중 1번 특이점 추출을 배워보겠다.
코너 추출
가장 대표적인 특이점은 코너이다. 코너는 쉽게 말해 해당 점에서 어느정도의 범위가 다양한 방향(두방향이상)으로 높은 색상변화율을 가지는 점을 이야기한다. 코너는 각 픽셀에 대해 다음을 수행하여 코너인지 아닌지 판정한다. 여기서 윈도우는 해당 픽셀을 둘러싼 특정 크기의 사각 범위의 이웃픽셀셋이다.
E(u,v)
우선 E(u,v)라는 함수를 정의하자. E(u,v)의 논리적 의미는 해당 픽셀의 윈도우가 x방향으로 u, y방향으로 v만큼 움직였을때의 각 픽셀의 값변화의 제곱합이다. 근데 이를 각 픽셀에 일일히 적용하여 시그마하기에는 성능이 좋지않다. 따라서 이를 다음과 같이 근사한다.
E(u,v) = 각 픽셀의 (x미분값 * u + y미분값 * v)^2의 시그마
여기서 미분값은 저번에 추출한 미분이미지를 사용하면 된다.
근데 여기서 해당 시그마식을 전부더하여 정리하면 다음과 같은 행렬식이나온다.
[u,v]H[u,v]T
여기서 H는 다음 행렬이다.
A | B |
B | C |
A = 각 픽셀의 x미분값^2의 시그마
B = 각 픽셀의 x미분값 * y미분값의 시그마
C = 각 픽셀의 y미분값^2의 시그마
H의 고유값
고유값의 기하학적의미에 의해 H의 두개의 고유값중 큰값은 해당 윈도우의 변화가 가장 큰 방향에 대한 변화율,
작은 값은 가장 작은 방향에 대한 변화율을 가지게 된다. 그에 대한 고유벡터는 해당 방향이 되게 된다.
이를 이용하여 각 픽셀의 H를 구하고 그의 고유값을 구하면 coner, edge, flat을 인지 알아낼 수 있다.
작은 고유값이 기준을 넘는다면 coner,
큰 고유값만 기준을 넘는다면 edge,
둘다 못넘는다면 flat이다.
성능개선
여기서 코너 검사를 위해선 작은 고유값을 알아내야하는데 각 픽셀H의 고유값을 구하는 것은 root연산이 들어가기에 비용이 크다. 그렇기에 작은 고유값이 대신 두 고유값의 곱/두 고유값의 합을 코너 측정치로 사용한다. 이는 행렬식/트레이스 이기에 비용이 훨씬 적다. 실제로 이 값을 코너 측정치로 사용하면 작은 고유값과 비슷한 결과가 나온다.
추가 개선 사항
1.위의 A,B,C를 구할 때 각 픽셀의 결과값에 픽셀 위치에 따라 가우시안 가중치를 준다면 가까운 픽셀의 변화율이 크게 작용하여 좀 더 정교한 코너 추출이 가능해진다.
2.추출해낸 코너들을 주변 이웃중 코너 측정치가 가장 높은 코너만 살리는 식으로 하여 좀더 세밀한 코너 추출도 가능하다.
참고 강의
부산대학교 정보컴퓨터공학부 컴퓨터비전개론(감진규 교수님)
'인공지능 > 컴퓨터비전' 카테고리의 다른 글
[컴퓨터비전개론][6장]Transformations (0) | 2023.04.06 |
---|---|
[컴퓨터비전개론][5장]feature descriptor (0) | 2023.04.03 |
[컴퓨터비전개론][3장]이미지 resize (0) | 2023.03.25 |
[컴퓨터비전개론][2장]edge detection (2) | 2023.03.25 |
[컴퓨터비전개론][1장]이미지 필터링 (0) | 2023.03.22 |