This article provides an insight into web content based image search engine using Scale Invariant Feature Transform (SIFT) feature matching. SIFT descriptors are invariant to image scaling and transformation and rotation, and partially invariant to illumination changes and affine which present the local features of an image.There for, SIFT can extract feature key points more accurately than texture, color, shape and spatial relations feature. To decrease unavailable features matching, a dynamic probability function replaces the original fixed value to determine the similarity distance and database from training images.
For the establishment of source image library, the spider technology used to extract images in Web pages. Then, by using pretreatment of the source images, the key points will be stored to the XML format, which can improve the searching performance. By using of the Hibernate framework and related technology, all of the information of image can establish a link with the database, and completed the development of persistent object. Finally, the results displayed to the user through the HTML. The experimental results show that this method improves the stability and precision of image searching engine.
Various process and flow of SIFT algorithm are given below.
- Take Difference of Gaussian's
- Locate DoG Extrema
- Sub Pixel Locate Potential Feature Points
- Filter Edge and Low Contrast Responses
- Assign Key points Orientations
- Build Key point Descriptors
Steps involved in building a descriptor is given below.
- First find the blurred image of closest scale
- Get the keypoint and sample the points around it
- Using previous computer orientation, rotate gradients and coordinates
- Divide region in to sub regions
- For each sub region, create histogram with 8 bins
- Weight the samples with N(s) = 1.5 Region width
- Trilinear Interpolation (1 - d factor) to place in histogram bins
Matching can be done with a minimum of 3 features. To cluster features in pose space Hough transform is used. In Hough transform, we need to use broad bins since 4 items but 6 DOF. Also 2 closest bins should match. After Hough finds clusters with 3 entries, it should be verified with affine constraint.
SIFT features described in the algoritham are computed at the edges irrespective of rotation,image scaling and addition of noise. To find the correct match for keypoints between faces, Gradient Based Edge Detector and local descriptors presented around the keypoints are used. Usually edges of an image are poorly defined and its very hard to detect them. We can still extract large number of keypoints from a typical image. The first image is the original image with it's own features. The second image is the transformation of the original with the features after operation. The third one is the transformation of the original image with the features before the operation. Performance could be improved by adding new SIFT features or varying feature sizes and offsets.
To perform face identification, first choose the nearest neighbor or second closest neighbor algorithm which is a good method to do the keypoints matching. There is another useful method to recognize faces by learning a statistical model. In this method, a probalistic model is used to recognize the faces. An Expectation Maximization(EM) algorithm is used to learn the parameters in a Maximum Likelihood framework. Hopefully, we can limit the model to a small amount of parts which is efficient for matching faces.