Prototipazione di un sistema intelligente di collision detection/avoidance tramite visione artificiale a camera monoculare per il supporto alla frenata di automezzi.
[Presentation] IBSS: Intelligent Brake Support System
1. IBSS: Intelligent Brake Support System
Prototipazione di un sistema intelligente di
collision detection/avoidance tramite visione artificiale a camera
monoculare per il supporto alla frenata di automezzi
Candidato: Stefano Bonetta
Relatore: Prof. Alessandro Sperduti
Correlatore: Dott. Andrea Albarelli - Universit`a Ca’ Foscari Venezia
Controrelatore: Prof. Marco Maggini - Universit`a degli Studi di Siena
Dipartimento di Matematica
Corso di Laurea Magistrale in Informatica
19 Aprile 2013
2. Contenuti
1 Introduzione
Il problema
Soluzioni commerciali
La nostra proposta
2 Studio preliminare
Stato dell’arte
Test esplorativi
3 Progettazione di IBSS
Assunzioni
Flusso operativo
Componenti del sistema
4 Verifica sperimentale di IBSS
5 Conclusioni
Sviluppi futuri
2 di 28
3. Introduzione
Il problema
Incidenti stradali ⇒ pandemia della societ`a moderna
aspetti umani ed economici
I dati annuali
In Italia: 200.000 incidenti con lesioni a persone (ISTAT)
Nel mondo (World Health Organization - ONU):
1 milione di morti
2,4 milioni di disabili
Il 90% degli incidenti riconducibile ad errori umani (distrazione)
Costo economico medio stimato per incidente mortale: 6.283.000 $
(Centre For Automotive Safety Research)
Nell’ultimo decennio la ricerca ha permesso di sviluppare sistemi di
monitoraggio e di guida assistita sempre pi`u evoluti ed affidabili
3 di 28
4. Sistemi di guida assistita
Soluzioni commerciali
ADAS (Advanced Driver Assistance System)
Sistemi ADAS
FCW (Forward Collision Warning)
FCA (Forward Collision Avoidance)
LDW (Lane Departure Warning)
...
Tecnologie adottate
Radar ($$$, Θ)
Laser ($$, Θ)
Camera ($, ΘΘΘ)
Infrarossi ($, ΘΘΘ)
Costi ADAS
Costo medio dei sistemi di FCA/FCW (Volvo, Mercedes, Audi, BMW,
Volkswagen): 1.716 e
Disponibili su vetture di fascia medio/alta ⇒ Sicurezza = Optional
Pregi e difetti per ciascuna soluzione commerciale
4 di 28
5. Contesto operativo
Situazione attuale VS Situazione auspicabile
IPOTESI 1: sistema ideale di
FCA/FCW operante con un’efficacia
del 100%
Conseguenze della scarsa diffusione
Istanza isolate di sistemi di FCA non
garantiscono una vera sicurezza
IPOTESI 2: sistema basilare di
FCA/FCW low cost ad ampia
diffusione
Potenzialit`a dei sistemi FCA/FCW
Riduzione del 20-40% degli incidenti letali
e del 30-50% degli incidenti con lesioni a
persone
5 di 28
6. Considerazioni
Dal problema all’idea
Soluzione ⇒ diffusione capillare dei sistemi di FCW/FCA
Come?
uso di tecnologie economiche e largamente diffuse
sistemi versatili ed acquistabili separatamente dall’auto
offrendo funzionalit`a basilari che attenuino la naturale diffidenza dell’utente
La nostra proposta: IBSS (Intelligent Brake Support System)
Un sistema basilare di FCW operante con una sola camera (visione
monoculare), posizionata sul parabrezza frontale, in grado di fornire un
supporto alla frenata (copilota artificiale) ⇒ potenzialmente integrabile in uno
smartphone
6 di 28
7. Stato dell’arte
Sistemi FCW/FCA
Immagini come sorgente di informazione ⇒ Computer Vision
Related works
Riconoscimento e la valutazione di pericoli stradali `e un task complesso
flusso ottico (optical flow) dell’immagine
individuazione di specifiche feautures
Sistemi proposti differenziati in relazione alla tipologia di “ostacolo”
considerato (automobili, pedoni)
Capacit`a di calcolo richiesta medio/alta
utilizzo di pi`u computer o Digital Signal Processor dedicati
Grosse difficolt`a nel garantire tempi di risposta accettabili (20-25 FPS)
7 di 28
8. Studio di fattibilit`a
Test esplorativi
1 Framework: OpenCV, C++
disponibile anche per mobile (Android)
2 Valutazione della capacit`a di acquisizione di una camera low cost
3 Calcolo dell’optical flow sparso
Lucas-Kanade Piramidale (LKPyr)
Risultati sperimentali su smartphone
Capacit`a di acquisizione
(VGA): 11 FPS (colori), 25 FPS (b/n)
(quarter-VGA): 30 FPS
Tempo di calcolo per LKPyr su quarter-VGA: 200-250 ms
Osservazione
Necessit`a di individuare un approccio alternativo ⇒ Trasformazione dallo
spazio delle immagini ad uno spazio a cardinalit`a ridotta
8 di 28
9. Sistema IBSS
Assunzioni
Complessit`a molto elevata ⇒ necessit`a di introdurre assunzioni che
vincolino funzionalit`a e scenario d’utilizzo
Assunzioni
Funzionalit`a
FCW
approccio best effort (pulsazioni di pericolo)
Scenario d’utilizzo
guida su strada
condizioni di luce standard
assenza di condizioni atmosferiche e/o ambientali di disturbo
posizionamento stabile della camera a bordo dell’auto
9 di 28
10. Sistema IBSS
Il flusso operativo
1 Acquisizione/predisposizione del frame (OpenCV)
2 Trasformazione dello spazio informativo mediante segmentazione
del frame basata sul calcolo delle componenti connesse (macropixel)
calcolo di sintesi informative per ogni componente
3 Classificazione delle componenti (basata sulle sintesi) e definizione
dell’insieme di componenti che identifica la superficie stradale
(approccio machine learning)
4 Individuazione delle componenti riconducibili a potenziali ostacoli
posizionati sulla strada
5 Determinazione degli spostamenti dei presunti ostacoli tramite
tracking sui successivi k frame
6 Ricostruzione 3D del posizionamento degli ostacoli
7 Valutazione effettiva del pericolo
10 di 28
13. Sistema IBSS
Acquisizione/predisposizione frame
OpenCV isola il sistema IBSS dal formato del flusso video
frame acquisiti memorizzati come un array sequenziale in formato BGR
definizione di metodi di accesso ai pixel specifici per l’architettura in uso
(template specialization)
13 di 28
14. Sistema IBSS
Segmentazione: calcolo delle componenti connesse (1/2)
Labeling: etichettare ogni pixel con la componente connessa di appartenenza
calcolo effettuato per scanline (singole righe di immagine)
top-down & left-right
valutazione del vicinato di ogni pixel (4-neighborhood) considerando la scanline
precedente
check di similarit`a cromatica tramite bitmask (versione a “colori ridotti”
dell’immagine)
problema del merge: quando un pixel pu`o appartenere a pi`u componenti, allora
queste componenti sono unificabili
implementazione critica ⇒ le prestazioni dipendono da come viene gestito il
merge
adottata soluzione efficiente che utilizza riferimenti numerici crescenti indiretti
con coalescing a posteriori degli indici
14 di 28
15. Sistema IBSS
Segmentazione: calcolo delle componenti connesse (2/2)
costruzione di una sintesi informativa per ogni singola componente
connessa ⇒ valorizzazione di specifici attributi (area, centroide,
bounding-box, media e varianza dei canali)
sintesi incrementale effettuata ripercorrendo le etichette dei pixel
necessaria alla fase di apprendimento e di classificazione
Figura: Rappresentazione grafica delle componenti connesse
15 di 28
16. Sistema IBSS
Classificazione (1/2)
Classificazione suddivisa in due fasi:
1 apprendimento della “strada” e costruzione del classificatore (asincrona,
esterna alla pipeline)
2 utilizzo del classificatore per individuare le componenti stradali (sincrona)
Costruzione del classificatore
Acquisizione di video di test
Utilizzo della pipeline in modalit`a “learning” per l’acquisizione di esempi
campionamento frame con salvataggio di immagine, mappa delle
componenti connesse e sintesi informativa
Classificazione supervisionata delle componenti stradali e generazione
dataset ARFF (VisualClassifier)
Analisi dataset e generazione dell’albero di decisione J48/C4.5 (Weka)
Generazione automatica del codice C++ del classificatore a partire dal
modello (VisualClassifier)
16 di 28
17. Sistema IBSS
Classificazione (2/2)
Utilizzo del classificatore
Metodo di classificazione definito inline
Invocazione del metodo su ogni componente connessa ⇒ individuazione
dei macropixel che formano il manto stradale
Per ogni nuovo cluster “stradale”, aggiornamento del bounding-box
trapezoidali della strada
Figura: Individuazione della strada e definizione del bounding-box stradale.
17 di 28
18. Sistema IBSS
Individuazione ostacoli
Componente connessa “ostacolo”
non `e una componente “stradale”
si trova all’interno del bounding-box stradale (centroide)
ha un ingombro maggiore di una data soglia minima (area, bounding-box)
al di sotto di essa si trovano perlopi`u componenti “stradali” (valutazione di
adiacenza)
Figura: Rappresentazione grafica degli ostacoli individuati (in rosso).
VERSATILIT`A
Nessuna assunzione restrittiva sulla tipologia di ostacolo
18 di 28
19. Sistema IBSS
Tracking e validazione multi-frame
Optical flow “a blocchi” ⇒ correlation-based similarity estimation
determinazione degli spostamenti su diversi frame (tracking)
diverse metriche utilizzabili, prestazioni pressoch´e uguali ⇒ adottata SAD
(Sum of Absolute Differences)
(i,j)∈r
|f (i, j) − f (x + i, y + j)|
19 di 28
20. Sistema IBSS
Ricostruzione 3D (1/2)
Calcolo di distanza e traiettoria degli ostacoli tracciati ⇒ necessaria
ricostruzione della posizione nello spazio tridimensionale
Funzionamento fisico della camera ⇒ modello pinhole
parametri intrinseci: distanza focale, centro immagine, distorsione radiale
parametri estrinseci: posa della camera
20 di 28
21. Sistema IBSS
Ricostruzione 3D (2/2)
Calibrazione della camera (calcolo parametri intrinseci): OpenCV, Matlab
Calibration ToolBox
calcolo della posa: da effettuare ogni volta che viene cambiata la posizione
di installazione della camera
metodo P3P: `e sufficiente un marker rettangolare di dimensioni note
posizionato sulla strada
RN =
xp−Cx
f
yp−Cy
f
1
, P
0
−h
0
S =
RN
RN
P
RN
RN
, P
P
=
RN P 2
RN , P
21 di 28
22. Sistema IBSS
Valutazione del pericolo
Per ogni ostacolo tracciato si conosce la posizione nello spazio
tridimensionale nei vari frame
Grazie all’informazione spaziale e a quella temporale (FPS) `e
possibile stabilire, per ogni ostacolo:
distanza
velocit`a di avvicinamento (relativa)
traiettoria (punto di impatto lungo la linea dell’osservatore)
Svariati criteri adottabili a partire da queste informazioni
violazione della distanza minima
superamento della velocit`a di avvicinamento massima
pericolo di impatto mantenendo la traiettoria
combinazione delle precedenti
ecc.
22 di 28
23. Sistema IBSS
HMI: Human Machine Interface
L’HMI notifica i potenziali pericoli all’utente
informazioni sui pericoli visualizzate in realt`a aumentata
visualizzazione “radar”
Figura: Visualizzazione del pericolo in realt`a aumentata e con immagine radar.
23 di 28
24. Verifica sperimentale del sistema IBSS
Tipologia di test
Test di classificazione
3 gruppi di dataset (urbano, extra-urbano, ambiente controllato) suddivisi in
training set e test set
classificazioni corrette 95%
true positive dal 70% al 94%
Test di calibratura
calcolo intrinseci: errore di riproiezione stimato prossimo allo zero
(0.20-0.22)
calcolo della posa: diverse instabilit`a riscontrate, errori di approssimazione
non trascurabili ⇒ necessaria validazione manuale
Test di sistema in ambiente controllato
scenario controllato con ostacolo fisico statico
avvicinamento ed impatto con l’ostacolo a diverse velocit`a
24 di 28
26. Verifica sperimentale del sistema IBSS
Test in ambiente controllato: tempi di calcolo
M1: computer di fascia alta con processore Intel Core i7 Ivy Bridge, 8 GB di
RAM (2012)
M2: computer di fascia bassa con processore dual-core AMD Thurion 64 a 1.9
Ghz, 2 GB di RAM (2006)
Fase M1 (ms) M2 (ms)
Acquisizione 7,97222 12,23421
Segmentazione 2,20833 7,22912
Classificazione 3,98611 8,44311
Individuazione ostacoli ∼0 1,02143
Tracking e ricostruzione 3D 1,13889 2,41712
Valutazione pericolo ∼0 1,73421
Totale ∼15,3 ∼33
Tabella: Tempi medi di calcolo del sistema IBSS (ms.)
26 di 28
27. Conclusioni
Sviluppi futuri
Principali problematiche
Montaggio della camera a bordo dell’auto
Qualit`a delle immagini in condizioni di scarsa luminosit`a
Forti oscillazioni dell’obbiettivo dovute alle sollecitazioni durante lo
spostamento
Criticit`a della fase di classificazione della strada
Sviluppi futuri
Porting su mobile (Android)
Estensione del range operativo a scenari diversi (notte, imbrunire, ...)
Miglioramento del classificatore (modalit`a di guessing del terreno)
Estensione dell’HMI mediante sistema di notifica a vibrazione
Integrazione con vehicular network
27 di 28