JINWOOJUNG

[ 영상 처리 ] Ch9. Local Feature Detection and Matching(3) 본문

2024/Study

[ 영상 처리 ] Ch9. Local Feature Detection and Matching(3)

Jinu_01 2024. 5. 27. 16:10
728x90
반응형

본 영상 처리 개념과 기법들에 대한 공부를 진행하면서 배운 내용들을 중심으로 정리한 포스팅입니다. 

책은 Computer Vision: Algorithms and Applications를 기반으로 공부하였습니다.

또한, 인하대학교 박인규 교수님의 디지털 영상 처리 과목을 기반으로 제작된 포스팅입니다.


Before This Episode

https://jinwoo-jung.com/77

 

[ 영상 처리 ] Ch9. Local Feature Detection and Matching(2)

본 영상 처리 개념과 기법들에 대한 공부를 진행하면서 배운 내용들을 중심으로 정리한 포스팅입니다. 책은 Computer Vision: Algorithms and Applications를 기반으로 공부하였습니다.또한, 인하대학교 박

jinwoo-jung.com


 

 

SIFT는 Scale에 불변한 Corner 검출기다.  Scale에 불변하다는 의미는, 동일한 의미가 서로다른 Scale의 영상에서 Feature로 추출됬을 때, Feature Descriptor가 동일하여 Feature Matching이 된다는 의미로 해석할 수 있다.

 

왼쪽 사진에서 초록색으로 표시된 Feature에 대한 Feature Descriptor가 $f(I(x,\sigma)$라 하자. 이때, $x$는 Feature Location, $\sigma$는 Scale을 의미한다. 해당 영상에서 일부분을 확대한 즉, Scale이 커진 영상이 오른쪽과 같다고 하자. 그렇다면, 동일한 Feature에 대한 Location과 Scale 모두 변화 될 것이다. 하지만, Scale에 불변해야 하기 때문에 $f(I(x',\sigma')$는 $f(I(x,\sigma)$와 같아야 한다. 

 

즉, 절대적인 Corner의 영상 내 위치($x$)는 다르지만, 영상의 Corner로써 의미하는 바는 동일해야 한다.

 

 

 

우리는 Corner Feature를 추출하기 위하여 Response $R$을 계산하였다. 본 과정에서는 $R$은 아니지만 어떤 함수값 즉, Response를 영상의 Scale($\sigma$)를 바꿔 가면서 Response를 계산한 결과가 아래 그래프와 같다. 그렇다면, 해당 Response의 Peak Point가 있을 것이고 원본 영상에서는 $\sigma = 3.89$이다. 확대된 영상에 대해서도 Scale을 변화시켜 가면서 Peak Point를 계산하면, $\sigma' = 10.1$이 된다. 그렇다면 우리는 $\sigma$의 비율로 Scale의 변화가 생격다고 추측할 수 있다. 즉, $\sigma \to \sigma'$으로 약 2.x배가 증가했기 때문에, 영상 자체도 2.x배가 확대되었다고 생각할 수 있다.

 

 

따라서 우리는 Scale에 불변하게 하기 위해 $\sigma$를 알고 있으므로 Normalization을 통하여 Scale이 다른 영상에서 동일한 Feature를 추출해 Matching시킬 수 있다.

 

정리해보자. Scale에 불변한 Feature를 찾는 것이 목적이다. 따라서 영상의 Scale 요소$\sigma$를 변화시켜 가면서 서로 다른 Scale에서의 Feature를 추출한다. 그리고 Normalization을 통해 특정한 Scale으로 영상을 Normalization 한다면, 동일한 Feature를 찾을 수 있을 것이다. 

 

Signature Function

그렇다면 이를 계산하기 위한 효과적인 함수는 무엇일까? 즉, Response를 구하는 앞서 언급한 $f$는 무엇일까? 바로 앞에서 배운 Laplacian-of-Gaussian이다. 

 

 

 

Laplacian-of-Gaussian(LoG)를 뒤집으면 왼쪽 그래프와 같은 모양을 가지고 있는데, LoG의 Gaussian $\sigma$를 줄이면은 그래프의 폭이 더 좁아지고 뾰족해지는 경향이 있다. LoG는 "blob Detector"로 동작하는데, 여기서 blob이란  하단의 검은색 디스크와 같은 것을 의미한다. 여기에서 중요한 것은, LoG의 $\sigma$에 따라 큰 Response를 가지는(Peak점을 가지는) blob size가 다르다는 것이다. 

 

따라서 만약 우리가 $\sigma_1$을 가지는 LoG로 필터링 하였을 때, peak 점을 가지는 blob은 고정되어 있으므로 특정할 수 있는 것이다. 즉, LoG가 앞서 진행한 Peak Response를 찾는 $f$의 역할을 하는 것이다. 

 

 

따라서 우리는 LoG의 Response의 Peak점에 따라 크기를 특정할 수 있다.

 

 

오른쪽 원본 사진을 $\sigma$를 변경 시켜 가면서 LoG를 적용한 결과가 가운데로, 위로 갈수록 Scale이 큼을 알 수 있다. LoG는 Band Pass Filter이기 때문에 $\sigma$가 커질수록 저주파 쪽으로 Band가 이동하기에 Large Scale Edge 즉, 확실하고 두꺼운 Edge에서의 Response가 증가하게 된다. 따라서 각 층에 대하여 3차원 NMS를 적용한다면, Local Maximum을 추출할 수 있고, 따라서 Scale, Position 정보를 추출할 수 있다.

 

 

실제로 왼쪽 나비 영상을 $\sigma$에 따른 LoG의 Response는 오른쪽과 같다. 따라서 인접한 층에 대하여 NMS를 적용한 뒤 최종적으로 blob을 추출한 결과는 아래와 같다.  

 

 

blob은 위와 같이 위치(Position)과 Scale(원의 반지름)이 존재하며, 이때의 Scale은 $\sigma$에 의해서 결정되는 Scale이다. 따라서 이를 공식화 하고 확장시킨 것이 바로 SIFT이다.

 

정리 해 보자.

 

우리는 Scale에 불변하는 Feature Detection을 하고 싶다. 그렇기 위해서는, 해당 Feature의 $\sigma$정보를 알고 있다면, Normalization을 통해 Scale이 다른 두 영상에서 동일한 Feature를 추출하여 Matching 시킬 수 있을 것이다. 이때의 $\sigma$는 Scale을 의미하는데, 해당 Scale에서 가장 큰 Response를 보이는 Scale이 $\sigma$이다. 

 

이때 Response를 구하기 위해서 사용되는 함수가 바로 Laplacia of Gaussian 이다. LoG의 $\sigma$에 따라 Peak점을 갖는 blob이 다르기 때문에, 즉, LoG를 통해 $\sigma$를 특정할 수 있다. 

 

그 방법은 서로 다른 $\sigma$를 갖는 LoG 결과를 인접한 층에 대하여 3차원 NMS를 적용한다면, 가장 큰 Response 즉, Peak점을 갖는 $\sigma$를 특정할 수 있다.

 

따라서 blob은 Position 정보와 Scale을 의미하는 $\sigma$ 정보를 가지고 있으며, 시각화 하기 위해 $\sigma$는 원의 반지름으로 표현되는 것이다.

728x90
반응형