Primo piano di uno smartwatch che mostra un'interfaccia grafica colorata che riconosce l'attività umana in tempo reale (es. icona di una persona che corre con la scritta 'Jogging'), indossato al polso di una persona in movimento sfocata sullo sfondo. Obiettivo prime, 35mm, profondità di campo, luce naturale vibrante.

Il Tuo Gadget Capisce Cosa Fai? Deep Learning “Piuma” per Riconoscere le Tue Attività!

Ciao a tutti! Oggi voglio parlarvi di qualcosa che mi affascina tantissimo: come possiamo insegnare ai nostri piccoli dispositivi elettronici, quelli che indossiamo o che abbiamo in casa, a capire cosa stiamo facendo. Sembra fantascienza, vero? Eppure, grazie ai progressi dell’Internet of Things (IoT) e dell’intelligenza artificiale, stiamo facendo passi da gigante. Ma c’è un “ma”…

La Sfida: Intelligenza Artificiale su Dispositivi “Micro”

Avete presente l’IoT? Quella marea di dispositivi connessi che si prevede supererà i 30 miliardi entro il 2030? Fantastico, ma queste applicazioni spesso richiedono una potenza di calcolo enorme. Pensate alle auto a guida autonoma: entro il 2035 potrebbero essere i due terzi delle vendite in Cina! Affidarsi solo al cloud per elaborare tutti quei dati può diventare un problema. Latenza, errori di trasmissione, attacchi malevoli… le conseguenze potrebbero essere serie.

Ecco perché l’edge computing sta diventando così importante. Invece di mandare tutto al cloud, elaboriamo i dati direttamente sul dispositivo o vicino ad esso. Meno ritardi, più reattività, maggiore sicurezza. E qui entra in gioco una delle applicazioni più interessanti: il Riconoscimento dell’Attività Umana (Human Activity Recognition, o HAR).

Capire i Nostri Movimenti: Cos’è l’HAR?

L’HAR è fondamentalmente un problema di classificazione: insegnare a un sistema a capire se stiamo camminando, correndo, stando seduti, sdraiati, salendo o scendendo le scale, basandosi sui dati raccolti da sensori (come l’accelerometro del nostro smartphone o smartwatch). Le applicazioni sono infinite: case intelligenti, monitoraggio della salute degli anziani, assistenza a persone con disabilità…

Si può fare con le telecamere, certo, ma i sensori sono più efficienti, rispettano meglio la privacy e non dipendono dalla luce ambientale. E costano molto meno! Per questo la ricerca si è concentrata molto su di essi. All’inizio si usavano tecniche di machine learning tradizionali (Alberi Decisionali, Random Forest, XGBoost), ottenendo anche ottimi risultati (XGBoost ha raggiunto il 99.52% di accuratezza su un dataset specifico!). Però, richiedevano molte risorse e l’intervento di esperti. Non proprio l’ideale per adattarsi a nuovi scenari.

L’Era del Deep Learning… e le Sue Esigenze

Così, siamo passati al deep learning. Fantastico, perché impara direttamente dai dati grezzi. Sono stati proposti modelli come reti LSTM impilate (93.13% di accuratezza), modelli CNN-GRU (96.54%), ibridi CNN e BiLSTM (96.05%), o CNN-LSTM con meccanismi di auto-attenzione (addirittura 99.93% su un dataset proprietario!).

Il problema? Questi modelli, pur potenti, spesso sono “pesanti”. Richiedono tante risorse computazionali e memoria. Come facciamo a farli girare su dispositivi piccoli e con poca batteria, come un Arduino o uno smartwatch? Questa è la vera sfida! Serve un modo per mantenere alta l’accuratezza riducendo al minimo le richieste computazionali.

Visualizzazione astratta di diverse architetture di reti neurali (CNN, LSTM) che convergono verso un piccolo microcontrollore, simboleggiando la sfida del deployment su dispositivi edge. Obiettivo prime, 35mm, profondità di campo, stile grafico pulito.

