Pergunta

Eu estou procurando um robusto algoritmo de detecção de face / biblioteca, de preferência em C (C ++ é bom demais; outras línguas que posso porta se necessário). Eu usei OpenCV 's implementação no passado, mas eu não acho que é invariante à rotação. não precisa ser em tempo real, mas não deve ser terrivelmente lento mal (talvez um ou dois segundos por foto é bom). À procura de alta confiabilidade, e não um monte de falsos positivos. Alguém sabe de qualquer boas implementações?

Foi útil?

Solução

Confira esta página em OpenCV Wiki sobre a detecção de rosto usando Haar-como características

@floppydisk : O mesmo cara postou outra projeto implementação destas Haar-como recursos para detecção de rosto.

O conceito não é difícil de entender e você pode até mesmo executá-lo por si mesmo. Talvez a parte mais difícil é a construção da cascata de classificadores impulsionados (mas openCV tem tudo isso prontamente implementadas!)

Alguns outros métodos que podem ser utilizados na detecção de face, que pode ser feito invariante para transformações afins incluem:

  • Eigenfaces com SVD / PCA
  • Fourier descritores
  • modelos de forma estatística ( este papel, em particular)

Outras dicas

Você poderia tentar dar uma olhada esta biblioteca:

http://vasc.ri.cmu.edu/NNFaceDetector/

Ele mostra em um dos casos de teste rostos que são girados. Como você pode ver, ele foi feito como uma dissertação, então você também pode ler o papel, bem como, se você gosta.

Mais em projeto de código, alguém postou um descrição detalhado de um projeto de reconhecimento facial, bem como o código-fonte alguns C ++ para o projeto e links para as bibliotecas que ele usou. Seu algoritmo se concentra no uso diferenças de cor para encontrar manchas de pele e, em seguida, testando para ver se 19x19 pixels fotos corresponder rostos. Eu não estou familiarizado com todas as bibliotecas de reconhecimento facial, mas a leitura através de alguns dos seu código, muitos dos métodos e funções têm CV no nome, então ele pode estar usando a biblioteca OpenCV, mas eu não estou familiarizado com ele assim que eu' não estou 100% de certeza. No entanto, ele não oferece muita explicação sobre a sua aplicação e os arquivos de origem por isso pode ser um bom ponto de partida.

Mark - você dizer que OpenCV pode não ser invariante à rotação

O que iria impedi-lo de fazer quatro compara, rotação de 90 ° após cada comparar?

A única coisa que eu tenho trabalhado com é Visionics FaceIt. Funcionou muito bem, mas passado eu sabia que era muito, muito, muito longe de ser livre (tanto como em cerveja ou como no discurso).

Eu não usei Haar apresenta para detecção de rosto, mas pelo que eu me lembro que poderia ser mais eficaz na detecção de um rosto que eigenfaces / pca.

Eu tenho que correr para a questão sobre as questões de rotação com o rosto. Meu pensamento é talvez você poderia tentar forma de correspondência e tentar corrigir o objeto. Experimente e orientadas-lo para o rácio de cabeça aspecto normal. Nunca cheguei tão longe em meu projeto com Eigenface, mas deixe-me saber como isso funciona. Isso deve ser fácil em Matlab. : P

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