OneEye

Ispirazione

Il riconoscimento facciale è una soluzione biometrica che misura le caratteristiche uniche del viso di un individuo. Le applicazioni disponibili al giorno d’oggi includono il check in per i voli, taggare amici e membri familiari in foto e pubblicità “su misura”.

I venditori utilizzano il riconoscimento facciale per raccogliere dati circa i clienti che acquistano nei negozi, secondo una compagnia IT che raccoglie informazioni su questo campo. I dati raccolti includono come le persone arrivano, l’età, il gruppo etnico e il genere. Si tratta di raccogliere più informazioni sui clienti che entrano nei negozi così da consentire offerte migliori per gli stessi.

Secondo la Dogana e Polizia di Frontiera degli Stati Uniti, il software per il riconoscimento facciale inteso per identificare i viaggiatori con passaporti falsi verrà utilizzato dagli aeroporti internazionali negli Stati Uniti come parte di un piano per prendere misure circa le frodi di identità tra i visitatori provenienti dai paesi con accordi di esenzioni dal visto.

Le aziende, come FaceFirst, creano un pianeta personalizzato attraverso la tecnologia del riconoscimento facciale. La loro soluzione può identificare e scongiurare minacce in tempo reale, trasformare le prestazioni dei team e rafforzare le relazioni con i clienti.

Ma tutte queste soluzioni sono molto costose e hanno bisogno di team numerosi per essere implementate. AWS DeepLens facilita e rende più economica l’implementazione di algoritmi di apprendimento profondo sul dispositivo.

Cosa fa

Abbiamo implementato due casi d’uso per la soluzione di riconoscimento facciale con DeepLens: il primo caso è l’Identificazione dei clienti. Per raggiungere l’obbiettivo, abbiamo utilizzato le immagini di profilo dei clienti su un sistema (per esempio una libreria, un fruttivendolo, una banca, eccetera) per abbinare i risultati di rilevamento facciale di DeepLens in tempo reale quando i clienti entrano in una sede. Dopo l’identificazione del cliente tramite l’algoritmo di DeepLens, una chiamata API raccoglie i dettagli dell’account del cliente e ne mostra le informazioni su un’applicazione desktop sul Web. Ecco una demo per l’identificazione dei clienti.

Il secondo caso d’uso è Amber Alert. Abbiamo sviluppato un’applicazione mobile che scatta una foto di una persona scomparsa (o ricercata) e la carica su uno storage back-end (come AWS S3). Non appena l’immagine viene caricata, DeepLens utilizza questa nuova immagine nel proprio algoritmo per il riconoscimento facciale e identifica la persona in uno streaming video in tempo reale. Quando la persona scomparsa è riconosciuta, DeepLens invia una notifica tramite e-mail o telefono, qualsiasi sia la sottoscrizione, per notificare le autorità. Ecco una demo per il caso d’uso di Amber Alert.

Come l’abbiamo realizzato

Il modello per il riconoscimento facciale è stato costruito utilizzando le librerie all’avanguardia per il riconoscimento facciale di Dlib. Il modello ha un’accuratezza del 99,38% nel parametro 1 del Labeled Faces in the Wild. La funzione Greengrass Lambda esegue l’algoritmo per il riconoscimento facciale sul dispositivo DeepLens e pubblica un evento sull’argomento dell’IoT non appena identifica un volto. Inoltre, è presente un’altra funzione Lambda che ascolta questo argomento e raccoglie le informazioni del cliente tramite una chiamata API dal database del back-end. Una volta che i dati sono stati recuperati, la funzione Lambda pubblicherà un evento sul SNS con le informazioni del cliente sotto forma di payload. Un server Web Node.js (in esecuzione su EC2) accetta la chiamata POST dall’SNS e trasmette un messaggio a tutti i client (Web o mobili) registrati tramite WebSocket. Questa architettura consente di ricevere aggiornamenti in tempo reale sull’applicazione Client non appena un nuovo cliente entra nella sede.

Difficoltà

La prima sfida è stata quella di impostare le librerie openCV sul nostro DeepLens e testarle. All’inizio abbiamo avuto alcune difficoltà nell’effettuare il debug del codice della funzione Greengrass Lambda e ridistribuirlo senza utilizzare la console AWS. Un’altra difficoltà che abbiamo affrontato era quella di fare in modo che il progetto lavorasse end-to-end con tutti i suoi componenti (codice ML, DataStorage, API, applicazione mobile, applicazione Web, ecc.) con il tempo ridotto che avevamo a disposizione, poiché tutti lavorano a tempo pieno. 

Risultati di cui andiamo fieri

OneEye identifica i volti con un’accuratezza molto elevata e aggiorna in modo dinamico i nuovi volti sul database. Costruire ed eseguire un modello complesso di apprendimento profondo su un dispositivo è stata un’esperienza eccitante e siamo orgogliosi di presentare una soluzione completamente funzionante per un problema ancora molto complicato. 

Cosa abbiamo imparato

Lavorare con DeepLens è divertente e al tempo stesso educativo. Ho acquisito molta conoscenza ed esperienza su come usare Greengrass e AWS IoT implementando i casi d’uso. Ho anche imparato che la tecnologia cresce molto velocemente, quindi questi progetti/hackathon ci permettono di rimanere aggiornati.

Cosa fare

Il riconoscimento dei clienti e delle persone scomparse sono casi del mondo reale che hanno bisogno di interventi urgenti. Questo progetto DeepLens è un buon inizio per cominciare a stravolgere il modo in cui queste situazioni vengono gestite. Il prossimo passo per OneEye è quello di trovare degli sponsor che permettano di renderlo disponibile per questi casi d’uso. 

Creato con

Python
Node.js
Angular.js
Amazon-SNS
Amazon-Web-Services
DeepLens
OpenCV

Fai una prova