Índice:
- Suprimentos
- Etapa 1: Instalando Python e OpenCV
- Etapa 2: Quais são os recursos do tipo Haar?
- Etapa 3: codificação em Python
- Etapa 4: Programando o Arduino
- Etapa 5: Conclusão
Vídeo: Dispositivo de rastreamento facial! Python e Arduino: 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Por Techovator0819My Youtube ChannelFollow Mais do autor:
Sobre: Eu adoro fazer coisas novas. Como coisas que lidam com microcontroladores, engenharia mecânica, Inteligência Artificial, Ciência da Computação e qualquer coisa que me interesse. E aqui você encontrará todos os… Mais sobre Techovator0819 »
Olá a todos que estão lendo este instrutível. Este é um dispositivo de rastreamento facial que funciona em uma biblioteca python chamada OpenCV. CV significa 'Visão do Computador'. Em seguida, configurei uma interface serial entre meu PC e meu Arduino UNO. Isso significa que isso não funciona apenas em Python.
Este dispositivo reconhece seu rosto no quadro, então ele envia certos comandos para o Arduino para posicionar a câmera de forma que ela fique dentro do quadro! Parece legal? Vamos pular direto então.
Suprimentos
1. Arduino UNO
2. 2 x servo motores (qualquer servo motor vai servir, mas eu usei Tower Pro SG90)
3. Instalando Python
4. Instalando o OpenCV
5. Câmera web
Etapa 1: Instalando Python e OpenCV
A instalação do Python é bastante simples!
www.python.org/downloads/
Você pode seguir o link acima para baixar a versão python (Mac, Windows ou Linux) que melhor se adapta a você (64 bits ou 32 bits). O resto do processo de instalação é simples e você será guiado pela interface.
Assim que terminar a instalação, abra o prompt de comando e digite o seguinte:
pip install opencv-python
Isso deve instalar a biblioteca openCV. Em caso de solução de problemas, você pode verificar ESTA página.
Depois de configurar o Ambiente e todos os pré-requisitos, vamos ver como podemos realmente construir isso!
Etapa 2: Quais são os recursos do tipo Haar?
Características semelhantes a Haar são características de uma imagem digital. O nome vem de wavelets Haar. Trata-se de uma família de ondas quadradas que são utilizadas para identificar características em uma imagem digital. Cascatas de Haar é basicamente um classificador que nos ajuda a detectar objetos (em nossos rostos de caso) usando os recursos do tipo haar.
Em nosso caso, para simplificar, usaremos Haar Cascades pré-treinados para identificar faces. Você pode seguir ESTE link de uma página do github e baixar o arquivo xml para Haar Cascade.
1. Clique em 'haarcascade_frontalface_alt.xml'
2. Clique no botão 'Raw' na parte superior direita da janela de código.
3. Ele o direcionará para outra página com apenas texto.
4. Clique com o botão direito e clique em 'Salvar como..'
5. Salve-o no mesmo diretório ou pasta do código Python que você está prestes a escrever.
Etapa 3: codificação em Python
import cv2
import numpy como np import serial import time
Importamos todas as bibliotecas de que precisamos.
ard = serial. Serial ("COM3", 9600)
Criamos um objeto serial chamado 'ard'. Também especificamos o nome da porta e o BaudRate como parâmetros.
face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml')
Criamos outro objeto para nossa Cascata Haar. Certifique-se de que o arquivo HaarCascade permaneça na mesma pasta que este programa python.
vid = cv2. VideoCapture (0)
Criamos um objeto para capturar vídeo da webcam. 0 como parâmetro significa a primeira webcam conectada ao meu PC.
docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html
enquanto verdadeiro:
_, frame = vid.read () # lê o frame atual para a variável frame gray = cv2.cvtColor (frame, cv2. COLOR_BGR2GRAY) #converts frame -> imagem em escala de cinza #a linha seguinte detecta rostos. #First parâmetro é a imagem na qual você deseja detectar em # minSize = () especifica o tamanho mínimo do rosto em termos de pixels #Clique no link acima para saber mais sobre a classificação Cascade faces = face_cascade.detectMultiScale (cinza, minSize = (80, 80), minNeighbors = 3) #A para loop para detectar as faces. para (x, y, w, h) nas faces: cv2.rectangle (frame, (x, y), (x + w, y + h), (255, 0, 0), 2) #desenha um retângulo ao redor o rosto Xpos = x + (w / 2) # calcula a coordenada X do centro do rosto. Ypos = y + (h / 2) #calcualtes a coordenada Y do centro do rosto se Xpos> 280: #Os blocos de código a seguir verificam se o rosto é ard.write ('L'.encode ()) #on à esquerda, direita, superior ou inferior em relação ao tempo.sleep (0,01) #centro do quadro. elif Xpos 280: ard.write ('D'.encode ()) time.sleep (0,01) elif Ypos <200: ard.write (' U'.encode ()) time.sleep (0,01) else: ard.write ('S'.encode ()) time.sleep (0.01) break cv2.imshow (' frame ', frame) #exibe o frame em uma janela separada. k = cv2.waitKey (1) & 0xFF if (k == ord ('q')): # se 'q' for pressionado no teclado, ele sai do loop while. pausa
cv2.destroyAllWindows () # fecha todas as janelas
ard.close () # fecha a comunicação serial
vid.release () #para de receber vídeo da webcam.
Etapa 4: Programando o Arduino
Sinta-se à vontade para modificar o programa de acordo com a configuração do hardware de acordo com suas necessidades.
#incluir
Servo servoX;
Servo servoY;
int x = 90;
int y = 90;
void setup () {
// coloque seu código de configuração aqui, para executar uma vez: Serial.begin (9600); servoX.attach (9); servoY.attach (10); servoX.write (x); servoY.write (y); atraso (1000); }
entrada char = ""; // a entrada serial é armazenada nesta variável
void loop () {
// coloque seu código principal aqui, para executar repetidamente: if (Serial.available ()) {// verifica se há algum dado no buffer serial input = Serial.read (); // lê os dados em uma variável if (input == 'U') {servoY.write (y + 1); // ajusta o ângulo do servo de acordo com a entrada y + = 1; // atualiza o valor do ângulo} else if (input == 'D') {servoY.write (y-1); y - = 1; } else {servoY.write (y); } if (input == 'L') {servoX.write (x-1); x - = 1; } else if (input == 'R') {servoX.write (x + 1); x + = 1; } else {servoX.write (x); } input = ""; // limpa a variável} // o processo continua se repetindo !!:)}
Etapa 5: Conclusão
Esta é uma maneira agradável e interativa por meio da qual você pode projetar incorporar a Visão do Computador em seus projetos do Arduino. A visão computacional é realmente muito divertida. E eu realmente espero que vocês tenham gostado. Se sim, deixe-me saber nos comentários. E por favor se inscreva no meu canal no youtube. Agradecemos antecipadamente <3 <3
youtube.com/channel/UCNOSfI_iQ7Eb7-s8CrExGfw/videos
Recomendado:
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
Dispositivo de segurança para mulheres com rastreamento e alertas GPS usando Arduino: 6 etapas
Dispositivo de segurança para mulheres com rastreamento e alertas por GPS usando Arduino: com toda a tecnologia disponível para nós nos últimos tempos, não é difícil construir um dispositivo de segurança para mulheres que não apenas gerará um alarme de emergência, mas também enviará uma mensagem para seus amigos e familiares , ou pessoa em causa. Aqui vamos construir uma banda
Pistola de rastreamento facial: 4 etapas
Pistola de rastreamento facial: este projeto é uma expansão do projeto da pistola de arame de disparo a laser mostrado aqui - https://www.instructables.com/id/Building-a-Sentry-Gun-with-Laser-Trip-Wire-System-/ ? ALLSTEPS A única diferença é que a arma não será disparada por laser, mas por
Implorando o robô com rastreamento facial e controle do Xbox Controller - Arduino: 9 etapas (com imagens)
Robô implorando com rastreamento facial e controle do Xbox Controller - Arduino: Vamos fazer um robô implorante. Este robô tentará irritar ou chamar a atenção das pessoas que passam. Ele detectará seus rostos e tentará atirar lasers neles. Se você der uma moeda ao robô, ele cantará uma música e dançará. O robô precisará de um
Dispositivo de rastreamento bruto de um GPS e rádios bidirecionais: 7 etapas
Dispositivo de rastreamento bruto de um GPS e rádios bidirecionais: Então, eu queria um dispositivo de rastreamento. Assim que olhei para o mercado, percebi que o preço de uma daquelas coisas começa em um braço e vai até uma perna ou mais! A loucura deve ser interrompida! Certamente os princípios de saber onde algo eu