Indice
Speeded Up Robust Feature
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
[modifica | modifica wikitesto]Nome | Linguaggio | Open Source |
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. |
Parallel SURF[collegamento interrotto] | 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 CUDA |
Mathematica | Mathematica | No | Implementazione Mathematica |
GPU SURF Archiviato il 25 febbraio 2011 in Internet Archive. | C++, Cg, CUDA | No | GPU Implementation |
FPGA SURF Archiviato il 1º ottobre 2011 in Internet Archive. | 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 |
OpenSurf AS3[collegamento interrotto] | AS3 | ? | AS3 implementation, sources on github |
Voci correlate
[modifica | modifica wikitesto]- 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
[modifica | modifica wikitesto]- SURF on Github
- Sito di SURF: Speeded Up Robust Features, su vision.ee.ethz.ch. URL consultato il 10 settembre 2012 (archiviato dall'url originale il 25 settembre 2008).