Edge impulse: un intuitivo SDK per il TinyML – parte I

La forte crescita delle vendite di microcontrollori negli ultimi anni è stata in gran parte guidata dall'IoT. I microcontrollori sono poco costosi, ma il loro impatto economico a livello di sistema è enorme, poiché i dati dei sensori provenienti dal mondo fisico sono il fondamento della trasformazione digitale nell'industria. In questa nuova serie di articoli che ha inizio oggi, andremo ad analizzare un SDK denominato Edge Impulse che permette in maniera rapida e semplice di realizzare, addestrare e distribuire su dispositivi embedded dei modelli di apprendimento automatico. 

Introduzione

Una convergenza di diverse tendenze ha reso oggi il microcontrollore non solo un canale per l'implementazione di applicazioni IoT, ma anche un meccanismo di elaborazione potente e indipendente a sé stante. La tendenza più importante è forse quella del TinyML. TinyML permette l'esecuzione dell'apprendimento automatico sui dispositivi a bassissima potenza come i microcontrollori. Vi sono tre motivi principali per cui risulta conveniente eseguire i modelli di machine learning su dispositivi embedded:

  1. Elaborazione periferica: si può evitare di trasmettere i dati raccolti dai sensori per essere elaborati centralmente. In questo modo non si ha la necessità di una connessione internet costante, e si hanno meno limiti in termini di costi, larghezza di banda, etc.
  2. Bassi consumi: i microcontrollori utilizzano pochissima energia. Un microcontrollore può eseguire un modello di riconoscimento delle immagini in maniera continuativa per un anno con una singola batteria a moneta.
  3. Costo e dispiegamento: i microcontrollori costano poco e sono ubiqui. La presenza massiva di questi dispositivi li rende perfetti per distribuire modelli di ML con un semplice aggiornamento software senza la necessità di sostituzioni fisiche.

Pur essendo un campo di ricerca molto recente, i settori dove è possibile prevedere applicazioni vanno dalla mobilità  all'industria 4.0, all'agricoltura, etc.

Edge Impulse

Edge Impulse, ovvero TinyML come servizio, consente l'utilizzo dell'apprendimento automatico a tutti gli sviluppatori con un SDK (Software Development Kit) per dispositivi open source. Edge Impulse consente la raccolta semplice di dati reali dai sensori, l'elaborazione di segnali in tempo reale, test e distribuzione su qualsiasi dispositivo di destinazione. Gli SDK open source offerti da Edge Impulse consentono di raccogliere dati o distribuire codice su qualsiasi dispositivo.

Edge Impulse è una piattaforma di sviluppo, in cui gli utenti possono contribuire ed estendere sia gli algoritmi che il supporto del dispositivo di destinazione. Il software del dispositivo, inclusi SDK, client e codice generato, viene fornito come open source con una licenza Apache 2.0. La collaborazione con il progetto TensorFlow Lite Micro consente di supportare la più ampia gamma di architetture, operatori e target ML.

Edge Impulse è gratuito per i singoli sviluppatori. Una versione aziendale è disponibile su abbonamento per team di livello mondiale che implementano TinyML in prodotti innovativi.

Edge impulse risulta semplice ed intuitivo da utilizzare fin da subito. Dopo aver fatto il login nel proprio account si è già pronti per dare inizio al primo progetto di TinyML. L'interfaccia dell'SDK è pulita e senza fronzoli (Figura 1).

Figura 1: scheda di apertura dell'SDK Edge Impulse

Si apre sulla "Dashboard" una visione generale dei nostri progetti e delle informazioni a riguardo. Vi è anche una guida per dare vita al primo progetto o proseguire su uno già avviato. Sulla parte sinistra è possibile vedere tutte le altre schede successive alla "Dashboard". Queste sono messe in ordine e rappresentano esattamente le varie fasi per la realizzazione del progetto. Ad esempio, la scheda "Device", dove è possibile vedere i dispositivi collegati e collegarne di nuovi. "Data acquisition", dove sono raccolti i dati di test e addestramento e dove se ne possono raccogliere di altri. "Impulse design", dove si crea un impulso, ovvero una procedura che prende i dati grezzi, utilizza l'elaborazione del segnale per estrarre le features e quindi utilizza un blocco di apprendimento per classificare i nuovi dati.

Seguendo le indicazioni nella sezione centrale della "Dashboard", si riporta in prima posizione il link per imparare a collegare il proprio dispositivo embedded. Questo è equivalente ad andare nella scheda "Devices" e cliccare su "Connect a new device". I dispositivi supportati dall'ambiente di sviluppo sono i seguenti:

  • ST IoT Discovery Kit (noto anche come B-L475E-IOT01A) è una scheda di sviluppo con un microcontrollore Cortex-M4, sensori di movimento MEMS, un microfono e WiFi.
  • Arduino Nano 33 BLE Sense è una minuscola scheda di sviluppo con un microcontrollore Cortex-M4, sensori di movimento, un microfono e BLE.
  • AI ECM3532 Eta Compute Sensor è una minuscola scheda di sviluppo dotata del SoC TENSAI ECM3532 con un microcontrollore Cortex-M3 e un DSP CoolFlux separato per accelerare le operazioni di apprendimento automatico. La scheda comprende due microfoni, un accelerometro/giroscopio a 6 assi e un sensore di pressione/temperatura. Il SoC ECM3532 sulla scheda di sviluppo supporta Continuous Voltage Frequency Scaling, che consente di scalare la frequenza di clock e la tensione in fase di esecuzione per massimizzare l'efficienza energetica, per eseguire algoritmi di apprendimento automatico a bassissima potenza.
  • È possibile utilizzare qualsiasi Smartphone con un browser moderno come client completamente supportato da Edge Impulse. Il telefono si comporterà come qualsiasi altro dispositivo e i dati e i modelli creati utilizzando il telefono cellulare possono anche essere distribuiti su dispositivi embedded.

Tutti i dispositivi elencati sono completamente supportati da Edge Impulse e possono essere usati per campionare dati grezzi, costruire modelli e distribuire modelli di apprendimento automatico addestrati. Dopo aver connesso uno o più dispositivi, essi vengono riportati nella tabella "Devices" come raffigurato in Figura 2.

Figura 2: sezione della scheda "Devices" dove vengono riportati i dispositivi connessi

Dopo questa fase preliminare è possibile insegnare al modello a interpretare i dati mai visti prima, sulla base di dati storici. Usarlo quindi per classificare nuovi dati o trovare anomalie nelle letture dei sensori. Come primo approccio al problema, nella guida presente nella "Dashboard" vengono presentati due tutorial su applicazioni di riconoscimento: uno per segnali audio e uno per il riconoscimento gestuale. Andremo ad analizzare quello per riconoscere i suoni da segnali audio. [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 1958 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend