SIFT: Scale Invariant Feature Transform 을 이용한 Blob Detection
Edge, Line, Corner 검출에 이어 이번에는 blob 검출이다.
blob detection은 이미지에서 특성을 추출해야 할 일이 있을 때 최근 들어 가장 흔히 쓰이는 방법이라고 한다.
blob은 영어로 물방울 형태를 뜻하는 말로, 원형이라고 생각해도 되겠다.
이해를 위해 blob detection의 결과 이미지를 먼저 보자.
이미지 여기 저기에 크고 작은 원형으로 특징점이 검출된 것을 알 수 있다.
Laplacian Filter
Blob detection도 지금까지 해온 detection들처럼 합성곱 필터를 통해 수행된다.
Blob 형태의 필터를 이용해 합성곱을 수행하면, 이미지 내에서 blob 형태의 속성이 있는 영역은 큰 값을 갖게 되고, 해당 속성이 없다면 작은 값을 출력하는 것이다.
Blob 형태를 검출하기 위해 사용되는 라플라스 필터는 가우시안 함수를 두 번 미분하여 얻는다.
$$ G_\sigma (x) = \frac{1}{\sigma\sqrt{2\pi}}\exp(-\frac{x^2}{2\sigma^2}) \\
\frac{\partial}{\partial x}G_\sigma(x) = -\frac{x}{\sigma^2}G_\sigma(x)\\
\frac{\partial^2}{\partial x^2}G_\sigma(x) = (\frac{x^2}{\sigma^4} - \frac{1}{\sigma^2})G_\sigma(x)$$
위 식은 이해를 위해 1D 라플라스 함수를 표현하였는데, 그냥 똑같이 $y$축에도 적용하면 위 그림과 같은 2D 라플라스 함수 형태의 필터가 생성된다.
라플라스 필터의 성질은 중앙에서 매우 작은 값을 갖고, blob 형태의 가장자리에서는 큰 값을 내는 것이다.
즉, 라플라스 필터를 합성곱 하면 고리 형태의 edge들을 검출해 낸다.
라플라스 필터의 크기
라플라스 필터는 가우시안 함수의 미분으로 만들기 때문에, 가우시안 함수의 크기를 결정하는 $\sigma$ 변수로 크기를 조절할 수 있다.
$\sigma$가 커질수록 라플라스 필터가 검출하는 blob의 크기도 커지는 것이다.
라플라스 필터가 검출하고자 하는 blob의 크기와 다르면 라플라스 필터는 2개의 local minima를 출력하는데, 만약 blob의 크기와 라플라스 필터의 크기가 딱 알맞다면 하나의 큰 local minima를 형성한다.
SIFT: Sclae invariant 한 특징 변환
이미지 안에는 다양한 크기의 blob 형태 특징점들이 있다.
이렇게 다양한 scale의 특징을 모두 검출하기 위해 SIFT가 도입되었다.
- 우선, 이미지에 대해 다양한 크기($\sigma$)를 갖는 라플라스 필터들을 적용하고, 절댓값을 적용한다.
- 출력된 각각의 feature map들에서, local maxima들을 찾는다.
이 local maxima들은 위에서 설명한 것처럼, blob의 중심 위치를 나타낸다. - 2. 에서 찾아낸 blob들을 각기 다른 scale의 feature map을 둘러보며, local maxima를 찾는다.
2. 에서 먼저 이미지 내부의 blob의 위치를 찾고, 3. 에서 blob의 정확한 크기를 찾는 것이다!
이 방법으로 이미지 내부의 수많은 다양한 크기의 blob들을 찾아낼 수 있다.
그런데 이때, 라플라스 필터는 가우시안 함수의 미분으로 연산량이 많으므로, 가우시안의 차(Difference of Gaussian; DOG)로 근사하여 실제 연산을 수행한다.
$$ DoG = G(x, y, k\sigma) - G(x, y, \sigma)$$
방법은 어렵지 않은데, 이미지에 다양한 스케일($\sigma$)의 가우시안 필터를 적용하고, 각 결과를 서로 빼서(-) DOG를 구하면 된다.
Reference
'Deep Learning > 영상처리' 카테고리의 다른 글
이미지 변형 (Image Transformation) (1) | 2023.03.09 |
---|---|
SIFT: Scale Invariant Feature Transform을 이용한 Feature Matching (0) | 2023.03.08 |
코너 검출 (Corner Detection) (0) | 2023.03.08 |
Line Fitting (RANSAC, HOUGH transform) (0) | 2023.03.08 |
엣지와 그래디언트 (Edge and Gradient) (0) | 2023.03.07 |
댓글
이 글 공유하기
다른 글
-
이미지 변형 (Image Transformation)
이미지 변형 (Image Transformation)
2023.03.09 -
SIFT: Scale Invariant Feature Transform을 이용한 Feature Matching
SIFT: Scale Invariant Feature Transform을 이용한 Feature Matching
2023.03.08 -
코너 검출 (Corner Detection)
코너 검출 (Corner Detection)
2023.03.08 -
Line Fitting (RANSAC, HOUGH transform)
Line Fitting (RANSAC, HOUGH transform)
2023.03.08