Home › Fóruns › Fórum Reconhecimento Facial com Python e OpenCV › Reconhecedores Eigenfaces e fisherfaces
- Este tópico contém 4 respostas, 2 vozes e foi atualizado pela última vez 6 meses, 4 semanas atrás por Gabriel Alves.
- AutorPosts
- 5 de setembro de 2021 às 16:43 #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’):
breakcamera.release()
cv2.destroyAllWindows()9 de setembro de 2021 às 15:37 #30733Alguém poderia me ajudar????
13 de setembro de 2021 às 11:14 #30752Olá 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 3 anos, 3 meses atrás por Gabriel Alves.
16 de setembro de 2021 às 12:14 #30799Rafael, muito obrigado. Era só o Zero mesmo que estava faltando.
15 de maio de 2024 às 22:30 #44899Que bom que funcionou =)
- AutorPosts
- Você deve fazer login para responder a este tópico.