¿Cuáles son algunas alternativas gratuitas a SIFT / SURF que se pueden usar en aplicaciones comerciales?


66

Según tengo entendido, tanto SURF como SIFT están protegidos por patente.
¿Hay algún método alternativo que pueda usarse libremente en una aplicación comercial ?

Para obtener más información sobre la patente, visite: http://opencv-users.1802565.n2.nabble.com/SURF-protected-by-patent-td3458734.html


77
Recuerde que solo están patentados en países que permiten patentes de software, lo que (todavía) no incluye la UE
Martin Beckett

1
@MartinBeckett, ¿eso cubre el desarrollo, la implementación o ambos?
Andrey Rubshtein

2
Eso es lo complicado de las patentes de software. Una patente detiene la fabricación o venta en un país, pero no la investigación o el desarrollo. ¿Qué es el desarrollo de software ahora?
Martin Beckett

¿Qué es exactamente patentado en SIFT? SIFT tiene tres etapas: (i) Construcción de espacio a escala, (ii) Detector de punto clave y (iii) Generador de descriptor. Mi sensación es que solo el Descriptor Generator está patentado. ¿Estoy en lo correcto? Gracias

Esta no es una respuesta a la pregunta formulada, y como tal pertenece a los comentarios más que a las respuestas.
ThP

Respuestas:


62

Tanto los autores de SIFT como los de SURF requieren tarifas de licencia para usar sus algoritmos originales.

He investigado un poco sobre la situación y aquí están las posibles alternativas:

Detector de punto clave:

  • Detector de esquina Harris
  • Harris-Laplace: versión invariante a escala del detector Harris (también existe una versión invariante afín, presentada por Mikolajczyk y Schmidt, y creo que también está libre de patentes).
  • Parches orientados a múltiples escalas (MOP): aunque está patentado, el detector es básicamente el Harris a múltiples escalas, por lo que no habría problemas con eso (el descriptor es un parche de imagen transformado por wavelet 2D)
  • Filtro LoG: dado que el SIFT patentado utiliza la aproximación DoG (Diferencia de Gauss) de LoG (Laplaciano de Gauss) para localizar puntos de interés en la escala, LoG solo se puede usar en un algoritmo modificado sin patente, aunque la implementación podría ser un poco más lenta
  • RÁPIDO
  • BRISK (incluye un descriptor)
  • ORB (incluye un descriptor)
  • KAZE: descriptor M-SURF de uso gratuito (modificado para el espacio de escala no lineal de KAZE), supera a SIFT y SURF
  • A-KAZE: versión acelerada de KAZE, de uso gratuito, descriptor M-LDB (descriptor binario rápido modificado)

Descriptor de punto clave:

  • Gradiente normalizado: solución simple y funcional
  • Parche de imagen transformada PCA
  • Parche de imagen transformada Wavelet: los detalles se proporcionan en papel MOP, pero se pueden implementar de manera diferente para evitar el problema de la patente (por ejemplo, utilizando diferentes bases wavelet o diferentes esquemas de indexación)
  • Histograma de gradientes orientados
  • GLOH
  • LESH
  • ENÉRGICO
  • ORBE
  • MONSTRUO
  • LDB

Tenga en cuenta que si asigna orientación al punto de interés y gira el parche de la imagen en consecuencia, obtendrá invariancia rotacional de forma gratuita. Incluso las esquinas de Harris son rotacionalmente invariantes y el descriptor también se puede hacer.

En Hugin se hace una solución más completa, porque también lucharon por tener un detector de puntos de interés sin patentes.


Gracias por tu respuesta. ¿Quieren realeza?
Andrey Rubshtein

1
Sí, ambos quieren tarifa de regalías. El precio debe ser negociado, pero ronda los 20,000 USD / año y la tarifa de regalías es de aproximadamente 5%. Los MOP ahora están patentados por Microsoft (me puse en contacto con Richard Szeliski para obtener más información sobre la patente).
Libor

1
Las patentes son públicas en principio, por lo que si desea saber más al respecto, búsquelo en las bases de datos de patentes (por ejemplo, la base de datos europea .
Geerten

¿Alguno de esos descriptores de puntos clave es invariante a escala?
Diego

1
Harris-Laplace es invariante de escala. O puede hacer que otros detectores sean invariantes de escala filtrando los máximos de espacio de escala y calculando una escala característica para cada punto detectado.
Libor

26

Hay un método relativamente nuevo, es posible que desee considerar: BRISK , puntos clave escalables invariables robustos binarios:

En este artículo proponemos BRISK, un método novedoso para la detección, descripción y coincidencia de puntos clave. Una evaluación exhaustiva de los conjuntos de datos de referencia revela el rendimiento adaptativo y de alta calidad de BRISK como en los algoritmos de vanguardia, aunque a un costo computacional dramáticamente menor (un orden de magnitud más rápido que SURF en los casos). La clave para la velocidad radica en la aplicación de un novedoso detector basado en FAST de espacio de escala en combinación con el ensamblaje de un descriptor de cadena de bits a partir de comparaciones de intensidad recuperadas por muestreo dedicado de cada vecindario de punto clave.

Es libre de patentes y de uso gratuito (como dijo el autor del algoritmo).


12

No confíes en nadie aquí, habla con un abogado. El mundo legal es sutilmente diferente al nuestro, si puedo decir. Dependiendo de lo que quiera hacer exactamente (y dónde, etc.), puede haber una solución donde podría usar SURF o SIFT. Me ha sorprendido en el pasado cómo se pueden superar las licencias aparentemente sólidas.


8

Prefiero mirar a KAZE / AKAZE, que funcionan igualmente bien con una aceleración significativa. Los casos de deformación también son tolerados. OpenCV ha obtenido recientemente una implementación a través de GSoC 2014. Puede encontrarla aquí . Su tutorial de OpenCV también está presente aquí .


Gracias. KAZE parece prometedor: tiene un mejor rendimiento general que SIFT / SURF. Aunque el cálculo de escala a escala no lineal puede ser difícil de implementar, puede valer la pena.
Libor