EMB_85

EMBEDDED 85 • SETTEMBRE • 2022 37 TINYML | HARDWARE problema in quanto nessuno dato viene trasferito o archi- viato sui server cloud. I microcontrollori che vengono se- lezionati per queste applicazioni edge sono caratterizzati da consumi ridotti e molti di essi sono in grado di funzio- nare a batteria per lunghi periodi di tempo, semplifican- do in tal modo l’installazione. Per contestualizzare, parec- chie GPU ad alte prestazioni utilizzate per applicazioni di inferenza in campo scientifico consumano centinaia di Watt, in alcuni casi 500 Watt. Il tipico profilo di potenza di un microcontrollore è dell’ordine dei milliwatt, se non addirittura dei microwatt. Le risorse per TinyML che accelerano lo sviluppo e la distribuzione Nel momento in cui il concetto di inferenza alla periferia della rete si sta rapidamente diffondendo, hanno iniziato a fare la loro comparsa numerose risorse espressamente ideate per l’utilizzo conmicrocontrollori a basso consumo. TensorFlow Lite for Microcontrollers Una delle risorse più consolidate per l’apprendimento automatico è senza dubbio TensorFlow. Sviluppato ini- zialmente da Google nel 2015, TensorFlow è una piatta- forma open source “end-to-end” per l’apprendimento automatico che mette a disposizione un ecosistema fles- sibile e completo formato da tool, librerie e community. TensorFlow consente agli sviluppatori di realizzare e di- stribuire una gamma diversificata di applicazioni basate sull’apprendimento automatico in numerosi settori, come a esempio quelli scientifico, medicale e commerciale. La libreria open-source TensorFlow Lite per microcon- trollori, introdotta nel 2017 da Google, è stata espressa- mente concepita per soddisfare la crescente necessità di eseguire inferenze su microcontrollori a basso consumo con risorse limitate di memoria (dell’ordine delle decine di kilobyte). La libreria binaria per il runtime del core di TensorFlow Lite occupa solamente 18 kB di memoria su un core Arm Cortex M3 e può far girare parecchi modelli di reti neurali base differenti. Essa può girare in modalità “bare metal” (ovvero direttamente sulla macchina fisica) in quanto risulta completamente indipendente da sistemi operativi, librerie C o C++ o da particolari requisiti di al- locazione diretta in memoria. La libreria è scritta in C++ 11 e richiede un microcontrollore a 32 bit. I modelli impiegati da TensorFlow Lite per microcontrol- lori sono rappresentazioni, opportunamente convertite e ottimizzate in funzione dello specifico microcontrollore, di quelle disponibili all’interno dell’ambiente di addestra- mento di TensorFlow. TensorFlow Lite per microcontrol- lori è ben supportato e ampiamente collaudato sui core della serie Cortex-M di Arm ed è stato trasferito su altre architetture di MCU come quelle della serie ESP32 di Espressif basate su Tensilica e della famiglia di processo- ri ARC di Synopsys . Gli sviluppatori possono trovare una guida complete all’implementazione di TensorFlow Lite per microcontrollori a questo link . Oltre a TensorFlow per microcontrollori è disponibile un altro set di risorse di libreria ottimizzato, TensorFlow Lite, per SBC (Single Board Computer) basati su embed- ded Linux, iOS e Android come a esempio Raspberry Pi e la TPU Coral Edge. Nella figura 1 viene riportato il flusso di lavoro di TensorFlow Lite per microcontrollori. Edge Impulse Edge Impulse mette a disposizione una piattaforma com- pleta per l’apprendimento automatico (dall’addestramen- to alla distribuzione) per microcontrollori embedded. Questa piattaforma, utilizzata, secondo alcune stime per lo sviluppo di oltre 20.000 progetti su scala mondiale, si pone l’obiettivo di consentire la completa implementazio- ne, ovvero dalla concezione iniziale alla produzione, di un progetto embedded che prevede l’uso dell’apprendimen- to automatico nel più breve tempo possibile, riducendo il TTD (Time to Deployment) da anni a settimane. L’aspet- to più significativo è rappresentato dall’uso di dispositivi embedded equipaggiati con vari sensori, compresi senso- ri di visione e audio, che vengono installati e distribuiti in larghi volumi. I dispositivi embedded cui si rivolge Edge Impulse spaziano dai microcontrollori a basso consumo con risorse limitate a microprocessori e CPU che dispon- gono di potenze di calcolo e risorse decisamente superiori. I tipi di modelli supportati includono TensorFlow e Keras. Le tipiche applicazioni di apprendimento automatico per Edge Impulse sono destinate a settori quali quello indu- striale, della logistica e sanitario: tra gli esempi tipici si possono annoverare manutenzione predittiva, monito- raggio e tracciamento degli asset, rilevamento di esseri viventi (persone e animali). Edge Impulse aderisce al codice di condotta di Respon- Fig. 1 – Il flusso di lavoro di TensorFlow Lite per microcontrollori (Fonte: TensorFlow.org)

RkJQdWJsaXNoZXIy Mzg4NjYz