SlideShare une entreprise Scribd logo
1  sur  52
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Universit`a degli Studi di Firenze
Facolt`a di Ingegneria
Progetto e sviluppo di un modulo di visual
odometry per dispositivi mobili
Marco Righini
Relatore:
Prof. Pietro Pala
Co-relatore:
Ing. Walter Nunziati
5 Marzo 2012
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Sommario
1. Odometria visuale
2. Flusso ottico e stima del moto
3. Architettura dell’applicazione
4. Risultati dei test effettuati
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Visual odometry
L’obiettivo principale della tesi `e la realizzazione di un modulo
per il supporto alla navigazione indoor su dispositivi mobili.
Approcci esistenti e relative limitazioni:
Metodo Limitazioni
Triangolazione/trilaterazione wifi Necessit`a di ambiente strumentato
RFID attivi/passivi Necessit`a di ambiente strumentato
Sensori inerziali del dispositivo Alta rumorosit`a del segnale
Alternativa: visual odometry
Determinare il percorso effettuato tramite l’analisi video della sequenza di
immagini catturate dalla telecamera.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Visual odometry
L’obiettivo principale della tesi `e la realizzazione di un modulo
per il supporto alla navigazione indoor su dispositivi mobili.
Approcci esistenti e relative limitazioni:
Metodo Limitazioni
Triangolazione/trilaterazione wifi Necessit`a di ambiente strumentato
RFID attivi/passivi Necessit`a di ambiente strumentato
Sensori inerziali del dispositivo Alta rumorosit`a del segnale
Alternativa: visual odometry
Determinare il percorso effettuato tramite l’analisi video della sequenza di
immagini catturate dalla telecamera.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Visual odometry
L’obiettivo principale della tesi `e la realizzazione di un modulo
per il supporto alla navigazione indoor su dispositivi mobili.
Approcci esistenti e relative limitazioni:
Metodo Limitazioni
Triangolazione/trilaterazione wifi Necessit`a di ambiente strumentato
RFID attivi/passivi Necessit`a di ambiente strumentato
Sensori inerziali del dispositivo Alta rumorosit`a del segnale
Alternativa: visual odometry
Determinare il percorso effettuato tramite l’analisi video della sequenza di
immagini catturate dalla telecamera.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Dispositivi mobili
Gli studi di odometria visuale presenti in letteratura si riferiscono
ad un utilizzo tipico su piattaforme robotiche caratterizzate da:
movimenti controllati;
configurazione hardware scelta ad hoc.
I dispositivi mobili costituiscono un ambito applicativo differente:
nessun controllo di posa;
componenti hardware limitate e vincolate dal costruttore.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Dispositivi mobili
Gli studi di odometria visuale presenti in letteratura si riferiscono
ad un utilizzo tipico su piattaforme robotiche caratterizzate da:
movimenti controllati;
configurazione hardware scelta ad hoc.
I dispositivi mobili costituiscono un ambito applicativo differente:
nessun controllo di posa;
componenti hardware limitate e vincolate dal costruttore.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Approccio seguito
Ad ogni istante. . .
La posizione corrente `e ottenuta a partire dalla posizione
precedente tramite il calcolo dello spostamento relativo effettuato.
Il metodo risolutivo adottato `e di tipo iterativo e prevede per ogni
coppia di frame acquisiti:
1 Calcolo del flusso ottico;
Keypoint detection. Estrazione punti interessanti dal primo
frame;
Keypoint tracking. Ricerca delle corrispondenze nel frame
successivo.
2 Stima del moto. Calcolo della trasformazione proiettiva
(omografia).
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Approccio seguito
Ad ogni istante. . .
La posizione corrente `e ottenuta a partire dalla posizione
precedente tramite il calcolo dello spostamento relativo effettuato.
Il metodo risolutivo adottato `e di tipo iterativo e prevede per ogni
coppia di frame acquisiti:
1 Calcolo del flusso ottico;
Keypoint detection. Estrazione punti interessanti dal primo
frame;
Keypoint tracking. Ricerca delle corrispondenze nel frame
successivo.
2 Stima del moto. Calcolo della trasformazione proiettiva
(omografia).
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Approccio seguito
Ad ogni istante. . .
La posizione corrente `e ottenuta a partire dalla posizione
precedente tramite il calcolo dello spostamento relativo effettuato.
Il metodo risolutivo adottato `e di tipo iterativo e prevede per ogni
coppia di frame acquisiti:
1 Calcolo del flusso ottico;
Keypoint detection. Estrazione punti interessanti dal primo
frame;
Keypoint tracking. Ricerca delle corrispondenze nel frame
successivo.
2 Stima del moto. Calcolo della trasformazione proiettiva
(omografia).
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Approccio seguito
Ad ogni istante. . .
La posizione corrente `e ottenuta a partire dalla posizione
precedente tramite il calcolo dello spostamento relativo effettuato.
Il metodo risolutivo adottato `e di tipo iterativo e prevede per ogni
coppia di frame acquisiti:
1 Calcolo del flusso ottico;
Keypoint detection. Estrazione punti interessanti dal primo
frame;
Keypoint tracking. Ricerca delle corrispondenze nel frame
successivo.
2 Stima del moto. Calcolo della trasformazione proiettiva
(omografia).
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Scenario applicativo
Il procedimento richiede che le
corrispondenze dei punti siano
proiezione di una stessa struttura
planare.
Situazioni critiche:
corridoi stretti;
rotazioni ravvicinate ad oggetti
sporgenti;
oggetti vicini in movimento.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Scenario applicativo
Il procedimento richiede che le
corrispondenze dei punti siano
proiezione di una stessa struttura
planare.
Situazioni critiche:
corridoi stretti;
rotazioni ravvicinate ad oggetti
sporgenti;
oggetti vicini in movimento.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Flusso ottico sparso
Flusso ottico
Moto apparente di pattern di luminosit`a quando la telecamera `e in
moto relativo rispetto agli oggetti inquadrati nell’immagine.
Il metodo utilizzato `e di tipo sparso e prevede il calcolo del flusso
ottico solamente per un sottoinsieme di punti notevoli (keypoint)
dell’immagine.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Flusso ottico sparso
Flusso ottico
Moto apparente di pattern di luminosit`a quando la telecamera `e in
moto relativo rispetto agli oggetti inquadrati nell’immagine.
Il metodo utilizzato `e di tipo sparso e prevede il calcolo del flusso
ottico solamente per un sottoinsieme di punti notevoli (keypoint)
dell’immagine.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Rilevamento ed inseguimento keypoint
Rilevamento
FAST [Rosten, 2006]. Opera considerando la circonferenza di
16 pixel centrata nel punto candidato p.
Inseguimento
LK [Lucas and Kanade, 1981]. Fornisce una soluzione
all’equazione generale del flusso ottico v utilizzando una
finestra di pixel S ed il metodo dei minimi quadrati pesati:
v = [vx vy ] = argmin
v
u∈S
wu I(u, t) · vT
+
∂I
∂t
(u, t)
2
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Rilevamento ed inseguimento keypoint
Rilevamento
FAST [Rosten, 2006]. Opera considerando la circonferenza di
16 pixel centrata nel punto candidato p.
Inseguimento
LK [Lucas and Kanade, 1981]. Fornisce una soluzione
all’equazione generale del flusso ottico v utilizzando una
finestra di pixel S ed il metodo dei minimi quadrati pesati:
v = [vx vy ] = argmin
v
u∈S
wu I(u, t) · vT
+
∂I
∂t
(u, t)
2
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Stima della trasformazione proiettiva (omografia)
L’obiettivo `e determinare la relazione tra immagini degli stessi
punti di un piano quando il punto di vista dell’osservatore cambia.
x ∼ H · x
con H ∈ R3×3
La matrice omografia H presenta 8 gradi di libert`a e per calcolarla
sono necessarie 4 corrispondenze di punti o linee.
Tipicamente `e utilizzato un metodo di stima robusta (RANSAC)
su pi`u corrispondenze.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Stima della trasformazione proiettiva (omografia)
L’obiettivo `e determinare la relazione tra immagini degli stessi
punti di un piano quando il punto di vista dell’osservatore cambia.
x ∼ H · x
con H ∈ R3×3
La matrice omografia H presenta 8 gradi di libert`a e per calcolarla
sono necessarie 4 corrispondenze di punti o linee.
Tipicamente `e utilizzato un metodo di stima robusta (RANSAC)
su pi`u corrispondenze.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Stima della trasformazione proiettiva (omografia)
L’obiettivo `e determinare la relazione tra immagini degli stessi
punti di un piano quando il punto di vista dell’osservatore cambia.
x ∼ H · x
con H ∈ R3×3
La matrice omografia H presenta 8 gradi di libert`a e per calcolarla
sono necessarie 4 corrispondenze di punti o linee.
Tipicamente `e utilizzato un metodo di stima robusta (RANSAC)
su pi`u corrispondenze.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Pattern di calibrazione
Tramite la composizione (moltiplicazione) delle omografie `e
possibile ottenere lo spostamento in pixel rispetto al sistema di
riferimento dell’immagine iniziale.
. . . e per la rispettiva distanza in metri
Si utilizza un pattern di calibrazione di dimensioni metriche note e
si calcola l’omografia di calibrazione.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Pattern di calibrazione
Tramite la composizione (moltiplicazione) delle omografie `e
possibile ottenere lo spostamento in pixel rispetto al sistema di
riferimento dell’immagine iniziale.
. . . e per la rispettiva distanza in metri
Si utilizza un pattern di calibrazione di dimensioni metriche note e
si calcola l’omografia di calibrazione.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Pattern di calibrazione
Tramite la composizione (moltiplicazione) delle omografie `e
possibile ottenere lo spostamento in pixel rispetto al sistema di
riferimento dell’immagine iniziale.
. . . e per la rispettiva distanza in metri
Si utilizza un pattern di calibrazione di dimensioni metriche note e
si calcola l’omografia di calibrazione.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Android e OpenCV
Il processo di keypoint detection, tracking e calcolo dell’omografia `e
stato implementato in un’applicazione per la piattaforma Android.
La libreria OpenCV ha fornito gli strumenti base di computer
vision. Oltre all’implementazione standard C/C++ esiste un
porting per Android in linguaggio Java.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Android e OpenCV
Il processo di keypoint detection, tracking e calcolo dell’omografia `e
stato implementato in un’applicazione per la piattaforma Android.
La libreria OpenCV ha fornito gli strumenti base di computer
vision. Oltre all’implementazione standard C/C++ esiste un
porting per Android in linguaggio Java.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Android NDK
L’Android NDK permette di integrare codice nativo C/C++
all’interno delle applicazioni Android.
Sviluppo nativo
Modulo di visual odometry nativo ed autocontenuto.
Motivazioni:
Ottimizzazione delle prestazioni;
Riduzione tempi di overhead. Il porting di OpenCV `e un
wrapper per chiamate alla libreria standard C/C++;
Riutilizzo codice per test in locale.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Android NDK
L’Android NDK permette di integrare codice nativo C/C++
all’interno delle applicazioni Android.
Sviluppo nativo
Modulo di visual odometry nativo ed autocontenuto.
Motivazioni:
Ottimizzazione delle prestazioni;
Riduzione tempi di overhead. Il porting di OpenCV `e un
wrapper per chiamate alla libreria standard C/C++;
Riutilizzo codice per test in locale.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Android NDK
L’Android NDK permette di integrare codice nativo C/C++
all’interno delle applicazioni Android.
Sviluppo nativo
Modulo di visual odometry nativo ed autocontenuto.
Motivazioni:
Ottimizzazione delle prestazioni;
Riduzione tempi di overhead. Il porting di OpenCV `e un
wrapper per chiamate alla libreria standard C/C++;
Riutilizzo codice per test in locale.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Android NDK
L’Android NDK permette di integrare codice nativo C/C++
all’interno delle applicazioni Android.
Sviluppo nativo
Modulo di visual odometry nativo ed autocontenuto.
Motivazioni:
Ottimizzazione delle prestazioni;
Riduzione tempi di overhead. Il porting di OpenCV `e un
wrapper per chiamate alla libreria standard C/C++;
Riutilizzo codice per test in locale.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Android NDK
L’Android NDK permette di integrare codice nativo C/C++
all’interno delle applicazioni Android.
Sviluppo nativo
Modulo di visual odometry nativo ed autocontenuto.
Motivazioni:
Ottimizzazione delle prestazioni;
Riduzione tempi di overhead. Il porting di OpenCV `e un
wrapper per chiamate alla libreria standard C/C++;
Riutilizzo codice per test in locale.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Architettura dell’applicazione
Ottimizzazioni:
Maschere di rilevamento keypoint. Ridurre punti estranei
al piano-pavimento;
Ripetizione omografia. Nel caso limite in cui non sia
possibile calcolare l’omografia, `e utilizzata l’ultima computata.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Architettura dell’applicazione
Ottimizzazioni:
Maschere di rilevamento keypoint. Ridurre punti estranei
al piano-pavimento;
Ripetizione omografia. Nel caso limite in cui non sia
possibile calcolare l’omografia, `e utilizzata l’ultima computata.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Architettura dell’applicazione
Ottimizzazioni:
Maschere di rilevamento keypoint. Ridurre punti estranei
al piano-pavimento;
Ripetizione omografia. Nel caso limite in cui non sia
possibile calcolare l’omografia, `e utilizzata l’ultima computata.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
User interface
L’interfaccia utente `e composta da due activity:
Calibration Activity Map Activity
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
User interface
L’interfaccia utente `e composta da due activity:
Calibration Activity Map Activity
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Test e risultati
Accuratezza del modulo di navigazione
Differenza tra la posizione reale e quella computata.
Strettamente dipendente dalla scelta dei parametri liberi degli
algoritmi.
Ottimizzazione locale. Per ogni fase del processo di visual
odometry `e stata scelta la configurazione ottimale tramite l’analisi
di opportuni descrittori.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Test e risultati
Accuratezza del modulo di navigazione
Differenza tra la posizione reale e quella computata.
Strettamente dipendente dalla scelta dei parametri liberi degli
algoritmi.
Ottimizzazione locale. Per ogni fase del processo di visual
odometry `e stata scelta la configurazione ottimale tramite l’analisi
di opportuni descrittori.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Test e risultati
Accuratezza del modulo di navigazione
Differenza tra la posizione reale e quella computata.
Strettamente dipendente dalla scelta dei parametri liberi degli
algoritmi.
Ottimizzazione locale. Per ogni fase del processo di visual
odometry `e stata scelta la configurazione ottimale tramite l’analisi
di opportuni descrittori.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Confronto algoritmi di keypoint detection
Ripetibilit`a. Stabilit`a geometrica dei keypoint estratti in due
immagini della stessa scena, catturate da punti di vista differenti.
1 2 3 4 5 6 7 8
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Immagine
Ripetibilit´a
ST3 ST4 ST5 ST6 ST7 ST8 ST9 ST10 FAST
Tempo di esecuzione. L’algoritmo FAST `e circa 9 volte pi`u
veloce di Shi-Tomasi.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Confronto algoritmi di keypoint detection
Ripetibilit`a. Stabilit`a geometrica dei keypoint estratti in due
immagini della stessa scena, catturate da punti di vista differenti.
1 2 3 4 5 6 7 8
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Immagine
Ripetibilit´a
ST3 ST4 ST5 ST6 ST7 ST8 ST9 ST10 FAST
Tempo di esecuzione. L’algoritmo FAST `e circa 9 volte pi`u
veloce di Shi-Tomasi.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Prestazioni algoritmo di tracking LK
Accuratezza. `E rappresentata dal numero di keypoint inseguiti e
dall’errore sugli stessi.
92.5 93 93.5 94 94.5 95 95.5
16
16.5
17
17.5
18
9
11
13
15
17 19 21
23
25
27
29
media percentuale keypoint inseguiti
erroremedio
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Accuratezza del modulo di navigazione
Percorso (circa 10m)
Lineare Andata e ritorno Deviazione
vmin
m
s
0.04 0.09 0.086
vmax
m
s
0.38 0.2 0.19
Numero prove 15 10 10
Errore medio % 8.13 8.33 14.89
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Conclusioni e sviluppi futuri
Il lavoro di ricerca ha permesso:
lo sviluppo di un modulo di visual odometry e del prototipo di
applicazione di navigazione;
la caratterizzazione degli algoritmi al variare dei parametri
liberi;
la determinazione delle performance necessarie all’esecuzione
del modulo.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Conclusioni e sviluppi futuri
Il lavoro di ricerca ha permesso:
lo sviluppo di un modulo di visual odometry e del prototipo di
applicazione di navigazione;
la caratterizzazione degli algoritmi al variare dei parametri
liberi;
la determinazione delle performance necessarie all’esecuzione
del modulo.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Conclusioni e sviluppi futuri
Il lavoro di ricerca ha permesso:
lo sviluppo di un modulo di visual odometry e del prototipo di
applicazione di navigazione;
la caratterizzazione degli algoritmi al variare dei parametri
liberi;
la determinazione delle performance necessarie all’esecuzione
del modulo.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Grazie per l'attenzione
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Shi-Tomasi
Valuta il punto candidato p tramite l’analisi degli autovalori λ1 e
λ2 della matrice di autocorrelazione
Mac = u∈S wu
∂I
∂x
2
(u) u∈S wu
∂I
∂x (u) ∂I
∂y (u)
u∈S wu
∂I
∂x (u) ∂I
∂y (u) u∈S wu
∂I
∂y
2
(u)
Sia λp = min(λ1,λ2) e λ un valore soglia fissato:
λp ≤ λ indica un edge o una regione uniforme;
λp > λ rivela un keypoint.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Flusso ottico sparso
Assunzioni fondamentali:
Intensit`a costante;
Persistenza temporale;
Coerenza spaziale.
Si ottiene l’equazione fondamentale del flusso ottico v:
I · vT
= −
∂I
∂t
Una equazione in due incognite.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Maschere di rilevamento keypoint
Nel compimento di rotazioni ravvicinate ad ostacoli sporgenti, `e
risultato evidente che, nella maggior parte dei casi, i punti estranei
si dispongono nella parte superiore dell’inquadratura.
In particolare sono state individuate tre diverse situazioni,
corrispondenti a diverse distanze dagli ostacoli:
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Fasi dei test di ripetibilit`a
Calibrazione dei valori di soglia. Per ogni pavimentazione
sia estratto un numero sufficiente di keypoint;
Warping delle immagini;
Calcolo della ripetibilit`a. Al variare dei parametri liberi:
1 Keypoint detection. Rilevazione dei keypoint sull’immagine
originale (P1) e sull’immagine trasformata (P2);
2 Punti ripetuti. R2 = {(p1, p2) ∈ P1 × P2|d(H · p1, p2) < 2};
3 Ripetibilit`a. r2 = |R2|
min (n1,n2) con n1 = |P1| e n2 = |P2|.
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Dataset dei test di ripetibilit`a
Marco Righini Modulo di visual odometry per dispositivi mobili
Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni
Performance dell’algoritmo LK
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
16
16.5
17
17.5
18
18.5
19
19.5
20
9
11
13 1517 19 21 23 25 27 29 31
4 fps
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
16
16.5
17
17.5
18
18.5
19
19.5
20
7
9
11
131517 19
21
23 25
27
29 31
8 fps
erroremedio
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
16
16.5
17
17.5
18
18.5
19
19.5
20
7
9
11
13
1517
192123
25
27
29 31
media percentuale keypoint inseguiti
16 fps
Marco Righini Modulo di visual odometry per dispositivi mobili

Contenu connexe

En vedette (11)

Jesse.cole-resume1
Jesse.cole-resume1Jesse.cole-resume1
Jesse.cole-resume1
 
Moodle cloud
Moodle cloudMoodle cloud
Moodle cloud
 
USAF2
USAF2USAF2
USAF2
 
Sir Eric Wallace
Sir Eric WallaceSir Eric Wallace
Sir Eric Wallace
 
SAIBPP_volume 2 issue 1
SAIBPP_volume 2 issue 1SAIBPP_volume 2 issue 1
SAIBPP_volume 2 issue 1
 
♥♥
 
Never Upgrade Again With Siebel Innovation Packs
Never Upgrade Again With Siebel Innovation PacksNever Upgrade Again With Siebel Innovation Packs
Never Upgrade Again With Siebel Innovation Packs
 
ZeroCampus-LMS-Proposal
ZeroCampus-LMS-ProposalZeroCampus-LMS-Proposal
ZeroCampus-LMS-Proposal
 
Animals in danger of extinction
Animals in danger of extinctionAnimals in danger of extinction
Animals in danger of extinction
 
Περιγραφή ζώου
Περιγραφή ζώουΠεριγραφή ζώου
Περιγραφή ζώου
 
Chapter 11 percentage taxes- Valencia
Chapter 11   percentage taxes- ValenciaChapter 11   percentage taxes- Valencia
Chapter 11 percentage taxes- Valencia
 

Similaire à Android Visual Odometry

MSc Thesis - Loop Closing, Place Recognition
MSc Thesis - Loop Closing, Place RecognitionMSc Thesis - Loop Closing, Place Recognition
MSc Thesis - Loop Closing, Place Recognition
Giacomo Picchiarelli
 
Smart pon04a3 00402
Smart pon04a3 00402Smart pon04a3 00402
Smart pon04a3 00402
abbia18
 
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - TesiRilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
temp temp
 
Controllo di un'entità mobile da un'applicazione Android - 2013/2014
Controllo di un'entità mobile da un'applicazione Android - 2013/2014Controllo di un'entità mobile da un'applicazione Android - 2013/2014
Controllo di un'entità mobile da un'applicazione Android - 2013/2014
Emanuele Cucci
 

Similaire à Android Visual Odometry (20)

Progettazione e sviluppo di un sistema di visione artificiale per il monitora...
Progettazione e sviluppo di un sistema di visione artificiale per il monitora...Progettazione e sviluppo di un sistema di visione artificiale per il monitora...
Progettazione e sviluppo di un sistema di visione artificiale per il monitora...
 
MSc Thesis - Loop Closing, Place Recognition
MSc Thesis - Loop Closing, Place RecognitionMSc Thesis - Loop Closing, Place Recognition
MSc Thesis - Loop Closing, Place Recognition
 
Progettazione e sviluppo di un sistema di visione artificiale per il monitora...
Progettazione e sviluppo di un sistema di visione artificiale per il monitora...Progettazione e sviluppo di un sistema di visione artificiale per il monitora...
Progettazione e sviluppo di un sistema di visione artificiale per il monitora...
 
Progettazione e sviluppo di un sistema di visione artificiale per il monitora...
Progettazione e sviluppo di un sistema di visione artificiale per il monitora...Progettazione e sviluppo di un sistema di visione artificiale per il monitora...
Progettazione e sviluppo di un sistema di visione artificiale per il monitora...
 
Slides marco de_marco
Slides marco de_marcoSlides marco de_marco
Slides marco de_marco
 
ppt Ivan Riolino_led_eos2013
ppt Ivan Riolino_led_eos2013ppt Ivan Riolino_led_eos2013
ppt Ivan Riolino_led_eos2013
 
Corso impianti fotovoltaici sessione 2 - studio fattibilità e progettazion...
Corso impianti fotovoltaici   sessione 2 - studio fattibilità e progettazion...Corso impianti fotovoltaici   sessione 2 - studio fattibilità e progettazion...
Corso impianti fotovoltaici sessione 2 - studio fattibilità e progettazion...
 
Smart pon04a3 00402
Smart pon04a3 00402Smart pon04a3 00402
Smart pon04a3 00402
 
SWAMM
SWAMMSWAMM
SWAMM
 
RETI di LABORATORI - [Aeronautico] SENS&MICROLAB
RETI di LABORATORI - [Aeronautico] SENS&MICROLABRETI di LABORATORI - [Aeronautico] SENS&MICROLAB
RETI di LABORATORI - [Aeronautico] SENS&MICROLAB
 
Modello tesi presentazione
Modello tesi presentazione Modello tesi presentazione
Modello tesi presentazione
 
Tesi De Franceschi Daniel
Tesi De Franceschi DanielTesi De Franceschi Daniel
Tesi De Franceschi Daniel
 
Slides implementazione di un sistema per la generazione di stimoli visivi e l...
Slides implementazione di un sistema per la generazione di stimoli visivi e l...Slides implementazione di un sistema per la generazione di stimoli visivi e l...
Slides implementazione di un sistema per la generazione di stimoli visivi e l...
 
RETI di LABORATORI - [Aeronautico] GREENENGINE
RETI di LABORATORI - [Aeronautico] GREENENGINERETI di LABORATORI - [Aeronautico] GREENENGINE
RETI di LABORATORI - [Aeronautico] GREENENGINE
 
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - TesiRilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
Rilevamento di facce in flussi video per l'ausilio ai non vedenti - Tesi
 
Ignite IBB : Laura Botti : progetto RIPEG
Ignite IBB : Laura Botti : progetto RIPEG Ignite IBB : Laura Botti : progetto RIPEG
Ignite IBB : Laura Botti : progetto RIPEG
 
I METODI DELL’INTELLIGENZA ARTIFICIALE NELL’ANALISI E NELLA PROGETTAZIONE D...
I METODI DELL’INTELLIGENZA ARTIFICIALE  NELL’ANALISI E NELLA PROGETTAZIONE  D...I METODI DELL’INTELLIGENZA ARTIFICIALE  NELL’ANALISI E NELLA PROGETTAZIONE  D...
I METODI DELL’INTELLIGENZA ARTIFICIALE NELL’ANALISI E NELLA PROGETTAZIONE D...
 
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
Realizzazione di un controllore basato su piattaforma robotica Thymio 2.
 
Controllo di un'entità mobile da un'applicazione Android - 2013/2014
Controllo di un'entità mobile da un'applicazione Android - 2013/2014Controllo di un'entità mobile da un'applicazione Android - 2013/2014
Controllo di un'entità mobile da un'applicazione Android - 2013/2014
 
Rilievo fotogrammetrico e multispettrale
Rilievo fotogrammetrico e multispettraleRilievo fotogrammetrico e multispettrale
Rilievo fotogrammetrico e multispettrale
 

Dernier

Dernier (9)

GIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
GIORNATA TECNICA 18/04 | SPIZZIRRI MassimoGIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
GIORNATA TECNICA 18/04 | SPIZZIRRI Massimo
 
GIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
GIORNATA TECNICA DA AQP 18/04 | ZONNO SerenaGIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
GIORNATA TECNICA DA AQP 18/04 | ZONNO Serena
 
Presentzione Matematica similitudini circonferenze e omotetie.pptx
Presentzione  Matematica similitudini circonferenze e omotetie.pptxPresentzione  Matematica similitudini circonferenze e omotetie.pptx
Presentzione Matematica similitudini circonferenze e omotetie.pptx
 
Descrizione della struttura architettonica Eretteo.pptx
Descrizione della struttura architettonica Eretteo.pptxDescrizione della struttura architettonica Eretteo.pptx
Descrizione della struttura architettonica Eretteo.pptx
 
GIORNATA TECNICA 18/04 | DE LEO Antonio
GIORNATA TECNICA 18/04  | DE LEO AntonioGIORNATA TECNICA 18/04  | DE LEO Antonio
GIORNATA TECNICA 18/04 | DE LEO Antonio
 
GIORNATA TECNICA 18/04 | BENANTI Alessandro
GIORNATA TECNICA 18/04 | BENANTI AlessandroGIORNATA TECNICA 18/04 | BENANTI Alessandro
GIORNATA TECNICA 18/04 | BENANTI Alessandro
 
GIORNATA TECNICA 18/04 | DE ROSA Roberto
GIORNATA TECNICA 18/04 | DE ROSA RobertoGIORNATA TECNICA 18/04 | DE ROSA Roberto
GIORNATA TECNICA 18/04 | DE ROSA Roberto
 
GIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
GIORNATA TECNICA DA AQP 18/04 | MOTTA SimoneGIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
GIORNATA TECNICA DA AQP 18/04 | MOTTA Simone
 
GIORNATA TECNICA 18/04 | LITTERIO Raffaele
GIORNATA TECNICA 18/04 | LITTERIO RaffaeleGIORNATA TECNICA 18/04 | LITTERIO Raffaele
GIORNATA TECNICA 18/04 | LITTERIO Raffaele
 

Android Visual Odometry

  • 1. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Universit`a degli Studi di Firenze Facolt`a di Ingegneria Progetto e sviluppo di un modulo di visual odometry per dispositivi mobili Marco Righini Relatore: Prof. Pietro Pala Co-relatore: Ing. Walter Nunziati 5 Marzo 2012 Marco Righini Modulo di visual odometry per dispositivi mobili
  • 2. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Sommario 1. Odometria visuale 2. Flusso ottico e stima del moto 3. Architettura dell’applicazione 4. Risultati dei test effettuati Marco Righini Modulo di visual odometry per dispositivi mobili
  • 3. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Visual odometry L’obiettivo principale della tesi `e la realizzazione di un modulo per il supporto alla navigazione indoor su dispositivi mobili. Approcci esistenti e relative limitazioni: Metodo Limitazioni Triangolazione/trilaterazione wifi Necessit`a di ambiente strumentato RFID attivi/passivi Necessit`a di ambiente strumentato Sensori inerziali del dispositivo Alta rumorosit`a del segnale Alternativa: visual odometry Determinare il percorso effettuato tramite l’analisi video della sequenza di immagini catturate dalla telecamera. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 4. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Visual odometry L’obiettivo principale della tesi `e la realizzazione di un modulo per il supporto alla navigazione indoor su dispositivi mobili. Approcci esistenti e relative limitazioni: Metodo Limitazioni Triangolazione/trilaterazione wifi Necessit`a di ambiente strumentato RFID attivi/passivi Necessit`a di ambiente strumentato Sensori inerziali del dispositivo Alta rumorosit`a del segnale Alternativa: visual odometry Determinare il percorso effettuato tramite l’analisi video della sequenza di immagini catturate dalla telecamera. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 5. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Visual odometry L’obiettivo principale della tesi `e la realizzazione di un modulo per il supporto alla navigazione indoor su dispositivi mobili. Approcci esistenti e relative limitazioni: Metodo Limitazioni Triangolazione/trilaterazione wifi Necessit`a di ambiente strumentato RFID attivi/passivi Necessit`a di ambiente strumentato Sensori inerziali del dispositivo Alta rumorosit`a del segnale Alternativa: visual odometry Determinare il percorso effettuato tramite l’analisi video della sequenza di immagini catturate dalla telecamera. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 6. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Dispositivi mobili Gli studi di odometria visuale presenti in letteratura si riferiscono ad un utilizzo tipico su piattaforme robotiche caratterizzate da: movimenti controllati; configurazione hardware scelta ad hoc. I dispositivi mobili costituiscono un ambito applicativo differente: nessun controllo di posa; componenti hardware limitate e vincolate dal costruttore. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 7. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Dispositivi mobili Gli studi di odometria visuale presenti in letteratura si riferiscono ad un utilizzo tipico su piattaforme robotiche caratterizzate da: movimenti controllati; configurazione hardware scelta ad hoc. I dispositivi mobili costituiscono un ambito applicativo differente: nessun controllo di posa; componenti hardware limitate e vincolate dal costruttore. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 8. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Approccio seguito Ad ogni istante. . . La posizione corrente `e ottenuta a partire dalla posizione precedente tramite il calcolo dello spostamento relativo effettuato. Il metodo risolutivo adottato `e di tipo iterativo e prevede per ogni coppia di frame acquisiti: 1 Calcolo del flusso ottico; Keypoint detection. Estrazione punti interessanti dal primo frame; Keypoint tracking. Ricerca delle corrispondenze nel frame successivo. 2 Stima del moto. Calcolo della trasformazione proiettiva (omografia). Marco Righini Modulo di visual odometry per dispositivi mobili
  • 9. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Approccio seguito Ad ogni istante. . . La posizione corrente `e ottenuta a partire dalla posizione precedente tramite il calcolo dello spostamento relativo effettuato. Il metodo risolutivo adottato `e di tipo iterativo e prevede per ogni coppia di frame acquisiti: 1 Calcolo del flusso ottico; Keypoint detection. Estrazione punti interessanti dal primo frame; Keypoint tracking. Ricerca delle corrispondenze nel frame successivo. 2 Stima del moto. Calcolo della trasformazione proiettiva (omografia). Marco Righini Modulo di visual odometry per dispositivi mobili
  • 10. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Approccio seguito Ad ogni istante. . . La posizione corrente `e ottenuta a partire dalla posizione precedente tramite il calcolo dello spostamento relativo effettuato. Il metodo risolutivo adottato `e di tipo iterativo e prevede per ogni coppia di frame acquisiti: 1 Calcolo del flusso ottico; Keypoint detection. Estrazione punti interessanti dal primo frame; Keypoint tracking. Ricerca delle corrispondenze nel frame successivo. 2 Stima del moto. Calcolo della trasformazione proiettiva (omografia). Marco Righini Modulo di visual odometry per dispositivi mobili
  • 11. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Approccio seguito Ad ogni istante. . . La posizione corrente `e ottenuta a partire dalla posizione precedente tramite il calcolo dello spostamento relativo effettuato. Il metodo risolutivo adottato `e di tipo iterativo e prevede per ogni coppia di frame acquisiti: 1 Calcolo del flusso ottico; Keypoint detection. Estrazione punti interessanti dal primo frame; Keypoint tracking. Ricerca delle corrispondenze nel frame successivo. 2 Stima del moto. Calcolo della trasformazione proiettiva (omografia). Marco Righini Modulo di visual odometry per dispositivi mobili
  • 12. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Scenario applicativo Il procedimento richiede che le corrispondenze dei punti siano proiezione di una stessa struttura planare. Situazioni critiche: corridoi stretti; rotazioni ravvicinate ad oggetti sporgenti; oggetti vicini in movimento. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 13. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Scenario applicativo Il procedimento richiede che le corrispondenze dei punti siano proiezione di una stessa struttura planare. Situazioni critiche: corridoi stretti; rotazioni ravvicinate ad oggetti sporgenti; oggetti vicini in movimento. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 14. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Flusso ottico sparso Flusso ottico Moto apparente di pattern di luminosit`a quando la telecamera `e in moto relativo rispetto agli oggetti inquadrati nell’immagine. Il metodo utilizzato `e di tipo sparso e prevede il calcolo del flusso ottico solamente per un sottoinsieme di punti notevoli (keypoint) dell’immagine. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 15. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Flusso ottico sparso Flusso ottico Moto apparente di pattern di luminosit`a quando la telecamera `e in moto relativo rispetto agli oggetti inquadrati nell’immagine. Il metodo utilizzato `e di tipo sparso e prevede il calcolo del flusso ottico solamente per un sottoinsieme di punti notevoli (keypoint) dell’immagine. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 16. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Rilevamento ed inseguimento keypoint Rilevamento FAST [Rosten, 2006]. Opera considerando la circonferenza di 16 pixel centrata nel punto candidato p. Inseguimento LK [Lucas and Kanade, 1981]. Fornisce una soluzione all’equazione generale del flusso ottico v utilizzando una finestra di pixel S ed il metodo dei minimi quadrati pesati: v = [vx vy ] = argmin v u∈S wu I(u, t) · vT + ∂I ∂t (u, t) 2 Marco Righini Modulo di visual odometry per dispositivi mobili
  • 17. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Rilevamento ed inseguimento keypoint Rilevamento FAST [Rosten, 2006]. Opera considerando la circonferenza di 16 pixel centrata nel punto candidato p. Inseguimento LK [Lucas and Kanade, 1981]. Fornisce una soluzione all’equazione generale del flusso ottico v utilizzando una finestra di pixel S ed il metodo dei minimi quadrati pesati: v = [vx vy ] = argmin v u∈S wu I(u, t) · vT + ∂I ∂t (u, t) 2 Marco Righini Modulo di visual odometry per dispositivi mobili
  • 18. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Stima della trasformazione proiettiva (omografia) L’obiettivo `e determinare la relazione tra immagini degli stessi punti di un piano quando il punto di vista dell’osservatore cambia. x ∼ H · x con H ∈ R3×3 La matrice omografia H presenta 8 gradi di libert`a e per calcolarla sono necessarie 4 corrispondenze di punti o linee. Tipicamente `e utilizzato un metodo di stima robusta (RANSAC) su pi`u corrispondenze. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 19. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Stima della trasformazione proiettiva (omografia) L’obiettivo `e determinare la relazione tra immagini degli stessi punti di un piano quando il punto di vista dell’osservatore cambia. x ∼ H · x con H ∈ R3×3 La matrice omografia H presenta 8 gradi di libert`a e per calcolarla sono necessarie 4 corrispondenze di punti o linee. Tipicamente `e utilizzato un metodo di stima robusta (RANSAC) su pi`u corrispondenze. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 20. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Stima della trasformazione proiettiva (omografia) L’obiettivo `e determinare la relazione tra immagini degli stessi punti di un piano quando il punto di vista dell’osservatore cambia. x ∼ H · x con H ∈ R3×3 La matrice omografia H presenta 8 gradi di libert`a e per calcolarla sono necessarie 4 corrispondenze di punti o linee. Tipicamente `e utilizzato un metodo di stima robusta (RANSAC) su pi`u corrispondenze. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 21. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Pattern di calibrazione Tramite la composizione (moltiplicazione) delle omografie `e possibile ottenere lo spostamento in pixel rispetto al sistema di riferimento dell’immagine iniziale. . . . e per la rispettiva distanza in metri Si utilizza un pattern di calibrazione di dimensioni metriche note e si calcola l’omografia di calibrazione. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 22. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Pattern di calibrazione Tramite la composizione (moltiplicazione) delle omografie `e possibile ottenere lo spostamento in pixel rispetto al sistema di riferimento dell’immagine iniziale. . . . e per la rispettiva distanza in metri Si utilizza un pattern di calibrazione di dimensioni metriche note e si calcola l’omografia di calibrazione. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 23. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Pattern di calibrazione Tramite la composizione (moltiplicazione) delle omografie `e possibile ottenere lo spostamento in pixel rispetto al sistema di riferimento dell’immagine iniziale. . . . e per la rispettiva distanza in metri Si utilizza un pattern di calibrazione di dimensioni metriche note e si calcola l’omografia di calibrazione. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 24. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Android e OpenCV Il processo di keypoint detection, tracking e calcolo dell’omografia `e stato implementato in un’applicazione per la piattaforma Android. La libreria OpenCV ha fornito gli strumenti base di computer vision. Oltre all’implementazione standard C/C++ esiste un porting per Android in linguaggio Java. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 25. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Android e OpenCV Il processo di keypoint detection, tracking e calcolo dell’omografia `e stato implementato in un’applicazione per la piattaforma Android. La libreria OpenCV ha fornito gli strumenti base di computer vision. Oltre all’implementazione standard C/C++ esiste un porting per Android in linguaggio Java. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 26. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Android NDK L’Android NDK permette di integrare codice nativo C/C++ all’interno delle applicazioni Android. Sviluppo nativo Modulo di visual odometry nativo ed autocontenuto. Motivazioni: Ottimizzazione delle prestazioni; Riduzione tempi di overhead. Il porting di OpenCV `e un wrapper per chiamate alla libreria standard C/C++; Riutilizzo codice per test in locale. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 27. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Android NDK L’Android NDK permette di integrare codice nativo C/C++ all’interno delle applicazioni Android. Sviluppo nativo Modulo di visual odometry nativo ed autocontenuto. Motivazioni: Ottimizzazione delle prestazioni; Riduzione tempi di overhead. Il porting di OpenCV `e un wrapper per chiamate alla libreria standard C/C++; Riutilizzo codice per test in locale. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 28. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Android NDK L’Android NDK permette di integrare codice nativo C/C++ all’interno delle applicazioni Android. Sviluppo nativo Modulo di visual odometry nativo ed autocontenuto. Motivazioni: Ottimizzazione delle prestazioni; Riduzione tempi di overhead. Il porting di OpenCV `e un wrapper per chiamate alla libreria standard C/C++; Riutilizzo codice per test in locale. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 29. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Android NDK L’Android NDK permette di integrare codice nativo C/C++ all’interno delle applicazioni Android. Sviluppo nativo Modulo di visual odometry nativo ed autocontenuto. Motivazioni: Ottimizzazione delle prestazioni; Riduzione tempi di overhead. Il porting di OpenCV `e un wrapper per chiamate alla libreria standard C/C++; Riutilizzo codice per test in locale. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 30. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Android NDK L’Android NDK permette di integrare codice nativo C/C++ all’interno delle applicazioni Android. Sviluppo nativo Modulo di visual odometry nativo ed autocontenuto. Motivazioni: Ottimizzazione delle prestazioni; Riduzione tempi di overhead. Il porting di OpenCV `e un wrapper per chiamate alla libreria standard C/C++; Riutilizzo codice per test in locale. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 31. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Architettura dell’applicazione Ottimizzazioni: Maschere di rilevamento keypoint. Ridurre punti estranei al piano-pavimento; Ripetizione omografia. Nel caso limite in cui non sia possibile calcolare l’omografia, `e utilizzata l’ultima computata. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 32. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Architettura dell’applicazione Ottimizzazioni: Maschere di rilevamento keypoint. Ridurre punti estranei al piano-pavimento; Ripetizione omografia. Nel caso limite in cui non sia possibile calcolare l’omografia, `e utilizzata l’ultima computata. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 33. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Architettura dell’applicazione Ottimizzazioni: Maschere di rilevamento keypoint. Ridurre punti estranei al piano-pavimento; Ripetizione omografia. Nel caso limite in cui non sia possibile calcolare l’omografia, `e utilizzata l’ultima computata. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 34. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni User interface L’interfaccia utente `e composta da due activity: Calibration Activity Map Activity Marco Righini Modulo di visual odometry per dispositivi mobili
  • 35. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni User interface L’interfaccia utente `e composta da due activity: Calibration Activity Map Activity Marco Righini Modulo di visual odometry per dispositivi mobili
  • 36. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Test e risultati Accuratezza del modulo di navigazione Differenza tra la posizione reale e quella computata. Strettamente dipendente dalla scelta dei parametri liberi degli algoritmi. Ottimizzazione locale. Per ogni fase del processo di visual odometry `e stata scelta la configurazione ottimale tramite l’analisi di opportuni descrittori. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 37. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Test e risultati Accuratezza del modulo di navigazione Differenza tra la posizione reale e quella computata. Strettamente dipendente dalla scelta dei parametri liberi degli algoritmi. Ottimizzazione locale. Per ogni fase del processo di visual odometry `e stata scelta la configurazione ottimale tramite l’analisi di opportuni descrittori. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 38. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Test e risultati Accuratezza del modulo di navigazione Differenza tra la posizione reale e quella computata. Strettamente dipendente dalla scelta dei parametri liberi degli algoritmi. Ottimizzazione locale. Per ogni fase del processo di visual odometry `e stata scelta la configurazione ottimale tramite l’analisi di opportuni descrittori. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 39. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Confronto algoritmi di keypoint detection Ripetibilit`a. Stabilit`a geometrica dei keypoint estratti in due immagini della stessa scena, catturate da punti di vista differenti. 1 2 3 4 5 6 7 8 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Immagine Ripetibilit´a ST3 ST4 ST5 ST6 ST7 ST8 ST9 ST10 FAST Tempo di esecuzione. L’algoritmo FAST `e circa 9 volte pi`u veloce di Shi-Tomasi. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 40. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Confronto algoritmi di keypoint detection Ripetibilit`a. Stabilit`a geometrica dei keypoint estratti in due immagini della stessa scena, catturate da punti di vista differenti. 1 2 3 4 5 6 7 8 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Immagine Ripetibilit´a ST3 ST4 ST5 ST6 ST7 ST8 ST9 ST10 FAST Tempo di esecuzione. L’algoritmo FAST `e circa 9 volte pi`u veloce di Shi-Tomasi. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 41. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Prestazioni algoritmo di tracking LK Accuratezza. `E rappresentata dal numero di keypoint inseguiti e dall’errore sugli stessi. 92.5 93 93.5 94 94.5 95 95.5 16 16.5 17 17.5 18 9 11 13 15 17 19 21 23 25 27 29 media percentuale keypoint inseguiti erroremedio Marco Righini Modulo di visual odometry per dispositivi mobili
  • 42. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Accuratezza del modulo di navigazione Percorso (circa 10m) Lineare Andata e ritorno Deviazione vmin m s 0.04 0.09 0.086 vmax m s 0.38 0.2 0.19 Numero prove 15 10 10 Errore medio % 8.13 8.33 14.89 Marco Righini Modulo di visual odometry per dispositivi mobili
  • 43. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Conclusioni e sviluppi futuri Il lavoro di ricerca ha permesso: lo sviluppo di un modulo di visual odometry e del prototipo di applicazione di navigazione; la caratterizzazione degli algoritmi al variare dei parametri liberi; la determinazione delle performance necessarie all’esecuzione del modulo. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 44. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Conclusioni e sviluppi futuri Il lavoro di ricerca ha permesso: lo sviluppo di un modulo di visual odometry e del prototipo di applicazione di navigazione; la caratterizzazione degli algoritmi al variare dei parametri liberi; la determinazione delle performance necessarie all’esecuzione del modulo. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 45. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Conclusioni e sviluppi futuri Il lavoro di ricerca ha permesso: lo sviluppo di un modulo di visual odometry e del prototipo di applicazione di navigazione; la caratterizzazione degli algoritmi al variare dei parametri liberi; la determinazione delle performance necessarie all’esecuzione del modulo. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 46. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Grazie per l'attenzione Marco Righini Modulo di visual odometry per dispositivi mobili
  • 47. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Shi-Tomasi Valuta il punto candidato p tramite l’analisi degli autovalori λ1 e λ2 della matrice di autocorrelazione Mac = u∈S wu ∂I ∂x 2 (u) u∈S wu ∂I ∂x (u) ∂I ∂y (u) u∈S wu ∂I ∂x (u) ∂I ∂y (u) u∈S wu ∂I ∂y 2 (u) Sia λp = min(λ1,λ2) e λ un valore soglia fissato: λp ≤ λ indica un edge o una regione uniforme; λp > λ rivela un keypoint. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 48. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Flusso ottico sparso Assunzioni fondamentali: Intensit`a costante; Persistenza temporale; Coerenza spaziale. Si ottiene l’equazione fondamentale del flusso ottico v: I · vT = − ∂I ∂t Una equazione in due incognite. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 49. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Maschere di rilevamento keypoint Nel compimento di rotazioni ravvicinate ad ostacoli sporgenti, `e risultato evidente che, nella maggior parte dei casi, i punti estranei si dispongono nella parte superiore dell’inquadratura. In particolare sono state individuate tre diverse situazioni, corrispondenti a diverse distanze dagli ostacoli: Marco Righini Modulo di visual odometry per dispositivi mobili
  • 50. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Fasi dei test di ripetibilit`a Calibrazione dei valori di soglia. Per ogni pavimentazione sia estratto un numero sufficiente di keypoint; Warping delle immagini; Calcolo della ripetibilit`a. Al variare dei parametri liberi: 1 Keypoint detection. Rilevazione dei keypoint sull’immagine originale (P1) e sull’immagine trasformata (P2); 2 Punti ripetuti. R2 = {(p1, p2) ∈ P1 × P2|d(H · p1, p2) < 2}; 3 Ripetibilit`a. r2 = |R2| min (n1,n2) con n1 = |P1| e n2 = |P2|. Marco Righini Modulo di visual odometry per dispositivi mobili
  • 51. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Dataset dei test di ripetibilit`a Marco Righini Modulo di visual odometry per dispositivi mobili
  • 52. Introduzione Studi teorici Progettazione e implementazione Risultati sperimentali Conclusioni Performance dell’algoritmo LK 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 16 16.5 17 17.5 18 18.5 19 19.5 20 9 11 13 1517 19 21 23 25 27 29 31 4 fps 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 16 16.5 17 17.5 18 18.5 19 19.5 20 7 9 11 131517 19 21 23 25 27 29 31 8 fps erroremedio 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 16 16.5 17 17.5 18 18.5 19 19.5 20 7 9 11 13 1517 192123 25 27 29 31 media percentuale keypoint inseguiti 16 fps Marco Righini Modulo di visual odometry per dispositivi mobili