IT/Computer vision

Computer vision - Blob, SIFT, HOG

성진팍 2017. 6. 29. 20:35



Scale-Invariant Feature Transform(SIFT)는 특징점의 검출과 특징량의 기술을 하는 알고리즘이다. 검출된 특징점들은 영상의 회전, 스케일 변화, 조명 변화등에 강한 특징점을 기술하기 때문에 이미지 모자이크등의 영상 매칭과 물체인식, 검출에 사용되고 있다. 또한 SIFT와 동등한 gradient 기반의 특징추출법인 Histograms of Oriented Gradients(HOG) 


영상으로부터 특징점을 검출하려면

edge검출도 있고 blob 검출도 있다.  blob은 여러 scale 을 뜻하는데, 

이미지에서   *주변에 비해 어둡거나 밝은점/영역을 뜻한다.*  그러니까 엣지 detection에서 한단계 더 나아간게 blob이다.  

라플라시안 가우시안으로 구해지고, 그라디언트 변화의 변화가 라플라시안이니까. 







Edge가 이런식이라면

이미지(x.y)에 대해 각 픽셀의위치에서 derivative 가우시안 적용하여,

미분을 하면, 밝기의 변화정도와 방향을 알수있지.


Blob이란 이렇다.

라플라시안 가우시안에 의한 스케일 탐색임


라플라시안 가우시안?

위 edge에서 gradient (변화)를 구하고,  그것의 변화를 표현하는게 라플라시안이다.

즉 그라디언트는 밝기변화에 영향을 받고 라플라시안은 밝기변화의 변화에 영향을 받는다.

따라서 라플라시안은 코너나 blob검출할떄 사용된다.





여기서 최근에 알게된 용어 2개   feature라는게 두가지 의미로 쓰인다.


- feature pointer = local feature.  특징점. 엣젤같은거..

이렇게 blob을 찾아내는 것이 feature pointer를 찾아가는것이다.

 

- feature descriptor = 특성벡터. ML에서 우리가 부르는 feature가 feature descriptor가 될수있다.  

저런 로컬 퓌쳐들을 떼어다가 벡터로 표현하는 것




SIFT  (Scale Invariant Feature Transform)

-> 그라디언트에 기반한 것이고,  두가지로 기술된다.  특징점검출/특징량기술

1. feature pointer 뽑기 및 feature pointer인 Blob을 뜯어내서 벡터화시킨 2. feature descriptor 만들기.

저 위 하나의 블럽을 떼어다가 벡터로 표현한것//


즉 1번은 Log(라플라시안)에 의한 특징점(blob) 탐색을 하고

2번은 각 blob을 벡터화시킨다.

예를 들어 

16*16 이 잇다고 했을때

이걸 4*4로 표현하는데. 한 영역은 8방향의 벡터로 표현할수가있다.

이렇게 되면  128 dimension -> 32로 줄지



HOG   (Histograms of Oriented Gradients)

위 SIFT의 그라디언트 방향을 나타낸 것이다. SIFT에서 한단계 더, gradient 기반의 특징추출법