TinyML: L’Intelligenza Artificiale Diventa “Tascabile”

Ed ecco che entra in scena il TinyML! È un campo emergente che si concentra proprio sullo sviluppo di modelli di machine learning così leggeri ed efficienti da poter girare su microcontrollori (MCU), i cervelli dei nostri dispositivi più piccoli. Immaginate: il vostro dispositivo può prendere decisioni intelligenti direttamente “sul posto”, senza dipendere costantemente dal cloud. Meno latenza, meno consumo di banda, più privacy.

Il TinyML sta già facendo cose incredibili: rilevamento di anomalie nel rumore urbano con autoencoder LSTM (99.99% di accuratezza, inferenza in 4 ms su MCU!), previsione della durata di conservazione dei datteri direttamente su piattaforme come Edge Impulse, sistemi di rilevamento anomalie industriali ultra-rapidi (16 ms) con Isolation Forest, e persino HAR a bassa latenza su Raspberry Pi con reti neurali binarizzate (98.2% di accuratezza con 721KB di memoria).

Combinare TinyML e HAR significa ottenere sistemi a basso consumo, sicuri e reattivi, superando i limiti hardware e di connettività.

La Nostra Ricerca: Trovare il Campione dei Pesi Piuma

Nel mio percorso di esplorazione, ho voluto affrontare proprio questa sfida. Ho progettato e messo alla prova tre architetture di deep learning per l’HAR, pensando proprio ai dispositivi con risorse limitate:

  • Un CNN 1D: bravo a estrarre feature temporali dai dati sequenziali dei sensori.
  • Un CNN 2D: capace di catturare anche feature “spaziali” nei dati (immaginandoli come una piccola immagine).
  • Un DeepConv LSTM: un ibrido che unisce strati convoluzionali (Conv1D) per le feature locali/spaziali e strati LSTM per catturare le dipendenze temporali a lungo termine.

Abbiamo usato il dataset pubblico WISDM, raccolto da 36 volontari che tenevano uno smartphone Android in tasca mentre svolgevano attività comuni (camminare, correre, salire/scendere scale, sedersi, stare in piedi). I dati dell’accelerometro sono stati registrati a 20 Hz.

Una nota sulla preparazione dei dati: abbiamo notato uno sbilanciamento (alcune attività avevano molti più campioni di altre), ma abbiamo deciso di non usare tecniche come SMOTE per bilanciarlo artificialmente. Volevamo mantenere la distribuzione originale e abbiamo visto che anche altri studi avevano ottenuto ottimi risultati senza bilanciamento. Abbiamo poi diviso i dati in finestre temporali. Dopo vari test, una finestra di 5 secondi (100 campioni) con una sovrapposizione del 50% si è rivelata la migliore per catturare le caratteristiche delle attività.

Grafico stilizzato che mostra segmenti di dati dell'accelerometro (assi X, Y, Z) per diverse attività come camminare, correre, stare seduti. Macro lens, 60mm, high detail, precise focusing, controlled lighting.

Il Vincitore: DeepConv LSTM

Dopo aver addestrato e valutato i tre modelli (usando TensorFlow e Keras), i risultati sono stati chiari.
Il CNN 1D ha raggiunto un’accuratezza del 96.88%. Non male, ma faticava un po’ a distinguere tra “Salire” e “Scendere” le scale.
Il CNN 2D ha ottenuto il 96.10%, con difficoltà simili nel distinguere le due attività più ambigue.

Ma il vero campione è stato il DeepConv LSTM! Ha raggiunto un’accuratezza del 98.24% e un F1 score del 98.23%. La sua forza? La capacità di combinare l’estrazione di feature locali (grazie ai Conv1D) con la comprensione delle dipendenze temporali a lungo termine (grazie all’LSTM). Questo gli ha permesso di distinguere meglio anche attività simili come salire e scendere le scale. E il bello è che aveva anche meno parametri addestrabili (circa 130.000) rispetto agli altri due!

