Progettazione e implementazione di un sistema per il tracciamento di oggetti in movimento basato su event camera
Politecnico di Bari
Dipartimento di Ingegneria Elettrica e dell’Informazione
Corso di Laurea Triennale in Ingegneria Informatica e dell’Automazione
Tesi di Laurea in Fondamenti di Automatica
Progettazione e Implementazione di un sistema per il Tracciamento di oggetti in movimento basato su Event Camera
Relatore: Chiar.mo Prof. Luca De Cicco
Correlatore: Dott. Nunzio Barone
Laureando: Daniele Filannino
Anno accademico 2024-2025
Liberatoria alla consultazione della tesi di laurea di cui all’art. 4 del regolamento di Ateneo per la consultazione delle tesi di laurea
(D.R. n. 479 del 14/11/2016).
Il sottoscritto Filannino Daniele matricola 587696
Laurea in Ingegneria Informatica e dell’Automazione
Corso di autore della presente tesi di Laurea dal titolo Tracciamento Real-Time di Oggetti in Movimento con una Event Camera
Parole chiave: Event Camera, Rilevazione, Tracciamento, Oggetti in Movimento, Tempo Reale
Abstract
Abstract: Nell'ambito della Computer Vision uno dei compiti principali è la rilevazione e il tracciamento di oggetti all'interno di una scena (object detection and tracking), il cui obiettivo è identificare e localizzare gli oggetti presenti e seguirne il movimento nel tempo. Negli ultimi anni, tuttavia, è emersa una nuova tipologia di sensori, noti come event camera, che rilevano le variazioni di luminosità in modo asincrono al livello del singolo pixel. Questi sensori hanno rivoluzionato il paradigma tradizionale degli algoritmi di Computer Vision, basati sul sincronismo dei frame. Di conseguenza è necessario sviluppare nuovi algoritmi o adattare quelli esistenti con l'output delle event camera, al fine di valorizzare le loro promettenti caratteristiche tecniche: elevata risoluzione temporale, bassa latenza e una assenza di ridondanza dei dati acquisiti. Queste specifiche li rendono particolarmente adatti a scenari dinamici e con elevato movimento, oltre che a sistemi con risorse limitate in termini di banda e capacità di calcolo. Questa tesi si propone di sfruttare le potenzialità di una event camera per implementare un sistema di rilevamento e tracciamento di oggetti in movimento in tempo reale, confrontandone le prestazioni con quelle ottenibili con una telecamera tradizionale. I risultati sono stati inizialmente validati tramite un dataset, così da garantire condizioni controllate e ripetibili, per poi essere testati anche con sensori reali in uno scenario operativo. Tali prove hanno mostrato che il sistema basato sugli eventi risulta non solo computazionalmente più efficiente, ma anche più preciso nel rilevamento di oggetti di medie o grandi dimensioni in scenari con rumore ridotto. La precisione, tuttavia, si degrada significativamente in presenza di un elevato livello di rumore nella scena.
□ Autorizza
□ Non autorizza
La consultazione della presente tesi, fatto divieto a chiunque di riprodurre in tutto o in parte quanto in essa contenuto.
Bari, 02/07/2025
Firma_______________________________________________
Un robot non può recare danno a un essere umano né può permettere che, a causa del suo mancato intervento, un essere umano subisca danno.
Isaac Asimov
Indice
- Elenco delle Tabelle 1
- Elenco delle Figure 2
- Elenco dei Codici 5
- Acronimi e Abbreviazioni 6
- Introduzione e Scopo della Tesi 7
- 1 Introduzione 8
- 1.1 Rilevamento e Tracciamento degli oggetti . . . . . . . . . . . . . . . 8
- 1.1.1 Rilevamento degli oggetti . . . . . . . . . . . . . . . . . . . 8
- 1.1.2 Tracciamento . . . . . . . . . . . . . . . . . . . . . . . . . . 9
- 1.2 Sensori di Visione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
- 1.2.1 Sensori Frame-based . . . . . . . . . . . . . . . . . . . . . 9
- 1.2.2 Sensori Event-based . . . . . . . . . . . . . . . . . . . . . 11
- 1.2.3 Confronto tra sensori frame-based and event-based . . . . . 14
- 1.3 Obiettivo della Tesi . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
- 2 Stato dell’arte 16
- 2.1 Tecniche classiche di rilevamento oggetti . . . . . . . . . . . . . . . 16
- 2.1.1 Metodi Diretti . . . . . . . . . . . . . . . . . . . . . . . . . . 16
- 2.1.2 Metodi basati sulla Sottrazione dello Sfondo . . . . . . . . . 17
- 2.2 Rilevazione event-based degli oggetti . . . . . . . . . . . . . . . . . 17
- 2.2.1 Metodi Asincroni . . . . . . . . . . . . . . . . . . . . . . . . 18
- 2.2.2 Metodi con Accumulo . . . . . . . . . . . . . . . . . . . . . 19
- 2.3 Tecniche di Tracciamento . . . . . . . . . . . . . . . . . . . . . . . . 19
- 3 Progettazione e sviluppo 21
- 3.1 Pipeline del Progetto . . . . . . . . . . . . . . . . . . . . . . . . . . 21
- 3.1.1 Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
- 3.1.2 Robot Operative System 2 . . . . . . . . . . . . . . . . . . . 22
- 3.1.3 Utilizzo di Docker e ROS2 . . . . . . . . . . . . . . . . . . . 23
- 3.2 Acquisizione dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
- 3.2.1 Sensori Utilizzati . . . . . . . . . . . . . . . . . . . . . . . . 23
- 3.2.2 Driver per la FireFly S . . . . . . . . . . . . . . . . . . . . . 25
- 3.2.3 Driver per la EVK4 . . . . . . . . . . . . . . . . . . . . . . . 26
- 3.2.4 Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
- 3.3 Rilevamento frame-based . . . . . . . . . . . . . . . . . . . . . . . . 32
- 3.3.1 Background Subtraction . . . . . . . . . . . . . . . . . . . . 33
- 3.3.2 Operazioni morfologiche nel rilevamento frame-based . . . . 34
- 3.3.3 Riconoscimento nel rilevamento frame-based . . . . . . . . . 34
- 3.4 Rilevamento event-based . . . . . . . . . . . . . . . . . . . . . . . . 35
- 3.4.1 Decoder event-camera . . . . . . . . . . . . . . . . . . . . . 35
- 3.4.2 Metodi per l’accumulo degli eventi . . . . . . . . . . . . . . 36
- 3.4.3 Operazioni Morfologiche nel rilevamento event-based . . . . 37
- 3.4.4 Riconoscimento nel rilevamento event-based . . . . . . . . . 37
- 3.5 Tracciamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
- 3.6 Rilevazione Metriche . . . . . . . . . . . . . . . . . . . . . . . . . . 43
- 4 Risultati 44
- 4.1 Simulazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
- 4.1.1 Simulazione A . . . . . . . . . . . . . . . . . . . . . . . . . . 44
- 4.1.2 Simulazione B . . . . . . . . . . . . . . . . . . . . . . . . . . 45
- 4.1.3 Simulazione C . . . . . . . . . . . . . . . . . . . . . . . . . . 46
- 4.2 Precisione e Sensibilità . . . . . . . . . . . . . . . . . . . . . . . . . 47
- 4.2.1 Analisi metriche della simulazione A . . . . . . . . . . . . . 48
- 4.2.2 Analisi metriche della simulazione B . . . . . . . . . . . . . 49
- 4.2.3 Analisi metriche della simulazione C . . . . . . . . . . . . . 51
- 4.2.4 Confronto in base alla Precisione e Sensibilità . . . . . . . . 52
- 4.3 Tempi di computazione . . . . . . . . . . . . . . . . . . . . . . . . . 53
- 4.3.1 Analisi dei Tempi di Computazione della simulazione A . . . 53
- 4.3.2 Analisi dei Tempi di Computazione della simulazione B . . . 56
- 4.3.3 Analisi dei Tempi di Computazione della simulazione C . . . 60
- 4.3.4 Confronto in base ai Tempi di Computazione . . . . . . . . . 63
- 4.4 Implementazione Real-Time . . . . . . . . . . . . . . . . . . . . . . 64
- 4.4.1 Tempi di computazione Real Time . . . . . . . . . . . . . . 67
- 4.4.2 Metriche ROS2 . . . . . . . . . . . . . . . . . . . . . . . . . 68
- Conclusioni 71
- 4.5 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
- 4.6 Sviluppi futuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
- Bibliografia e Sitografia 73
Elenco delle Tabelle
- 4.1 Metriche sul numero di oggetti rilevati dalla Simulazione A. . . . . 48
- 4.2 Metriche di precisione ottenute dalla Simulazione A. . . . . . . . . . 48
- 4.3 Metriche sul numero di oggetti rilevati dalla Simulazione B. . . . . . 49
- 4.4 Metriche di precisione ottenute dalla Simulazione B. . . . . . . . . . 49
- 4.5 Metriche sul numero di oggetti rilevati dalla Simulazione C. . . . . . 51
- 4.6 Metriche di precisione ottenute dalla Simulazione C. . . . . . . . . . 51 1
Elenco delle Figure
- 1.1 Principio di funzionamento di una telecamera ad otturatore globale. Fonte: [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
- 1.2 Principio di funzionamento di una telecamera ad otturatore a scorrimento. Fonte: [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
- 1.3 Confronto tra l’output di una telecamera tradizionale (grafico superiore) e quello di una event camera, relativi alla rilevazione di un. . . . . . . . 12 oggetto in movimento a velocità variabile. Fonte: [2]
- 2.1 Metodi asincroni per la rilevazione di oggetti. Fonte: [3] . . . . . . . 18
- 2.2 Esempio di object detection tramite Event-based YOLO. Fonte: [3] . 19
- 3.1 Componenti fondamentali del progetto . . . . . . . . . . . . . . . . 21
- 3.2 Telecamera FireFly S. . . . . . . . . . . . . . . . . . . . . . . . . . 24
- 3.3 Event Camera EVK4. . . . . . . . . . . . . . . . . . . . . . . . . . . 25
- 3.4 Informazioni di log di Metavision-driver. . . . . . . . . . . . . . . . 29
- 3.5 Esempio di un Frame RGB ottenuto dalla simulazione . . . . . . . . 30
- 3.6 Esempio di uno Pseudo-Frame ottenuto dalla simulazione . . . . . . 31
- 3.7 Esempio di un Instance Segmentation frame ottenuto dalla simulazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
- 3.8 Pipeline del rilevamento frame-based. . . . . . . . . . . . . . . . . . 33
- 3.9 Pipeline del rilevamento event-based . . . . . . . . . . . . . . . . . 35
- 3.10 Differenza tra prima (a) e dopo (b) l’applicazione delle operazioni morfologiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
- 3.11 Funzionamento dello step di Associazione in SORT. Fonte: [4] . . . 42
- 4.1 Ground Truth della simulazione A, evidenziata in rosso. . . . . . . 45
- 4.2 Ground Truth della simulazione B, evidenziata in rosso. . . . . . . 46
- 4.3 Ground Truth della simulazione C, evidenziata in rosso. . . . . . . 46
- 4.4 Esempio di Ids dovuto a un occlusione parziale . . . . . . . . . . . . 49
- 4.5 Scie generate dai veicoli in movimento nella Simulazione B. . . . . . 50
- 4.6 "Effetto causato dalle scie generate dai veicoli in movimento nella Simulazione B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
- 4.7 Rilevazione basata sugli eventi di un veicolo occluso da un albero nella Simulazione C. . . . . . . . . . . . . . . . . . . . . . . . . . . 52
- 4.8 Rilevazione basata sui fotogrammi di un veicolo occluso da un albero. . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 nella Simulazione C. 2
- 4.9 Numero di eventi per frame nella simulazione A. . . . . . . . . . . . 53
- 4.10 Divisione dei tempi di computazione per frame dell’algoritmo Back_Sub nella simulazione A. . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
- 4.11 Tempo medio di computazione dell’algoritmo Back_Sub nella simulazione A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
- 4.12 Divisione dei tempi di computazione per frame dell’algoritmo Dbscan nella simulazione A. . . . . . . . . . . . . . . . . . . . . . . . . 55
- 4.13 Tempo medio di computazione dell’algoritmo Dbscan nella simulazione A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
- 4.14 Divisione dei tempi di computazione per frame dell’algoritmo Contour nella simulazione A. . . . . . . . . . . . . . . . . . . . . . . . . 56
- 4.15 Tempo medio di computazione dell’algoritmo Contour nella simulazione A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
- 4.16 Numero di eventi per frame nella simulazione B. . . . . . . . . . . . 57
- 4.17 Divisione dei tempi di computazione per frame dell’algoritmo Back_Sub nella simulazione B. . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
- 4.18 Tempo medio di computazione dell’algoritmo Back_Sub nella simul. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 lazione B.
- 4.19 Divisione dei tempi di computazione per frame dell’algoritmo Db. . . . . . . . . . . . . . . . . . . . . . . . 58 scan nella simulazione B.
- 4.20 Tempo medio di computazione dell’algoritmo Dbscan nella simulazione B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
- 4.21 Divisione dei tempi di computazione per frame dell’algoritmo Con. . . . . . . . . . . . . . . . . . . . . . . . 59 tour nella simulazione B.
- 4.22 Tempo medio di computazione dell’algoritmo Contour nella simu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 lazione B.
- 4.23 Numero di eventi per frame nella simulazione C. . . . . . . . . . . . 60
- 4.24 Divisione dei tempi di computazione per frame dell’algoritmo Back_Sub . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 nella simulazione C.
- 4.25 Tempo medio di computazione dell’algoritmo Back_Sub nella simulazione C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
- 4.26 Divisione dei tempi di computazione per frame dell’algoritmo Dbscan nella simulazione C. . . . . . . . . . . . . . . . . . . . . . . . . 62
- 4.27 Tempo medio di computazione dell’algoritmo Dbscan nella simulazione C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
- 4.28 Divisione dei tempi di computazione per frame dell’algoritmo Con. . . . . . . . . . . . . . . . . . . . . . . . 63 tour nella simulazione C.
- 4.29 Tempo medio di computazione dell’algoritmo Contour nella simulazione C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
- 4.30 Tracciamento real-time di una mano in movimento tramite Back_Sub. 65
- 4.31 Tracciamento real-time di una mano in movimento tramite Contour. 65
- 4.32 Rilevamento di una persona con la relativa ombra in un frame. . . . . . . . . . . . . . . . . . . . . . . . . . . 66 tramite Back_Sub.
- 4.33 Rilevamento di una persona con la relativa ombra in uno pseudo. . . . . . . . . . . . . . . . . . . . . . . . . 67 frame tramite Contour. 3
- 4.34 Tempo medio di computazione dell’algoritmo Back_Sub nello scenario Real Time. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
- 4.35 Tempo medio di computazione dell’algoritmo Contour nello scenario Real Time. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
- 4.36 Metriche Ros2 (hz, bw e delay) del topic della telecamera tradizionale 69
- 4.37 Metriche Ros2 (hz, bw e delay) del topic della event camera . . . . 70 4
Elenco dei Codici
- 3.1 DockerFile del driver per la FireFly S . . . . . . . . . . . . . . . . . 26
- 3.2 DockerFile del driver per la EVK4 . . . . . . . . . . . . . . . . . . . 27
- 3.3 Struttura dell’EventPacket.msg . . . . . . . . . . . . . . . . . . . . 28
- 3.4 Background Subtraction nel rilevamento frame-based . . . . . . . . 34
- 3.5 Operazioni Morfologiche nel rilevamento frame-based . . . . . . . . 34
- 3.6 Riconoscimento degli oggetti nel rilevamento frame-based . . . . . . 35
- 3.7 Decoding degli event Packet . . . . . . . . . . . . . . . . . . . . . . 36
- 3.8 Operazioni morfologiche per rilevamento event-based . . . . . . . . 37
- 3.9 Implementazione di DBSCAN . . . . . . . . . . . . . . . . . . . . . 40
- 3.10 Implementazione di Sort e log dei risultati . . . . . . . . . . . . . . 43 5
Acronimi e Abbreviazioni
- CARLA Car Learning to Act
- DAVIS Dynamic and Active pixel Vision Sensor
- DBSCAN Density-Based Spatial Clustering of Applications with Noise
- DVS Dynamic Vision Sensors
- GMM Gaussian Mixture Models
- HDBSCAN Hierarchical-DBSCAN
- IoU Intersection over Union
- MOT Multi-Object Tracker
- ROS Robot Operating System
- SLAM Simultaneous Localization And Mapping
- SORT Simple Online and Realtime Tracking 6
Introduzione e Scopo della Tesi
Nell’ambito della Computer Vision uno dei compiti principali è la rilevazione e il tracciamento di oggetti all’interno di una scena (object detection and tracking), il cui obiettivo è identificare e localizzare gli oggetti presenti e seguirne il movimento nel tempo.
Negli ultimi anni è emersa una nuova tipologia di sensori, noti come event camera, che rilevano le variazioni di luminosità in modo asincrono al livello del singolo pixel. Questi sensori hanno rivoluzionato il paradigma tradizionale degli algoritmi di Computer Vision, basati sul sincronismo dei frame. Di conseguenza è necessario sviluppare nuovi algoritmi o adattare quelli esistenti con l’output delle event camera, al fine di valorizzare le loro promettenti caratteristiche tecniche: elevata risoluzione temporale, bassa latenza e una assenza di ridondanza dei dati acquisiti. Queste specifiche li rendono particolarmente adatti a scenari dinamici e con elevato movimento, oltre che a sistemi con risorse limitate in termini di banda e capacità di calcolo. Questa tesi si propone di sfruttare le potenzialità di una event camera per implementare un sistema di rilevamento e tracciamento di oggetti in movimento in tempo reale, confrontandone le prestazioni con quelle ottenibili con una telecamera tradizionale.
I risultati sono stati inizialmente validati tramite un dataset, così da garantire condizioni controllate e ripetibili, per poi essere testati anche con sensori reali in uno scenario operativo. Tali prove hanno mostrato che il sistema basato sugli eventi risulta non solo computazionalmente più efficiente, ma anche più preciso nel rilevamento di oggetti di medie o grandi dimensioni in scenari con rumore ridotto. La precisione, tuttavia, si degrada significativamente in presenza di un elevato livello di rumore nella scena. 7
Capitolo 1
Introduzione
1.1 Rilevamento e Tracciamento degli oggetti
Nell’ambito della Computer Vision uno dei compiti principali è il Rilevamento e Tracciamento degli oggetti (Object Detection and Tracking), il cui obiettivo è identificare e localizzare gli oggetti presenti all’interno di una scena e tracciarne il movimento nel tempo. I principali ambiti di applicazione sono la videosorveglianza la guida autonoma [6], l’analisi del traffico [7], il settore medico [8] ecc.[5], Risulta quindi un campo di ricerca molto attivo e innovativo, trainato non solo dalle numerose applicazioni, ma anche da nuove tecnologie come il Machine Learning e
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.