Presentation that reports the main concepts and results of my Bachelor of Engineering final project at University of Florence about 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