Il software sviluppato dai team di ricerca implementa le API di riconoscimento facciale, il cui sviluppo è stato realizzato mediante il linguaggio di programmazione Python, particolarmente adatto a compiti di Machine Learning, e in questo caso particolare di Deep Learning. Per questo modulo, è stato seguito l’approccio proposto in un articolo scientifico di Hoang et al.2 basato su tecniche di Deep Learning1. In particolare, il compito di riconoscere un volto richiede due fasi:
- una fase di registrazione, in cui un’immagine del viso dell’utente, elaborata con il rilevatore facciale della libreria Dlib, viene convertita in 68 coordinate di punti di riferimento facciali e 128 valori che indicano le distanze caratteristiche tra di essi, venendo poi memorizzati sul database del software per essere utilizzati come riferimento;
- una fase di riconoscimento, in cui il sistema attiva la procedura di riconoscimento facciale diverse volte di seguito. Ogni volta, trova le distanze caratteristiche del viso e le confronta con quelle memorizzate nel database. La soglia di tolleranza agli errori è fissata al 60%, e nel caso in cui venga superata, il riconoscimento del volto fallirà. Per rendere il sistema più rigoroso, è possibile ridurre la soglia, ma l’algoritmo diventerebbe computazionalmente più pesante.