All’avanguardia dell’innovazione

Identificare una volto tra un miliardo: il sistema di riconoscimento facciale di NTechlab

NTechlab ha solo un anno di vita. Nel corso di questo anno, si è classificata al primo posto al MegaFace Benchmark, un campionato internazionale di riconoscimento facciale, battendo Google e l’Università di Pechino, e ha lanciato l’app FindFace, che consente agli utenti di cercare profili su vk.com in base a una fotografia. NTechlab impiega 20 persone e vanta 300 ordini di clienti, 30 test con esito positivo e una soluzione cloud. Artem Kukharenko, fondatore del laboratorio, ci ha raccontato come NTechlab sia riuscita a raggiungere il suo obiettivo in modo più efficiente dei concorrenti e a creare un prodotto che ha già riscosso un grande successo commerciale.

Artem

Per il team NTechlab, “identificare un volto tra un miliardo” non è affatto uno slogan. L’app impiega meno di un secondo per trovare una persona in un database di un miliardo di fotografie. “Siamo i primi ad aver compreso come gestire in modo efficiente enormi database di immagini”, afferma Artem Kukharenko. “Questo vantaggio è fondamentale per risolvere i problemi del mondo reale, come trovare un criminale in tempo reale o individuare un cliente abituale a partire dalle videocamere di sorveglianza di un negozio”.

Oltre alle eccellenti capacità di ricerca nei database di immagini, questo algoritmo ha un elevatissimo livello di accuratezza di riconoscimento. Il segreto è nel cosiddetto deep learning e nell’architettura di rete neurale. Il laboratorio fa notare che quando si parla di accuratezza bisogna comprendere come viene misurata. In genere è più bassa per database di immagini più grandi: trovare una persona tra un milione è molto più difficile che trovarla tra un centinaio. Al MegaFace Benchmark Championship, NTechlab ha dimostrato un’accuratezza del 73% con un database di un milione di immagini, mentre il suo sistema ha raggiunto il 95% di accuratezza per un database di 10.000 immagini. Per quanto riguarda la verifica, quando due immagini devono essere paragonate, il sistema funziona perfettamente nel 99% dei casi.

La rete neurale è il cuore e il cervello del sistema. I compiti più complicati per i sistemi di intelligenza artificiale sono quelli che la mente umana gestisce facilmente. Per noi è facile riconoscere le facce tra la folla o identificare la razza di un cane. La nostra decisione è influenzata da un milione di fattori e di esperienze pregresse. Le reti neurali si basano sullo stesso modello. Molti segnali di diversa natura vengono immessi nel neurone. In base a questi segnali, il neurone compone un segnale in uscita. Se il sistema commette un errore, le formula responsabile di calibrare i segnali in ingresso è corretta. Questo genere di apprendimento dagli errori migliora l’accuratezza.

In modo forse sorprendente, quando vediamo un viso familiare, la nostra mentre svolge gli stessi calcoli che farebbe una macchina. Il sistema riceve l’immagine originale, ad esempio l’immagine di un passante viene caricata su FindFace. Per prima cosa, in questa immagine viene subito identificata una faccia. Secondo Artem Kukharenko, il riconoscimento facciale è l’operazione ad uso maggiormente intensivo di risorse nell’intero processo, per quanto possa sembrare strano. Proprio adesso il team sta tentando di fare in modo che l’algoritmo funzioni più velocemente e richieda meno risorse.

La seconda fase del riconoscimento prevede la realizzazione di un vettore di caratteristica utilizzando una rete neurale addestrata. Un vettore di caratteristica è formato da 80 numeri che contengono le informazioni sul volto. I numeri sono simili per la stessa persona e molto diversi per due persone differenti. Il sistema di ricerca è costruito su queste differenze. In questa fase, il sistema deve individuare informazioni che rimarranno costanti anche se una persona indossa gli occhiali, si fa crescere la barba oppure se le due immagini sono state scattate a molti anni di distanza.

L’ultima fase comprende la ricerca di questo volto nel database di immagini. Per intraprendere diversi studi ed eseguire i calcoli mirati a creare un algoritmo di ricerca, il team di sviluppatori di NTechlab ha bisogno di workstation efficienti. Hanno scelto di implementare i processori Intel® Core™ i7, che hanno consentito a NTechlab di creare uno strumento davvero efficiente per svolgere ricerche altrettanto efficienti su un gran numero di immagini. Se le dimensioni del database crescono di dieci volte, il tempo di ricerca non aumenta di un fattore 10, ma solo di 1,5 volte.

Il sistema ha una gamma impressionante di possibili applicazioni che comprendono qualsiasi campo, dalle app di appuntamenti ai sistemi di sicurezza governativi. La sicurezza è un’area fondamentale, e i prodotti sviluppati da NTechlab si distinguono proprio in questo ambito. I sistemi esistenti risolvono il problema di confrontare due immagini, come quando la fotografia del passaporto viene confrontata con quella presente nel database di un aeroporto. Tuttavia tutto questo non è sufficiente, ad esempio, per garantire la sicurezza su scala urbana. La soluzione di NTechlab è in grado di elaborare informazioni provenienti da migliaia di videocamere di sorveglianza in tempo reale e di trovare i criminali in una megalopoli enorme.

Nel settore retail, questo sistema potrebbe sostituire le carte sconto. Si potrebbe semplicemente salvare il vettore di caratteristica del cliente usando la sua fotografia. La prossima volta che entra nel centro commerciale, la videocamera di sorveglianza riconoscerà il suo volto. Oltre alla comodità, il riconoscimento risolve il problema dell’archiviazione dei dati personali: i negozi non avranno più bisogno di raccogliere nomi, cognomi e numeri di telefono.

Il settore dell’intrattenimento ha implementato sistemi che ricercano i visitatori nei database di immagini. I visitatori scattano selfie e li inviano al bot, che poi restituisce nei risultati di ricerca tutte le immagini in cui il visitatore è presente. Il sistema funziona benissimo per i festival, i matrimoni e altri eventi. Secondo Artem, il sistema ha già avuto successo all’Alfa Future People Festival e presso un parco divertimenti australiano.

7а

NTechlab non sta certo pensando di fermarsi al primo successo: ha già lanciato un servizio di riconoscimento facciale basato sul cloud. Una qualsiasi azienda può caricare un database di immagini nel sistema ed effettuare ricerche al suo interno, integrandolo nei suoi servizi. Presto sarà lanciato un kit per sviluppatori e, dopo qualche mese, il riconoscimento facciale per sistemi di sicurezza aziendali andrà online.

Al momento il laboratorio si sta occupando di ottimizzare l’algoritmo e migliorare l’accuratezza. L’obiettivo è quello di riconoscere le emozioni nelle fotografie e sviluppare un modulo che consentirebbe alle macchine di distinguere tra una persona reale e la sua fotografia. L’intelligenza artificiale non ha possibilità di successo senza lo sviluppo continuo.

Condividi questo articolo

Argomenti correlati

Innovazione tecnologica

Leggi il successivo