Riconoscimento espressioni facciali con Raspberry Pi

Nell’articolo di oggi vedremo come implementare un sistema di riconoscimento delle espressioni facciali e delle “emozioni” con una board Raspberry.

Applicheremo un modello pre-addestrato per riconoscere l’espressione facciale di una persona utilizzando la Raspberry Pi Camera tramite video in tempo reale.

Questo tipo di sistema di riconoscimento delle espressioni facciali può essere utilizzato per numerose applicazione, tra cui lo studio dei vari comportamenti umani in un luogo.

I materiali da utilizzare sono i seguenti:

INSTALLAZIONI PRELIMINARI

ATTENZIONE: questa procedura è valida solo per la Raspberry Pi Camera, non funzionerà con una webcam USB

Apri il terminale.

Per sicurezza effettuiamo un update:

INSTALLAZIONE RASPBERRY PI CAMERA

Ho scritto una guida approfondito a riguardo, per leggerla potete utilizzare il seguente link: Come installare e configurare la Raspberry Pi Camera

Quali passaggi eseguire per il riconoscimento delle espressioni facciali?

Ci sono tre passaggi che implementeremo all’interno del codice

Passaggio 1: rileva i volti nel video real-time in ingresso.

Passaggio 2: trova la regione di interesse (ROI) dei volti.

Passaggio 3: applicare il modello di riconoscimento dell’espressione facciale per elaborare l’espressione della persona.

Useremo 6 (sei) “etichette” diverse: ‘Angry’, ‘Fear’, ‘Happy’, ‘Neutral’, ‘Sad’, ‘Surprise’

Installazione di OpenCV

OpenCV è una libreria open-source, scritta in C, per lo streaming video real-time, ovvero la Computer Vision e gira sotto Windows, Linux e MacOS X.

La libreria permette una semplice gestione di immagini trattandole come “matrici di pixel“, alle quali è possibile accedervi in maniera molto semplice e rapida. Prima di cimentarci nella vera e propria Computer Vision, che è un ambito di una vastità non indifferente, diamo una sguardo a quella che si può definire l’Image Processing, cioè l’Elaborazione delle Immagini attraverso la libreria in questione.

Digita i seguenti comandi per installare le dipendenze necessarie per installare OpenCV

Scarichiamo lo script

Lo script per il riconoscimento delle espressioni facciali può essere scaricato utilizzando il link sottostante:

Download della directory del progetto di riconoscimento delle espressioni facciali Raspberry Pi 

La cartella del progetto scaricato contiene una sottocartella (Haarcascades), un file Python (emotion1.py) e il modello (ferjj.h5).

Avvia il codice importando i pacchetti menzionati di seguito

Successivamente, è necessario caricare il modello pre-addestrato (fornito nella cartella del progetto) utilizzando la funzione load_model() importata dalla libreria Keras. Nella riga successiva viene creato un dizionario e vengono assegnate le 6 etichette..

La funzione sottostante serve per progettare il testo in sovrimpressione sui riquadri dell’immagine elaborata.

Per quanto riguarda il resto, per ogni porzione di codice viene definito il suo corrispettivo funzionamento.

Raspberry

TEST

Testiamo lo script.

Avvia lo script Python e se tutto va bene (potrebbe capitare molto probabilmente che ci siano problemi, basta che una sola dipendenza rimabga non risolta…) troverai una finestra che si apre con il video real-time. Una volta che il Raspberry Pi rileva l’espressione facciale il risultato dell’elaborazione sarà visuallizato in un riquadro verde.

Raspberry

Possibili problemi

Se ci sono problemi con lo script alcune possibili soluzioni potrebbero essere le seguenti.

Apri il terminale e digita:

Prova anche:

Buon divertimento e buona sperimentazione!

 

Join our groups onTelegram…

… and don’t forget our social channels!

Simone Candido è un ragazzo appassionato del mondo tech nella sua totalità. Simone ama immedesimarsi in nuove esperienze, la sua filosofia si basa sulla irrefrenabile voglia di ampliare a 360° le sue conoscenze abbracciando tutti i campi del sapere, in quanto ritiene che il sapere umano sia il connubio perfetto tra cultura umanistica e scientifica.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.