Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
A detecção de rostos é uma tecnologia amplamente utilizada em diversas aplicações, desde sistemas de segurança até interações homem-máquina. No contexto do Raspberry Pi, um dispositivo de baixo custo e alta versatilidade, a detecção de rostos pode ser implementada de forma eficiente utilizando bibliotecas de visão computacional como OpenCV. Este artigo abordará como configurar e executar um sistema básico de detecção de rostos no Raspberry Pi, destacando os ajustes necessários para otimizar o desempenho no ambiente de hardware limitado do Raspberry Pi.
Exemplos:
Instalação do OpenCV: Para começar, é necessário instalar o OpenCV no Raspberry Pi. Isso pode ser feito através dos seguintes comandos no terminal:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-opencv
Captura de Imagem da Câmera:
Para capturar imagens utilizando a câmera do Raspberry Pi, você pode utilizar a biblioteca picamera
. Instale-a com:
sudo apt-get install python3-picamera
E utilize o seguinte código para testar a captura de imagem:
from picamera import PiCamera
from time import sleep
camera = PiCamera()
camera.start_preview()
sleep(5)
camera.capture('/home/pi/image.jpg')
camera.stop_preview()
Detecção de Rostos: Com o OpenCV e a câmera configurados, podemos proceder com a detecção de rostos. O código a seguir demonstra como carregar uma imagem e detectar rostos utilizando o classificador Haar Cascade do OpenCV:
import cv2
# Carregar o classificador Haar Cascade pré-treinado
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
# Carregar a imagem
img = cv2.imread('/home/pi/image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Detectar rostos
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
# Desenhar retângulos ao redor dos rostos detectados
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
# Mostrar a imagem com os rostos detectados
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Execução em Tempo Real: Para fazer a detecção de rostos em tempo real utilizando a câmera do Raspberry Pi, o código a seguir pode ser utilizado:
import cv2
from picamera.array import PiRGBArray
from picamera import PiCamera
# Inicializar a câmera
camera = PiCamera()
camera.resolution = (640, 480)
camera.framerate = 32
rawCapture = PiRGBArray(camera, size=(640, 480))
# Carregar o classificador Haar Cascade
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
# Capturar frames da câmera
for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
image = frame.array
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)
cv2.imshow("Frame", image)
key = cv2.waitKey(1) & 0xFF
rawCapture.truncate(0)
if key == ord("q"):
break
cv2.destroyAllWindows()