Reconhecedores Eigenfaces e fisherfaces

Home Fóruns Fórum Reconhecimento Facial com Python e OpenCV Reconhecedores Eigenfaces e fisherfaces

Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #30694

    Pessoal,

     

    Tanto para o reconhecdor engenfaces quanto para o fisherfaces, o código abaixo está apresentando erro. Não consigo corrigir…Alguém sabe identificar o que está errado?

     

    import cv2

    detectorFace = cv2.CascadeClassifier(“haarcascade_frontalface_default.xml”)
    reconhecedor = cv2.face.EigenFaceRecognizer_create()
    reconhecedor.read(“classificadorEigen.yml”)
    largura, altura = 220, 220
    font = cv2.FONT_HERSHEY_COMPLEX_SMALL
    camera = cv2.VideoCapture()

    while (True):

    conectado, imagem = camera.read()
    if not conectado:
    print(“Não é possível receber a imagem. Saindo…”)
    else:
    imagemCinza = cv2.cvtColor(imagem, cv2.COLOR_BGR2GRAY)
    facesDetectadas = detectorFace.detectMultiScale(imagemCinza,
    scaleFactor=1.5,
    minSize=(30, 30))

    for (x, y, l, a) in facesDetectadas:
    imagemFace = cv2.resize(imagemCinza[y:y+a, x: x+l], (largura, altura))
    cv2.rectangle(imagem, (x, y), (x + l, y + a), (0, 0, 255), 2)
    id, confianca = reconhecedor.predict(imagemFace)
    if id == 1:
    nome = ‘Diogenes’
    else:
    nome = ‘Pedro’
    cv2.putText(imagem, str(id), (x, y + (a + 30)), font, 2, (0, 0,255))

    cv2.imshow(“Face”, imagem)
    if cv2.waitKey(1) == ord(‘q’):
    break

    camera.release()
    cv2.destroyAllWindows()

    #30733

    Alguém poderia me ajudar????

    #30752
    Gabriel Alves
    Moderador

    Olá Diogenes!

    Desculpe a demora na resposta, mas precisaria que você me informasse qual erro está aparecendo para você, assim podemos te ajudar melhor pois podem ocorrer inúmeros tipos de erros durante a execução. Preciso que me passe a mensagem de erro caso tenha e a descrição do problema (se por exemplo é a imagem da webcam que não aparece, se ele dá erro na hora de reconhecer a face, se ele não reconhece nenhum rosto cadastrado, etc.)

    Também sugiro comparar com o código da aula. Se achar melhor, pode baixar o código fonte completo na aula “Recursos” ou visualizar o código por aqui (pro caso do Eigenfaces e fisherfaces são os arquivos reconhecedor-eigenfaces.py e reconhecedor-fisherfaces.py, respectivamente).

    Notei que no seu código está com algumas coisas um poucos diferentes, no caso o cv2.VideoCapture em seu código não tem o 0, está apenas cv2.VideoCapture(). Primeiramente faça esse ajuste e deixe cv2.VideoCapture(0) pois as vezes você pode estar com problema para capturar as imagens da sua webcam por esse motivo, já que dependendo da versão o OpenCV exige que você passe esse parâmetro (isso caso o seu problema realmente seja na aquisição das imagens, por isso é importante descrever qual tipo de problema exatamente você está tendo).

    No caso de outros alunos que tiveram problemas para executar esses algoritmos 99% das vezes é relacionado à instalação OpenCV (quando não é um erro de digitação no código, o que é mais comum). Mas se você conseguiu executar sem erros o código de treinamento e gerou os arquivos .yml sem problemas então sua instalação deve estar Ok, caso contrário você teria algum erro ali na hora de usar as funções relacionadas ao reconhecimento facial (com eigen, fisher ou LBPH no nome) e não poderia gerar o arquivo .yml.

    Outra coisa importante: verifique se a indentação do seu código está toda correta, conforme mostrado em aula.

    Fazendo essas verificações provavelmente você conseguirá executar, mas caso não consiga peço por favor que me avise e me informe com detalhes qual mensagem de erro você está tendo e se possível a descrição do problema (Caso necessário, ou se não tiver alguma mensagem de erro).

    • Esta resposta foi modificada 2 anos, 6 meses atrás por Gabriel Alves.
    #30799

    Rafael, muito obrigado. Era só o Zero mesmo que estava faltando.

Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Você deve fazer login para responder a este tópico.