Blog

Postado em em 16 de dezembro de 2021

Reconhecimento Facial no Python – OpenCV e Mediapipe

Hoje eu quero te mostrar como fazer o reconhecimento facial no Python para você melhorar seus próximos projetos em Python.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Reconhecimento Facial com Python

Hoje eu quero te mostrar como fazer o reconhecimento de rosto no Python para incrementar os seus projetos!

Para essa aula nós vamos utilizar a webcam do seu computador, nós temos até uma aula de como controlar a webcam com Python.

Reconhecimento de Rosto no Python

Para esse projeto nós vamos utilizar o Jupyter, a biblioteca OpenCV e a biblioteca Mediapipe.

A biblioteca do OpenCV é uma biblioteca para tratamento de imagens, então ela é muito conhecida nessa parte de imagens.

A biblioteca mediapipe é uma ferramenta para reconhecimento de imagens criada pela Google.

Então você vai poder fazer o reconhecimento não só de rosto como de outras imagens!

import cv2 # importar o opencv -> para instalar rode pip install opencv-python
import mediapipe as mp # para instalar rode pip install mediapipe

webcam = cv2.VideoCapture(0) # para conectar o python com a nossa webcam.

reconhecimento_rosto = mp.solutions.face_detection # ativando a solução de reconhecimento de rosto
desenho = mp.solutions.drawing_utils # ativando a solução de desenho
reconhecedor_rosto = reconhecimento_rosto.FaceDetection() # criando o item que consegue ler uma imagem e reconhecer os rostos ali dentro

while webcam.isOpened():
    validacao, frame = webcam.read() # lê a imagem da webcam
    if not validacao:
        break
    imagem = frame
    lista_rostos = reconhecedor_rosto.process(imagem) # usa o reconhecedor para criar uma lista com os rostos reconhecidos
    
    if lista_rostos.detections: # caso algum rosto tenha sido reconhecido
        for rosto in lista_rostos.detections: # para cada rosto que foi reconhecido
            desenho.draw_detection(imagem, rosto) # desenha o rosto na imagem
    
    cv2.imshow("Rostos na sua webcam", imagem) # mostra a imagem da webcam para a gente
    if cv2.waitKey(5) == 27: # ESC # garante que o código vai ser pausado ao apertar ESC (código 27) e que o código vai esperar 5 milisegundos a cada leitura da webcam
        break
webcam.release() # encerra a conexão com a webcam
cv2.destroyAllWindows() # fecha a janela que mostra o que a webcam está vendo

Esse é o código que nós vamos utilizar e ele já está todo comentado para facilitar o entendimento.

Então tudo que ficar em azul (após #) é comentário e não faz parte do código, é para facilitar o entendimento do código.

OBS: Essa parte de comentar o código é uma boa prática nos códigos para facilitar o entendimento do código tanto para outras pessoas quanto para quem criou o código e vai utilizá-lo algum tempo depois.

Antes da estrutura while nós vamos importar as bibliotecas, conectar o Python com a webcam, ativar a solução de reconhecimento de rosto (que é uma das possibilidades da biblioteca mediapipe).

Vamos ativar a solução de desenho e criar o item que vai ser responsável por ler uma imagem e reconhecer os rostos.

Essa estrutura de repetição while é necessária para poder deixar a câmera ligada para que você consiga visualizar, caso contrário ela vai abrir e fechar rapidamente que não vai conseguir visualizar nada.

Então tendo a webcam ligada e funcionando nós vamos verificar se algum rosto foi reconhecido e se for reconhecido nós vamos desenhar o rosto na imagem.

E por fim nós vamos mostrar essa imagem para o usuário. Uma parte importante é o código para fechar essa janela utilizando a tecla ESC, pois só de fechar normalmente essa janela ela voltará a abrir.

IMPORTANTE: Essa parte do ESC é muito importante, pois essa tecla é que vai fechar a janela da webcam e de fato finalizar o programa. Se apenas tentar fechar a tela ela não será fechada por conta do while.

Reconhecimento Facial no Python
Reconhecimento Facial no Python

Esse aqui é um trecho da aula onde o Lira já faz esse reconhecimento para que você consiga visualizar como o reconhecimento é feito de forma bem eficiente.

Conclusão

Nessa aula eu te mostrei como você pode fazer o reconhecimento facial no Python utilizando a sua webcam para que você possa visualizar esse resultado.

Agora deixo com você a tarefa de utilizar o código para fazer o teste com a sua webcam e verificar o funcionamento do reconhecimento de rosto.

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso gratuito?


Quer sair do zero no Python e virar uma referência na sua empresa? Inscreva-se agora mesmo no Python Impressionador