Deprecated: Array and string offset access syntax with curly braces is deprecated in /var/www/web100356/html/old_website/old_wiki/inc/init.php on line 535

Warning: Declaration of action_plugin_captcha::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /var/www/web100356/html/old_website/old_wiki/lib/plugins/captcha/action.php on line 20

Warning: Declaration of action_plugin_wrap::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /var/www/web100356/html/old_website/old_wiki/lib/plugins/wrap/action.php on line 22

Warning: Declaration of action_plugin_discussion::register(&$contr) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /var/www/web100356/html/old_website/old_wiki/lib/plugins/discussion/action.php on line 33

Warning: Declaration of action_plugin_blockquote::register(&$controller) should be compatible with DokuWiki_Action_Plugin::register(Doku_Event_Handler $controller) in /var/www/web100356/html/old_website/old_wiki/lib/plugins/blockquote/action.php on line 42

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web100356/html/old_website/old_wiki/inc/init.php:535) in /var/www/web100356/html/old_website/old_wiki/inc/auth.php on line 532

Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /var/www/web100356/html/old_website/old_wiki/inc/parser/handler.php on line 1376

Warning: preg_match(): Compilation failed: invalid range in character class at offset 3625 in /var/www/web100356/html/old_website/old_wiki/inc/parser/lexer.php on line 118
A PCRE internal error occured. This might be caused by a faulty plugin

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web100356/html/old_website/old_wiki/inc/init.php:535) in /var/www/web100356/html/old_website/old_wiki/inc/actions.php on line 216
public:surf [juergen's work wiki]

====== 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) · []
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki