Face ID: come funziona l'algoritmo dietro al riconoscimento del viso in iPhone X

Andiamo a scoprire come funzionano gli algoritmi alla base del face recognition, il sistema di sicurezza che ha scelto Apple per l'iPhone X.

Face ID: come funziona l'algoritmo dietro al riconoscimento del viso in iPhone X
Articolo a cura di

Apple ha presentato il nuovo iPhone X, smartphone di fascia decisamente alta che elimina il pulsante di sblocco per estendere il più possibile lo schermo sulla superficie frontale del dispositivo. Può piacere, può non essere gradevole, il prezzo ad alcuni fa storcere il naso (per usare un eufemismo) mentre altri sono ben disposti a spendere quella cifra, ma di certo non è questo l'argomento che andremo ad affrontare, perché adesso vogliamo parlavi della tecnologia dietro alla novità del Face ID, il sistema di riconoscimento del volto che rimpiazza lo sblocco tramite impronta digitale sull'iPhone X. Potrebbe sembrare una novità da poco, ma l'implementazione di un sistema del genere non è assolutamente banale e, come al solito, funziona grazie agli algoritmi di Machine Learning di cui si sente tanto parlare negli ultimi anni. Chiaramente è d'obbligo ricordare che ancora non sappiamo se il sistema sia effettivamente infallibile, ma è plausibile pensare che l'averlo scelto come metodo di pagamento e come rimpiazzo per il Touch ID sia dovuto alla sua affidabilità. I più curiosi potranno approfondire l'argomento del Machine Learning nel nostro speciale dedicato, mentre gli altri possono proseguire nella lettura.


Tutto inizia dall'incredibile potenza del Machine Learning

In modo semplice e diretto il Machine Learning si differenzia da qualsiasi altro tipo di algoritmo perché non viene detto al programma come eseguire determinate istruzioni, bensì come imparare ad eseguire determinate istruzioni. Forniamo ad esempio una foto di alcuni personaggi famosi del videogioco del momento: Rabbid Peach e Peach, apparentemente simili ma facilmente distinguibili. Una possibilità del programmatore è delineare i tratti caratteristici (le orecchie del Rabbid) di ognuno di questi e far sì che vengano rilevati dall'algoritmo per distinguerli. Un altro approccio, quello del Machine Learning, è inserire modelli statistici che serviranno al programma per analizzare le immagini e distinguere i personaggi senza che gli vengano suggerite le loro caratteristiche principali, perché sarà lui stesso a trovarle.

Dunque grazie ad gran numero di immagini di Rabbid Peach e Peach il programma sarà in grado di riconoscerli in nuove foto, esattamente come un essere umano: il primo giorno di scuola, università o lavoro capita di vedere delle persone e di non riconoscerle nei giorni successivi, perché nella nostra mente ancora non c'è un'idea di quegli individui. Passando giorni e giorni a contatto con le stesse persone sarà automatico il processo di riconoscimento delle stesse nelle giornate seguenti, anche se cambiano abiti o taglio di capelli, in quanto nella nostra testa avremo delineato dei tratti caratteristici che ci permettono di distinguerli. Esempio banale: riconoscere Merlino ad Honolulu è un gioco da ragazzi per via della barba.

Dal Machine Learning al Deep Learning grazie al modello del cervello umano

Il Deep Learning fa parte del Machine Learning e sfrutta per lo più le neural networks, modelli che si ispirano alla struttura dei neuroni del cervello umano, per far sì che un algoritmo riesca ad apprendere da una gran quantità di dati. Il funzionamento è semplice: il singolo dato deve passare attraverso diverse porte, ed ogni volta che ne sceglie una deve riattraversare un'altra porta tra un altro gruppo di porte, e così via. Passare da una porta cambia il dato stesso, finché non supera anche l'ultima e diventa l'output del sistema, determinante per la decisione finale del sistema: ad esempio se viene messo come input la foto di Rabbid Peach, il sistema dovrà far passare la foto attraverso queste porte che sono gli strati di tutto il sistema e l'output sarà tale che la decisione finale assocerà quel personaggio proprio a Rabbid Peach (a patto che l'algoritmo funzioni bene e sia stato 'allenato' con abbastanza dati).

Quindi una neural network è un insieme di strati che trasforma un input in un output: ognuno di questi livelli è in qualche modo pesato e condizionato dai dati precedenti o da chi programma, che impongono l'importanza di alcune decisioni rispetto ad altre. Se ricordate il caso dell'AI di un automobile, è chiaro che in quel contesto il programmatore dovrà dare maggiore priorità alla vita di un essere umano in un eventuale incidente rispetto a degli oggetti. Quel che si fa solitamente però è far sì che la rete neurale impari da sola analizzando una gran quantità di dati e impostando i pesi relativi alle decisioni che prende. Più una neural network contiene strati e più è complessa: può averne 16 o anche 152, chiaramente dipende dall'applicazione e dal contesto nella quale viene applicata.

Face ID: come funziona il nuovo sistema di riconoscimento del volto

Una volta capito come funziona una neural network, il gioco è semplice: serve un sistema che converta i dati di un volto in numeri, perché un algoritmo può trattare solo numeri essendo scritto secondo leggi matematiche. Un sensore identifica i punti di un volto: ogni punto è un dato che deve passare nella neural network così da generare un output che è un numero che identifica la persona stessa rispetto a determinati volti. Più dati vengono raccolti da un viso e più la neural network sarà in grado di distinguerlo rispetto ad altre persone, così da non confonderle. Inoltre qualsiasi cambiamento estetico del volto deve essere riconosciuto e non deve confondere la neural network, quindi è essenziale che l'algoritmo riconosca la stessa persona in pose diverse o con taglio di capelli nuovo. In questo caso l'output della neural network sarà un numero sicuramente vicino a quello associato alla persona esatta, ma comunque più distante del solito da questa.

In questi casi se il sistema è in apprendimento aggiornerà i propri pesi per includere il cambiamento nel volto analizzato. Ormai dovreste aver capito come funziona il meccanismo di base dietro al riconoscimento facciale basato sugli algoritmi di Machine Learning, abbastanza maturi da convincere Apple da usarli come sistema di sicurezza del nuovo iPhone X. Chiaramente la quantità di dati da analizzare in un volto è elevata e nonostante il meccanismo non sia immediato come per il riconoscimento dell'impronta digitale risulta estremamente rapido grazie ad un componente hardware dedicato al compito. Parleremo ancora del riconoscimento facciale nel caso specifico di Face ID, restate sintonizzati tu everyeye tech.