Tanto quanto eu entendo, SURF e SIFT são protegidos por patente.
Existem métodos alternativos que podem ser usados ​​em um aplicativo comercial livremente?
Para obter mais informações sobre a patente, acesse: http://opencv-users.1802565.n2.nabble.com/SURF-protected-by-patent-td3458734.html
Lembre-se que só são patenteados em países que permitem que as patentes de software - que não (ainda) incluem o Eu
@MartinBeckett, isso abrange desenvolvimento, implantação ou ambos?
— Andrey Rubshtein 13/03/12
essa é a coisa complicada das patentes de software. Uma patente para a fabricação ou venda em um país, mas não a pesquisa ou desenvolvimento. Agora, o que é desenvolvimento de software?
O que exatamente é patenteado no SIFT? O SIFT possui três estágios: (i) Construção do espaço da balança, (ii) Keypoint Detector e (iii) Descriptor generator. Meu sentimento é que apenas o Descriptor Generator é patenteado. Estou correcto? Graças
Esta não é uma resposta para a pergunta e, como tal, pertence aos comentários e não às respostas.
Os autores do SIFT e do SURF exigem taxas de licença para o uso de seus algoritmos originais.
Eu fiz algumas pesquisas sobre a situação e aqui estão as alternativas possíveis:
Detector de ponto-chave:
Harris-Laplace - versão invariante em escala do detector Harris (também existe uma versão invariante afim, apresentada por Mikolajczyk e Schmidt, e acredito que também seja livre de patentes).
Patches orientados para várias escalas (MOPs) - apesar de patenteados, o detector é basicamente o Harris em várias escalas, portanto não haveria problemas com isso (o descritor é um patch de imagem transformada em wavelet em 2D)
Filtro LoG - como o SIFT patenteado usa a aproximação DoG (Diferença de Gaussiana) do LoG (Laplaciano de Gaussiano) para localizar pontos de interesse em escala, somente o LoG pode ser usado em algoritmo modificado, sem patentes, por mais que a implementação possa ser um pouco mais lenta
BRISK (inclui um descritor)
ORB (inclui um descritor)
KAZE - livre para usar, o descritor M-SURF (modificado para o espaço de escala não-linear do KAZE), supera tanto o SIFT quanto o SURF
A-KAZE - versão acelerada do KAZE, livre para usar, descritor M-LDB (descritor binário rápido modificado)
Descritor de ponto-chave:
Gradiente normalizado - solução simples e funcional
Patch de imagem transformada PCA
Patch de imagem transformada por wavelet - os detalhes são fornecidos no documento dos MOPs, mas podem ser implementados de maneira diferente para evitar a emissão de patentes (por exemplo, usando base de wavelet diferente ou esquema de indexação diferente)
Observe que, se você atribuir orientação ao ponto de interesse e girar o patch da imagem adequadamente, obtém invariância rotacional gratuitamente. Até os cantos de Harris são invariantes em rotação e o descritor também pode ser feito.
Alguma solução mais completa é feita em Hugin, porque eles também lutavam para ter um detector de pontos de interesse sem patente.
Obrigado pela sua resposta. Eles querem realeza?
Sim, os dois querem taxa de royalties. O preço precisa ser negociado, mas gira em torno de 20.000 USD / ano e a taxa de royalties é de cerca de 5%. Os MOPs agora são patenteados pela Microsoft (entrei em contato com Richard Szeliski para obter mais informações sobre a patente).
Em princípio, as patentes são públicas, portanto, se você quiser saber mais sobre isso, procure em bancos de dados de patentes (por exemplo, Banco de Dados Europeu .
Algum desses descritores de ponto-chave é invariável em escala?
— 21712 Diego
Harris-Laplace é invariante em escala. Ou você pode tornar outros detectores invariáveis ​​em escala, filtrando o máximo de espaço de escala e calculando uma escala característica para cada ponto detectado.
— Libor 31/01
Há um método relativamente novo que você pode procurar: BRISK , Pontos binários escaláveis ​​invariáveis ​​e robustos binários:
Neste artigo, propomos o BRISK, um novo método para detecção, descrição e correspondência de pontos-chave. Uma avaliação abrangente dos conjuntos de dados de referência revela o desempenho adaptável e de alta qualidade do BRISK, como nos algoritmos de última geração, embora a um custo computacional dramaticamente mais baixo (uma ordem de magnitude mais rápida que SURF nos casos). A chave da velocidade está na aplicação de um novo detector FAST baseado no espaço de escala em combinação com a montagem de um descritor de cadeia de bits a partir de comparações de intensidade recuperadas por amostragem dedicada de cada vizinhança de ponto-chave.
É livre de patentes e livre de usar (como foi dito pelo autor do algoritmo).
Não confie em ninguém aqui, converse com um advogado. O mundo jurídico é sutilmente diferente do nosso, se assim posso dizer. Dependendo do que você deseja exatamente fazer (e onde, etc.), pode haver uma solução na qual você possa usar SURF ou SIFT. Surpreendi-me no passado como licenças aparentemente fortes podem ser superadas.
Prefiro olhar para o KAZE / AKAZE, que tem um desempenho igualmente bom com uma aceleração significativa. Os casos de deformação também são tolerados. O OpenCV obteve recentemente uma implementação através do GSoC 2014. Você pode encontrá-lo aqui . Seu tutorial OpenCV também está presente aqui .
Obrigado. O KAZE parece promissor - tem melhor desempenho geral do que o SIFT / SURF. Embora o cálculo da escala de escala não linear possa ser difícil de implementar, pode valer a pena.