Pergunta

Eu estou procurando um reconhecimento livre rosto biblioteca para um projeto de universidade. Eu não estou olhando para o rosto de detecção . Estou à procura de reconhecimento real. Isso significa encontrar imagens que contêm rostos ou bibliotecas específicas que as distâncias calcular entre faces específicas.

Atualmente estou usando OpenCV para detectar os rostos e um áspero Eigenface algoritmo para o reconhecimento. Mas eu pensei que deve haver algo lá fora, com melhor desempenho do que um algoritmo Eigenface auto-escrita. Eu não estou falando sobre a velocidade como o desempenho, eu estou procurando uma biblioteca com melhores resultados do que uma abordagem simples Eigenface.

Eu dei uma olhada fraco , 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 parecido. A melhor coisa seria se ele pode ser executado em uma máquina Windows, porque eu estou contando com algum código somente para Windows externo no momento.

Foi útil?

Solução

Aqui está uma lista de fornecedores comerciais que fornecem off-the-shelf pacotes de reconhecimento facial que são executados no Windows:

  1. Cybula - Informações sobre sua Reconhecimento Facial SDK . Esta é uma empresa fundada por um professor universitário e, como tal, o seu site parece pouco profissional. Não há informações sobre preços ou demo que você pode baixar. Você precisará contato deles para mais informações.

  2. Neurotechnology - Informações sobre sua Reconhecimento Facial SDK . Esta empresa tem tanto up-front informações sobre preços , bem como um julgamento real 30 dias do seu SDK

  3. Pittsburgh Pattern Recognition - ( adquirido pelo Google ) informações sobre a sua rastreamento e reconhecimento facial SDK . As demos que eles fornecem ajuda-lo a avaliar a sua tecnologia, mas não a sua SDSK. Você precisará contato deles para informações sobre preços.

  4. Sensible Visão - Informações sobre sua SDK . O site permite que você facilmente obter uma cotação de preço e você também pode encomendar um kit de avaliação que irá ajudá-lo a avaliar sua tecnologia.

Outras dicas

Atualização

OpenCV 2.4.2 agora vem com o muito novo cv: : FaceRecognizer . Por favor, consulte a documentação muito detalhada em:

Original Publicar

eu liberei libfacerec , uma biblioteca de reconhecimento de face moderna para (licença BSD) API do OpenCV C ++. libfacerec não tem dependências e implementos adicionais do método Eigenfaces, método Fisherfaces e padrões locais binários histogramas. Partes da biblioteca vão ser incluídas no OpenCV 2.4.

A última revisão do libfacerec está disponível em:

A biblioteca foi escrito para OpenCV 2.3.1 com o próximo OpenCV 2.4 em mente, então eu não suporta versões OpenCV mais cedo do que 2.3.1. Este projeto vem como um projeto CMake com uma API bem documentada, há também um tutorial sobre a classificação de gênero. Você pode ver uma versão HTML da documentação em:

Se você quer entender como esses algoritmos funcionam, você pode querer ler meu Face Recognition Para Guia (inclui Python e GNU Octave / exemplos MATLAB):

Há também uma implementação de Python e GNU Octave / MATLAB dos algoritmos em meu github repositório . Ambos os projetos em facerec também incluem vários métodos de validação cruzada para avaliar algoritmos:

As publicações relevantes são:

  • Turk, M., e Pentland, A. Eigenfaces de reconhecimento. . Journal of Cognitive Neuroscience 3 (1991), 71-86.
  • Belhumeur, P. N., Hespanha, J., e Kriegman, D. Eigenfaces vs Fisherfaces:. Reconhecimento usando classe específica linear projecção . IEEE Transactions on Análise de Padrões e Máquina Intelligence 19, 7 (1997), 711-720.
  • Ahonen, T., Hadid, A., e Pietikainen, M. Face Recognition com padrões locais binário. . Visão Computacional - ECCV 2004 (2004), 469-481
  • .

