Índice:

Reconhecimento facial Opencv: 4 etapas
Reconhecimento facial Opencv: 4 etapas

Vídeo: Reconhecimento facial Opencv: 4 etapas

Vídeo: Reconhecimento facial Opencv: 4 etapas
Vídeo: Reconhecimento Facial Tutorial - Opencv Python Deep Learning 2024, Julho
Anonim
Reconhecimento Facial Opencv
Reconhecimento Facial Opencv

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

Coisas que você precisa
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-Intro e Instalação
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

Executando o Código
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: