applicazione per la rilevazione del goal “fantasma”

Omografia e Parallasse: applicazione per la
rilevazione del goal “fantasma”
Loris Bazzani VR067184
27 giugno 2008
Indice
1 Introduzione
1.1 Elementi di Computer Vision . . . . . . . . . . . . . . . . . . . .
1
2
2 Geometria epipolare di un piano
3
3 Omografia indotta da un piano
3.1 Stima dell’omografia . . . . . . . . . . . . . . . . . . . . . . . . .
4
5
4 Omografia infinito
7
5 Parallasse
5.1 Stima dell’epipolo . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Stima del parallasse . . . . . . . . . . . . . . . . . . . . . . . . .
7
8
10
6 Applicazione: Rilevazione del goal “fantasma”
11
6.1 Problemi pratici . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
7 Conclusioni
1
16
Introduzione
La Computer Vision, in italiano Visione artificiale, definisce gli elementi teorici
per ricostruire una scena tridimensionale a partire da immagini bidimensionali
acquisite da punti di vista differenti. In altre parole permette alle macchine di
“vedere” cercando di emulare la percezione visiva umana. Il mapping tra la
scena e la retina contiene una perdita di informazione intrinseca: riduzione di
dimensionalità da 3D a 2D. È poi il cervello a processare i dati provenienti dai
recettori dei due occhi per eseguire una ricostruzione 3D.
In questo lavoro si studia l’aspetto geometrico di tale disciplina tralasciando
molti argomenti interessanti, i quali richiederebbero diversi libri per essere analizzati nel dettaglio. Lo scopo principale è la realizzazione di un’applicazione
per rilevare il goal in un calcio di rigore, studiando cosı̀ alcuni argomenti rilevanti nell’ambito della Visione artificiale. Si dá una base teorica che riguarda
la geometria di due viste con l’asse ottico verso un piano. Gli elementi che ci
serviranno sono l’omografia, che è una specializzazione della geometria di due
1
viste. Poi ci servirà il parallasse, che in una sua accezione può essere visto come
una sorta di distanza dei punti 3D dal piano.
Nella sottosezione successiva si descrivono gli elementi basilari utili per la
definizione dell’omografia. In seguito si entra nel dettaglio nella definizione e nel
calcolo dell’omografia, dell’epipolo e del parallasse. Infatti per ogni argomento
rilevante in questo contesto verrà presentato il codice Matlab che lo implementa.
L’ultima parte descrive l’utilizzo delle tecniche definite per una applicazione
particolare: la rivelazione del goal “fantasma”.
1.1
Elementi di Computer Vision
La geometria epipolare descrive la relazione geometrica tra due viste prospettive
della stessa scena tridimensionale. L’elemento chiave di tale teoria è che i punti
delle due immagini, i quali corrispondono allo stesso punto 3D, giacciono in
linee particolari dell’immagine: rette epipolari. La retta epipolare di un punto
contenuto in una vista è la proiezione del raggio ottico di quel punto sull’altra
vista. In termini formali si ha la seguente equazione:
ml
ζr mr = er + ζl Pr1:3 Pl−1
1:3
(1)
che rappresenta il vincolo epipolare. Pl e Pr sono rispettivamente la matrice di
proiezione prospettica della telecamera sinistra e destra. Tale vincolo permette
di fare triangolazione, ovvero dati due punti corrispondenti si può calcolare la
profondità del punto 3D. La ricostruzione della scena viene effettuata tramite il
meccanismo di triangolazione.
Se conosciamo le matrici Pl e Pr siamo nel caso di telecamera calibrata.
In caso contrario non conosciamo niente sulla geometria epipolare della scena,
perciò ci viene in aiuto la matrice fondamentale. La matrice fondamentale permette di descrivere la geometria epipolare nel caso in cui non si conosce niente
sulle telecamere: parametri intrinseci ed estrinseci sconosciuti. Siano due telecamere Pl = Kl [I|0] e Pr = Kr [R|t], la matrice fondamentale si ottiene tramite
la manipolazione del vincolo epipolare ottenendo:
mr [er ]× Kr RKl−1 ml = 0
{z
}
|
(2)
F
dove F = [er ]× Kr RKl−1 è la matrice fondamentale. Con tale matrice è possibile
ricostruire la scena a meno di una trasformazione proiettiva.
Una proiettività o trasformazione proiettiva f : Pn → Pn è un’applicazione
lineare in coordinate omogenee tale per cui:
f :Rn+1 → Rn+1
(3)
x 7→ H · x
(4)
dove H è una matrice (n + 1) × (n + 1) non singolare. Altri sinonimi per proiettività sono omografia oppure collineazione. Se viene applicata una collineazione
ad un insieme di punti che giacciono su una retta, dopo la trasformazione i punti
apparterranno ancora ad una retta trasformata. In altre parole, un omografia
ha la proprietà di preservare la collinearità dei punti. Tuttavia non mantiene il
parallelismo tra lati, angoli e nemmeno le lunghezze di segmenti, essendo una
trasformazione generale (non ci sono molti vincoli nella definizione).
2
2
Geometria epipolare di un piano
La geometria epipolare, vista nella sezione precedente, può essere specializzata
in un caso particolare: due telecamere acquisiscono immagini da una scena in
cui è presente un piano. La situazione si presenta come illustrato in figura 1. La
Figura 1: Omografia indotta dal piano Π sui due piani immagine
figura rappresenta il piano Π che è definito nel sistema di riferimento mondo,
Il e Ir sono rispettivamente i piani immagine delle telecamere di sinistra a di
destra. Hl e Hr sono le trasformazioni che proiettano i punti del piano in Il e
Ir . Il mapping che esiste tra il piano Π e la sua proiezione sull’immagine, i.e.
Hl e Hr , è una collineazione in P2 .
Per dimostrare ciò basta fissare il sistema di riferimento del mondo in modo
tale che il piano formato dai versori x e y corrisponda con il piano Π. Questo
corrisponde all’annullamento della componente z. L’immediata conseguenza di
questa operazione si riflette nell’espansione dell’equazione proiettiva:
 
 
 
