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!

Python
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
Ícone PythonPython Impressionador

Você vai aprender a linguagem de Programação que mais cresce no Mundo para fazer automações incríveis, desenvolver sites, fazer análises de dados, trabalhar com Ciência de Dados, Inteligência Artificial, mesmo que você nunca tenha tido nenhum contato com Programação na vida.

Começar agoraSeta para a direita
Fundo PythonTelas Python
Luz Python

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?