Thursday, February 21, 2019

SIFT Scale-Invariant Feature Transform

SIFT is commonly used in feature detectors in computer vision. Today I'm gonna briefly explain the concepts of what I learned.

Here is the an image and we want to extract key points of it:



Key points are the blob-like points, such as corner points.


STEPS

1. Obtain the grey scale of image and build a Gaussian pyramid:
Apply convolution to the image with Gaussian kernel of different sizes:





2. Take difference of Gaussian pyramid to approach Laplacian operation. (DoG pyramid)
    Laplacian of an image can detect edges and corners which we are interested of. However, Laplacian operation for 2D images costs a great amount of computation force, so we simplify this step by using difference of Gaussian to obtain a similar answer.


I applied 5 layers of Gaussian pyramid here:

For the Gaussian kernels used in the layers:
$$\{G_{n} | n=0:4\}$$
$$G_{0}(\mu,\sigma)=(0,\sqrt{2}^{0})$$
$$G_{1}(\mu,\sigma)=(0,\sqrt{2}^{1})$$
$$G_{2}(\mu,\sigma)=(0,\sqrt{2}^{2})$$
$$G_{3}(\mu,\sigma)=(0,\sqrt{2}^{3})$$
$$G_{4}(\mu,\sigma)=(0,\sqrt{2}^{4})$$

Here is the result:





3. Computer curvature to suppress edges
 


4. Detect local extrema from DoG pyramid


Some demo:

References:
[1] David G. Lowe. Distinctive Image Features from Scale-Invariant Keypoints. Inter-
national Journal of Computer Vision, 60(2):91{110, November 2004.

No comments:

Post a Comment

CSES Subtree Queries

You are given a rooted tree consisting of n nodes. The nodes are numbered 1,2,…,n, and node 1 is the root. Each node has a value. Your...