Sommario:
- Passaggio 1: cose di cui hai bisogno
- Passaggio 2: Opencv-Introduzione e installazione
- Passaggio 3: rilevamento e riconoscimento del volto in un video in tempo reale
- Passaggio 4: esecuzione del codice
Video: Riconoscimento facciale Opencv: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Il riconoscimento facciale è una cosa abbastanza comune al giorno d'oggi, in molte applicazioni come smartphone, molti gadget elettronici. Questo tipo di tecnologia coinvolge molti algoritmi e strumenti, ecc. che utilizza alcune piattaforme SOC integrate come il Raspberry Pi e la visione artificiale open source librerie come OpenCV, ora puoi aggiungere il riconoscimento facciale alle tue applicazioni come i sistemi di sicurezza.
In questo progetto, ti dirò come costruire un riconoscimento facciale usando un Raspberry Pi e abbiamo usato arduino+Lcd per visualizzare il nome della persona..
Passaggio 1: cose di cui hai bisogno
1. LAMPONE PI
2. ARDUINO UNO / NANO
DISPLAY LCD 3.16x2
4. RASPI-CAMERA / WEBcam (preferisco la webcam per risultati migliori)
Passaggio 2: Opencv-Introduzione e installazione
OpenCV (libreria di visione artificiale open source) è una libreria molto utile: fornisce molte funzioni utili come il riconoscimento del testo, il riconoscimento facciale, il rilevamento degli oggetti, la creazione di mappe di profondità e l'apprendimento automatico.
Questo articolo ti mostrerà come installare Opencv e altre librerie su Raspberry Pi che ti saranno utili quando esegui il rilevamento di oggetti e altri progetti. Da lì, impareremo come eseguire operazioni su immagini e video eseguendo un progetto di riconoscimento di oggetti e apprendimento automatico. Nello specifico, scriveremo un semplice codice per rilevare i volti in un'immagine.
Cos'è OpenCV?
OpenCV è una libreria di software di visione artificiale e machine learning open source. OpenCV è rilasciato con una licenza BSD che lo rende gratuito sia per uso accademico che commerciale. Ha interfacce C++, Python e Java e supporta Windows, Linux, Mac OS, iOS e Android. OpenCV è stato progettato per l'efficienza computazionale e una forte attenzione alle applicazioni in tempo reale.
Come installare OpenCV su un Raspberry Pi?
Per installare OpenCV, dobbiamo avere installato Python. Poiché i Raspberry Pi sono precaricati con Python, possiamo installare direttamente OpenCV.
Digita i comandi seguenti per assicurarti che il tuo Raspberry Pi sia aggiornato e per aggiornare i pacchetti installati sul tuo Raspberry Pi alle ultime versioni.
sudo apt-get updateudo apt-get upgrade
Digita i seguenti comandi nel terminale per installare i pacchetti richiesti per OpenCV sul tuo Raspberry Pi.
sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test libqt4-test
Digita il seguente comando per installare OpenCV 3 per Python 3 sul tuo Raspberry Pi, pip3 ci dice che OpenCV verrà installato per Python 3.
sudo pip3 install opencv-contrib-python libwebp6
Ora, OpenCV dovrebbe essere installato.
(se si sono verificati errori: puoi ancora farlo seguendo il link sottostante
https://www.instructables.com/id/Raspberry-Pi-Hand…)
Ora non avere fretta, dobbiamo verificare se è stato installato correttamente o meno
Metti alla prova il tuo opencv con:
1. vai al tuo terminale e digita "python"
2.quindi digita "import cv2".
3.quindi digita " cv2._version_".
quindi installa queste librerie
pip3 installa python-numpy
pip3 installa python-matplotlib
Codice di prova per rilevare i volti in un'immagine:
importa cv2
faceCascade = cv2. CascadeClassifier("haarcascade_frontalface_default.xml");
image = cv2.imread('nome del tuo file') #esempio cv2.imread('home/pi/Desktop/nomefile.jpg')
otterrai l'output come se si formassero scatole quadrate sui volti delle persone che sono nella foto.
Passaggio 3: rilevamento e riconoscimento del volto in un video in tempo reale
importa cv2
importa numpy come np
importare il sistema operativo
importazione seriale
ser = serial. Serial('/dev/ttyACM0', 9600, timeout=1) # /dev/ttyACM0 potrebbe cambiare nel tuo caso, dipende dall'arduino
cascadePath = "haarcascade_frontalface_default.xml"
faceCascade = cv2. CascadeClassifier(cascadePath)
riconoscitore=cv2.face.createLBPHFaceRecognizer()
immagini=
etichette=
per il nome del file in os.listdir('Dataset'):
im=cv2.imread('Dataset/'+nomefile, 0)
immagini.append(im)
label.append(int(filename.split('.')[0][0]))
#stampa nomefile
nomi_file=open('etichette.txt')
nomi=nome_file.read().split('\n')
riconosciutor.train(immagini, np.array(etichette))
stampa 'Allenamento terminato… '
carattere = cv2. FONT_
HERSHEY_SIMPLEXcap=cv2. VideoCapture(1) # il tuo dispositivo video
lastRes=''count=0
mentre (1):
_, frame=cap.read()
grigio=cv2.cvtColor(frame, cv2. COLOR_BGR2GRAY)
facce = faceCascade.detectMultiScale(grigio, 1.3, 5)
conteggio+=1
per (x, y, w, h) nelle facce:
cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)
if count>20: res=names[recognizer.predict(gray[y:y+h, x:x+w])-1]
if res!=lastRes:
lastRes=res
stampa lastRes
ser.write(lastRes)
conteggio=0
rottura
cv2.imshow('cornice', cornice)
k = 0xFF & cv2.waitKey(10)
se k == 27:
rottura
cap.release()
ser.close()
cv2.destroyAllWindows()
Passaggio 4: esecuzione del codice
1. Scarica i file allegati nel passaggio precedente
2. copia le tue foto grigie (6 immagini/campioni…..) nella cartella del set di dati
1. Tom Cruise 1_1, 1_2, 1_3, 1_4, 1_5, 1_6 (numero di immagine del set di dati per una cartella del set di dati più aperta)
2. Brad Pitt-2_1, 2_2, 2_3, 2_4, 2_5, 2_6
3. Leone-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
come sopra puoi aggiungere le etichette per le rispettive persone,
quindi se il pi greco rileva qualsiasi volto tra 1_1, 1_2, 1_3, 1_4, 1_5, 1_6, allora è stato etichettato come Tom Cruise, quindi fai attenzione durante il caricamento delle foto………………
e quindi collega il tuo arduino al tuo Raspberry Pi e apporta le modifiche nel main.py codeer = serial. Serial('/dev/ttyACM0', 9600, timeout=1) 3.metti tutti i file scaricati (main.py, cartella dataset, haarcascade_frontalface_default.xml in una cartella.)
3. Ora apri Raspi-terminal e esegui il tuo codice con "sudo python main.py"
Consigliato:
Abellcadabra (Sistema di blocco porta con riconoscimento facciale): 9 passaggi
Abellcadabra (Sistema di blocco della porta di riconoscimento facciale): Sdraiato durante la quarantena, ho cercato di trovare un modo per ammazzare il tempo costruendo il riconoscimento facciale per la porta di casa. L'ho chiamato Abellcadabra - che è una combinazione tra Abracadabra, una frase magica con campanello che prendo solo il campanello. LOL
Specchio per riconoscimento facciale con scomparto segreto: 15 passaggi (con immagini)
Specchio per il riconoscimento facciale con scomparto segreto: sono sempre stato incuriosito dagli scomparti segreti sempre creativi utilizzati in storie, film e simili. Così, quando ho visto il Secret Compartment Contest, ho deciso di sperimentare io stesso l'idea e creare uno specchio dall'aspetto ordinario che apra una s
Blocco porta riconoscimento facciale: 8 passaggi
Serratura della porta con riconoscimento facciale: circa un mese di lavoro, presento la serratura della porta con riconoscimento facciale! Ho cercato di renderlo il più ordinato possibile, ma posso farlo solo a 13 anni. Questa serratura per porta con riconoscimento facciale è gestita da un Raspberry Pi 4, con una speciale batteria portatile
Riconoscimento facciale e identificazione - Arduino Face ID utilizzando OpenCV Python e Arduino.: 6 passaggi
Riconoscimento facciale e identificazione | Arduino Face ID utilizzando OpenCV Python e Arduino.: Il riconoscimento facciale AKA Face ID è una delle funzionalità più importanti sui telefoni cellulari al giorno d'oggi. Quindi, ho avuto una domanda "posso avere un ID faccia per il mio progetto Arduino" e la risposta è sì… Il mio viaggio è iniziato come segue: Fase 1: Accesso a noi
Riconoscimento facciale in pratica: 21 passaggi
Riconoscimento facciale in pratica: Questo è un argomento che mi affascina così tanto, che mi fa perdere il sonno: Computer Vision, il rilevamento di oggetti e persone attraverso un modello pre-addestrato