Riconoscimento facciale con (micro)python: Le basi

riconoscimento facciale face recognition python

Iniziamo con questo video una breve serie sul riconoscimento facciale automatico con Python, utilizzando il modulo specifico face_recognition.

Il riconoscimento facciale è il processo di identificazione o verifica dell’identità di una persona utilizzando il suo volto. Cattura, analizza e confronta i modelli in base ai dettagli facciali della persona. Ciascun video tratterà di alcuni metodi per l’acquisizione, il riconsocimento e la modifica di immagini. La libreria è disponibile anche per i sistemi ARM, quindi Raspberry PI e compagnia sono serviti.

Configurazione

Per prima cosa sarà necessario installare i moduli necessari al programma. Nel caso specifico useremo Pillow (un modulo per il trattamento delle immagini).

Aggiorniamo PIP e lanciamo l’install/upgrade di Pillow. Dovremo ottenere  la versione 10.0

Installiamo quindi il modulo face_recognition, secondo le specifiche riportate nella sezione di download. Notare che è possibile utilizzare il modulo anche con Raspberry PI.

Il programma

Il programma è abbastanza semplice:

Dopo l’import dei moduli necessari, carichiamo l’immagine (riga 8) in una struttura specifica. Nel nostro caso useremo la foto del cast di Star Trek: The Next Generation, posta nella stessa cartella del programma.

Quindi richiamiamo la funzione face_locations(image), che ci restituirà le coordinate cartesiane dei rettangoli che incorniciano ciascuna delle facce.

Se adesso eseguissimo il comando

otterremo una lista di quadruple con le coordinate. Per utilizzare le coordinate sarà sufficiente:

  1. Ciclare all’interno di questa lista di coordinate (riga 15)
  2. Assegnare i valori di ciascuna quadrupla ad altrettante variabili, nel nostro caso top, right, bottom, left (riga 17)
  3. Assegnare alla variabile face_image i valori  delle sezioni che avevamo ritagliato a riga 17 dall’immagine originale caricata a riga 8
  4. Richiamare il metodo fromarray(face_image) dell’oggetto Image, estratto dal modulo PIL, e inserirlonella variabile pil_image (riga 21)
  5. richiamare un visualizzatore di immagini attraverso il metodo pil_image.show() (riga22)

Considerazioni finali

Python potrà non rappresentarfe il linguaggio più veloce del West, ma dispone di moduli e librrie particolarmente efficienti, che permettono all’utente finale una prototipazione rapida ed efficace. Nel caso specifico, con una manciata di sitruzioni abbiamo visto come “ritagliare” da una foto la sezione relativa ai volti, senza utilizzare (esplicitamente) nemmeno una riga di codice per il machine learning.

Prossimamente vedremo come estendere tali caratteristiche per ottenere risultati ancor più sorprendenti. Continuate a seguirci!

 

Join our groups on Telegram…

… and don’t forget our social channels!

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

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