pam-face-authentication um PAM módulo para Autenticação face: mas isso exigiria algum trabalho para conseguir o que deseja. Um teste rápido mostrou que a taxa de reconhecimento não são tão bons quanto os de VeriLook de Neurotechnology.

Malic é outro software de reconhecimento de face de fonte aberta, que utiliza Gabor descritores wavelet. Mas a última atualização para a fonte é de 3 anos de idade.

A partir do site: " málico é um software de reconhecimento de opensource cara que usa Gabor Wavelet. É o sistema de reconhecimento facial em tempo real que, com base Malib e CSU Rosto Identificação Sistema de Avaliação de biblioteca (csuFaceIdEval) .Uses Malib para processamento de imagens em tempo real e alguns dos csuFaceIdEval para o reconhecimento facial . "

Além disso, este poderia ser de interesse:

gaborboosting : Um programa científico aplicado sobre o Reconhecimento de Rosto com Gabor Wavelet e AdaBoost Algoritmo

recurso de extração Biblioteca - FELib refere-se a "Rosto Anotação do transdutivo Kernel Fisher discriminante,"

Gostaria de pensar Eigenface , o que você esteja fazendo, é o caminho a percorrer se você quer calcular a distância entre as faces. Você pode experimentar diferentes abordagens, como Support Vector Machine ou Oculto Markov Modelo . Eu encontrei uma página que lista os principais algoritmos que poderiam ser usados ??para o reconhecimento facial: Face Recognition Homepage .

Além disso, quando você diz "melhor desempenho", você velocidade média ou precisão? Que tipo de problema você está tendo? Como variáveis ??são os dados? São rosto principalmente frontal ou eles incluem perfis?

Se o seu projeto está em um filme ou TV, ou qualquer coisa que tenha um script, parece que você definitivamente querer olhar para o trabalho de Mark Everingham et al. . O software é disponíveis , assim como os resultados em um episódio de Buffy

Você deve olhar para http://libccv.org/

É bastante novo, mas fornece uma fonte aberta de alto nível API livre para detecção de rosto.

(... e, ouso dizer, é bastante damn incrível)

Edit: Digno de nota também, que esta é uma das poucas bibliotecas que não depende de opencv, e apenas por diversão, aqui está uma cópia do código para a detecção de rosto a página de documentação, para lhe dar uma ideia do que está envolvidos:

#include <ccv.h>
int main(int argc, char** argv)
{
    ccv_dense_matrix_t* image = 0;
    ccv_read(argv[1], &image, CCV_IO_GRAY | CCV_IO_ANY_FILE);
    ccv_bbf_classifier_cascade_t* cascade = ccv_load_bbf_classifier_cascade(argv[2]);         ccv_bbf_params_t params = { .interval = 8, .min_neighbors = 2, .accurate = 1, .flags = 0, .size = ccv_size(24, 24) };
    ccv_array_t* faces = ccv_bbf_detect_objects(image, &cascade, 1, params);
    int i;
    for (i = 0; i < faces->rnum; i++)
    {
        ccv_comp_t* face = (ccv_comp_t*)ccv_array_get(faces, i);
        printf("%d %d %d %d\n", face->rect.x, face->rect.y, face->rect.width, face->rect.y);
    }
    ccv_array_free(faces);
    ccv_bbf_classifier_cascade_free(cascade);
    ccv_matrix_free(image);
    return 0;
} 

Eu sei que tem sido um tempo, mas para qualquer outra pessoa interessada, há a href="http://faint.sourceforge.net/" rel="nofollow noreferrer"> fraco projeto , que tem incluído muitas dessas características (detecção, reconhecimento, etc.) em um pacote de software agradável.

Estamos usando OpenCV . Tem muitos de coisas não-face-reconhecimento lá também, mas, com certeza, ele faz de reconhecimento facial.

Você pode tentar a biblioteca MVG aberto, ele pode ser usado para várias interfaces também.

O próximo passo seria FisherFaces. Experimentá-lo e verificar se eles trabalham para você. Aqui é uma comparação agradável.

Não é realmente o que você está procurando, mas pode ser útil. algoritmos Face Detection Visão / Computer em MATLAB.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top