2010.04.04 11:59




SIFT를 이해하기 앞서 어떻게 SIFT가 나왔는지를 먼저 알고 그전의 이론을 집고 넘어가면

SIFT를 좀더 이해를 하기 쉬울거 같다.

SIFT는 IJCV2004 에서 David G. Lowe에 의해 99년 발표작 이후 최종본으로 발표되었다. 

SIFT(Scale Invariant Feature Transform)란 말 그대로

명암, 회전, 스케일, 등방성에도 강건한 불변의 특징을 찾는 다는 것이다.

이는 속도가 느려 실시간에 접합한 논문으로 나오게 되는데 그게

추후 나오는  PCA_SIFT, SURF(Speeded Up Robust Features) 등등이다.

SURF는  OpenCV2.0 에서 제공을 해준다는 말을 얼핏 들은적 있으나 사실인지는 모르겠다.


(년도 오차는 있을 수 있으니 이해하기 바란다.)



1977 년으로 가보자 

Moravec 이라는 사람이 자동차 비슷한것을 만들었다. 자동차라기보다는 로봇?

이 사람은 많이 언급되는 거 같다. SLAM 분야에서도 나오고 여러 분야에서 많이 나온다.

연속적인 이미지 프레임에서 사용될 수 있는 매칭을 발견하는데 알고리즘을 만들었다. 

이게 코너점 즉 특징을 찾는 시초가 된것이다. 

특징을 찾는 방법에는 점, 선, 면, 원, 특징객체 등등 다양한 방법이 있다.

이 사람이 제안한 코너점 찾는 알고리즘 그 사람의 주 목적이 아니지만 이 방법을 토대로 발전하게 되었으니 

많은 공헌을 하게 된 셈이다.

이는 아주 간단한 알고리즘인데 별거 없다. 사각 윈도우를 만들어 8개 방향으로 이동하여 변화를 보고

코너로 판별하는 방법 이었다.



하지만 이는 많은 문제점이 생길 수 밖에 없었다.

1. 비등방성 
(같은 이미지에서 특징 검출하고 회전하고 검출해도 전에 검출됫던게 그대로 검출되는 것이 등방성이다. 그럼 비등방성이란 이의 반대 회전하면 맨날 다르게 측정 된다는 것이다.)

2. 사각 윈도우기 때문에 오차가 크다는 것
 - 유클리디안 거리를 생각 안함  (가로 세로 대각선 길이가 다 같다고 치면 안되지 )
(그럼 원형으로 하면되지 해서 고안한게 가중치 가우시안 필터이다. 그럼 약간 보정된다고 한다.)

3. 변과 잡음에 큰 반응을 가진다는 것
 - 머 대각선 변은 다 검출되니 이거 뭥미

등등 많은 문제점이 있다. (세부 내용은 나중에 쓰겠다.)



1988년 이를 보완하고 나온 점 검출 방식인 해리스 코너 방법이다.

Harris / Plessey 코너 검출기라고 하는데 

 Morvec의 문제점을 보완한 방법이지만 연산량이 많아 속도가 느리다는 점이 있다.

하지만 그당시 느린 것이지 요즘은 간에 기별도 안온다.

이는 X와 Y를 미분하여 상관계수의 관계로 코너점을 결정한다.

(세부 내용은 나중에 쓰겠다.)

이 역시 문제점은 비등방성이라는 것과  T  교착지점, 잡음에 민감, 계산량 등이라는 것이다.
.
.
.
.
.위의 그림이 정확한 순서는 아니다.
.
.
.
.....

이후 다양한 알고리즘이 많이 제안되었다

명암, 크기, 회전에 불변의 점을 찾기 위하여 다양한 방법이 제안되었다.

UVAN 을 이용한 SUSAN 이라던지

FAST Corner 알고리즘, KLT,등등



나중에는 점 선 면 버블 등등 다양한 특징을  찾는 다양한 방법이 나오게 된다.

그러다 LOG, DOG, Image Pyramid, Scale-Space 등등 중요한 이론이 나오고 

그 이론을 기초로 SIFT가 나오게 된 것이다.




SIFT를 하기 앞서 먼저 이 앞에 나온 개념을 조금 익히고 공부하라 

그럼 SIFT를 이해하는데 있어 쉽게 이해를 할 것 같다.



특히 Lindberg 의 Scale-Space 이 이론은 매우 중요하니 꼭 집고 넘어가야한다.

나도 대충 이해만 했을뿐 자세한건 배우지 못해 확실히 깨닫지 못하고 있다.



 Scale-Space 를 완벽히 설명해줄 강의 하나 있음 좋겠다.

그럼 이만 ...





Posted by 차출발 차출발