Sommario:
- Forniture
- Passaggio 1: installazione di Python e OpenCV
- Passaggio 2: quali sono le funzionalità simili a Haar?
- Passaggio 3: codifica in Python
- Passaggio 4: programmazione di Arduino
- Passaggio 5: conclusione
Video: Dispositivo di tracciamento del viso! Python e Arduino: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Di Techovator0819Il mio canale YoutubeSegui di più dell'autore:
A proposito: mi piace fare cose nuove. Come le cose che riguardano i microcontrollori, l'ingegneria meccanica, l'intelligenza artificiale, l'informatica e tutto ciò che mi interessa. E qui troverai tutte le… Maggiori informazioni su Techovator0819 »
Ciao a tutti là fuori che leggono questo istruibile. Questo è un dispositivo di tracciamento del viso che funziona su una libreria Python chiamata OpenCV. CV sta per 'Computer Vision'. Quindi ho impostato un'interfaccia seriale tra il mio PC e il mio Arduino UNO. Quindi questo significa che questo non funziona solo su Python.
Questo dispositivo riconosce il tuo viso nell'inquadratura, quindi invia determinati comandi all'Arduino per posizionare la fotocamera in modo tale che rimanga all'interno dell'inquadratura! Figo? Allora saltiamoci dentro.
Forniture
1. Arduino UNO
2. 2 x servomotori (qualsiasi servomotore andrà bene, ma ho usato Tower Pro SG90)
3. Installazione di Python
4. Installazione di OpenCV
5. Fotocamera Web
Passaggio 1: installazione di Python e OpenCV
L'installazione di Python è piuttosto semplice!
www.python.org/downloads/
Puoi seguire il link sopra per scaricare la versione Python (Mac, Windows o Linux) più adatta a te (64 bit o 32 bit). Il resto del processo di installazione è semplice e sarai guidato dall'interfaccia.
Al termine dell'installazione, apri il prompt dei comandi e digita quanto segue:
pip install opencv-python
Questo dovrebbe installare la libreria openCV. In caso di problemi, puoi controllare QUESTA pagina.
Dopo aver impostato l'ambiente e tutti i prerequisiti, vediamo come possiamo effettivamente costruirlo!
Passaggio 2: quali sono le funzionalità simili a Haar?
Le caratteristiche simili a Haar sono caratteristiche di un'immagine digitale. Il nome deriva da Haar wavelets. Si tratta di una famiglia di onde quadrate che vengono utilizzate per identificare le caratteristiche di un'immagine digitale. Haar cascate è fondamentalmente un classificatore che ci aiuta a rilevare gli oggetti (nel nostro caso i volti) utilizzando le caratteristiche simili a haar.
Nel nostro caso, per semplicità, utilizzeremo Haar Cascade pre-addestrato per identificare i volti. Puoi seguire QUESTO link di una pagina github e scaricare il file xml per Haar Cascade.
1. Fare clic su "haarcascade_frontalface_alt.xml"
2. Fare clic sul pulsante "Raw" nella parte in alto a destra della finestra del codice.
3. Ti indirizzerà a un'altra pagina con solo testo.
4. Fare clic con il pulsante destro del mouse e selezionare "Salva con nome…"
5. Salvalo nella stessa directory o cartella del codice Python che stai per scrivere.
Passaggio 3: codifica in Python
importa cv2
import numpy as np import serial import time
Importiamo tutte le librerie di cui abbiamo bisogno.
ard = seriale. Serial("COM3", 9600)
Creiamo un oggetto seriale chiamato 'ard'. Specifichiamo anche il Port Name e il BaudRate come parametri.
face_cascade = cv2. CascadeClassifier('haarcascade_frontalface_default.xml')
Creiamo un altro oggetto per la nostra Haar Cascade. Assicurati che il file HaarCascade rimanga nella stessa cartella di questo programma Python.
vid = cv2. VideoCapture(0)
Creiamo un oggetto che cattura video dalla webcam. 0 come parametro indica la prima web cam collegata al mio PC.
docs.opencv.org/2.4/modules/objdetect/doc/cascade_classification.html
mentre vero:
_, frame = vid.read()#legge il frame corrente nella variabile frame gray = cv2.cvtColor(frame, cv2. COLOR_BGR2GRAY)#converte frame -> immagine in scala di grigi #la riga seguente rileva i volti. #Il primo parametro è l'immagine su cui si desidera rilevare su #minSize=() specifica la dimensione minima del viso in termini di pixel #Fai clic sul collegamento sopra per saperne di più sulla Classificazione a cascata faces = face_cascade.detectMultiScale(grigio, minSize =(80, 80), minNeighbors=3) #A ciclo for per rilevare le facce. for (x, y, w, h) nelle facce: cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)#disegna un rettangolo intorno la faccia Xpos = x+(w/2)#calcola la coordinata X del centro della faccia. Ypos = y+(h/2)#calcola la coordinata Y del centro della faccia se Xpos > 280: #I seguenti blocchi di codice controllano se la faccia è ard.write('L'.encode()) #on sinistra, destra, in alto o in basso rispetto al time.sleep(0.01) #center del frame. 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)#visualizza il frame in una finestra separata. k = cv2.waitKey(1)&0xFF if(k == ord('q')): #se si preme 'q' sulla tastiera, si esce dal ciclo while. rottura
cv2.destroyAllWindows() #chiude tutte le finestre
ard.close() #chiude la comunicazione seriale
vid.release() #smette di ricevere video dalla web cam.
Passaggio 4: programmazione di Arduino
Sentiti libero di modificare il programma secondo la tua configurazione hardware in base alle tue esigenze.
#includere
Servo servoX;
Servo servoY;
intero x = 90;
int y = 90;
void setup() {
// inserisci qui il tuo codice di installazione, da eseguire una volta: Serial.begin(9600); servoX.attach(9); servoY.attach(10); servoX.write(x); servoY.write(y); ritardo(1000); }
char input = ""; //l'input seriale è memorizzato in questa variabile
ciclo vuoto() {
// inserisci qui il tuo codice principale, per eseguirlo ripetutamente: if(Serial.available()){ //verifica se ci sono dati nel buffer seriale input = Serial.read(); //legge i dati in una variabile if(input == 'U'){ servoY.write(y+1); //regola l'angolo del servo in base all'ingresso y += 1; //aggiorna il valore dell'angolo } 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); } ingresso = ""; //cancella la variabile } //il processo continua a ripetersi!!:) }
Passaggio 5: conclusione
Questo è un modo simpatico e interattivo attraverso il quale puoi progettare incorporare Computer Vision nei tuoi progetti Arduino. Computer Vision è in realtà piuttosto divertente. E spero davvero che vi sia piaciuto. Se sì, fatemelo sapere nei commenti. E per favore iscriviti al mio canale youtube. Grazie in anticipo <3<3
youtube.com/channel/UCNOSfI_iQ7Eb7-s8CrExGfw/videos
Consigliato:
Tracciamento del movimento con MPU-6000 e Arduino Nano: 4 passaggi
Rilevamento del movimento utilizzando MPU-6000 e Arduino Nano: MPU-6000 è un sensore di rilevamento del movimento a 6 assi con accelerometro a 3 assi e giroscopio a 3 assi incorporati. Questo sensore è in grado di tracciare in modo efficiente la posizione esatta e la posizione di un oggetto nel piano tridimensionale. Può essere impiegato i
Sveglia al tocco del viso: 4 passaggi (con immagini)
Face Touch Alarm: toccarci il viso è uno dei modi più comuni in cui ci infettiamo con virus come il Covid-19. Uno studio accademico del 2015 (https://www.ncbi.nlm.nih.gov/pubmed/25637115) ha rilevato che ci tocchiamo il viso in media 23 volte all'ora. Io decido
Dispositivo di sicurezza per donne con tracciamento GPS e avvisi con Arduino: 6 passaggi
Dispositivo di sicurezza per donne con tracciamento GPS e avvisi tramite Arduino: con tutta la tecnologia a nostra disposizione negli ultimi tempi, non è difficile costruire un dispositivo di sicurezza per le donne che non solo generi un allarme di emergenza, ma invii anche un messaggio ai tuoi amici, familiari , o persona interessata. Qui costruiremo una band
Pistola per il rilevamento del viso: 4 passaggi
Face Tracking Gun: questo progetto è un'espansione del progetto della pistola a filo laser mostrato qui - https://www.instructables.com/id/Building-a-Sentry-Gun-with-Laser-Trip-Wire-System-/ ?ALLSTEPS L'unica differenza è che la pistola non verrà attivata dal laser ma da
Texas Big Face - Proiezione del viso 3D Come: 10 Passaggi (con Immagini)
Texas Big Face - Proiezione facciale 3D Come: creare "statue viventi" proiettando il tuo viso sulle sculture.A How To By: David Sutherland, Kirk Moreno in collaborazione con Graffiti Research Lab Houston* Diversi commenti hanno affermato che ci sono alcuni problemi audio. È