AI Embedded e TinyML per Dispositivi On-Device

Porto modelli di machine learning e deep learning dentro microcontrollori e SoC edge, dove latenza, consumi e privacy contano più del throughput da datacenter. Mi occupo di classificazione audio, visione a bassa potenza, anomaly detection su dati di sensori e predictive maintenance su macchinari industriali: tutti scenari in cui inviare ogni frame al cloud è tecnicamente ed economicamente fuori scala. L'obiettivo è arrivare a inferenze che girano in decine di millisecondi su STM32N6, Arm Ethos-U o ESP32-S3, con modelli quantizzati che stanno nella flash disponibile e non esplodono lo stack.

Punto di partenza: Audit Tecnico di 90 minuti

Prima di partire con la modellazione valutiamo insieme tre cose: i dati che hai davvero (non quelli che pensi di poter raccogliere), il target hardware con i suoi vincoli di memoria e corrente, e il KPI di business su cui misurare il successo. Da qui esce un documento con roadmap tecnica, stima effort, rischi principali e — se l'AI on-device non è la scelta giusta per il tuo caso — lo diciamo esplicitamente, suggerendo alternative più pragmatiche.

Quando l'AI embedded genera valore concreto

  • Classificazione audio on-device — keyword spotting, rilevamento eventi sonori, monitoraggio industriale di vibrazioni e motori: scenari in cui lo streaming continuo in cloud non sta in piedi per banda o per privacy.
  • Predictive maintenance su dati di sensori — vibration analysis, corrente motore, termografia, feature engineering su segnali tempo/frequenza per rilevare anomalie prima del guasto, con inferenza locale sul controllore del macchinario.
  • Visione a bassa potenza — people counting, object detection con modelli tiny (MobileNet quantizzato, YOLO nano), sorting industriale: dove mandare il video al cloud è fuori budget sia in banda sia in compliance.
  • Privacy by design — dati sanitari, biometrici o industriali sensibili che per GDPR o policy aziendale non possono lasciare il dispositivo: l'unica opzione tecnica è inferenza locale.
  • Latenza non negoziabile — feedback haptic, controllo motore adattivo, interazioni real-time dove 200 ms di round-trip cloud sono già troppi.
  • Scala di deployment — quando hai migliaia di dispositivi sul campo, pagare inferenze cloud per ognuno di essi diventa rapidamente più costoso del silicio accelerato locale.

Stack tecnico e ambiti

Data strategy e pipeline
Definizione del protocollo di raccolta dati dal campo, labeling, augmentation, split train/val/test con attenzione al leakage. Tooling: Python 3.12, Pandas, scikit-learn, Edge Impulse per pipeline integrate.
Modeling e quantizzazione
PyTorch e TensorFlow per training, TensorFlow Lite Micro e ONNX Runtime per deploy embedded. Quantizzazione int8/int16, pruning, knowledge distillation. Guida TinyML →
Target hardware con NPU
STM32N6 con Neural-ART, STM32H7 + X-CUBE-AI, ESP32-S3 con vector extensions, Nordic nRF54 con NN accel, NXP i.MX con Arm Ethos-U. Approfondimento NPU →
Lifecycle e MLOps embedded
Versioning modelli, OTA firmware con modello aggiornabile, telemetria per drift detection, A/B testing sul campo, rollback automatico in caso di degrado misurato.

Metodologia: dal prototipo alla produzione

Il processo parte sempre dai dati reali, non da benchmark accademici. La prima fase è un proof-of-concept su desktop per capire se il problema è imparabile con i dati disponibili e quale accuratezza serve davvero al business. Solo dopo passiamo al porting embedded, che ha regole proprie: quantizzazione senza perdere sopra soglia, profiling di memoria statica e stack, verifica del worst-case execution time su target reale.

