In informatica un algoritmo Speeded Up Robust Feature o in sigla SURF è un rilevatore robusto di caratteristiche locali di una immagine presentato da Herbert Bay nel 2006 che può essere usato nell'ambito del riconoscimento di oggetti e ricostruzione 3D in Computer vision. È parzialmente ispirato al descrittore scale-invariant feature transform (SIFT). La versione standard di SURF è diverse volte più veloce di SIFT e come dichiarano i suoi autori più robusta tra diverse trasformazioni di immagini rispetto a SIFT. SURF si basa sulle risposte della wavelet di Haar 2D e fa un uso efficiente di immagini integrali. Per rilevare punti di interesse, SURF usa un'approssimazione intera del determinante del rilevatore blob di Hessian, che può essere calcolato con 3 operazioni intere usando un'immagine integrale precalcolata. Il suo descrittore di caratteristiche è basato sulla somma della risposta della wavelet Haar intorno al punto di interesse; il quale anch'esso può essere calcolato con l'aiuto di un'immagine integrale. I descrittori SURF possono essere usati per localizzare e riconoscere oggetti, persone o facce, per creare scene 3D, per tracciare oggetti e per estrarre punti di interesse. Un'applicazione dell'algoritmo è brevettata negli Stati Uniti d'America.

Implementazioni

Nome Linguaggio OpenSource Descrizione Original C++ No Implementazione originale OpenSURF C++, C# Yes Implementation with detailed documentation and reference paper. OpenSurfCL C++ Yes Implementazione libera di OpenSURF su OpenCL. Wrapper per C# e Java. OpenCV SURF C++ Yes Implementazione dell'estrazione di caratteristiche SURF (OpenCV 2.0) SURFmex MATLAB MATLAB Interface (MEX) per OpenCV's SURF code. OpenSURF MATLAB MATLAB Yes Interface to OpenSURF for MATLAB libmv SURF C++ Yes Implementazione di estrazione e confronto. Python mahotas Python Yes package computer vision che include una implementazione di SURF. Dlib C++ Library C++ Yes Implementazione dell'estrazione di caratteristiche SURF. Pan-o-matic C++ Yes Software which includes an implementation of the SURF algorithm. C++ Yes Multi-threaded implementation based on Pan-o-matic. ProcessorSURF C# Yes C# SURF plugin for Multi-Agent Serving System JavaSurf Java Yes Implementazione Java di SURF JOpenSURF Java Yes Traduzione in Java di OpenSURF ImageJ SURF Java Yes Implementazione di SURF come plugin ImageJ con GUI e statistiche in uscita BoofCV Java Yes Libreria Java di omputer vision che include SURF. Speeded Up SURF Yes Implementazione GPU CUDA SURF C++ CUDA Yes GPU implementazione usando CUDAMathematica Mathematica No Implementazione Mathematica GPU SURF C++, Cg, CUDA No GPU Implementation FPGA SURF Yes FPGA Implementation clsurf C++ High performance cross platform OpenCL implementation of SURF with nearest neighbors matching IPOL C++ Yes An implementation of SURF based on the original article with detailed explanations AS3 ? AS3 implementation, sources on github

Voci correlate

Descrittore FLANN (matcher) Scale-invariant feature transform Local Energy based Shape Histogram (LESH) Gradient Location and Orientation Histogram (GLOH) Riconoscimento di regioni Immagine integrale Ricostruzione 3D Caratteristiche Haar (wavelet Haar) Riconoscimento di regioni Rilevamento di caratteristiche

Collegamenti esterni

Categoria:Algoritmi Categoria:Visione artificiale