Sistemi di visione per la
navigazione autonoma
Relatore: ch.mo prof. Ruggero FREZZA
Laureando: Andrea ROSSETTI
Padova, 11 aprile 2005
Il problema della visione stereo
(Ohta-Kanade, 1986)
• Vogliamo realizzare un algoritmo di visione stereo real-time, per
valutare le distanze di oggetti inquadrati da due telecamere
• Feature: useremo le intensità dei pixel, danno output densi e
hanno un campo di applicazione ampio (es.: interni-esterni)
2
Relazione disparità-distanza
• Se le telecamere hanno piani focali complanari e allineati,
posso trovare la distanza in base alla disparità con
un’opportuna triangolazione
• Distanza: inv. prop. alla disparità
bf
Z 
d
• Risoluzione: prop. al quadrato
della distanza
2
Z
Z 
d
bf
Z
f = focale
d = disparità
b = baseline
3
Procedura di rettificazione
• Problema: non sempre posso
disporre di piani focali così
allineati
W
R2
M11
M
M
M22
CC22
• Si riproiettano le immagini su
piani focali complanari
allineati, con una rotazione dei
R1
piani attorno ai centri focali
C1
• Funzione disponibile nella
libreria OpenCV
4
Mappe di disparità
• L’output del programma consiste in un immagine in toni di
grigio: maggiore la disparità, maggiore l’intensità luminosa
• Quindi oggetti più vicini = toni di grigio più chiari
• Dalla mappa di disparità è immediato risalire alle distanze con
la relazione disparità-distanza
Cam.1
Cam.2
5
Disparità con metodi locali
• Utilizzo la funzione SSD per
confrontare due zone rettangolari
nell’immagine sinistra e destra
2
[
I
(
j

d
,
i
)

I
(
j
,
i
)]
 L
R
( i , j )W ( x , y )
• Per ogni punto (x,y) scelgo il
valore di disparità dmin che
minimizza SSD(x,y,d)
• SSD
in
programmazione
dinamica: il tempo di calcolo
diventa indipendente dall’area
della finestra
• Tempo totale di esecuzione:
O(righe • colonne • max.livelli)
6
• Cerco la sequenza di matching tra
feature
che
massimizza
la
probabilità di matching dell’intera
scanline; tengo conto di eventuali
occlusioni (feature visibili in 1 sola
imm.)
• Equivalente ad un problema
di cammino a costo minimo
(Dijkstra)
Scanline destra
Disparità con metodi globali
Scanline sinistra
• Superiorità rispetto
ai metodi locali
Originale
Met.locali
Met.globali
7
Metodi globali: vincoli
• Alcune combinazioni di matching corrispondono a soluzioni
fisicamente impossibili: le scartiamo imponendo dei vincoli
• Vincolo di unicità: uno stesso pixel non può appartenere a due
matching diversi
• Vincolo di ordinamento: scelti due matching (l1,r1) e (l2,r2), se
l1<l2 allora anche r1<r2 e viceversa
Metodi globali: tempo di esecuzione
O(righe • colonne • max.livelli)
pari a quello ottenibile con metodi locali
8
Metodi globali: miglioramenti
• Uso della SSD anche nell’algoritmo globale
• Vincolo di stabilizzazione: a
un’occlusione destra non
può seguire un’occlusione
sinistra, e viceversa (almeno
un pixel di matching nel
mezzo)
• Termine a priori: aggiungiamo alla funzione di costo una
probabilità gaussiana centrata sul valore di disparità al
frame precedente; funzionamento in feedback
9
Filtraggio di Kalman
• Vogliamo attenuare la rumorosità delle misure di disparità
• Per ogni pixel dell’output uso un filtro di Kalman con modello
dinamico molto semplice:
Dt 1  Dt  
• Matrici di covarianza Q ed R: vanno regolate a un valore di
compromesso tra buona attenuazione del rumore ed eccessiva
presenza di “scie” in output
• Ottimizzazione con OpenCV: le operazioni matematiche per il
filtraggio vengono eseguite in blocco su tutti i pixel con funzioni
altamente ottimizzate
10
Risultati sperimentali
PC P4 2GHz
RAM 512MB
Firewire
1280x1024
256 toni di
grigio
11
Risultati sperimentali
Telec.destra
Telec.sinistra
Distanza
12
Sviluppi futuri
• Integrazione con i software per il controllo
e il path planning
• Modelli più avanzati per il Filtro di Kalman
• Uso di immagini a colori
• Ottimizzazione con istruzioni SIMD e
parallelizzazione per un miglior frame rate
•Website: http://andrear.altervista.org/tesi
13
Scarica

Metodi globali