Índice:
- Etapa 1: Coisas que você precisa
- Etapa 2: Opencv-Intro e Instalação
- Etapa 3: Detectar e reconhecer rosto em um vídeo em tempo real
- Etapa 4: executando o código
Vídeo: Reconhecimento facial Opencv: 4 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
O reconhecimento facial é uma coisa bastante comum hoje em dia, em muitas aplicações como smartphones, muitos dispositivos eletrônicos. Este tipo de tecnologia envolve muitos algoritmos e ferramentas, etc. que usa algumas plataformas de SOC embutidas como o Raspberry Pi e visão computacional de código aberto bibliotecas como o OpenCV, agora você pode adicionar reconhecimento facial aos seus próprios aplicativos, como sistemas de segurança.
Neste projeto, vou lhe dizer como construir um reconhecimento de rosto usando um Raspberry Pi e usamos arduino + Lcd para exibir o nome da pessoa.
Etapa 1: Coisas que você precisa
1. RASPBERRY PI
2. ARDUINO UNO / NANO
VISOR lCD 3,16x2
4. RASPI-CAMERA / WEBcam (prefiro webcam para melhores resultados)
Etapa 2: Opencv-Intro e Instalação
OpenCV (biblioteca de visão computacional de código aberto) é uma biblioteca muito útil - fornece muitos recursos úteis, como reconhecimento de texto, reconhecimento de rosto, detecção de objetos, criação de mapas de profundidade e aprendizado de máquina.
Este artigo mostrará como instalar o Opencv e outras bibliotecas no Raspberry Pi que serão úteis ao fazer a detecção de objetos e outros projetos. A partir daí, aprenderemos como realizar operações de imagem e vídeo executando um projeto de reconhecimento de objeto e aprendizado de máquina. Especificamente, vamos escrever um código simples para detectar rostos em uma imagem.
O que é OpenCV?
OpenCV é uma biblioteca de software de visão computacional e aprendizado de máquina de código aberto. O OpenCV é lançado sob uma licença BSD, o que o torna gratuito para uso acadêmico e comercial. Possui interfaces C ++, Python e Java e oferece suporte a Windows, Linux, Mac OS, iOS e Android. O OpenCV foi projetado para eficiência computacional e um forte foco em aplicativos em tempo real.
Como instalar o OpenCV em um Raspberry Pi?
Para instalar o OpenCV, precisamos ter o Python instalado. Como o Raspberry Pis vem pré-carregado com Python, podemos instalar o OpenCV diretamente.
Digite os comandos abaixo para garantir que seu Raspberry Pi esteja atualizado e para atualizar os pacotes instalados em seu Raspberry Pi para as versões mais recentes.
sudo apt-get updatesudo apt-get upgrade
Digite os seguintes comandos no terminal para instalar os pacotes necessários para OpenCV em seu Raspberry Pi.
sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test libqtcore4
Digite o seguinte comando para instalar o OpenCV 3 para Python 3 em seu Raspberry Pi, pip3 nos diz que o OpenCV será instalado para Python 3.
sudo pip3 install opencv-contrib-python libwebp6
Agora, o OpenCV deve ser instalado.
(se ocorreu algum erro: ainda assim você pode fazer isso seguindo o link abaixo
https://www.instructables.com/id/Raspberry-Pi-Hand…)
Agora não tenha pressa, precisamos verificar se foi instalado corretamente ou não
Teste seu opencv por:
1. vá para o seu terminal e digite "python"
2. em seguida, digite "importar cv2".
3. em seguida, digite "cv2._ version_".
então instale essas bibliotecas
pip3 install python-numpy
pip3 install python-matplotlib
Teste o código para detectar rostos em uma imagem:
import cv2
faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml");
image = cv2.imread ('seu nome de arquivo') #example cv2.imread ('home / pi / Desktop / filename.jpg')
você obterá a saída como caixas quadradas foram formadas nos rostos das pessoas que estão na foto.
Etapa 3: Detectar e reconhecer rosto em um vídeo em tempo real
import cv2
importar numpy como np
importar os
import serial
ser = serial. Serial ('/ dev / ttyACM0', 9600, tempo limite = 1) # / dev / ttyACM0 pode mudar no seu caso, depende do arduino
cascadePath = "haarcascade_frontalface_default.xml"
faceCascade = cv2. CascadeClassifier (cascadePath)
reconhecedor = cv2.face.createLBPHFaceRecognizer ()
imagens =
rótulos =
para nome de arquivo em os.listdir ('Conjunto de dados'):
im = cv2.imread ('Conjunto de dados /' + nome do arquivo, 0)
images.append (im)
labels.append (int (filename.split ('.') [0] [0]))
#print filename
names_file = open ('labels.txt')
names = names_file.read (). split ('\ n')
reconhecizer.train (imagens, np.array (etiquetas))
imprimir 'Treinamento concluído… '
font = cv2. FONT_
HERSHEY_SIMPLEXcap = cv2. VideoCapture (1) # seu dispositivo de vídeo
lastRes = '' contagem = 0
enquanto (1):
_, frame = cap.read ()
cinza = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale (cinza, 1,3, 5)
contagem + = 1
para (x, y, w, h) nas faces:
cv2.rectangle (frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
se contar> 20: res = nomes [reconhecedor.predict (cinza [y: y + h, x: x + w]) - 1]
if res! = lastRes:
lastRes = res
imprimir lastRes
ser.write (lastRes)
contagem = 0
pausa
cv2.imshow ('frame', frame)
k = 0xFF & cv2.waitKey (10)
se k == 27:
pausa
cap.release ()
ser.close ()
cv2.destroyAllWindows ()
Etapa 4: executando o código
1. Baixe os arquivos anexados na etapa anterior
2. copie suas fotos cinza (6 imagens / amostras …) para a pasta do conjunto de dados
1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (número da imagem do conjunto de dados para mais pasta de conjunto de dados aberta)
2. Brad Pitt-2_1, 2_2, 2_3, 2_4, 2_5, 2_6
3. Leo-3_1, 3_2, 3_3, 3_4, 3_5, 3_6
4. Ironman4_1, 4_2, 4_3, 4_4, 4_5, 4_6
como acima, você pode adicionar os rótulos para as respectivas pessoas,
então, se o pi detectar qualquer rosto entre 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, então ele foi rotulado como Tom Cruise, então tenha cuidado ao enviar as fotos ………………
e, em seguida, conecte seu arduino ao raspberry Pi e faça alterações em main.py codeser = serial. Serial ('/ dev / ttyACM0', 9600, timeout = 1) 3. coloque todos os arquivos baixados (main.py, pasta de conjunto de dados, haarcascade_frontalface_default.xml em uma pasta.)
3. Agora abra o terminal Raspi, execute seu código por "sudo python main.py"
Recomendado:
Abellcadabra (sistema de travamento de porta com reconhecimento facial): 9 etapas
Abellcadabra (Sistema de Trava de Porta de Reconhecimento de Rosto): Durante a quarentena, tentei encontrar uma maneira de matar o tempo construindo um sistema de reconhecimento de rosto para a porta da casa. Eu chamei de Abellcadabra - que é a combinação entre Abracadabra, uma frase mágica com campainha que eu só pego a campainha. LOL
Espelho de reconhecimento facial com compartimento secreto: 15 etapas (com fotos)
Espelho de reconhecimento facial com compartimento secreto: Sempre fiquei intrigado com os compartimentos secretos sempre criativos usados em histórias, filmes e coisas do gênero. Então, quando eu vi o Concurso de Compartimento Secreto, decidi experimentar a ideia sozinho e fazer um espelho de aparência comum que abre um s
Fechadura de reconhecimento facial: 8 etapas
Fechadura de reconhecimento facial: Em construção há cerca de um mês, apresento a fechadura de reconhecimento facial! Tentei fazer com que parecesse o mais elegante possível, mas só consigo fazer tanto quanto um garoto de 13 anos. Esta fechadura de reconhecimento facial é operada por um Raspberry Pi 4, com uma batente portátil especial
Reconhecimento e identificação facial - Arduino Face ID usando OpenCV Python e Arduino: 6 etapas
Reconhecimento e identificação facial | Arduino Face ID usando OpenCV Python e Arduino .: O reconhecimento facial AKA Face ID é um dos recursos mais importantes em telefones celulares hoje em dia. Então, eu tinha uma pergunta " posso ter um ID de rosto para meu projeto Arduino? e a resposta é sim … Minha jornada começou da seguinte maneira: Etapa 1: Acesso a nós
Reconhecimento facial na prática: 21 etapas
Reconhecimento Facial na Prática: Este é um assunto que me fascina tanto que me faz perder o sono: Visão computacional, a detecção de objetos e pessoas através de um modelo pré-treinado