Original article, reproduced please indicate the source: http://blog.csdn.net/crzy_sparrow/article/details/7392345
I am very good at it. There must be a lot of mistakes. I hope you will not correct them.
After reading the Harris corner detection, I started to study the surf corner detection and found that it was quite complicated. At the moment, I only learned about it and summarized what I learned so that I could study it in depth next time.
The surf point detection algorithm is an improvement of Sift, mainly reflected in speed and higher efficiency. The main difference between it and sift is that the construction method of multi-scale image space is different.
In the field of computational vision, the scale space is symbolic expressed as an image pyramid, and Gaussian pyramid is generally used for downsampling. Among them, the input image function is repeatedly convolutioned with the kernel of the Gaussian function and repeatedly performs Secondary Sampling. This method is mainly used for The Implementation of The sift algorithm, however, each layer of the image depends on the original image (the current scale may be very different from the original image scale, and the original image convolution is indeed a bit inferior), and the image needs to be resized, therefore, this calculation method requires a large amount of computing. The surf algorithm performs integral image operations. convolution is only related to the previous image. The downsampling method is to apply to increase the size of the image core, this is also the difference between the sift algorithm and the SURF Algorithm in terms of the pyramid principle. The surf algorithm allows multi-layer images in a scale space to be processed at the same time without secondary sampling, thus improving the algorithm performance.
The differences in other aspects are not much different from those of cainiao.
I have attached two sift-related blog posts, which are quite thorough. The two articles can be used together to understand their principles.
There are some differences between the two articles, but you can still find the problem by looking at it. Of course, it is the easiest way to find out the problem.
Sift Introduction: http://www.360doc.com/content/11/1230/23/3054335_176200661.shtml
Sift algorithm experience: http://www.360doc.com/content/11/1207/17/3054335_170430459.shtml
Other blog posts:
In-depth analysis of Sift/Surf algorithm -- On the points and disadvantages of Sift: http://hi.baidu.com/xiaoduo170/blog/item/a22bcc1c2349708286d6b636.html
Sift/surf: http://www.yongblog.com/archives/tag/surf%E7% AE %97%E6%B3%95
Surf thesis and source code (this paper is very detailed, code C ++ implementation ):
Http://download.csdn.net/detail/crzy_sparrow/4171374
Opencv test surf algorithm:
# Include "opencv2/opencv. HPP "int main () {CV: mat image, image1 = CV: imread (" test.jpg "); // grayscale conversion CV: cvtcolor (image1, image, cv_bgr2gray); STD: vector <CV: keypoint> keypoints; CV: surffeaturedetector SURF (2500); surf. detect (image, keypoints); CV: drawkeypoints (image, keypoints, image, CV: Scalar: All (255), CV: drawmatchesflags: draw_rich_keypoints); CV:: namedwindow ("surf"); CV: imshow ("surf", image); CV: waitkey (0); Return 0 ;}
Test results:
The radius of the labeling circle is related to the scale of the feature point. The radius is the direction of the feature point.
Sift algorithm tutorial, source code and Application Software
1. UBC: the founder of David LOWE---SIFT algorithm, two classic
Http://www.cs.ubc.ca /~ Lowe/
2. CMU: yanke --- pcasift, summary of the article on Sift
Http://www.andrew.cmu.edu/user/yke/
3. UBC: Classic application of M.BROWN---SIFT Algorithm for image mosaic autopano-sift, including a siftlib Library
Http://www.cs.ubc.ca /~ Mbrown/autostitch/autostitch.html
Http://www.cs.ubc.ca /~ Mbrown/panorama/panorama.html
4. Toronto: Jepson --- MATLAB sift tutorial, super classic ~
Http://www.cs.toronto.edu /~ Jepson/csc2503/
5. ucia: vedaldi-MATLAB sift tutorial compiled by a PhD student at the University of California
Http://www.cs.ucla.edu /~ Vedaldi/
6. http://en.wikipedia.org/wiki/Scale-inva... _ Transform
7. Computer Vision classification organized by Daniel
Http://www.cs.ubc.ca /~ Lowe/vision.html
Http://note.sonots.com/SciSoftware/SIFT.html
9. mentioned the ransac Method for Calculating the transformation matrix
Http://web.engr.oregonstate.edu /~ Hess/index.html
10. The method for performance evaluation is introduced for the detection of Affine Invariant Feature Points.
Http://www.robots.ox.ac.uk /~ Vgg/research/affine/
11. A Japanese, cool
Http://note.sonots.com/
PCA-SIFT
Http://www.cs.cmu.edu /~ Yke/pcasift/
13 opencv Sift
Http://web.engr.oregonstate.edu /~ Hess/index.html
14 MATLAB Sift
Http://www.vlfeat.org /~ Vedaldi/code/sift.html
Http://www.vlfeat.org/overview/sift.html
15 improve Scale Invariant Feature Transform (SIFT) Stanford
Http://robots.stanford.edu/cs223b04/project9.html
16 known implementations of Sift MIT
Http://people.csail.mit.edu/albert/ladypack/wiki/index.php/Known_implementations_of_SIFT