Tre usi di tinyML sull'edge

L'apprendimento automatico (ML) ha fatto il suo ingresso in molte aree del cloud e ha trovato la sua strada verso l'edge su processori relativamente potenti che eseguono Linux. Il problema dell'apprendimento automatico tradizionale che gira su questi sistemi è che il loro profilo di potenza è troppo grande per poterlo "scollegare" e lavorare come dispositivo edge alimentato a batteria. La tendenza e il futuro dell'ML sull'edge passano per l'utilizzo di tinyML. tinyML mira a portare gli algoritmi di ML su dispositivi con risorse limitate, come i microcontroller basati su processori ARM Cortex-M.

In questo blog esploreremo i casi d'uso più diffusi per sfruttare tinyML su dispositivi basati su microcontroller per l'utilizzo in ambito edge.

Caso d'uso n. 1: individuazione di parole chiave

Il primo caso d'uso per cui tinyML sta diventando popolare è l'individuazione di parole chiave. L'individuazione di parole chiave è la capacità di un dispositivo di riconoscere una parola chiave come "Ehi Siri", "Alexa", "Ciao" e così via. Questa è una funzione molto utile per i dispositivi edge. Ad esempio, si potrebbe voler utilizzare un processore a basso consumo per individuare una parola chiave che "risveglierà" un processore più potente. Un altro caso d'uso potrebbe essere il controllo di un sistema embedded o di un robot. Ho visto esempi in cui un microcontroller veniva utilizzato per decodificare parole chiave come "avanti", "indietro", "stop", "destra" e "sinistra" per controllare i movimenti di un robot.

L'individuazione di parole chiave con tinyML si effettua in genere utilizzando un microfono per acquisire un segnale vocale in ingresso. Il segnale vocale viene registrato come tensione nel tempo e quindi convertito in una spettrografia mediante l'elaborazione dei segnali digitali. La spettrografia è una serie temporale che viene tracciata a fronte della frequenza del segnale di ingresso. Può essere inviata a una rete neurale (NN) per addestrare l'algoritmo tinyML a riconoscere parole specifiche. Il processo è illustrato nella Figura 1.

Figura 1: Un segnale vocale in ingresso viene elaborato digitalmente per creare una spettrografia utilizzata per addestrare una NN a rilevare le parole chiave. (Immagine per gentile concessione di Arm)

Un'implementazione tipica prevede l'immissione nella NN di finestre fisse di parlato. La rete valuterà quindi la probabilità che sia stata pronunciata una delle parole chiave desiderate. Ad esempio, se qualcuno dice "Sì", la NN può riferire di essere sicura al 91% che si tratta di "Sì, con il 2% di "No" e con l'1% di possibilità che si tratti di "Via".

Quella di utilizzare il parlato per controllare le macchine è una possibilità che molti produttori stanno prendendo attentamente in esame e con cui sperano di migliorare i loro dispositivi nei prossimi anni.

Caso d'uso n. 2: riconoscimento delle immagini

Il secondo caso d'uso in cui tinyML sta trovando una sua collocazione è il riconoscimento delle immagini. Esistono diversi esempi pratici per i dispositivi edge in grado di eseguire il riconoscimento delle immagini. Un caso d'uso che conosciamo già è la capacità di rilevare la presenza di una persona, di un pacco o l'assenza di qualsiasi oggetto davanti alla porta di casa. Ci sono sicuramente molte altre applicazioni che vanno dal monitoraggio dei vecchi contatori analogici, al rilevamento della salute del prato o persino al conteggio degli uccelli.

Il riconoscimento delle immagini può sembrare un campo complesso a cui applicarsi. Tuttavia, sono disponibili diverse piattaforme a basso costo che possono aiutare gli sviluppatori a trasformare i progetti in realtà. Uno dei miei preferiti, che uso per accelerare il lavoro, è OpenMV.

