Detecção de Face e Olhos com OpenCV a partir do zero

Detecção de Face com OpenCV e Haar Cascades usando a webcam

O que é a detecção facial?

A detecção facial usando um computador é uma das aplicações da Visão Computacional (Computer Vision).

Consiste em localizar rostos em imagens ou vídeos, capturados por uma câmera ou salvos no disco rígido, por meio de algoritmos de aprendizado de máquina.

Detecção facial com Python, OpenCV e Haar Cascades

OpenCV é uma biblioteca de visão computacional e aprendizado de máquina de código aberto com suporte para Python, C++ e Java.

Ele oferece mais de dois mil algoritmos projetados para realizar várias tarefas, incluindo detecção e reconhecimento de rosto.

Seus modelos pré-treinados, baseados na técnica Haar Cascades, permitem a detecção de rostos e olhos com velocidade aceitável.

A seguir, mostramos a instalação do software e bibliotecas necessárias para a implementação de um sistema de detecção de rosto usando a webcam do PC com OpenCV e Haar Cascades.

Em seguida, forneceremos o código, bem como uma breve explicação dos comandos usados.

Instale Python, NumPy e OpenCV

Instalação do Python

A primeira coisa que você precisa fazer é instalar o Python. Para fazer isso, você pode baixar seu arquivo de instalação no seguinte link:

Quando a instalação estiver concluída, abra o prompt de comando. Para fazer isso, pressione as teclas Windows + R e clique em OK.

Digite o seguinte comando e pressione Enter:

python --version

Se você vir a versão do Python, significa que a instalação foi bem-sucedida.

Além disso, verifique se o gerenciador de pacotes pip foi instalado corretamente. Para fazer isso, execute o comando:

pip -v

Instalação do NumPy

Uma vez instalado o Python, será necessário instalar a biblioteca NumPy, pois o OpenCV usa sua estrutura de dados do tipo array.

Para a instalação do NumPy, você pode usar o gerenciador de pacotes pip. Para fazer isso, abra o Prompt de Comando e execute o seguinte comando:

pip install numpy

Instalação do OpenCV

Para instalar o OpenCV, abra o prompt de comando do Windows e execute o seguinte comando:

pip install opencv-contrib-python

Baixe modelos de detecção de rosto pré-treinados

A última coisa a fazer é baixar do GitHub os modelos pré-treinados que o OpenCV usará para detecção de rosto e olhos.

Clique neste link.

Localize e clique no arquivo haarcascade_frontalface_default.xml. Em seguida, clique com o botão direito do mouse no botão Raw e selecione a opção Salvar link como. O arquivo será baixado para o seu disco rígido.

Baixe o arquivo haarcascade_eye.xml da mesma forma.

Para finalizar copie os dois arquivos com extensão XML dentro da pasta de instalação do Python. Se você não sabe onde está, abra o prompt de comando e execute o comando where python.

Código para detectar rostos e olhos usando a webcam do PC

import numpy as np
import cv2

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')

webcam = cv2.VideoCapture(0)

while True:
    ret, frame = webcam.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)

    for (x,y,w,h) in faces:
        cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0),2)
        roi_gray = gray[y:y+h, x:x+w]
        roi_color = frame[y:y+h, x:x+w]

        eyes = eye_cascade.detectMultiScale(roi_gray)
        for (ex,ey,ew,eh) in eyes:
            cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)

    cv2.imshow('Face Detection',frame)
    p = cv2.waitKey(28)
    if p == 27:
        break

webcam.release()
cv2.destroyAllWindows()

Para executar o programa:

Digite Python na barra de pesquisa do Windows e clique em IDLE (Python xxx) na lista de correspondências.

No Python IDLE, clique em File > New File. Na janela que se abre, clique em File > Save As. Digite um nome e salve o arquivo com a extensão .py em seu disco rígido.

Copie e cole o código, clique em File > Save. Em seguida, clique em Run > Run Module. A câmera do seu computador será ativada e uma caixa aparecerá ao redor do seu rosto e olhos.

Rolar para cima