Come effettuare un riconoscimento facciale con mascherina con il VIA SOM-9X35 Starter Kit

redazione


Il nuovo VIA SOM-9X35 è la nostra piattaforma più recente per accelerare lo sviluppo dei dispositivi Edge AI. Il modulo è alimentato dal processore quad-core MediaTek i350 e supporta Yocto 3.1 e Android 10. È disponibile in una varietà di configurazioni, incluso lo Starter Kit VIA SOM-9X35 che abbiamo annunciato a febbraio di quest’anno.

Composto da un pannello LCD MIPI da 7 pollici più touchscreen, due altoparlanti, un microfono, un modulo fotocamera da 13 MP, scheda carrier VIA VAB-935 e altri accessori, il kit include tutti gli elementi necessari a sviluppare un dispositivo Edge AI e combina i principali componenti di elaborazione, video e display in un unico pacchetto, fornendo le prestazioni e le funzionalità necessarie a creare applicazioni di visione “intelligente” per ambienti di vendita al dettaglio, commerciali, medici e industriali.

Di seguito, attraverso alcuni esempi, illustro diversi tipi di possibili applicazioni con il VIA SOM-9X35 Starter Kit e spiego come utilizzare la piattaforma per creare un dispositivo Edge AI per riconoscimento facciale con mascherina.

Riconoscimento facciale con mascherina su Android
API e librerie

Il modo più semplice per iniziare a creare un’applicazione che utilizza intelligenza artificiale e visione artificiale consiste nello sfruttare la grande quantità di API (Application Programming Interface) disponibili online gratuitamente. Le API consentono agli sviluppatori di lavorare con modelli di rete neurale approfonditi e accurati, senza la necessità di dover produrre da zero complicati codici, e vengono normalmente sviluppate da grandi aziende quindi sono ben documentate, semplici da imparare e da utilizzare.

Google, ad esempio, ha sviluppato due API molto utili per il riconoscimento facciale con mascherina: CameraX API realizzata per semplificare il lavoro con le applicazioni della fotocamera, essenziale per un’applicazione che utilizza la visione artificiale, consente di lavorare con il modulo della fotocamera in bundle con lo Starter Kit VIA SOM-9X35; Google’s ML Kit che fornisce una suite di API per diversi ambiti del machine learning, come face detection e object recognition.

TensorFlow ad esempio viene utilizzato per realizzare modelli necessari a rilevare se la mascherina viene indossata o meno. Questa libreria è molto ampia, c’è molto da imparare quando ci si lavora, e il processo viene semplificato grazie a numerosi strumenti: Google Colab, che offre numerosi tutorial sull’implementazione di TensorFlow, offre accesso gratuito alle risorse GPU di Google e riduce il compito del processore dei modelli di addestramento. Per modelli più piccoli VIA ha prodotto uno strumento molto utile, originariamente per il VIA Pixetto, chiamato Machine Learning Accelerator che genera per l’utente il codice TensorFlow.

Generazione di set di dati

Per il riconoscimento facciale con mascherina, è possibile si debba creare il proprio set di dati per sviluppare un modello personalizzato. TensorFlow non ha un set di dati specifico per le persone che indossano e non indossano le mascherine, ma in rete esistono diversi set di dati già realizzati da altri, ecco un esempio: https://github.com/prajnasb/observations.

È utile ricorrere a immagini con persone diverse, più generi, acconciature, etnie, angolazioni dfferenti. Ciò serve a evitare che il modello si adatti eccessivamente e lo renderà più accurato quando si tenterà di classificare un’ampia gamma di persone. Più dati vengono raccolti, più accurato sarà il modello. Tuttavia, va tenuto presente che questo potrebbe aumentare le dimensioni e la complessità del modello, allungandone l’addestramento.

Se si desidera utilizzare l’API di rilevamento degli oggetti personalizzati di ML Kit, bisogna assicurarsi di seguire le loro

linee guida specifiche durante la creazione del proprio modello, altrimenti l’API non sarà in grado di utilizzarlo. La maggior parte dei modelli generati per queste attività dovrebbero essere modelli tflite (TensorFlow Lite).

Utilizzare Java per creare un’app di riconoscimento facciale con mascherina 

Come per qualunque progetto, ci sono diversi modi per implementare questa applicazione. In Android Studio un modo semplice per far funzionare la fotocamera è con l’API CameraX, quindi associarla a un analizzatore di immagini utilizzando l’API Google ML Kit per elaborarla. Assicurarsi poi di inserire il modello nella cartella “assets” del progetto Android Studio e aggiungere le dipendenze per le API nel file “build.gradle”, affinché Android Studio sia in grado di riconoscere che si stanno utilizzando. Una guida maggiormente dettagliata sull’utilizzo di CameraX e ML Kit per rilevare e tracciare oggetti è disponibile al seguente link:
https://www.viatech.com/en/2021/04/creating-your-first-custom-computer-vision-application-with-the-via-vab-950/

Creare l’applicazione in tal modo è semplicistico e le specifiche classi per questo modello potrebbero essere una persona che indossa una mascherina e una che non indossa una mascherina. Il modo migliore per farlo inizialmente potrebbe essere quello di riconoscere un volto utilizzando il l’ML kit, quindi utilizzare un modello TensorFlow per rilevare se il volto riconosciuto indossi una mascherina oppure no. TensorFlow fornisce una demo application molto utile per aiutare le persone a imparare a utilizzare la propria API per rilevare oggetti, e quest’ultima può essere una buona piattaforma da cui partire per creare un’app maggiormente accurata di riconoscimento facciale con mascherina.

Nell’applicazione demo TensorFlow, il codice per il rilevamento e il monitoraggio degli oggetti potrebbe trovarsi all’interno della classe “DetectorActivity”, e il modello tflite nella cartella “assets”. Un buon esempio di un’applicazione funzionante creata utilizzando questa tecnica è disponibile al seguente link: https://medium.com/@estebanuri/real-time-face-mask-recognition-in-android-with-tensorflow-lite-215df6327265, insieme a una visione più dettagliata del codice.

A cura di Tiziano Albani, European Sales and Business Development VIA Technologies Inc