[CV] Blob Detection

u_jinju·2021년 8월 18일
0

Computer Vision

목록 보기
3/4

Blob이란?

Blob은 이미지 내에서 주변보다 더 밝거나 어두운 영역을 의미한다.

지난 포스팅에 이어서 corner detection을 하기 위해서는 Harris Corner Detection을 사용하여 corner를 검출하였고, 이번엔 Blob을 어떻게 검출할 수 있는지 알아보겠다.

Blob Detection

Blob을 검출하기 위해서는 Image 내에서 Significant한 변화를 특정 구간에서 찾을 수 있는 방법이 필요하다.

Edge를 검출할 때 Gaussian을 미분하였는데, Blob을 검출할 때는 Gaussian을 미분한 미분 값인 Laplacian Gaussian 방법을 사용한다.

즉, Edge는 밝기의 gradient(변화)를 구하고 Blob은 밝기 Gradient의 Gradient을 구하는 것! 그렇다면 밝기 변화의 변화를 구하는 것이다.

위의 그림과 같이 그래프화하면 위 그림과 같이 볼록한 모양을 볼 수 있다. 그래프에서 볼록 튀어나온 부분이 blob의 영역이다.

Laplacian Gaussian의 식은 다음과 같다.

2G=2Gx2+2Gy2\triangledown^2 G = \frac{\partial^2 G}{\partial x^2} + \frac{\partial^2 G}{\partial y^2}

G(x,y,σ)=12πσ2exp(x2+y22σ2)G(x, y, \sigma) = \frac{1}{2\pi\sigma^2} exp(-\frac{x^2+y^2}{2\sigma^2})

2G(x,y,σ)=(x2+y2σ2)σ4G(x,y,σ)\triangledown^2G(x, y, \sigma) = \frac{(x^2+y^-2\sigma^2)}{\sigma^4}G(x, y, \sigma)

Laplacian의 문제는 분모가 4승이기 때문에 σ\sigma 가 커질수록 값이 매우작아진다. 그렇기 때문에 scale normalize를 하고 그 식은 다음과 같다.

normG=σ22G\triangledown_{norm}G = \sigma^2 \triangledown^2G

기존 Laplacian of Gaussian 식에 σ\sigma를 곱하여 다양한 크기의 blob을 detection할 수 있다.

그러나, Laplacian of Gaussian의 방법은 계산량이 많기 때문에 이 문제를 해결한 Scale-Invariant Feature Transform (SIFT)를 다음 포스팅에 다루어 보겠다.

출처

blob image:https://laurent-duval.blogspot.com/2014/09/cours-radial-basis-functions.html
blob detection: https://wewinserv.tistory.com/85
Multiple View Geometry in Computer vision (second edit)

0개의 댓글