x
u
x
y 
 = [P1 |P2 |P4 ] y 
ζ v  = P 
(5)
0
1
1
1
|{z}
|{z}
m
M
dove P è la matrice di proiezione della telecamera (con Pi si indica l’i-esima
colonna di P ). L’equazione 5 rappresenta il mapping tra un punto del piano
M e un punto dell’immagine m; la matrice [P1 |P2 |P4 ] (3 × 3 e non singolare) è
perciò una collineazione in P2 .
Quindi si hanno due collineazioni: una per l’immagine sinistra e una per la
destra. Si può notare dalla figura 1 che esiste una trasformazione anche tra punti dell’immagine sinistra nell’immagine destra (Hr Hl−1 ) e inoltre è invertibile.
In questo caso un punto dell’immagine sinistra si proietta in un unico punto
nell’immagine destra e viceversa. Vi è una corrispondenza punto-punto tra le
due immagini, al contrario di quanto avveniva per la matrice fondamentale, la
quale rappresenta un mapping punto-retta epipolare.
3
3
Omografia indotta da un piano
Ora cerchiamo di analizzare meglio cosa succede tra le due telecamere. Si vuole
dimostrare che i punti delle immagini che appartengono al piano Π sono legati
da una ulteriore collineazione. In altre parole, dato un punto ml del piano
esiste una collineazione che permette di calcolare il punto corrispondente mr .
Più formalmente, il piano Π induce una collineazione HΠ tra le viste, la quale
trasferisce punti da una vista all’altra nel seguente modo:
mr ' HΠ ml ∀M ∈ Π
(6)
dove HΠ è una matrice non singolare 3 × 3. L’equazione 6 vale nel caso in
cui il punto M nel sistema di riferimento mondo appartiene al piano. Se il
punto si sposta dal piano, l’equazione 6 diventa “meno vera”. Lo scarto definito dalla proiezione dello spostamento di M si chiama parallasse; lo vedremo
dettagliatamente nelle sezioni successive.
Una collineazione ha otto gradi di libertà, in quanto è definita a meno di un
fattore di scala, mentre l’istanziazione di un piano nello spazio ha bisogno di
tre parametri: normale e distanza dall’origine. A questo punto una domanda
può sorgere spontanea: non dovrebbero avere gli stessi gradi di libertà? In caso
affermativo che vincoli su HΠ mancano? Non manca alcun vincolo, perchè HΠ
permette di definire qualsiasi omografia indotta da un piano generico. Mentre un
piano viene definito in dipendenza al sistema di riferimento. In corrispondenza
al piano si dovrebbero considerare anche i cinque gradi di libertà di tutte le
possibili configurazione delle telecamere (R e t).
Qualsiasi combinazione casuale di numeri può generare un’omografia (se
non singolare). Però non tutte sono compatibili con la geometria epipolare.
Per esprimere meglio tale concetto si considerano i punti che soddisfano 6 e si
inseriscono in 2:
T
(HΠ ml ) F ml = 0.
| {z }
(7)
mr
L’equazione 7 corrisponde ad affermare che la collineazione indotta dal piano
deve essere compatibile con la geometria epipolare. Manipolando l’equazione 7
si ottiene:
T
mTl (HΠ
F )ml = 0
(8)
T
il che implica l’anti-simmetria della matrice HΠ
F . Un altro modo per scrivere
il vincolo di anti-simmetria di una matrice è il seguente:
T
HΠ
F + F T HΠ = 03×3 .
(9)
Come si può notare, si ha un sistema di nove equazioni perché la matrice risultante dalla somma è 3 × 3. Le componenti di una matrice anti-simmetrica
non sono tutte indipendenti per definizione. In particolare solo sei componenti
sono indipendenti, le rimanenti tre sono un cambio di segno delle altre. Questi
sono i vincoli per la definizione di una collineazione che sia compatibile con la
matrice fondamentale. Il concetto di compatibilità è abbastanza delicato: una
collineazione si dice compatibile a F se i punti sul piano soddisfano l’equazione
4
7, ovvero se i vincoli del sistema di equazioni 9 sono soddisfatti1 . Inoltre si
dimostra che una collineazione H è compatibile ad F se e solo se:
F ' [er ]× H.
(10)
Per pervenire ad un metodo per calcolare HΠ si manipola l’equazione 1 della
retta epipolare destra considerando solo i punti M che appartengono al piano
Π. Tali punti hanno equazione nT M = d dove n è la normale al piano e d la
distanza dall’origine. Perciò si ottiene:
t · nT
ζr
mr = Kr R +
Kl−1 ml .
(11)
ζl
d
Dunque, mettendo insieme l’equazione 6 e 11 si ottiene la forma esplicita della
collineazione indotta da Π:
t · nT
Kl−1 .
HΠ = Kr R +
(12)
d
Nel caso di telecamera calibrata, in cui sono noti tutti parametri sia impliciti
che espliciti, il calcolo di HΠ risulta immediato. Però si nota che si ha una
parametrizzazione della collineazione che dipende dalla definizione del piano,
ovvero compaiono i termini n e d. Per questo motivo risulta più efficace definire
una procedura basata sulle corrispondenze tra punti.
3.1
Stima dell’omografia
Dato un insieme di corrispondenze mir ↔ mil , l’obiettivo è quello di calcolare H.
Le corrispondenze dovrebbero essere tali per cui il punto M che rappresentano
giaccia sul piano.
Come si è già visto, l’omografia deve soddisfare la formula mr ' HΠ ml
per ogni corrispondenza. Per la proprietà di collinearità di due punti si riscrive
con il prodotto esterno: mr × Hml = 0. L’idea è di isolare le incognite del
problema (H), allo scopo di ottenere un sistema lineare del tipo Ax = 0, dove
la soluzione è lo spazio nullo della matrice A. Per pervenire a tale risultato si
utilizza l’operatore vec e una proprietà del prodotto di Kronecker:
mr × Hml = 0 ⇐⇒ [mr ]× Hml = 0
⇐⇒ vec([mr ]× Hml ) = 0 ⇐⇒
(mTl
(13)
⊗ [mr ]× )vec(H) = 0.
(14)
Quante corrispondenze servono per risolvere il problema di spazio nullo della
matrice (mTl ⊗ [mr ]× )? È immediato verificare che la dimensionalità di questa
matrice è 3 × 9, in quanto mTl è 1 × 3 e [mr ]× è 3 × 3. La matrice antisimmetria
è “rank-deficient” per come è definita, dunque ha rango due. Ne consegue che
una riga è linearmente dipendente alle altre due. D’altra parte la matrice H
è 3 × 3 di rango otto, perché definita a meno di un fattore di scala. Perciò
la matrice A verrà realizzata giustapponendo almeno quattro matrici del tipo
(mTl ⊗ [mr ]× ). In altre parole sono necessarie almeno quattro corrispondenze
per il calcolo dell’omografia indotta da un piano. Il vettore delle incognite sarà
x = vec(H).
1 Si noti che le equazioni 7, 8 e 9 rappresentano tutte lo stesso vincolo, riformulato allo
scopo di definire i vincoli su HΠ .
5
Si risolvere il sistema lineare applicando la decomposizione a valori singolari
(svd) e prendendo come soluzione l’ultima colonna della matrice V derivata
dalla fattorizzazione (A = U DV T ). Tale vettore genera lo spazio nullo dalla
matrice A ed è soluzione del sistema lineare. Questo procedimento prende il
nome di DLT algorithm (Direct Linear Transform) in una delle sue accezioni.
In caso di rumore la matrice A non ha esattamente rango otto, ma può avere
rango massimo. Questo significa che la soluzione esatta del sistema è la soluzione
banale (x = 0). In questo caso si vorrebbe una soluzione ai minimi quadrati
con un errore → 0. Si dimostra che l’algoritmo DLT trova la soluzione del
sistema H 0 ai minimi quadrati che risulta la più vicina in norma di Frobenius
alla soluzione esatta H: minH 0 kH − H 0 k2F .
In seguito si presenta l’implementazione in Matlab dell’algoritmo per la stima
dell’omografia indotta dal piano:
Stima dell’omografia
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
function H = homographyEstimation ( ml , mr )
H = [];
i f ( s i z e ( ml ,2) <4 | | s i z e ( mr, 2 ) < 4 )
f p r i n t f ( ’ E r r o r e : n p u n t i i n s u f f i c i e n t e \n ’ ) ;
return
end
i f ( s i z e ( ml , 1 ) ˜ = 2 | | s i z e ( mr , 1 ) ˜ = 2 )
f p r i n t f ( ’ E r r o r e : c o o r d i n a t e non c a r t e s i a n e \n ’ ) ;
return
end
% precondizionamento
[ Tl , ml ] = p r e c o n d 2 ( ml ) ;
[ Tr , mr ] = p r e c o n d 2 ( mr ) ;
% rendiamo omogenee l e c o o r d i n a t e
ml = [ ml ; o n e s ( 1 , s i z e ( ml , 2 ) ) ] ;
mr = [ mr ; o n e s ( 1 , s i z e ( mr , 2 ) ) ] ;
A = [];
% c a l c o l o i l p r o d o t t o d i Kronecker
f o r i = 1 : s i z e ( ml , 2 )
Ai = kron ( ml ( : , i ) ’ , s t a r ( mr ( : , i ) ) ) ;
A = [ A ; Ai ] ;
end
% a p p l i c o l a decomposizione a v a l o r i s i n g o l a r i
[ U, D, V ] = svd (A ) ;
% c o n t r o l l o s e l a m a t r i c e e ‘ ben c o n d i z i o n a t e
D = diag (D ) ;
cond = D( 1 ) /D( end − 1 ) ;
i f ( cond>200)
w ar n in g ( ’ M a t r i c e e ‘ mal c o n d i z i o n a t a : %0. f ’ , cond ) ;
end
% s o l u z i o n e : e ‘ l ’ u l t i m a co lo nn a d i V
H = V ( : , end ) ;
H = reshape (H, s i z e ( ml , 1 ) , s i z e ( ml , 1 ) ) ;
% m i n i m i z z a z i o n e d e l l ’ e r r o r e g e o m e t r i c o su H
H = f m i n s e a r c h (@(H) g e o E r r (H, ml , mr ) ,H ) ;
% recupero omografia e normalizzo
H = inv ( Tr ) ∗H∗ Tl ;
H = H/H( end , end ) ; % u l t i m o e l e m e n t o a 1
L’algoritmo ricalca perfettamente quanto descritto. Inoltre sono state aggiunte
delle fasi di controllo in modo da irrobustire l’interfaccia. I primi due controlli,
restituiscono errore nei casi in cui ci siano meno di quattro corrispondenze e
in cui i punti non siano in forma cartesiana (u, v). Poi vi è una fase di precondizionamento dei dati, la quale viene descritta meglio nella sezione 6.1. Le
coordinate sono rese omogenee all’interno della procedura, con l’inserimento di
uni. Dalla riga 17 alla 24 si definisce la matrice A di cui si calcola il vettore che
ne genera il kernel, che è soluzione del sistema.
6
Ai fini pratici risulta interessante analizzare il numero di condizionamento
(σi sono i valori singolari di
di A. Il numero di condizionamento c = σσmax
min
A) definisce quanto la matrice è vicina ad essere singolare. Quando c è elevato la matrice risulta mal condizionata (in pratica singolare). Il numero di
condizionamento massimo (200) viene rilevato sperimentalmente.
Infine l’algoritmo procede con la selezione dell’ultima colonna di V (kernel
di A), la normalizzazione di H per far diventare uno l’ultimo elemento e il ridimensionamento. La riga 35 ha lo scopo di minimizzare l’errore geometrico,
mentre la riga 37 serve per riportare l’omografia nello spazio 3D originale prima del precondizionamento. Le motivazioni che ci spingono ad effettuare tali
operazioni vengono descritte nel dettaglio nella sezione 6.1.
4
Omografia infinito
Nella sezione precedente si è definita l’omografia indotta da un piano che si
trova nella parte reale di P2 . Analogamente esiste anche un’omografia che viene
indotta dal piano che giace all’infinito. Questa prende il nome di omografia
infinito e ha la funzionalità di mappare i punti di fuga2 di una telecamera nei
punti di fuga dell’altra. Ricordiamo che un punto di fuga è il luogo geometrico
dell’immagine dove si incontrano tutte le rette proiettate che sono parallele nel
sistema di riferimento mondo.
Ponendo d → ∞ nell’equazione 11 si deriva la definizione di omografia
infinito:
H∞ = Kr RKl−1 .
(15)
Il termine di traslazione è sparito, quindi l’omografia dipende solo dalla rotazione
della seconda telecamera. Questo fatto si rispecchia nella pratica osservando che
i punti di fuga rimangono fissi se si applicano traslazioni alla telecamera.
L’esempio più classico che si può riportare riguarda ciò che succede quando
si guarda fuori dal finestrino di un treno che si muove in moto rettilineo. Se si
fissano le montagne all’orizzonte si nota che rimangono ferme per un periodo
di tempo molto lungo. Ovviamente le montagne non sono oggetti che giacciono
all’infinito, perció dopo un periodo di tempo si muoveranno.
5
Parallasse
Già nelle sezioni precedenti si descrive l’idea del concetto di parallasse. Ricordando che i punti appartenenti al piano soddisfano l’equazione mr ' HΠ ml , ci
si può domandare cosa succede ai punti che non appartengono al piano. Questa
domanda trova risposta nel parallasse che viene generato dall’omografia indotta
da un piano.
Per definirlo si ha bisogno di maneggiare l’equazione 1 nel seguente modo:
1
ζr
mr = H∞ ml + er .
ζl
ζl
2 La
(16)
parola “punti di fuga” è una traduzione poco esplicativa dall’inglese di “vanishing
points”.
7
Questa relazione deriva dall’equazione della retta epipolare, quindi non è limitata per i punti M che appartengono al piano come l’equazione 11. Il mapping
tra un punto e il suo coniugato è composto da:
• la proiezione attraverso l’omografia infinito H∞ ml e
• una correzione di parallasse
1
ζl er .
Si noti che se t = 0 nell’equazione 16 il termine di parallasse scompare, per come
è definito l’epipolo. In questo caso, se la telecamera ruota intorno al suo centro
non si genera parallasse, perciò tutti i punti coniugati sono messi in relazione
tramite l’omografia infinito.
Il parallasse ha la stessa direzione dell’epipolo, ma modulo che è l’inverso
della distanza ζl tra M e ml . In altre parole punti che stanno molto lontani
dalla telecamera hanno un parallasse molto piccolo. D’altra parte punti che
sono vicini al piano immagine hanno un parallasse grande. Seguendo questo
ragionamento si può vedere il parallasse di un immagine come un campo vettoriale, i cui vettori puntano tutti verso l’epipolo e il loro modulo dipende dalla
profondità dei punti in modo inversamente proporzionale.
L’equazione 16 viene definita in modo dipendente al piano all’infinito. Avrebbe più senso generalizzarla in modo da ottenere una relazione che è definita per
qualsiasi piano. Dall’equazione 11 si ottiene:
t · nT
Kl−1
(17)
H∞ = HΠ − Kr
d
dalla quale:
ζr
mr = HΠ ml + γer
ζl
con γ =
a
d·ζl
(18)
dove a è la distanza tra M e il piano. L’equazione 18 ci dice
che quando un punto M giace sul piano si ha mr ' HΠ ml (eq. 6). Altrimenti
è presente uno spostamento residuo, chiamato parallasse, il cui modulo risulta
proporzionale a γ ed è orientato nella direzione della retta epipolare.
Si noti che l’equazione 18 è sempre il vincolo epipolare, quindi rappresenta
il vincolo di collinearità tra tre punti, che in questo caso sono: mr , HΠ ml e
er . Formalmente si ha mTr (er × HΠ ml ) = 0 e portandolo in forma bilineare
con la conversione prodotto esterno in prodotto matriciale si ottiene la matrice
fondamentale: F ' [er ]× H. Questa è la dimostrazione della derivazione della
formula 10. In seguito si descrive prima la tecnica per stimare l’epipolo e poi
per stimare il parallasse.
5.1
Stima dell’epipolo
L’equazione 18 è caratterizzata dalla presenza dell’epipolo della vista destra. Visto che per la stima del parallasse si utilizzerà proprio questa relazione, risulta
necessaria un’operazione preliminare per calcolare er . Per definizione l’epipolo
destro è la proiezione del centro ottico della telecamera sinistra nel piano immagine di destra. Inoltre è il punto di intersezione di tutte le rette epipolari (nel
caso ideale senza rumore). Si sfrutta questa proprietà per il suo calcolo.
8
Data un omografia HΠ tra due viste e due coppie di punti coniugati (m0l ↔
m0r e m1l ↔ m1r ) non appartenenti al piano Π, si ha la stima dell’epipolo come
segue:
er = (HΠ m0l × m0r ) × (HΠ m1l × m1r ).
(19)
È definito come l’intersezione tra la retta che passa per HΠ m0l (proiezione di m0l
nella telecamera destra) e m0r e la la retta che passa per HΠ m1l e m1r . La figura
2 rappresenta la situazione appena descritta. Si noti che l’epipolo è definito a
Figura 2: Stima dell’epipolo
meno di un fattore di scala, perché anche per questo punto vale l’equazione 6.
In seguito viene riportato il codice Matlab che implementa la stima dell’epipolo:
Stima dell’epipolo
2
4
6
8
10
12
14
16
18
function e r = e p i p o l e E s t i m a t i o n (H, ml , mr )
er =[];
i f ( s i z e ( ml , 2 ) ˜ = 2 | | s i z e ( mr , 2 ) ˜ = 2 )
f p r i n t f ( ’ E r r o r e : t r o p p i p u n t i ( ne b a s t a n o due ) \n ’ ) ;
return
end
i f ( s i z e ( ml , 1 ) ˜ = 2 | | s i z e ( mr , 1 ) ˜ = 2 )
f p r i n t f ( ’ E r r o r e : c o o r d i n a t e non c a r t e s i a n e \n ’ ) ;
return
end
% rendiamo omogenee l e c o o r d i n a t e
ml = [ ml ; o n e s ( 1 , s i z e ( ml , 2 ) ) ] ;
mr = [ mr ; o n e s ( 1 , s i z e ( mr , 2 ) ) ] ;
% calcoliamo l ’ epipolo
e r = c r o s s ( c r o s s (H∗ml ( : , 1 ) , mr ( : , 1 ) ) , . . .
c r o s s (H∗ml ( : , 2 ) , mr ( : , 2 ) ) ) ;
e r = e r . / e r ( end ) ;
er = er ( 1 : 2 ) ;
Le prime righe sono semplici controlli sulla dimensione dei punti che vengono
inseriti dall’utente, simili a quelli per la stima dell’omografia. In particolare il
primo controllo è necessario perché per calcolare l’epipolo si ha bisogno solo di
due coppie di punti, oltre all’omografia. Il cuore di tale funzione sta nelle ultime
tre righe: qui si implementa l’equazione 19 (cross è il prodotto esterno). L’operazione successiva è quella di normalizzazione, allo scopo di rendere omogenee le
coordinate dell’epipolo. Infine si prendono solo le prime due componenti (u, v),
le quali rappresentano le coordinate dell’epipolo nell’immagine.
9
5.2
Stima del parallasse
Una volta calcolato l’epipolo, si hanno tutti gli elementi necessari per stimare il
parallasse. Ci si può chiedere: perché si deve stimare il parallasse? Non si può
usare direttamente la formula vista precedentemente per calcolare γ? Queste
domande
trovano risposta nella definizione che abbiamo visto precedentemente:
a
γ = d·ζl . Le variabili che entrano in gioco implicano la conoscenza a priori
della distanza tra un punto M e il piano Π. Per avere tali informazioni si dovrebbe conoscere la geometria dell’intera scena (piano, telecamera, ecc.). Questi
dati non si conoscono, perciò si deve stimare il parallasse seguendo una strada
alternativa.
Si parte proprio dall’equazione 18 e si ottiene:
HΠ ml = −γer +
ζr
mr ,
ζl
(20)
la quale ha una forma nota: l’equazione vettoriale. Si riesce a riconoscere perché HΠ ml , er e mr sono collineari, quindi almeno un vettore è linearmente
dipendente dagli altri. Si può dimostrare che l’equazione vettoriale (con γ e ζζrl
incognite) si risolve con la seguente formula:
γ=
(HΠ ml × mr )T (mr × er )
2
||mr × er ||
.
(21)
Si noti che anche il modulo del parallasse è definito a meno di un fattore di
scala, proprietà “ereditata” dall’omografia e dall’epipolo.
In una possibile accezione, il parallasse può essere interpretato come la profondità rispetto al piano di riferimento Π nel caso di telecamere non calibrate.
Per questo motivo verrà utilizzato per determinare quando un generico punto
passa da una parte del piano all’altra.
Come nel caso della stima dell’epipolo, l’implementazione della stima del
parallasse è una semplice traduzione di una formula:
Stima del parallasse
2
4
6
8
10
12
14
16
18
function gamma = p a r a l l a x E s t i m a t i o n (H, e r , ml , mr )
i f ( s i z e ( ml , 2 ) ˜= s i z e ( mr , 2 ) )
f p r i n t f ( ’ E r r o r e : n d i p u n t i non c o r r i s p o n d o n o \n ’ ) ;
return
end
i f ( s i z e ( ml , 1 ) ˜ = 2 | | s i z e ( mr , 1 ) ˜ = 2 )
f p r i n t f ( ’ E r r o r e : c o o r d i n a t e non c a r t e s i a n e \n ’ ) ;
return
end
% rendiamo omogenee l e c o o r d i n a t e
ml = [ ml ; o n e s ( 1 , s i z e ( ml , 2 ) ) ] ;
mr = [ mr ; o n e s ( 1 , s i z e ( mr , 2 ) ) ] ;
er = [ er ; 1 ] ;
% stima d e l p a r a l l a s s e
f o r i = 1 : s i z e ( ml , 2 )
gamma( i ) = c r o s s (H∗ml ( : , i ) , mr ( : , i ) ) ’ ∗ . . .
c r o s s ( mr ( : , i ) , e r ) / (norm( c r o s s ( mr ( : , i ) , e r ) ) ˆ 2 ) ;
end
L’equazione 21 viene implementato nelle ultime tre righe. Si nota che viene
computata per ogni coppia di corrispondenze, le quali vengono acquisite per
ogni frame della sequenza ad istanti temporali successivi. Il comando norm
rappresenta la norma Euclidea.
10
Ora sono stati presentati tutti gli strumenti necessari che vengono utilizzati
in una particolare applicazione: la rilevazione del goal fantasma.
6
Applicazione: Rilevazione del goal “fantasma”
In questa sezione si studia un’applicazione specifica della visione computazionale. In particolare si presenta un esempio “giocattolo” per analizzare le potenzialità degli strumenti messi a disposizione da questa disciplina, i quali sono
applicabili in contesti più significativi e interessanti rispetto al caso in esame.
Date diverse sequenze di immagini, rappresentanti la stessa scena e acquisite
da due punti di vista differenti, si vuole rilevare quando un oggetto oltrepassa
un piano. In particolare la scena raffigura una porta di un campo da calcio, la
quale delinea il piano che genera l’omografia. L’azione in tale contesto si articola
con un calcio di rigore. L’obiettivo è di rilevare quando (in termini di frame) il
pallone entra in porta (goal).
Per pervenire a tale obiettivo si utilizzano gli elementi teorici che sono stati
descritti sopra. In particolare il goal finale è il calcolo del parallasse per ogni
frame della sequenza. Nel momento in cui si ha un cambio di segno del parallasse, allora si è rilevato il passaggio del pallone dall’altra parte del piano. La
figura 3 definisce le varie fasi del lavoro, che rispecchiano le parti principali del
codice implementato. Inizialmente si carica la sequenza di immagini, che nel
(0) Caricamento
delle immagini
Denizione 4
corrispondenze nel
piano
Denizione 2
corrispondenze fuori
dal piano
Per ogni frame denizione 1
corrispondenza sull'oggetto
(1) Stima
dell'omograa
(2) Stima dell'epipolo
(3) Stima del
parallasse
Verica
dell'omograa
Verica
dell'epipolo
Veriifca cambio
di segno
Figura 3: Schema procedurale del codice che implementa la rilevazione del goal
caso specifico sono cinque immagini per ogni telecamera, dieci in totale quindi. La loro risoluzione è relativamente alta (1280 × 960), perché si ha bisogno
di precisione nella definizione delle corrispondenze. Per calcolare l’omografia, è
necessario trovare almeno quattro corrispondenze tra l’immagine destra e quella
sinistra. La selezione di tali coppie di punti potrebbe essere fatta seguendo due
approcci:
• manuale: i punti vengono selezionati dall’utente attraverso l’interazione
con un’interfaccia;
11
• automatico: definendo un criterio di similarità, si trovano quali porzioni
di immagine (finestre) sono simili nelle due viste.
Il primo approccio è il più semplice, poiché l’utente è in grado di decidere correttamente quali punti definiscono delle corrispondenze. D’altra parte non li
può selezionare con precisione elevata, causando perciò errori. Viceversa non
esiste un metodo generale per la risoluzione del secondo approccio; infatti le
procedure da utilizzare dipendono fortemente dal problema in esame. Questo è
un problema classico nella ingegnerizzazione di sistemi automatici. Un possibile
procedimento per trovare in modo automatico le corrispondenze appartenenti al
piano (porta) è quello di inserire dei marcatori nella scena e poi ridentificarli. In
questo lavoro, si adotta l’approccio di selezione manuale delle corrispondenze.
Inoltre si noti che i punti vengono selezionati sulla prima immagine destra e
sinistra della sequenza, perché le telecamere sono fissate e il piano è statico.
Selezionate le quattro coppie di punti corrispondenti sul piano si passa al
calcolo dell’omografia utilizzando l’algoritmo presentato nella sezione 3.1. Una
fase opzionale è la verifica della correttezza dell’omografia. Per realizzare questo
controllo si considerano i punti selezionati da una vista e li si proiettano nella
vista opposta. Siano ml e mr due punti coniugati, e sia mlp ' Hml la proiezione
di ml sull’immagine destra; l’omografia è corretta se mlp = mr , o meglio se la
distanza tra i due punti è minima. Viceversa sia mrp ' H −1 mr la proiezione di
mr nell’immagine sinistra, allora l’omografia è corretta se mrp = ml . Le figure
4 e 5 confermano effettivamente che l’omografia è corretta.
(a) Punti originali
(b) Punti proiettati a destra
Figura 4: Immagini che verificano la correttezza dell’omografia (punti rossi).
Per la stima dell’epipolo occorrono due coppie di punti coniugati che non
appartengono al piano. Le corrispondenze possono essere selezionate adottando
uno dei due criteri elencati sopra. Quindi si stima l’epipolo utilizzando l’algoritmo riportato nella sezione 5.1. Per verificare la correttezza della stima si segue
il procedimento per disegnare le rette epipolari in figura 2: si disegna la retta
passante per m0r e Hm0l e la retta passante per m1r e e Hm1l . L’intersezione
tra le due rette definisce l’epipolo. Si può adottare la stessa tecnica opportunamente adattata per la verifica dell’epipolo sinistro. Si ha la conferma della
correttezza dell’epipolo in figura 6.
Dopo la stima dell’omografia e dell’epipolo, si passa al calcolo del parallasse
per ogni frame della sequenza, al fine di trovare quando il pallone attraversa
12
(a) Punti proiettati a sinistra
(b) Punti originali
Figura 5: Immagini che verificano la correttezza dell’omografia (punti blu).
(a) Rette epipolari sinistre
(b) Rette epipolari destre
Figura 6: Immagini che verificano la correttezza dell’epipolo destro.
13
la porta. L’utente seleziona i punti coniugati sul pallone per ogni immagine.
Si assume che l’oggetto sia puntiforme, quindi per essere precisi si consiglia
di selezionarli nel suo centroide. Nella sezione 5.2 si trova l’implementazione
del codice per calcolare il parallasse che ha come input i punti selezionati su
tutti i frame. Ricordando che il parallasse definisce una sorta di distanza di
un punto dal piano, si vuole trovare il frame in cui vi è un cambio di segno.
Quindi si crea un grafico in cui sull’asse delle ascisse c’è il tempo (in frame) e
sull’asse delle ordinate c’è il valore del parallasse. In figura 7 si può vedere un
esempio: la spezzata blu definisce il parallasse dal primo al quinto frame. Il
parallasse è stato calcolato a passi discreti, mentre tra un frame e l’altro si ha
una interpolazione lineare. Si nota che il goal viene rilevato tra il frame 3 e 4
(zero-crossing: intersezione della spezzata blu e rossa).
Figura 7: Verifica zero-crossing del parallasse.
In seguito vediamo che problemi pratici sono sorti nello studio del caso in
esame.
6.1
Problemi pratici
Analizzando la tecnica per la rilevazione del goal fantasma si sono incontrati
diversi problemi. Alcuni molto semplici da risolvere, derivati da problemi pratici
nell’implementazione dei metodi.
Vale la pena di analizzare dettagliatamente il precondizionamento. In presenza di rumore o errore gaussiano nei dati in ingresso, l’accuratezza della soluzione del sistema lineare dipende dal numero di condizionamento. Più è basso
meno l’errore sarà amplificato, ovvero il sistema risulta più stabile. È stato
dimostrato che gli algoritmi del tipo DLT sono fortemente mal condizionati.
Banalmente se si prende per esempio la stima dell’omografia, si nota che i valori
della matrice H variano da 1 a 104 circa. Nella pratica, quando si applica l’algoritmo presentato nella sezione 3.1 (senza precondizionamento) si può notare che
il numero di condizionamento è dell’ordine di 105 o 106 . Tali valori non possono
14
essere trascurabili per motivi di precisione nel calcolo del parallasse. Se già alla
prima fase vi è un errore notevole, allora questo verrà ulteriormente amplificato
nelle fasi successive, compromettendo la soluzione del problema.
Hartley in un suo lavoro ha dimostrato che attraverso un semplice cambio
di coordinate ed un riscalamento delle corrispondenze il numero di condizionamento diminuisce drasticamente. In pratica si deve effettuare una traslazione
del sistema di riferimento centrato in alto a sinistra, in un nuovo sistema di riferimento la cui origine si trova nel centroide dei punti considerati per risolvere il
sistema. Poi si √
normalizzano le coordinate in modo che la loro distanza media
dall’origine sia 2. Tale soluzione porta ad un ulteriore vantaggio oltre al miglioramento dell’accuratezza: si ha un invarianza a trasformazioni di similarità
nel piano immagine.
La funzione che implementa tale trasformazione è precond2, la quale prende
in ingresso i punti e restituisce i punti trasformati e la trasformazione effettuata
(T ). Tale funzione viene chiamata nel calcolo dell’omografia, la quale non è più
definita per i punti originali, ma per i punti trasformati. Quindi per riportare
l’omografia nello spazio originale si opera la seguente operazione:
H = Tr−1 Hp Tl
(22)
dove Tr e Tl sono rispettivamente le trasformazioni per i punti dell’immagine
destra e sinistra e Hp è l’omografia calcolata sui punti precondizionati. Nel caso
in esame il precondizionamento ha portato ad un miglioramento del numero di
condizionamento, il quale è sceso da un ordine di 105 circa a un ordine di 10
circa. Perciò si è ottenuto un notevole miglioramento della stabilità del sistema
lineare, che si è tradotto in un precisione migliore nel calcolo del parallasse.
Un’altra fase che risulta necessaria quando si manipolano i dati reali, è la
minimizzazione dell’errore geometrico. In generale gli algoritmi che trovano una
soluzione ai minimi quadrati minimizzano l’errore algebrico, il quale non ha
un vero significato geometrico se non per casi particolari. Perchè preferire un
errore geometrico? I motivi sono diversi: i residui che si minimizzano hanno
un significato, la soluzione è più stabile ed invariante a trasformazioni Euclidee.
Di solito per fare ciò si utilizza un algoritmo di discesa del gradiente. Queste
tecniche dipendono fortemente dal punto di partenza da dove si inizia la discesa
lungo la funzione da minimizzare. Perciò si possono trovare minimi locali, i quali
non rappresentano la soluzione del sistema. Per evitare questo problema si usa
come punto di partenza la soluzione trovata dall’algoritmo DLT e si suppone
che la soluzione trovata non si troppo distante dalla vera soluzione. In questo
modo si ottengono prestazioni ottimali. Nel caso specifico dell’omografia si vuole
minimizzare:
X
min
d(Ĥmjl , mjr )2 + d(Ĥ −1 mjr , mjl )2 .
(23)
Ĥ
j
dove d è la distanza tra coordinate omogenee. In pratica si minimizza la distanza tra i punti e le rispettive proiezioni nelle viste opposte. Si è visto che
nell’algoritmo per la stima dell’omografia si richiama fminsearch la quale minimizza la funzione geoErr rispetto H. Di seguito si riporta l’implementazione
Matlab dell’errore geometrico:
2
function f = g e o E r r (H, ml , mr )
f = 0;
15
4
6
8
10
12
14
16
% punti p r o i e t t a t i a destra e s i n i s t r a
Hml = H∗ml ;
Hml = Hml . / repmat ( Hml ( end , : ) , 3 , 1 ) ;
invHmr = inv (H) ∗ mr ;
invHmr = invHmr . / repmat ( invHmr ( end , : ) , 3 , 1 ) ;
% c o o r d i n a t e c a r t e s i a n e p e r c a l c o l a r e l a norma
Hml = Hml ( 1 : 2 , : ) ;
invHmr = invHmr ( 1 : 2 , : ) ;
ml = ml ( 1 : 2 , : ) ;
mr = mr ( 1 : 2 , : ) ;
% c a l c o l o d e l l ’ errore geometrico
f o r i = 1 : s i z e ( mr , 2 )
tmp = norm( Hml ( : , i )−mr ( : , i ) ) ˆ 2 + norm( invHmr ( : , i )−ml ( : , i ) ) ˆ 2 ;
f = tmp + f ;
end
In particolare si può notare che vengono calcolate le norme utilizzando le coordinate cartesiane, previa normalizzane e eliminazione dell’ultima componente.
Questo perché non è definita la distanza Euclidea per le coordinate omogenee.
7
Conclusioni
Questo lavoro analizza alcuni aspetti geometrici specifici di una disciplina molto
vasta. Perciò si è cercato di analizzare e toccare con mano una minima parte di
operazioni funzionali all’applicazione realizzata. I risultati ottenuti nella rilevazione del goal fantasma sono abbastanza soddisfacenti, ricordando però che sono
state fatte molte approssimazioni per rendere il problema facilmente risolvibile.
Per esempio la procedura di selezione dei punti potrebbe essere automatizzata in modo da rendere l’intero processo completamente automatico. Un’altra
semplificazione riguarda la staticità delle telecamere e del piano; in un contesto
reale possono essere dinamici, quindi l’omografia andrebbe calcolata periodicamente. L’approssimazione del pallone ad un punto è un ulteriore facilitazione.
Nonostante ciò il lavoro non è mancato di problemi.
16