31

SURF está patentado, al igual que SIFT. ORB y BREVE no están patentados, pero sus características no son invariables por la escala, lo que limita seriamente su utilidad en escenarios complejos.¿Hay alguna alternativa rápida a SURF y SIFT para la extracción de características invariables de escala?

¿Hay extractores de funciones que puedan extraer características invariables de escala tan rápido como SURF y que no estén tan estrictamente patentados como SURF y SIFT?

+0

Preguntado en [dsp] (http://dsp.stackexchange.com/questions/1288/what-are-some-free-alternatives-to-sift-surf-that-can-be-used-in-commercial -app) también. – Maurits

Respuesta

29

Aunque ya elija BRISK, puede encontrar FREAK interesante. El autor afirma tener mejores resultados que BRISK y ORB. También debería agregar que ORB es sin variación de escala, pero tiene algunos problemas en esa área. Así que todavía lo recomendaría para que alguien lo intente.

El FREAK source code es compatible con OpenCV (lo fácil que es combinarlos, no sé) y el autor está trabajando en enviarlo al proyecto OpenCV.

EDIT:

FREAK is now part of opencv feature detectors/descriptors.

Usted can read here more sobre las diferencias entre varios detectores de características/extractores, and also a series of benchmarks que incluye FREAK y otros más populares.

+0

+1 El detector enérgico combinado con el descriptor Freak es lo que me da los mejores resultados. –

+1

https://github.com/kikohs/freak/blob/master/demo/freak_demo.cpp enlace roto a la muestra anormal –

6

Puede probar multi-scale histogram of oriented gradients. No será totalmente invariable a escala, pero si sus datos están limitados con un conjunto razonable de límites de escala (a menudo el caso en la práctica), entonces esto probablemente funcione para usted.

Otro enfoque, dependiendo totalmente de cuál sea su aplicación prevista, sería apalancar poselets, incluso si están construidos encima de un descriptor no invariable de escala como un histograma simple de gradiente orientado o modelos de apariencia. Si las anotaciones en sus datos de entrenamiento incluyen ejemplos de diferentes elementos para la detección, todos a diferentes escalas, entonces la distancia al estilo de Procrustes utilizada en Poselets para el entrenamiento debería ocuparse de una gran invarianza de escalas. Esto puede no ser satisfactorio, aunque si su aplicación principal no es detección localizada de piezas.

Como un aparte, creo que es bastante desafortunado que SIFT y SURF hayan sido capaces de ser patentados de esta manera, dado que estaban (al menos en parte) financiados con dinero de contribuyentes a través de subvenciones.

+0

¿Tiene un enlace no privado para información HoG de escala múltiple, para aquellos de nosotros sin suscripciones IEEE? – fish2000

8

Terminé utilizando Brisk, que es un detector de funciones con un rendimiento comparable al de SURF pero con licencia BSD. Además, tiene una muy buena implementación de C++ de código abierto que se conecta fácilmente al marco de OpenCV FeatureDetector, por lo que es como 2 líneas que eligen usar Brisk sobre SURF en su código.

+0

Perfecto. Vi el documento, pero no encontré la implementación. Gracias por la respuesta. – KobeJohn

3

FREAK se incluye ahora en OpenCV 2.4.2, se puede utilizar fácilmente :-)

11

FREAK se supone que es el más rápido escala y rotación descriptor invariante extractora, es de código abierto y puede usarlo fácilmente ya que se implementa en OpenCV. Necesitas un matcher binario que use la Distancia de Hamming, como BruteForceMatcher.

Aquí tienes un example sobre cómo usarlo, fácilmente reemplazable por el descriptor SIFT.

+1

Parece que su enlace al ejemplo está roto :( –

3

Puedes probar KAZE, se supone que es más rápido y más preciso (los videos parecen sofisticados, pero no pude probarlo todavía).También hay una versión acelerada disponible.

Pablo F. Alcantarilla, Adrien Bartoli y Andrew J. Davison, "KAZE Features", en la Conferencia Europea de Visión por Computador (ECCV). Fiorenze *, Italia. Octubre de 2012.

Pablo F. Alcantarilla, Jesús Nuevo y Adrien Bartoli, "Fast Explicit Diffusion for Accelerated Features in Nonlinear Scale Spaces", en la British Machine Vision Conference (BMVC). Bristol, Reino Unido. Septiembre de 2013

Los códigos fuente, videos y más se pueden encontrar en el author's website.

* Firenze

+0

He comparado AKAZE, SURF y SIFT en Una aplicación y puedo confirmar que en mis pruebas, es al menos tan buena y los descriptores son mucho más rápidos de comparar que cualquiera de los también (son binarios y todo). Tampoco está sujeto a patentes, por lo que recomendaría AKAZE como la primera opción. – oarfish

0

Detección de puntos de señal y la búsqueda de características de cerdo (que no está patentado) mediante la formación de manchas alrededor de los puntos emblemáticos.

+1

Hola, bienvenidos a SO, y gracias por intentar contribuir. Sin embargo, no tiene mucho sentido agregar un oneliner sin ningún tipo de detalles como respuesta, si la pregunta ya tiene un voto muy elevado, detallado y respuesta aceptada como lo hace aquí. –

Cuestiones relacionadas