Per capire meglio come il modello “vedeva” le diverse attività, ho usato una tecnica chiamata t-SNE per visualizzare lo spazio delle feature apprese. È emerso che attività come Camminare e Correre formavano cluster ben distinti. Salire e Scendere le scale, invece, mostravano una certa sovrapposizione, confermando che sono le più difficili da separare, ma nel complesso il modello riusciva a creare raggruppamenti chiari per la maggior parte delle attività.

Visualizzazione t-SNE colorata che mostra cluster di punti dati rappresentanti diverse attività umane (camminare, correre, seduto, ecc.) in uno spazio 2D. High detail, abstract data points, vibrant colors.

Dal Laboratorio al Mondo Reale: Deployment su Arduino

Ok, il modello era ottimo, ma poteva davvero girare su un dispositivo minuscolo? Era il momento della verità: il deployment su un Arduino Nano 33 BLE Sense Rev2. Questo piccolo gioiellino ha già un accelerometro integrato e supporta Bluetooth Low Energy, perfetto per il nostro scopo.

Per farlo entrare nella memoria limitata dell’Arduino, abbiamo dovuto “comprimerlo” usando una tecnica chiamata quantizzazione intera completa. In pratica, tutti i numeri nel modello (pesi e attivazioni) vengono convertiti da valori decimali (floating-point) a interi. Questo riduce drasticamente le dimensioni e la complessità computazionale.

Il risultato? Il modello DeepConv LSTM è passato da 513.23 KB a soli 136.51 KB, un quarto della dimensione originale! L’accuratezza è scesa leggermente, dal 98.24% al 97.09%, una perdita minima assolutamente accettabile in cambio dell’enorme risparmio di risorse.

Abbiamo usato la piattaforma Edge Impulse per convertire il modello quantizzato (in formato TensorFlow Lite) in un file binario e caricarlo sull’Arduino. E poi, i test sul dispositivo:

  • Tempo di inferenza medio: 21 millisecondi (calcolato dalla piattaforma per l’architettura MCU).
  • Utilizzo RAM: 29.1 KB.
  • Utilizzo Flash (memoria programma): 189.6 KB.
  • Complessità computazionale: Circa 0.01395 GOP (Giga Operazioni).
  • Performance computazionale: Circa 0.664 GOPS (Giga Operazioni Per Secondo).
  • Consumo energetico medio: Solo 0.021 Watt! Con una batteria da 1000mAh, potrebbe funzionare ininterrottamente per 7 giorni, o per 22 giorni usandolo 8 ore al giorno.

C’è da dire che il tempo di inferenza *reale* sull’Arduino per riconoscere un’attività era più vicino ai 2 secondi. Ma considerando che la nostra finestra di dati era di 5 secondi, è perfettamente fattibile per un’applicazione in tempo reale!

Primo piano della scheda Arduino Nano 33 BLE Sense Rev2 collegata a un computer, con grafici di utilizzo della memoria (RAM/Flash) e tempo di inferenza visualizzati sullo schermo. Macro lens, 80mm, high detail, precise focusing.

Conclusioni e Prossimi Passi

Questo viaggio mi ha dimostrato che è assolutamente possibile creare modelli di deep learning performanti per il riconoscimento delle attività umane e farli girare in modo efficiente su hardware molto limitato come un Arduino. Il modello DeepConv LSTM si è rivelato superiore, bilanciando ottimamente accuratezza e leggerezza. La quantizzazione e il deployment tramite TinyML ed Edge Impulse hanno reso tutto questo concreto.

Certo, ci sono ancora strade da esplorare. Sarebbe interessante testare questo modello su altri dataset per verificarne la generalizzabilità e studiare tecniche per gestire meglio lo sbilanciamento dei dati nelle classi minoritarie. Ma la strada è tracciata: l’intelligenza artificiale “leggera” sull’edge non è più solo una promessa, è una realtà che apre scenari applicativi incredibili per rendere i nostri dispositivi sempre più intelligenti e utili nella vita quotidiana.

Fonte: Springer

Articoli correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *