A PCRE internal error occured. This might be caused by a faulty plugin

====== SURF (Speeded Up Robust Features) ====== ===== Mindmap ===== {{ :public:surf.png?650 |}} ===== Best introduction text ===== ... I could found that explains SURF: The [[http://www.cs.bris.ac.uk/Publications/Papers/2000970.pdf|manual]] of the [[http://www.chrisevansdev.com/computer-vision-videos.html|OpenSURF library]] has an introduction to the theory of SURF which is easily to understand [[http://www.computerrobotvision.org/2010/tutorial_day/tam_surf_rev3.pdf|These slides]] summarize the above text visually. ===== Differences to SIFT ===== image source: all following images in this section are from the [[http://www.cs.bris.ac.uk/Publications/Papers/2000970.pdf|OpenSURF manual]] by Chris Evans. ==== Keypoint detection ==== * it uses a Hessian-matrix measure based keypoint detector vs. SIFT = DoG ~ LoG based detector * SURF approximates LoG with box filters, see [[http://docs.opencv.org/trunk/doc/py_tutorials/py_feature2d/py_surf_intro/py_surf_intro.html|here]] for an image * this allows to detect keypoints much faster than SIFT since we can compute the box filter responses fastly using [[http://en.wikipedia.org/wiki/Summed_area_table|integral images]] We can use the determinant of the Hessian matrix in order to detect blobs, see [[http://en.wikipedia.org/wiki/Blob_detection#The_determinant_of_the_Hessian|here]]. The Hessian matrix {{ :public:hessian_matrix.png?300 |}} contains the 2nd order partial derivatives. The LoG operator values Lxx, Lyy, and Lxy are approximated by box filter responses: {{ :public:laplacian_of_gaussian_approximation_by_box_filter.png?450 |}} in order to compute the determinant of the (approximated) Hessian matrix. {{ :public:determinant_of_hessian_using_approximated_laplacian_of_gaussians.png?300 |}} For det(H)>0 there is an extremum (keypoint). In order to apply the keypoint detection procedure on the scale space, we do not convolve the images iteratively, but increase the box filters: {{ :public:surf_filters_are_increased_not_sigma_of_gaussian.png?300 |}} ==== Descriptor computation ==== For dominant orientation computation and for the descriptor vector, Haar wavelets (Haar-like features) are used to compute the gradients in x- and y-directions quickly Haar wavelets: {{ :public:surf_haar_wavelets.png?200 |}} (x,y) Haar wavelet reponses plotted. For each circle segment, the (x,y) components are summed up to form a vector. The longest vector lends its orientation to the keypoint: {{ :public:surf_orientation_assignment.png?500 |}} In each of 4x4=16 cells, we compute 4 values to reflect the statistics of the gradients in the cell: {{ :public:surf_descriptor.png?300 |}} ===== Real world applications using SURF ===== e.g., [[http://www.kooaba.com/|kooaba]], a company founded in Nov 2006 as a spin-off from Swiss Federal Institute of Technology (ETH) in Zurich, Switzerland. ===== Videos ===== ==== SURF keypoints ==== This short demo shows you that the SURF keypoints are mainly blobs, i.e. * dark region + bright border (blue circles in video) * bright region + dark border (red circles in video) {{youtube>large:DqSYuxYzTVo}}

public/surf.txt · Last modified: 2014/01/06 12:10 (external edit) · []