OpenMV è una piattaforma aperta di visione artificiale che comprende un ambiente di sviluppo integrato (IDE), un framework di librerie scritte in Python e un modulo telecamera di Seeed Technology che aiuta gli sviluppatori a creare le loro applicazioni di visione artificiale (Figura 2).

Figura 2: Il modulo telecamera OpenMV può essere utilizzato per il riconoscimento delle immagini e lo sviluppo può essere effettuato con un semplice IDE utilizzando Python. (Immagine per gentile concessione di Beningo Embedded Group)

Il modulo telecamera è basato su un processore STM32H7 Cortex-M7 di STMicroelectronics. L'hardware può essere espanso tramite le basette di espansione integrate. Può essere alimentato da una batteria e il modulo della telecamera può essere sostituito. Un buon esempio per iniziare, che potrebbe essere interessante, è l'utilizzo del dataset CIFAR-10 con la libreria ARM CMSIS-NN per il riconoscimento delle immagini. L'esempio è disponibile su YouTube all'indirizzo https://www.youtube.com/watch?v=PdWi_fvY9Og.

Caso d'uso n. 3: manutenzione predittiva

L'ultimo caso d'uso di tinyML è la manutenzione predittiva. La manutenzione predittiva si avvale di strumenti quali l'analisi statistica e l'apprendimento automatico per prevedere lo stato delle apparecchiature sulla base di:

  • Rilevamento delle anomalie
  • Algoritmi di classificazione
  • Modelli predittivi

Ad esempio, una fabbrica potrebbe avere una serie di motori, ventole e apparecchiature robotizzate per fabbricare un prodotto. L'azienda vuole ridurre al minimo i tempi di inattività per massimizzare il numero di prodotti che può realizzare. Se l'apparecchiatura è dotata di sensori che possono essere interpretati utilizzando l'apprendimento automatico e le altre tecniche sopra menzionate, è possibile scoprire quando è prossima al guasto. Una configurazione di questo tipo potrebbe assomigliare a quella illustrata nella Figura 3.

Figura 3: Il terzo caso d'uso più diffuso per tinyML è quello dei sensori intelligenti utilizzati per la manutenzione predittiva. (Immagine per gentile concessione di STMicroelectronics)

Collegando un sensore intelligente a un microcontroller a basso consumo e sfruttando tinyML si può ottenere un'ampia gamma di applicazioni utili. Ad esempio, tra le altre cose, è possibile monitorare le unità HVAC, controllare i filtri dell'aria e rilevare le vibrazioni irregolari dei motori. La manutenzione preventiva può diventare quindi più organizzata, risparmiando all'azienda costosi interventi di reazione all'evento e garantendo un programma di manutenzione più ottimizzato.

Conclusione

tinyML offre moltissime applicazioni e casi d'uso potenziali sull'edge. Abbiamo esplorato ciò che troviamo attualmente nella realtà, ma le applicazioni sono pressoché illimitate. tinyML può essere utilizzato per il rilevamento dei gesti, la guida e il controllo e molto altro ancora. Più i dispositivi edge inizieranno a sfruttare le funzionalità di tinyML, più la domanda sarà: per cosa state usando voi tinyML sull'edge?

Informazioni su questo autore

Image of Jacob Beningo

Jacob Beningo è un consulente software embedded e attualmente lavora con clienti in più di una decina di paesi per trasformare radicalmente le loro attività migliorando la qualità dei prodotti, i costi e il time-to-market. Ha pubblicato più di 200 articoli sulle tecniche di sviluppo di software embedded, è un relatore e un istruttore tecnico e ha conseguito tre lauree, tra cui un master in ingegneria presso University of Michigan. Risponde all'indirizzo jacob@beningo.com, ha un sito web personale www.beningo.com e produce una Newsletter mensile Embedded Bytes cui è possibile iscriversi.

More posts by Jacob Beningo
 TechForum

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.

Visit TechForum