Ingegneria Informatica e dell’Intelligenza Artificiale Applicata LM-32
IoT e Sistemi intelligenti 3D
| Settore scientifico disciplinare | Numero crediti formativi (CFU) | Docente |
| ING-INF/05 (IINF-05/A) | 9 | Thomas Alessandro Ciarfuglia |
Obiettivi
Il corso mira a formare una figura professionale capace di progettare l'intera pipeline di un sistema di percezione intelligente: dall'acquisizione del dato fisico (IoT/Embedded), all'estrazione di informazioni tramite intelligenza artificiale su edge (Edge AI), all'elaborazione spaziale (3D Vision), fino alla stima dello stato e all'integrazione in sistemi distribuiti (Digital Twin) in ottica Industria 4.0 e Smart City.
Risorse
I seguenti testi sono indicati nel programma con le relative abbreviazioni.
- [Lacamera]: D. Lacamera, Embedded Systems Architecture, 2nd edition, Packt Publishing, 2023. Testo di riferimento per lo sviluppo di applicazioni emebedded basate su MCU STM32F401.
- [RM0368]: STMicroelectronics, STM32F4 Series Reference Manual, RM0368. User manual per l'MCU STM32F401 usata nel corso.
- [PM0214]: STMicroelectronics, PM0214 Programming manual - STM32 Cortex®-M4 MCUs and MPUs programming manual. Manuale di programmazione per le funzionalità del Core Cortex-M4 parte dell'architettura STM32.
- [Yiu] J. Yiu, The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors, 3rd ed., Newnes, 2014. Testo con approfondimenti sulle architetture ARM Cortex M3 e M4.
- [LeeSeshia]: Introduction to Embedded Systems: A Cyber-Physical Systems Approach, Edward A. Lee, Sanjit A. Seshia (MIT Press, Seconda Edizione). Riferimento primario per le architetture hardware embedded e la teoria dei sistemi real-time.
- [Szeliski]: Computer Vision: Algorithms and Applications, Richard Szeliski (Springer, Seconda Edizione - 2022). Riferimento per sensori 3D attivi/passivi, modelli geometrici e computer vision classica.
- [TinyML]: TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers, Pete Warden & Daniel Situnayake (O'Reilly Media, 2019). Riferimento per l'ottimizzazione AI su edge.
- [DL-3D]: Selezione di paper scientifici di riferimento forniti dal docente (es. SuperPoint, LoFTR, Dust3R, NeRF, 3D Gaussian Splatting) per lo studio dello stato dell'arte nell'elaborazione neurale e rendering 3D.
- [Docs]: Documentazione ufficiale (ROS 2, PCL, FreeRTOS, ONNX, TensorRT).
Programma
Il programma si compone di 5 moduli:
- Progettazione di applicazioni embedded
- Sensori IoT, Percezione 3D e Pipeline Dati
- Edge AI e Ottimizzazione Modelli
- Geometria Multivista e Deep Feature Matching
- Ricostruzione 3D Neurale e Rendering
Risultati di apprendimento attesi
Conoscenza e capacità di comprensione
Lo studente dovrà acquisire una comprensione integrata della progettazione dell'intera pipeline di un sistema di percezione intelligente: dall'acquisizione del dato fisico sull'edge, fino all'integrazione in sistemi distribuiti in ottica Industria 4.0 e Smart City. Più in dettaglio:
- Conoscenza delle architetture hardware embedded, dei vincoli fisici e temporali (dominio del tempo e degli eventi), e delle differenze architetturali tra approcci bare-metal e sistemi operativi Real-Time (RTOS).
- Conoscenza dei principi fisici e dei modelli matematici alla base dei principali sensori IoT, con focus sui sensori inerziali (IMU) e sui sensori spaziali (LiDAR, Time-of-Flight, telecamere).
- Conoscenza delle problematiche legate all'acquisizione e all'elaborazione spaziale del dato 3D, includendo tecniche di filtraggio delle point cloud, stima delle normali e geometria locale.
- Conoscenza dei paradigmi dell'Edge AI e del TinyML, comprendendo a fondo le tecniche di ottimizzazione (come la quantizzazione e il pruning) necessarie per il deployment di modelli neurali su hardware a risorse limitate.
- Conoscenza dei fondamenti della geometria multivista e del passaggio dagli algoritmi classici all'estrazione di informazioni 3D tramite modelli di Deep Learning e feature matching neurale.
- Conoscenza delle ultime frontiere dell'Intelligenza Artificiale applicata allo spazio 3D, includendo i paradigmi di ricostruzione densa (Structure from Motion) e le tecniche di neural rendering volumetrico e basato su primitive (es. NeRF, 3D Gaussian Splatting).
- Conoscenza dei framework per l'integrazione Edge-IoT (es. ROS 2), dei protocolli di comunicazione industriali (DDS, MQTT) e delle infrastrutture distribuite per la sincronizzazione dei dati in Cloud.
Capacità di applicare conoscenza e comprensione
Lo studente acquisirà grazie al corso la capacità di implementare autonomamente sistemi cyber-fisici e pipeline di elaborazione dati, passando dalla teoria all'implementazione su target hardware. Più in dettaglio, saprà:
- Interfacciare sensori fisici e programmare firmware su microcontrollori o Single Board Computers, gestendo correttamente l'acquisizione dei flussi dati.
- Implementare pipeline software per il pre-processing e il condizionamento di dati 3D (nuvole di punti).
- Ottimizzare, convertire ed eseguire il deploy di reti neurali pre-addestrate per l'inferenza real-time su dispositivi Edge (es. tramite TensorRT, ONNX).
- Applicare modelli neurali moderni per l'estrazione di feature, la stima della profondità monoculare e la generazione della geometria spaziale.
- Progettare e configurare l'infrastruttura di rete (bridge) per inviare telemetrie e modelli spaziali compressi verso dashboard in cloud per la visualizzazione di un Digital Twin.
- Leggere documentazione ufficiale di settore e paper scientifici avanzati, estrapolandone i concetti per lo sviluppo pratico in laboratorio.
Abilità di giudizio
Lo studente acquisirà le capacità di analizzare architetture IoT complesse e di bilanciare sapientemente i severi trade-off imposti dall'hardware, come consumo energetico, footprint di memoria e latenza. Sarà in grado di valutare i pro e i contro della distribuzione del carico computazionale (Split-Computing tra Edge e Cloud) a seconda dei requisiti industriali. Lo studente saprà anche valutare criticamente quando i limiti degli approcci geometrici classici rendano necessaria l'adozione di soluzioni basate su Deep Learning, e viceversa, mantenendo una visione ingegneristica pragmatica.
Abilità di comunicare
Lo studente avrà la capacità di comunicare ad una platea di tecnici o esperti del settore, in forma scritta o verbale, le scelte architetturali adottate per la creazione di un sistema intelligente distribuito. Saprà presentare i risultati del proprio lavoro e le performance del codice tramite la discussione e l'esposizione pratica di prototipi o Digital Twin funzionanti.
Capacità di apprendimento
Lo studente avrà la capacità di analizzare autonomamente l'evoluzione continua dell'ecosistema Edge IoT, pianificando un percorso di aggiornamento autonomo. Sarà altresì capace di documentarsi sulle novità tecniche e scientifiche riguardanti framework di accelerazione hardware, middleware industriali e nuovi modelli di visione 3D, dimostrando dimestichezza con la documentazione ufficiale e con la letteratura scientifica di riferimento.
Prerequisiti
Verifica
L'esame consta di un test intermedio a scelta multipla e un esame in presenza di verifica finale.
Lezioni
Presentazione dell'insegnamento di IoT e Sistemi intelligenti 3D
Introduzione, Ecosistema e Toolchain
Metodologie e architetture per progetti embedded I
Procedure di Avvio dei Sistemi Embedded - Fondamenti
Metodologie e architetture per progetti embedded II
Procedure di Avvio dei Sistemi Embedded - Architetture Avanzate
Gestione della memoria I - Architettura e stack di esecuzione
Gestione della memoria II - allocazione dinamica
Gestione della memoria III - sicurezza e protezione hardware
Controllore degli Interrupt (NVIC) e Clock di Sistema
System Time, Timer Generici e Watchdog
Periferiche GPIO - Configurazione Output Digitale e PWM
Periferiche GPIO II - Input Digitale e Acquisizione Analogica
Fondamenti della comunicazione seriale e UART
Protocolli sincroni master-slave SPI e I2C
Configurazione hardware e profilazione energetica
Strategie firmware e macchine a stati a basso consumo
Interfacce di rete e topologie IoT
Introduzione al TinyML: implementazione dell?intelligenza artificiale su dispositivi IoT
Hello world in TinyML: costruzione e addestramento di un modello
Hello world in TinyML: costruzione dell'applicazione
Deploy dell\'applicazione di Hello World
Ottimizzazione dei Modelli: Quantizzazione - Teoria e Metodi
Pruning: Sparsità dei Modelli tra Teoria e Hardware
Deployment Hardware-Accelerated TensorRT