Estou procurando uma biblioteca de reconhecimento facial gratuita para um projeto universitário. Não estou procurando detecção de rosto . Eu estou procurando por reconhecimento real. Isso significa encontrar imagens que contenham faces especificadas ou bibliotecas que calculam distâncias entre faces específicas.
Atualmente estou usando OpenCV para detectar as faces e um algoritmo Eigenface para o reconhecimento. Mas achei que deveria haver algo com melhor desempenho do que um algoritmo Eigenface auto-escrito. Não estou falando de velocidade como desempenho, estou procurando uma biblioteca com melhores resultados do que uma abordagem simples do Eigenface.
Dei uma olhada no Faint , mas parece que a biblioteca não é muito reutilizável para meus próprios aplicativos.
Estou feliz com uma biblioteca em Python, Java, C ++, C ou algo assim. A melhor coisa seria se ele pudesse ser executado em uma máquina Windows, porque neste momento estou usando algum código externo somente para Windows.
Respostas:
Aqui está uma lista de fornecedores comerciais que fornecem pacotes prontos para reconhecimento facial que são executados no Windows:
Cybula - Informações sobre o SDK de reconhecimento facial . Esta é uma empresa fundada por um professor universitário e, como tal, o site deles parece pouco profissional. Não há informações de preço ou demonstração que você possa baixar. Você precisará entrar em contato com eles para obter informações sobre preços.
NeuroTechnology - Informações sobre o SDK de reconhecimento facial . Esta empresa possui informações de preços iniciais , bem como uma avaliação real de 30 dias de seu SDK .
Pittsburgh Pattern Recognition - ( Adquirido pelo Google ) Informações sobre o SDK de rastreamento e reconhecimento facial . As demonstrações que eles fornecem ajudam a avaliar a tecnologia, mas não o SDSK. Você precisará entrar em contato com eles para obter informações sobre preços.
Visão sensível - Informações sobre o SDK . Seu site permite que você obtenha facilmente uma cotação de preço e também pode solicitar um kit de avaliação que o ajudará a avaliar a tecnologia deles.
fonte
Atualizar
O OpenCV 2.4.2 agora vem com o muito novo cv :: FaceRecognizer . Consulte a documentação muito detalhada em:
Correio Original
Eu liberei libfacerec , uma biblioteca de reconhecimento de face moderna para (licença BSD) API do OpenCV C ++. A libfacerec não possui dependências adicionais e implementa o método Eigenfaces, o método Fisherfaces e os histogramas de padrões binários locais. Partes da biblioteca serão incluídas no OpenCV 2.4.
A revisão mais recente do libfacerec está disponível em:
A biblioteca foi escrita para o OpenCV 2.3.1 com o futuro OpenCV 2.4 em mente, portanto, não suporte versões do OpenCV anteriores à 2.3.1. Este projeto é um projeto do CMake com uma API bem documentada; também há um tutorial sobre classificação de gênero. Você pode ver uma versão HTML da documentação em:
Se você quiser entender como esses algoritmos funcionam, leia meu Guide To Face Recognition (inclui exemplos de Python e GNU Octave / MATLAB):
Há também uma implementação Python e GNU Octave / MATLAB dos algoritmos no meu repositório github . Ambos os projetos no facerec também incluem vários métodos de validação cruzada para avaliar algoritmos:
As publicações relevantes são:
fonte
pam-face-authentication um módulo PAM para autenticação de rosto: mas seria necessário algum trabalho para obter o que você deseja. Um teste rápido mostrou que a taxa de reconhecimento não é tão boa quanto a do VeriLook da NeuroTechnology.
O Malic é outro software de reconhecimento de rosto de código aberto, que usa descritores Gabor Wavelet. Mas a última atualização da fonte é de 3 anos.
Do site: " Malic é um software de reconhecimento facial de código-fonte aberto que usa gabor wavelet. É um sistema de reconhecimento facial em tempo real que baseia o Malib e o CSU Face Identification Evaluation System (csuFaceIdEval). Usa a biblioteca Malib para processamento de imagens em tempo real e alguns dos csuFaceIdEval para rosto reconhecimento " .
Além disso, isso pode ser interessante:
gaborboosting : Programa científico aplicado ao reconhecimento de faces com o algoritmo Gabor Wavelet e AdaBoost
Biblioteca de extração de recursos - FELib refere-se a "Anotação de rosto por discriminador transdutor de Fisher de kernel"
fonte
Eu acho que o Eigenface , que você já está fazendo, é o caminho a percorrer se quiser calcular a distância entre os rostos. Você pode experimentar diferentes abordagens, como Support Vector Machine ou Hidden Markov Model . Encontrei uma página que lista os principais algoritmos que poderiam ser usados para o reconhecimento facial: Página inicial de reconhecimento de rosto .
Além disso, quando você diz "melhor desempenho", quer dizer velocidade ou precisão? Que tipo de problema você está tendo? Quão variados são os dados? Eles são principalmente face frontal ou incluem perfis?
fonte
Se o seu projeto estiver em um filme ou TV, ou qualquer coisa que tenha um script, parece que você definitivamente quer ver o trabalho de Mark Everingham et al. . O software está disponível , assim como os resultados de um episódio de Buffy .
fonte
Você deveria olhar http://libccv.org/
É relativamente novo, mas fornece uma API de alto nível de código aberto para detecção de rosto.
(... e, ouso dizer, é incrível)
Edit: Vale a pena notar também, que esta é uma das poucas bibliotecas que NÃO depende do opencv, e apenas para chutes, aqui está uma cópia do código para detecção de rosto na página de documentação, para lhe dar uma idéia do que está envolvido:
fonte
Sei que já faz um tempo, mas para qualquer pessoa interessada, existe o projeto Faint , que agrupou muitos desses recursos (detecção, reconhecimento etc.) em um bom pacote de software.
fonte
Estamos usando o OpenCV . Também há muitas coisas que não reconhecem o rosto, mas, com certeza, ele faz o reconhecimento do rosto.
fonte
Você pode tentar abrir a biblioteca MVG, também pode ser usada para várias interfaces.
fonte
O próximo passo seria o FisherFaces. Experimente e verifique se eles funcionam para você. Aqui está uma boa comparação.
fonte
Não é realmente o que você está procurando, mas pode ser útil para você. Algoritmos de Detecção de Rosto / Visão Computacional em MATLAB.
fonte