Reti neurali nel riconoscimento volti del framework per sviluppatori di Apple

Sul blog di Apple che documenta ricerche e innovazioni dell’azienda nel campo dell’intelligenza artificiale e dell’Apprendimento Automatico, si parla si parla di riconoscimento dei volti e della complessitià di “Vision”, framework per sviluppatori.

Su Machine Learning Journal – il blog di Apple nato per documentare ricerche e innovazioni dell’azienda nel campo dell’intelligenza artificiale e dell’Apprendimento Automatico – è stato pubblicato un nuovo articolo nel quale si parla di riconoscimento dei volti e del relativo framework Vision che gli sviluppatori possono sfruttare nelle app per iOS, MacOS e tvOS.

Nel documento si spiega che Apple ha cominciato a sfruttare il riconoscimento dei volti con iOS 10 (da tempo l’app Foto riconosce e raggruppa i volti dei soggetti ritratti, in modo che l’utente possa assegnare loro un nome o contrassegnarli come preferiti) tecnologia che ha portato alla realizzazione del framework Vision che ha richiesto il superamento di sfide notevoli. Tra i problemi che Apple ha dovuto affrontare: salvaguardare la privacy eseguendo il riconoscimento in locale anziché ricorrere a server sul cloud (in remoto).

“I metodi di apprendimento automatico devono essere parte del sistema operativo” si spiega nell’articolo, “richiedono prezioso spazio di storage nella memoria di storage NAND, devono essere caricati in RAM, richiedono elevati tempi computazionali a carico della GPU o CPU”. Rispetto a servizi basati su cloud, le cui risorse possono essere dedicate all’esclusiva risoluzione del problema visivo, i calcoli sul dispositivo devono essere eseguiti condividendo allo stesso tempo le risorse con altre applicazioni in esecuzione. I calcoli devono inoltre essere abbastanza efficienti da elaborare grandi archivi di foto in un ragionevole lasso di tempo ma senza considerevole consumo energetico o aumentare la temperatura della CPU.

Per risolvere questi problemi, il framework di Apple è ottimizzato per sfruttare appieno CPU e GPU ricorrendo alla tecnologia grafica Metal e alle BNNS (basic neural network subroutines), gruppo di funzioni per l’esecuzione di reti neurali senza processi di addestramento (training). L’uso della memoria è ottimizzato con algoritmi per processi inferenziali (le informazioni sono ottenute da un ristretto insieme di dati) e sfruttando tecniche per il caricamento e il caching delle immagini.

Apple sta da tempo investendo molte risorse nel machine learning. Il processore A11 Bionic dell’iPhone X ha richiesto tre anni di sviluppo e integra un motore neurale capace di svolgere fino a 600 miliardi di operazioni al secondo.