Riconoscimento facciale con Ubuntu, aggiornamento aprile 2023
Qualche anno fa avevo parlato di riconoscimento facciale con Ubuntu finalizzato a organizzare e classificare un archivio fotografico personale. La parte impegnativa allora era la compilazione delle librerie e l'impiego di due software distinti da fare girare in tandem.
Dunque, aperto il terminale, basta installare prima le librerie precompilate con
Il pacchetto Face Recognition contiene due comandi:
Ipotizziamo di avere in una cartella chiamata Amici alcune immagini con i volti di persone che già conosciamo: Marco.jpg, Nora.png, Gigia.tif, ecc.
Ipotizziamo ora invece di avere una cartella Vacanze in cui ci interessi solo individuare quali fotografie contengono persone, indipendentemente da chi esse siano.
Chi volesse approfondire la documentazione può visitare la pagina del pacchetto o l'utile tutorial sul coseno di similitudine alla base dell'algoritmo.
Oggi l'esperienza è più semplice, essendo stato tutto precompilato e riunificato in un sola pachetto installabile comodamente da terminale.
Prerequisito è avere installato Python 3, che però in genere è già presente sulle versioni più recenti di Ubuntu e derivate. Tra parentesi, penso che l'applicativo funzioni su ogni distribuzione Linux, ma invito chi è interessato a provare direttamente.
pip install dlib opencv-python
e poi il pachetto unificato con
pip3 install face_recognition
Fatto.
- face_detection, che verifica se in una data foto o serie di foto ci sono dei volti;
- face_recognition, che, comparate due foto o due serie di foto, verifica se nella seconda vi siano volti presenti anche nella prima.
Facciamo un esempio pratico.
In una seconda cartella chiamata Nuove abbiamo altre foto, per comodità tutte nominate Foto[qualche_numero].jpg, che non abbiamo ancora guardato con attenzione, ma in cui vogliamo verificare al volo se sia ritratta qualcuna delle persone della cartella Amici.
Apriamo il terminale nella posizione in cui si trovano le due cartelle di cui sopra e digitiamo:
face_recognition Amici/ Nuove/
La risposta sarà l'elenco delle foto in Nuove con l'indicazione di corrispondenza o meno con una o più di quelle contenute in Amici:
Nuove/Foto1.jpg,unknown_person
Nuove/Foto2.jpg,unknown_person
Nuove/Foto3.jpg,Nora
e così via.
face_detection Vacanze/
La risposta sarà l'elenco delle sole immagini contenenti volti con l'indicazione delle coordinate x e y dell'angolo in alto a sinistra e di quello in basso a destra tra cui essi sono racchiusi:
Vacanze/Immagine1.jpg,89,192,192,89
Vacanze/Immagine2.png,496,1095,1266,325