In produzione il modello vive, non resta fermo. Imposto sempre un meccanismo di telemetria leggera (distribuzione delle confidence, feature drift metrics, rate di falsi positivi confermati dal campo) e una pipeline di aggiornamento via OTA firmware. Il modello embedded senza possibilità di essere aggiornato invecchia in mesi, non in anni. Documento ogni scelta di tuning con rationale scritto, in modo che chi prenderà in mano il progetto dopo di me possa capire perché le cose sono state fatte così.

Caso d'uso tipico

Un'azienda di packaging industriale ci contatta: vuole rilevare automaticamente l'anomalia di vibrazione su un motore che indica l'usura del cuscinetto, prima che il guasto fermi la linea. Setup: accelerometro MEMS a 3 assi già presente sulla centralina, MCU STM32H7 con 2 MB di flash, nessuna connettività cloud disponibile in molti impianti clienti. Dopo l'audit lavoriamo a un modello convoluzionale 1D su FFT del segnale, quantizzato int8 via X-CUBE-AI, che gira in circa 40 ms per finestra di 2 secondi occupando ~180 KB di flash. Risultato: rilevamento usura cuscinetto con anticipo di settimane rispetto al guasto, fermi linea ridotti in modo misurabile, zero dati che lasciano l'impianto del cliente.

Domande frequenti

Quanti dati servono per iniziare?

Dipende dal problema. Per classificazione audio con poche classi bastano spesso alcune ore di audio etichettato. Per anomaly detection industriale servono tipicamente settimane di dati operativi "normali" e almeno alcuni esempi dei modi di guasto. Nell'audit valutiamo se quanto hai è sufficiente o se serve una campagna di raccolta dedicata prima del modello.

AI in cloud o on-device: come si sceglie?

Tre discriminanti: latenza (sotto 100 ms end-to-end tipicamente on-device), privacy (dati che non possono uscire → on-device), connettività (dispositivi in campo senza rete stabile → on-device). Al contrario, per modelli molto grandi o aggiornati di continuo il cloud resta più adatto. Spesso la risposta giusta è un'architettura ibrida: inferenza locale, feedback aggregato in cloud per retraining.

Che framework usi per deploy su MCU?

TensorFlow Lite Micro è il cavallo di battaglia, con ottimo supporto Arm CMSIS-NN. X-CUBE-AI di ST per stack STM32 con auto-quantizzazione. Edge Impulse per pipeline end-to-end quando il team cliente vuole gestire il lifecycle internamente. ONNX Runtime per scenari cross-framework. La scelta dipende dal silicio e dall'ecosistema del team.

Come misuriamo il successo di un progetto AI embedded?

Prima dell'avvio fissiamo due piani di metriche: tecniche (accuratezza, precision/recall per classe rilevante, latenza 95° percentile, flash/RAM footprint) e di business (riduzione guasti non previsti, ore di fermo linea evitate, falsi allarmi verso operatore). Il modello "più accurato" non è mai il target: il target è il modello che sposta l'ago sulle metriche di business entro i vincoli hardware.

Il modello si può aggiornare dopo il deploy?

Sì, e dovrebbe. L'architettura prevede modello separato dal firmware applicativo, caricabile via OTA in una partizione dedicata con verifica di firma e rollback automatico in caso di regressione misurata sul campo. Gestire il modello come artefatto versionato separatamente è uno dei punti più sottovalutati: senza questo, dopo 12 mesi il modello degrada e nessuno sa come intervenire.

Quanto costa un progetto AI embedded tipo?

Non rispondo mai a scatola chiusa. La variabilità è enorme: raccolta dati da zero vs dataset già esistente, modello standard vs ricerca, un solo target hardware vs portfolio di piattaforme. L'audit produce una stima a fasce (PoC, MVP, produzione) con assunzioni esplicite, in modo che tu possa decidere su numeri reali e non su un preventivo fumoso.

Cluster AI embedded e TinyML

Percorso per valutare inferenza locale, modelli quantizzati, acceleratori NPU e casi in cui l AI on-device ha davvero senso.