SURF

De Viquipèdia
Dreceres ràpides: navegació, cerca
Per a altres significats vegeu «surf (desambiguació)».

SURF (acrònim anglès de Speeded Up Robust Feature) és un sistema detector i descriptor robust d'imatge, presentat per primera vegada per Herbert Bay el 2006, principalment per sistemes de visió per ordinador com ara per exemple el reconeixement d'objectes o la reconstrucció en 3D. Està inspirat en el descriptor SIFT, tot i que la versió estàndard del SURF és diverses vegades més ràpida que el SIFT i segons els seus autors, més robust en les transformacions d'imatges diferents. SURF es basa en la suma de les respostes 2D Haar Wavelets i fa un ús eficient de les imatges integrals (integral images). S'utiliza una aproximació d'enters en el reconeixement d'objectes determinant de Hessian, que es calcula de forma extremadament ràpida amb imatges integrals (són 3 operacions amb nombres enters). Degut a les seves característiques, s'utiliza la suma de la resposta de Haar Wavelet al voltant del punt d'interès. Un cop més, aquests es poden calcular amb l'ajuda de la imatge integral. Una aplicació de l'algorisme està patentada als Estats Units.

Implementacions[modifica | modifica el codi]

Nom Llenguatge Open
Source
Descripció
Original C++ No Implementació original.
OpenSURF C++, C# Si Implementació amb la documentació detallada y document de referencia.
OpenSurfCL C++ Si Implementació lliure d'OpenSURF en OpenCL. Contenidors per C # i Java.
OpenCV SURF C++ Si Implementació de l'extracció de característiques del SURF (2,0 OpenCV).
SURFmex Matlab Matlab Interface (MEX) a codi OpenCV's SURF.
OpenSURF Matlab Matlab Si Interfície OpenSURF per a Matlab
libmv SURF C++ Si Implementació d'extracció i compraració.
Python mahotas Python Pac de visió per ordinador que inclou una implementació en SURF.
Dlib C++ Library C++ Si Implementació d'extracció de característiques del SURF.
Pan-o-matic C++ Si Software que inclou una implementació del algorisme SURF.
Parallel SURF C++ Si Implementació Multi-threaded basada en Pan-o-matic.
ProcessorSURF C# Si C# SURF plugin per Multi-Agent Serving System.
JavaSurf Java Si Implementació Java per SURF
JOpenSURF Java Si Traducció Java de OpenSURF
ImageJ SURF Java Si Implementació SURF com ImageJ plugin amb GUI amb una interfície gràfica d'usuari convenient i producció d'estadístiques.
BoofCV Java Si Llibreria Java de visió per ordinador Java que inclou SURF.
Speeded Up SURF Si GPU Implementació GPU
CUDA SURF C++ CUDA Si GPU Implementació GPU utilitzant CUDA
Mathematica Mathematica No Implementació matemàtica.
GPU SURF No GPU Implementació GPU.
FPGA SURF Si FPGA Implementació FPGA.
clsurf C++ Alt rendiment de plataforma creuda OpenCL implementat amb SURF en comparació dels veïns més propers.

Estudis i implementacions[modifica | modifica el codi]

  • David Gossow, Peter Decker i Dietrich Paulus, "An Evaluation of Open Source SURF Implementations", Lecture Notes in Computer Science, 2011, Volume 6556/2011, 169-179
    • Libraries: dlib, OpenCV, and Pan-o-Matic
  • Peter Abeles, A comparison of several C/C++ and Java implementations for speed and stability. Nov. 2011
    • Libraries: OpenSURF, OpenCV, Pan-o-Matic, Original, BoofCV, JavaSURF, i JOpenSURF.

Vegeu també[modifica | modifica el codi]

Referències[modifica | modifica el codi]

Enllaços externs externs[modifica | modifica el codi]