You are on page 1of 91

Elementi di analisi per Visione Articiale

Paolo Medici
Dipartimento di Ingegneria dellInformazione di Parma
5 ottobre 2012
2
Questo libro vuole essere una introduzione ragionevolmente sintetica ai fondamenti di geometria, algebra e statistica
necessari alla comprensione e allutilizzo delle tecniche pi` u avanzate di visione articiale. Tranne nei casi in cui le dimostrazioni
non forniscano strumenti importanti, non si entrer`a nei dettagli dei diversi teoremi ma, con lobiettivo comunque di stimolare
la curiosit`a, queste saranno lasciate al lettore. Non ho cercato di fare una trattazione eccessivamente rigorosa ed esaustiva
degli argomenti trattati, principalmente per non stancare il lettore e distogliere lattenzione verso i concetti importanti, ne
tantomeno mi sono posto come obiettivo quello di voler parlare di tutti gli argomenti inerenti lelaborazione di immagini
e la visione articiale, che sarebbero stati quasi inniti, ma mi sono limitato invece ai soli argomenti strettamente inerenti
alle sperimentazioni che ho direttamente arontato ovvero su quegli argomenti sui quali mi ritengo pi` u condente e su cui
ritengo di poter dare un minimo di contributo.
La Computer Vision `e un campo della scienza estremamente stimolante, anche per i non addetti ai lavori. Il fatto stesso
che nella visione articiale geometria, statistica, ottimizzazione sono argomenti cos` strettamente correlati ne fa un ambito
di studio molto completo ma non ha semplicato la divisione in capitoli di questo libro. I rimandi tra un capitolo e gli altri,
come si vedr`a, sono ampiamente diusi.
Le citazioni inserite nel testo sono ridotte al minimo e ho provato a fare riferimento solo a testi fondamentali e, quando
possibile, citare i primi che hanno proposto lidea alla base della teoria. La lettura degli articoli citati in bibliograa `e
caldamente consigliata.
Ho introdotto dove possibile il termine inglese corrispondente al termine italiano per suggerire le eventuali parole chiave
da cercare su internet per individuare argomenti collegati a quello trattato. Una versione inglese di questo documento `e in
programma quando avr`o ottenuto una versione abbastanza stabile della versione italiana.
Per lorganizzazione di questo volume ho tratto spunto da diversi libri che raccolgono in maniera ampia e completa
i diversi capitoli di cui questo libro `e formato. Libri, di cui consiglio la lettura, sono Multiple View Geometry [HZ04]
di Hartley e Zisserman e Emerging Topics In Computer Vision [MK04] redatto da Medioni e Kang. Per tematiche pi` u
strettamente legate allelaborazione delle immagini, un ottimo libro, disponibile anche online, pu`o essere Computer Vision:
Algorithms and Applications di Szeliski [Sze10].
La sintassi che verr`a usata `e minimalista: le matrici verranno indicate con lettere in grassetto maiuscolo A mentre i
vettori in grassetto minuscolo x, la sintassi x indica il valore stimato del vettore x e, come molto diuso in letteratura, la
trasposta dellinversa di una matrice A si scriver`a A

.
`
E possibile trovare lultima versione di questo documento a http://vislab.it/medici. Tutto il materiale di Elementi
di analisi per Visione Articiale `e rilasciato sotto licenza Creative Commons 3.0. Il testo completo della licenza `e disponibile,
in inglese, alla pagina http://creativecommons.org/licenses/by-nc-sa/3.0/.
This document is a brief introduction to the fundamentals of geometry, algebra and statistics needed to understand
and use computer vision techniques. You can nd the latest version of this document at http://vislab.it/medici. This
manual aim to give technical elements about image elaboration and articial vision. Demonstrations are usually not provided
in order to stimulate the reader and left to him. This work may be distributed and/or modied under the conditions of the
Creative Commons 3.0. The latest version of the license is in http://creativecommons.org/licenses/by-nc-sa/3.0/.
Copyright 2006-2012 Paolo Medici
Capitolo 1
Elementi
Questo primo capitolo si pone come obiettivo quello di esporre in maniera abbastanza sintetica diversi argomenti di analisi
matematica necessari alla comprensione degli algoritmi di elaborazione di immagini e visione articiale che verranno discussi
poi nei capitoli successivi.
1.1 Matrice Pseudo-inversa
Uno dei problemi fondamentali che si arontano, nel momento in cui si analizzano sistemi reali, `e quello di risolvere sistemi
lineari sovradimensionati aetti da rumore.
Limportanza di questo argomento `e evidente: quando si eseguono osservazioni di un sistema reale questo risulta normal-
mente aetto da rumore di osservazione (ed eventualmente di processo) ma allo stesso tempo `e possibile raccogliere molti pi` u
dati che incognite ottenendo pertanto un sistema sovradimensionato. In queste condizioni, per ottenere una soluzione del
problema e allo stesso tempo minimizzare lerrore, `e richiesto lutilizzo di una regressione numerica, per esempio, ai minimi
quadrati.
Si abbia pertanto un sistema lineare sovradimensionato (overdetermined)
Ax = y (1.1)
dove A `e una matrice rettangolare m n e con m n. Tale matrice, essendo rettangolare, non ammette inversa ma
`e comunque possibile denire, per ogni possibile soluzione x R
n
, un valore dellerrore (residuo) che questa soluzione
comporterebbe. Non c`e una soluzione generale per un sistema sovradimensionato, ma solo soluzioni che minimizzano il
residuo sotto una particolare norma.
Deniamo, per esempio, come metrica di errore il modulo del residuo:
(x) = |Ax y|
2
(1.2)
La soluzione ai minimi quadrati di un sistema lineare `e rappresenta dal vettore che minimizza la distanza euclidea del
residuo (1.2).
Trovare la soluzione ottima del sistema (1.1), nei sensi di una regressione ai minimi quadrati, equivale a trovare il minimo
di tale funzione errore al variare di x.
`
E necessario notare che nel minimizzare (1.2) non si `e fatta nessuna ipotesi sulla
distribuzione del rumore allinterno delle varie componenti di cui la matrice `e composta: non `e sicuramente una soluzione
ottima dal punto di vista statistico. La soluzione ottenuta con questa minimizzazione `e infatti una soluzione puramente
algebrica che minimizza un errore algebrico (algebraic error). Nel capitolo 2 si aronter`a il caso ottimo in cui si conosce
come lerrore sui dati incide nel sistema.
Si pu`o dimostrare che una soluzione x, che minimizza la funzione (1.2), esiste e vale:
Ax = y
A

Ax = A

y
x =
_
A

A
_
1
A

y
(1.3)
Per costruzione x `e una soluzione del sistema (1.1) ed `e anche il vettore che minimizza la funzione (1.2). Viene indicata
con A
+
la matrice pseudoinversa (pseudoinverse matrix) di A e vale
A
+
=
_
A

A
_
1
A

(1.4)
Questa soluzione del sistema `e detta pseudoinversa di Moore-Penrose.
La pseudoinversa ha le seguenti propriet`a
3
4 CAPITOLO 1. ELEMENTI
La pseudoinversa di una matrice esiste se esiste linversa di A

A;
La pseudoinversa di una matrice quadrata coincide con la sua inversa;
La pseudoinversa di una matrice, se esiste, `e unica.
`
E possibile ottenere una soluzione leggermente migliore dal punto di vista statistico quando si conosce lincidenza del
rumore su ogni osservazione. In questo caso `e possibile assegnare ad ogni equazione del sistema pesi dierenti, moltiplicando
ogni riga del sistema per un opportuno peso in modo da pesare in maniera dierente ogni dato acquisito. Dal punto di
vista formale, questi pesi possono essere rappresentati da una matrice diagonale di precondizionamento della matrice A.
Discussione pi` u approfondita su questo argomento si trova in sezione 3.1.
In lettura `e possibile trovare la risoluzione di sistemi sovradimensionati indicata anche come tecnica delle equazioni
perpendicolari (normal equations). Se si moltiplica lequazione (1.1) per A

si ottiene gi`a un sistema lineare tradizionale


che ammette soluzione:
A

Ax = A

y (1.5)
`
E facile notare che tale forma `e la stessa rappresentazione del sistema (1.3) dove per`o non viene costruita la matrice pseu-
doinversa e il problema viene ricondotto a un sistema lineare classico dove la matrice dei coecienti `e quadrata (e pertanto
invertibile con tecniche classiche).
La soluzione proposta in equazione (1.5) tuttavia `e numericamente instabile in quanto cond A
2
. Dettagli ulteriori
sul condizionamento delle matrici e sulla propagazione dei disturbi nella soluzione dei sistemi lineari ben dimensionati o
sovradimensionati saranno presentati in sezione 2.7.
Se il sistema `e ben condizionato, la tecnica pi` u stabile per risolvere un problema alle normal equations `e la fattorizzazione
di Cholesky.
Esistono invece delle tecniche stabili che permettono di ricavare la soluzione partendo direttamente dalla matrice A. La
matrice pseudoinversa si pu`o ottenere, oltre che eseguendo il procedimento mostrato nellequazione (1.4), anche utilizzando
la Singular Value Decomposition (SVD) o la fattorizzazione QR.
Per quanto riguarda la soluzione usando la fattorizzazione QR della matrice A il problema originale (1.1) si trasforma
facilmente in QRx = y e la soluzione si pu`o ricavare da Rx = Q

y, sfruttando lortogonalit`a della matrice Q.


Attraverso invece la decomposizione ai valori singolari, la matrice sovradimensionata A viene scomposta in 3 matrici,
tutte con propriet`a molto interessanti. Sia A = USV

la decomposizione ai valori singolari (SVD) di A. U `e una matrice


unitaria di dimensioni m n (a seconda del formalismo usato, complete SVD o economic SVD, le dimensioni delle matrici
possono cambiare, e U diventare mm), S `e una matrice diagonale che contiene i valori singolari (gli autovalori della matrice
pseudoinversa di dimensioni, a seconda del formalismo, nn o mn) e V

`e una matrice ortonormale, trasposta coniugata,


di dimensioni n n.
Attraverso un procedimento puramente matematico si ottiene che la pseudoinversa di A equivale a A
+
= VS
+
U

dove
la pseudoinversa di una matrice diagonale S
+
equivale alla sua inversa ovvero una matrice diagonale costituita dai reciproci
dei rispettivi valori.
Dalla SVD si ottiene immediatamente la soluzione
x = A
+
y = VS
1
Uy (1.6)
Attraverso la decomposizione SVD `e anche possibile trovare lo spazio delle soluzioni di un sistema omogeneo sovradimen-
sionato. Un sistema lineare omogeneo ha la forma
Ax = 0 (1.7)
e normalmente la soluzione ovvia, che `e possibile ottenere anche attraverso lequazione (1.6), non risulta utile ai ni del
problema. In questo caso `e necessario trovare, sempre ai sensi di una regressione ai minimi quadrati, un x R
n
, non nullo,
rappresentate un sottospazio vettoriale, il kernel di A. Il vettore generatore del sottospazio `e conosciuto a meno di uno o
pi` u fattori moltiplicativi. Per ottenere una soluzione unica `e necessario imporre un vincolo aggiuntivo, per esempio [x[ = 1,
tale da poter cercare
min
x
|Ax|
2
(1.8)
Anche in questo caso la SVD si dimostra una tecnica estremamente eciente e computazionalmente stabile, siccome le basi
del kernel di A sono esattamente le colonne di V associate ai valori (autovalori) nulli della matrice diagonale S. In genere,
a causa della presenza di rumore, non esister`a un valore singolare esattamente nullo ma, solitamente, si sceglie la colonna
associata al minimo valore singolare.
Gli autovalori nulli della matrice S rappresentano pertanto il kernel della matrice stessa e il numero di autovalori nulli
rappresenta la dimensione del kernel stesso. Va notato come nellequazione (1.6) la presenza di zeri nella matrice diagonale S
fosse problematica: ora si capisce che tale presenza `e sintomo del fatto che una delle componenti del problema `e totalmente
incorrelata con la soluzione e, in quanto tale, potrebbe essere trascurata (tale risultato infatti sar`a utilizzato nella sezione 4.1
nella trattazione dellagoritmo PCA).
La decomposizione SVD risulta una delle tecniche pi` u stabili e versatili sviluppata negli ultimi anni per la risoluzione di
sistemi lineari e, in tutto questo libro, si far`a larghissimo uso di tale tecnologia.
1.2. AUTOVALORI 5
Dettagli ulteriori sulla pseudoinversa di Moore-Penrose possono essere trovati in molti libri, per esempio in [CM09] o nel
testo fondamentale di calcolo numerico [GVL96].
1.2 Autovalori
Denizione 1 Data una matrice quadrata A di ordine n, un numero (reale o complesso) e un vettore non nullo x sono
detti rispettivamente autovalore e autovettore di A se vale la relazione
Ax = x (1.9)
x `e anche detto autovettore associato all autovalore .
Riscrivendo il sistema (1.9) usando la matrice identit`a I, segue che autovalore e autovettore associato si ottengono come
soluzione del sistema omogeneo:
(AI)x = 0 (1.10)
Se x `e un autovettore di A associato allautovalore e t ,= 0 un numero (reale o complesso), allora anche tx `e un
autovettore di .
In generale linsieme dei vettori x associati a un autovalore di A forma un sottospazio di R
n
chiamato autospazio. La
dimensione di questo sottospazio `e detta molteplicit`a geometrica dellautovalore.
Denizione 2 Il polinomio caratteristico di A nella variabile x `e il polinomio denito nel modo seguente:
p(x) = det(AxI) (1.11)
Le radici del polinomio caratteristico sono gli autovalori di A. Ovviamente il polinomio caratteristico ha lo stesso grado
della dimensione della matrice.
Propriet`a degli Autovettori
A e A

hanno gli stessi autovalori;


Se A `e non singolare, e `e un suo autovalore, allora
1
`e autovalore di A
1
;
Se A `e ortogonale, allora [[ = 1;
= 0 `e autovalore di A se e solo se det(A) = 0;
Gli autovalori di matrici diagonali e triangolari (superiori e inferiori) sono gli elementi della diagonale principale;
trace A =

i
. La somma degli elementi diagonali `e uguale alla somma degli autovalori;
det A =

i
. Il determinante di una matrice `e uguale alla produttoria dei propri autovalori;
Le matrici simmetriche hanno autovalori reali e autovettori ortogonali.
1.3 Coordinate Polari
Dando per conosciute le coordinate cartesiane, in questa sezione vengono introdotte le coordinate polari, e in particolare
verranno mostrate le relazioni che legano le coordinate cartesiane a quelle polari.
x
y p

Figura 1.1: Corrispondenza tra coordinate polari e cartesiane.


Per un punto nello spazio bidimensionale la relazione che lega questi due sistemi di coordinate si scrive come:
x = cos
y = sin
(1.12)
6 CAPITOLO 1. ELEMENTI
x
y
z
p

Figura 1.2: Coordinate polari in 3 dimensioni: coordinate sferiche.


Per un punto nello spazio tridimensionale la rappresentazione non `e unica: per lo stesso motivo esistono innite rappre-
sentazioni di un rotazione nello spazio tridimensionale come verr`a sottolineato pi` u volte in appendice.
Una scelta molto diusa sono le coordinate sferiche (sperical coordinate system).
Con questa convenzione la relazione tra le coordinate cartesiane e quelle polari si scrive
x = sin cos
y = sin sin
z = cos
(1.13)
dove `e denito come zenith mentre `e chiamato azimuth.
1.4 Coordinate Omogenee
In questa sezione vengono introdotte le coordinate omogenee, un articio matematico che risulta molto utile per la discussione
del problema della geometria proiettiva ma anche di diversi formalismi discussi nelle sezioni seguenti.
Chiameremo coordinate omogenee (homogeneous coordinates) di un punto del piano p = (x, y) R
2
una qualsiasi terna
ordinata p = (x

, y

, w

) R
3
di numeri reali tali che w

,= 0,
x

= x e
y

= y. Allo stesso modo coordinate omogenee di un


punto p = (x, y, z) R
3
saranno una quadrupla di numeri p = (x

, y

, z

, w

) R
4
tali che w

,= 0 e
x

= x,
y

= y e
z

= z.
Il punto p espresso in coordinate omogenee equivale al punto reale p (inhomogeneous):
p = (x

, y

, w

) = w

(
x

,
y

, 1) = w

(x, y, 1) = w

p
Il vettore (x, y, 1) `e chiamato augmented vector.
Le coordinate omogenee hanno le seguenti propriet`a:
Le coordinate omogenee sono denite a meno di un coeciente di proporzionalit`a. Ad esempio, la terna (x, y, 1) e ogni
suo multiplo ,= 0, ovvero (x, y, 1)

= (x, y, ), sono coordinate omogenee dello stesso punto dello spazio (x, y);
I punti in coordinate omogenee con coordinata w = 0 sono detti impropri, points at innity o ideal points, e non hanno
nessun signicato geometrico nello spazio cartesiano, ma possono rappresentare un punto allinnito, nella direzione
del vettore tridimensionale (x, y, z).
In coordinate omogenee c`e pertanto distinzione tra vettore (w = 0) e punto (w ,= 0), cosa che non accade con le
coordinate euclidee. Le coordinate omogenee permetto di rappresentare punti allinnito, e consentono di esprimere tutte le
trasformazioni di coordinate in forma matriciale.
Linsieme costituito da tutte le quaterne (terne) non nulle forma uno spazio proiettivo tridimensionale (bidimensionale).
Luso di coordinate omogenee `e usato in computer graphics per il fatto non banale di poter rappresentare come nel caso
cartesiano le trasformazioni ani attraverso luso di matrici ma in pi` u permettono di rappresentare nello stesso modo anche
le proiezioni prospettiche.
1.5 Linee, Piani e Iperpiani
In questa sezione viene fatto un breve riassunto delle equazioni delle rette e, per estensione, degli iperpiani. Una retta `e un
insieme di punti che separa il piano cartesiano in due parti, il piano `e linsieme di punti che separa lo spazio tridimensionale
in due parti e, generalizzando, liperpiano `e quellinsieme di punti che separa lo spazio R
n
in due parti.
1.5. LINEE, PIANI E IPERPIANI 7
1.5.1 Retta implicita
Dando per conosciuta lequazione della retta scritta in forma esplicita, dedichiamo lattenzione alla retta scritta in forma
implicita.
Lequazione della retta in forma implicita `e:
ax +by +c = 0 (1.14)
Tale rappresentazione permette di considerare sia rette orizzontali che verticali senza singolarit`a alcuna. Il parametro c vale
zero quando la retta passa per lorigine, e in generale la retta passa per un punto (x

, y

) quando c = ax

by

.
Il vettore generatore dalla retta `e v = (b, a) = (
1
a
,
1
b
), mentre il vettore ortogonale alla retta data `e v

= (a, b). La
retta ortogonale a quella data pertanto ha equazione del tipo
bx ay +c

= 0 (1.15)
dove c

si ottiene selezionando il punto della retta originale da cui deve passare la perpendicolare.
I parametri della retta scritta in forma implicita sono omogenei (lequazione (1.14) viene infatti chiamata equazione omo-
genea della retta) ovvero rappresentano un sottospazio vettoriale in quanto qualunque multiplo di tali parametri rappresenta
la medesima retta. Tali parametri sono pertanto deniti a meno di un fattore moltiplicativo.
Le rette, scritte in forma omogenea implicita, devono soddisfare lequazione (prodotto scalare):
l

x = 0 (1.16)
con x R
3
punto in coordinate omogenee e l R
3
parametri della retta. Per le coordinate omogenee si veda la precedente
sezione 1.4) mentre si veda per le implicazioni di questa scrittura, sul dualismo punto retta, il paragrafo 1.8.2.
Siccome la retta implicita `e conosciuta a meno di un fattore moltiplicativo, esistono inniti modi di esprimere la medesima
retta.
`
E possibile normalizzare la retta dividendo i parametri per la lunghezza

a
2
+b
2
. In tal caso si ottiene una soluzione
particolare della retta e i parametri sono quelli di una retta scritta in coordinate polari nella forma di equazione (1.20).
1.5.2 Retta passante per due punti
Per due punti (x
0
, y
0
) e (x
1
, y
1
) passa una retta implicita di equazione
(y
1
y
0
)x (x
1
x
0
)y y
1
x
0
+x
1
y
0
= 0 (1.17)
dove `e ben visibile il fatto che non esistano singolarit`a e tutti i valori sono ammissibili.
Nel caso in cui si abbia un punto (x
0
, y
0
) e un vettore (d
x
, d
y
) la retta risultante, inserendo tali valori nellequazione (1.17),
diventa
d
y
x d
x
x +y
0
d
x
x
0
d
y
= 0 (1.18)
1.5.3 Distanza punto-retta
La distanza di un punto (x
i
, y
i
) da una retta retta (line-point distance), intesa come distanza ortogonale, ovvero distanza
tra il punto e il punto pi` u vicino sulla retta, vale:
d =
[ax
i
+by
i
+c[

a
2
+b
2
(1.19)
1.5.4 Retta in coordinante polari
La retta scritta in forma implicita dipende da 3 parametri, conosciuti a meno di un fattore moltiplicativo, senza nessun
signicato geometrico. Dallaltra parte, lequazione esplicita della retta presenta la singolarit`a delle rette verticali.
x
y

l
Figura 1.3: Retta espressa in coordinate polari.
8 CAPITOLO 1. ELEMENTI
Usando le coordinate polari risulta possibile esprimere una retta in uno spazio bidimensionale senza singolarit`a ma usando
solo 2 parametri, come nella retta esplicita. Il legame tuttavia tra questi due parametri e lequazione della retta diventa non
lineare:
xcos +ysin = (1.20)
dove `e la distanza tra la retta e il punto (0, 0) e `e langolo che forma tale segmento distanza (ortogonale alla retta) e
lasse delle ascisse (gura 1.3).
Tale equazione `e normalmente usata nella trasformata di Hough per le rette (sezione 3.4) per poter sfruttare uno spazio
dei parametri bidimensionale.
Con questa particolare forma, la distanza tra un punto dello spazio (x
i
, y
i
) e la retta si scrive
d = [x
i
cos +y
i
sin [ (1.21)
1.5.5 Incrocio di due rette
Siano due rette l
1
e l
2
, intersecanti, che si incontrano nel punto x, espresso in coordinate omogenee. Per ottenere il punto di
incontro `e necessario risolvere un sistema, omogeneo, nella forma
_
l

1
x = 0
l

2
x = 0
(1.22)
Il sistema Ax = 0 pu`o anche essere sovradimensionato e risolvibile con la tecnica della decomposizione SVD. In questo caso
verr`a restituito il punto di incontro che minimizza il residuo algebrico di equazione (1.22).
Nel caso di due sole rette, il sistema (1.22) fornisce direttamente la soluzione. Lintersezione tra due rette l
1
e l
2
, scritte
in forma implicita (1.14), `e il punto x = l
1
l
2
espresso in coordinate omogenee, dove `e il prodotto vettoriale.
`
E da notare che, siccome le coordinate omogenee possono rappresentare punti allinnito, questa rappresentazione
particolare permette di considerare il caso in cui le due rette siano parallele.
1.5.6 Piani
z
y
x
n
Figura 1.4: Esempio di piano in R
3
.
`
E possibile generalizzare il discorso delle rette a piani ed iperpiani nello spazio R
n
. Come per le rette infatti esiste
una forma implicita e omogenea dellequazione di un piano intesa come luogo dei punti espressi dalla coordinata x R
n+1
omogenea a x R
n
:
m

x = 0 (1.23)
Il prodotto scalare tra coordinate omogenee codica sempre degli iperpiani.
Le coordinate omogenee sono conosciute a meno di un fattore moltiplicativo e pertanto si pu`o forzare un vincolo opzionale:
come per le rette si pu`o pensare che i primi n parametri della coordinata omogenea formino un vettore di lunghezza unitaria.
Un generico piano, o iperpiano, `e dunque il luogo dei punti x R
n
che soddisfano la condizione
x n = 0 (1.24)
dove n R
n
`e la normale al piano e = 0 se e solo se il piano passa per lorigine. Una scrittura alternativa dellequazione (1.24)
`e
(x x
0
) n = 0 (1.25)
con x
0
R
n
un punto del piano da cui si ricava = x
0
n. Bisogna ricordare che i gradi di libert`a sono comunque sempre e
solo n.
Il vincolo [ n[ = 1 rappresenta un caso particolare ma sotto questa condizione, come nel caso delle rette, assume il
signicato di distanza euclidea tra il piano e lorigine.
Come nel caso della retta, i parametri del piano in R
3
possono essere espressi attraverso luso di 3 coordinate polari (2
angoli e ):
xsin cos +y sin sin +z cos = (1.26)
1.6. PRODOTTO VETTORIALE 9
equazione del piano espressa in coordinate polari.
Se il piano (o liperpiano) `e normalizzato, la distanza tra un generico punto p e il piano si misura come
d = [p n [ (1.27)
altrimenti, come nel caso di equazione (1.19), `e necessario dividere la distanza per |n|.
Nella sezione 3.2.3 verr`a mostrato come ottenere la regressione ai minimi quadrati di un insieme di punti a un piano.
1.5.7 La divisione del piano
La retta (iperpiano) separa il piano (lo spazio) gaussiano in due parti e allinterno di ognuna di queste parti la funzione m

x
assume il medesimo segno. Attraverso questa considerazione `e possibile capire se dei punti si trovano tutti dallo stesso lato
rispetto a una retta (iperpiano) data o meno.
Tale considerazione verr`a utilizzata nel capitolo sui classicatori in quanto lequazione pu`o essere usata come classicatore
se lo spazio delle categorie `e separabile con un piano.
Per esempio, nel caso della retta, a seconda di come `e orientato il vettore generatore, `e possibile capire in quale dei due
semipiani (sinistro, destro) cade un generico punto, attraverso lo studio di s = ax
i
+by
i
+c: quando s < 0 il punto si trova
a sinistra della retta, s > 0 il punto si trova alla destra e inne quando s = 0 il punto `e sulla retta.
1.6 Prodotto Vettoriale
Nello spazio R
3
`e possibile trasformare loperatore prodotto vettoriale in una applicazione lineare, ovvero dare una rappre-
sentazione matriciale al prodotto vettoriale, tale che [x]

y = x y.
Nel testo verr`a indicata con [x]

la matrice associata al prodotto vettoriale.


La forma di questa matrice (antisimmetrica) `e
[x]

=
_
_
0 x
2
x
1
x
2
0 x
0
x
1
x
0
0
_
_
(1.28)
dove x = (x
0
, x
1
, x
2
)

. Tale matrice ha il determinante nullo e rango 2.


1.7 Trasformazioni geometriche
Le trasformazioni geometriche dei punti del piano sono trasformazioni biunivoche che a ogni punto del piano associa uno e
un solo punto del piano stesso.
Le trasformazioni geometriche si possono classicare in
Anit`a La trasformazione ane `e una applicazione biiettiva che associa il punto p al punto p

nella forma
p

= Ap +t (1.29)
Una anit`a gode delle seguenti propriet`a:
trasforma rette in rette;
conserva la colinearit`a tra i punti;
conserva il parallelismo e incidenza tra rette;
in generale non conserva la forma ne gli angoli.
Essendo biiettiva la trasformazione ane deve essere invertibile. Linversa `e anche essa una trasformazione ane e vale
p = A
1
p

A
1
t = A

+t

(1.30)
Similitudine Una similitudine `e una trasformazione ane che preserva il rapporto tra le dimensioni e gli angoli.
Isometria Le isometrie sono trasformazioni simili che conservano le distanze. Sono per esempio isometrie
traslazioni;
rotazioni;
simmetrie centrali ed assiali.
10 CAPITOLO 1. ELEMENTI
1.8 Trasformazioni omograche
Le coordinate omogenee (sezione 1.4) permettono di rappresentare uno spettro molto ampio di trasformazioni unicando con
lo stesso formalismo sia trasformazioni lineari (ani, rotazioni, traslazioni) che trasformazioni prospettiche.
Dati due piani distinti
1
e
2
si dice che sono riferiti a una trasformazione omograca (homographic transformation)
quando esiste una corrispondenza biunivoca tale che:
ad ogni punto o a ogni rette di
1
corrisponde un solo punto e una sola retta di
2
ad ogni fascio di rette di
1
corrisponde un fascio proiettivo su
2
Sia il piano osservato da due viste dierenti e siano (u, v) coordinate su un immagine di un punto del piano osservato
dalla prima vista e (u

, v

) coordinate immagine dello stesso punto osservato dalla seconda vista. Lo stesso piano pertanto
diventa un piano
1
nel primo caso e
2
nel secondo.
Nello spazio R
2
lomograa (la trasformazione omograca) `e codicate da matrici 3 3 ed `e rappresentata da equazioni
del tipo:
u
2
=
h
0
u
1
+h
1
v
1
+h
2
h
6
u
1
+h
7
v
1
+h
8
v
2
=
h
3
u
1
+h
4
v
1
+h
5
h
6
u
1
+h
7
v
1
+h
8
(1.31)
dove (u
1
, v
1
) sono coordinate dei punti appartenenti al piano
1
, mentre (u
2
, v
2
) sono punti del piano
2
.
Per la sua particolare forma tale trasformazione `e descrivibile attraverso una trasformazione lineare usando le coordinate
omogenee (sezione 1.4):
_
_
u
j
v
j
1
_
_
= H

ij
_
_
u
i
v
i
1
_
_
(1.32)
avendo denito
H

ij
=
_
_
h
0
h
1
h
2
h
3
h
4
h
5
h
6
h
7
h
8
_
_
(1.33)
Per compattezza e per mantenere il riferimento a un array in C la matrice H

ij
`e stata espressa usando i coecienti h
0
. . . h
8
piuttosto che la classica sintassi per indicare gli elementi della matrice.
Viene denita matrice omograca H

ij
la matrice che converte punti omogenei x
i
appartenenti al piano
i
della immagine
i in punti x
j
omogenei dellimmagine j con la relazione
x
j
= H

ij
x
i
(1.34)
Essendo una relazione tra grandezze omogenee il sistema `e denito a meno di un fattore moltiplicativo: qualunque
multiplo dei parametri della matrice omograca denisce la medesima trasformazione perche qualunque multiplo dei vettori
di ingresso o uscita soddisfa ugualmente la relazione (1.31). Come conseguenza di ci`o i gradi di libert`a del problema non sono
9, come in una generica trasformazione ane in R
3
, ma 8 in quanto `e sempre possibile ssare un vincolo aggiuntivo sugli
elementi della matrice. Esempi di vincoli usati spesso sono h
8
= 1 o |H|
F
= 1.
`
E da notare che h
8
= 1 non `e generalmente
un vincolo ottimo dal punto di vista computazionale in quanto lordine di grandezza che assume h
8
pu`o essere molto diverso
da quello degli altri elementi della matrice stessa e potrebbe generare singolarit`a (h
8
potrebbe essere zero). Lalternativa
|H|
F
= 1, soddisfatta gratuitamente delluso di risolutori basati su fattorizzazioni SVD o QR, `e invece computazionalmente
ottima.
Applicazioni dirette delle trasformazioni omograche consistono nella rimozione della prospettiva da immagini o per-
mettono di associare piani osservati da punti di vista dierenti. Un modo per ottenere delle trasformazioni prospettiche,
trascurando tutto il discorso sulla separazione tra parametri intrinseci ed estrinseci e della loro determinazione in forma
esplicita, come verr`a discusso nel capitolo sulla calibrazione della camera pin-hole, `e determinare i parametri della matrice
omograca (1.31), per esempio attraverso il metodo dei minimi quadrati. Un modo per ricavare i coecienti sar`a mostrato
nellequazione (6.43). Va ricordato che tale trasformazione vale solo e solamente per i punti dei piani considerati che si sono
andati a riproiettare: lomograa mette in relazione piani tra loro, ma solo quelli.
`
E facile vedere che ogni omograa `e sempre invertibile e linversa della trasformazione (1.31) (unnormalized inverse
homographic matrix) `e una trasformazione omograca anche essa. Una possibile equazione per linversa di unomograa
(essendo conosciuta a meno di un fattore moltiplicativo) `e:
u =
(h
5
h
7
h
4
h
8
)u

+ (h
1
h
8
h
2
h
7
)v

+h
4
h
2
h
1
h
5
(h
4
h
6
h
3
h
7
)u

+ (h
0
h
7
h
1
h
6
)v

+h
1
h
3
h
4
h
0
v =
(h
3
h
8
h
5
h
6
)u

+ (h
2
h
6
h
0
h
8
)v

+h
0
h
5
h
2
h
3
(h
4
h
6
h
3
h
7
)u

+ (h
0
h
7
h
1
h
6
)v

+h
1
h
3
h
4
h
0
(1.35)
dove non `e stato fatto uso di divisioni.
1.8. TRASFORMAZIONI OMOGRAFICHE 11
`
E da segnalare che se i due piani sono paralleli, ovvero h
6
= 0 h
7
= 0, la trasformazione omograca si riduce a una
ane (ane transformation) ed `e rappresentata dalle classiche equazioni:
u
2
= h
0
u
1
+h
1
v
1
+h
2
v
2
= h
3
u
1
+h
4
v
1
+h
5
(1.36)
1.8.1 Rette
Esistono applicazioni interessanti dellomograa in diversi ambiti.
Una trasformazione omograca trasforma generalmente rette in rette. Come caso particolare pu`o trasformare rette in
punti come per esempio nella proiezione prospettica: le coordinate omogenee rappresentano diversamente punti e vettori, e
quando una retta si riduce a un punto, la sua coordinata omogenea diventa infatti 0.
La trasformazione omograca applicata a una retta (eetto del dualismo punto-retta come verr`a mostrato nel paragrafo
successivo) `e esattamente la trasformazione inversa di quella che trasforma i punti corrispondenti: la trasformazione H
ij
che
trasforma punti dallimmagine i allimmagine j trasforma rette dallimmagine j allimmagine i:
x
j
= H
ij
x
i
l
i
= H

ij
l
j
(1.37)
Esaminando punti e rette allinnito (esempio allorizzonte) si vede come un punto allinnito abbia coordinate (x, y, 0)

.
Esiste pertanto una linea speciale l

= (0, 0, 1)

che congiunge tutti questi punti.


1.8.2 Principio di Dualit`a
Un concetto che torner`a utile di seguito `e il principio di dualit`a punto retta. Tale principio si basa sulla propriet`a commutativa
del prodotto scalare applicata allequazione della retta scritta in forma implicita dove i suoi luoghi della retta sono espressi
in coordinate omogenee:
l

x = x

l = 0 (1.38)
Due punti p e q deniscono una linea: l = p q e due linee l e m deniscono un punto x = l m.
Da questa considerazione nasce il principio di dualit`a (Duality Principle) che garantisce che la soluzione del problema
duale, dove il signicato di retta e punto vengono scambiati, `e anche soluzione del problema originale.
Questo principio permette di spiegare come, data una trasformazione M (proiettiva o omograca), la trasformazione che
trasforma un punto x in x

si scriva
x

= Mx (1.39)
mentre la trasformazione che trasforma una retta l diventi invece
l

= M

l (1.40)
1.8.3 Coniche
Luso di coordinate omogenee permette la scrittura di equazioni quadratiche in forma matriciale. Lequazione di una conica
in coordinate (inomogenee) `e
ax
2
+bxy +cy
2
+dx +ey +f = 0 (1.41)
Al posto delle coordinate cartesiane usiamo le coordinate omogenee applicando la sostituzione x = x
1
/x
3
e y = x
2
/x
3
ottenendo lequazione della conica in coordinate omogenee:
ax
2
1
+bx
1
x
2
+cx
2
2
+dx
1
x
3
+ex
2
x
3
+fx
2
3
= 0 (1.42)
In questo modo `e possibile scrivere lequazione (1.41) in forma matriciale
x

Cx = 0 (1.43)
dove C `e la matrice simmetrica 3 3 dei parametri e x `e il luogo dei punti (espresso con coordinate omogenee) della conica.
Essendo espressa da rapporti omogenei questa matrice `e denita a meno di un fattore moltiplicativo. La conica `e denita da
5 gradi di libert`a ovvero da 6 elementi della matrice simmetrica meno il fattore di scala.
Sempre per il dualismo punto-retta, la linea l tangente a una conica C nel punto x `e l = Cx.
La conica espressa sopra `e una conica denita da un luogo di punti e perci`o `e anche chiamata point conic perche denisce
lequazione della conica usando punti dello spazio. Usando il teorema di dualit`a `e anche possibile esprimere una conica
C

C
1
, duale della C, in funzione di rette: una linea tangente l alla conica C soddisfa l

l = 0.
Una conica si trasforma attraverso una trasformazione omograca x

= Hx in una conica. Infatti consegue che


x

Cx = x

CH
1
x

(1.44)
che `e ancora una forma quadratica C

= H

CH
1
.
Questo risultato notevole permette di dimostrare che una conica vista in prospettiva `e sempre una conica.
12 CAPITOLO 1. ELEMENTI
1.9 La trasformata Z
La trasformata Z costituisce il metodo matematico di base per trasformare il segnale campionato in una equazione numerica
iterativa, nota come equazione alle dierenze nite, facilmente implementabile su computer. Si vedr`a, inoltre, che esiste una
relazione tra trasformata di Laplace e trasformata Z per cui si potr`a operare una trasformazione tra segnali tempo-continui in
segnali tempo-discreti. In questo modo, ad esempio, una funzione tempo-continuo di un ltro passa-basso si potr`a trasformare
in una equazione alle dierenze nite e quindi si potr`a realizzare un ltro passa-basso digitale con le stesse caratteristiche
di quello analogico. La dierenza sta ovviamente nel fatto che quello analogico `e realizzato da un circuito hardware mentre
quello digitale `e realizzato mediante un software.
Si consideri una funzione tempo-continua f(t) per t > 0. Indichiamo con f

(t) la funzione nel tempo ottenuta dal


campionamento della funzione f(t) da impulsi di Dirac di ampiezza unitaria e durata innitesima e periodo T
c
.
Denizione 3 La f

(t) si pu`o scrivere:


f

(t) =

n=0
f(nT
c
)(t nT
c
) (1.45)
La frequenza f
c
= 1/Tc `e detta frequenza di campionamento e deve rispettare il teorema di Shannon. Pertanto deve
essere: f
c
> 2f
max
. Dove con f
max
si `e indicata la massima frequenza contenuta nel segnale da campionare f(t).
La trasformata di Laplace del segnale campionato f

(t), avendo posto z = e


sT
c
si scrive come
F(z) = F

(s) =

n=0
f(nT
c
) z
n
(1.46)
ed `e la trasformata Z del segnale campionato f

(t)
La trasformata Z gode delle seguenti propriet`a, totalmente equivalenti alle propriet`a della trasformata di Laplace:
linearit`a La trasformata di una combinazione lineare di due o pi` u funzioni `e uguale alla combinazione lineare delle
trasformate delle singole funzioni.
Z[Af
1
(n) +Bf
2
(n)] = AF
1
(z) +BF
2
(z)
.
ritardo se F(z) `e la trasformata della funzione f(n), la trasformata della funzione ritardata di K unit`a vale:
Z[f(n k)] = z
K
F(z)
valore iniziale
f(0) = lim
n0
f(n) = lim
z
F(z)
valore nale
f() = lim
n
f(n) = lim
z1
_
z 1
z
F(z)
_
1.9.1 I ltri digitali
I ltri digitali, noti anche come ltri numerici, operano su sequenze numeriche per generare una nuova sequenza numerica.
I ltri digitali si possono classicare in due categorie:
Filtri a risposta innita IIR (Innite Impulse Response)
Filtri a risposta nita FIR (Finite Impulse Response)
Nei ltri ricorsivi IIR il segnale di uscita `e ottenuto come combinazione lineare di un numero limitato di segnali di
ingresso e di uscita. Ovvero:
y(n) =
N

i=0
a
n
x(n i)
M

i=1
b
n
y(n i) (1.47)
dove si vede che il contributo alluscita corrente dipende sia dalla storia passata degli ingressi, ma anche dalla storia passata
delle uscite. La risposta allimpulso di Dirac `e una sequenza che tende asintoticamente a zero.
Nei ltri non ricorsivi FIR luscita dipende solo dalla storia passata degli ingressi:
y(n) =
N

i=0
a
n
x(n i) (1.48)
1.10. TRASFORMAZIONI TRA IMMAGINI E LOOK UP TABLE 13
src dst
(u, v)
(u

, v

)
f
f
1
Figura 1.5: Trasformazione diretta e inversa tra immagini.
La risposta allimpulso di Dirac `e una risposta che diventa comunque zero dopo un tempo nito.
La conversione dal dominio di Laplace s (continuo) a quello della trasformata z (discreto) e viceversa si ottiene attraverso
la relazione z = e
sT
c
e la sua inversa s =
1
T
c
ln z, dove T
c
`e il tempo di campionamento in secondi.
Essendo tuttavia tale sostituzione complessa da eseguire, per ottenere un ltro digitale si parte comunque dalla trasformata
di Laplace di un ltro analogico e, attraverso una trasformazione approssimata, si arriva alla Trasformata Zeta. Allo stesso
modo se si applica la trasformazione z = e
jT
c
`e possibile limitare la trasformata al cerchio unitario e poter lavorare cos` in
frequenza come trasformata tempo-discreto di Fourier (DTFT).
Una di queste tecniche di trasformazione approssimata `e la trasformazione bilineare che si ricava integrando le equazioni
dierenziali mediante il metodo dei trapezi (di Eulero). Un ltro digitale H(Z) deriva da un ltro analogico H(s) con la
seguente sostituzione (e linversa):
s
2
T
c
z 1
z + 1
z
2 +sT
c
2 sT
c
(1.49)
questa sostituzione ha diversi pregi (conserva la stabilit`a del ltro analogico per esempio) e la mappatura del piano s in z `e
quantomeno univoca.
1.10 Trasformazioni tra immagini e Look Up Table
Essendo un argomento abbastanza delicato che potrebbe portare alcune ambiguit`a conviene dedicare una sezione a come in
pratica vengono applicate le trasformazioni tra immagini.
Sia f una generica trasformazione biiettiva
f : R
2
R
2
(1.50)
tale che trasformi il punto (u, v)

appartenente allimmagine sorgente nel punto (u

, v

dellimmagine destinazione, ovvero


(u

, v

= f(u, v) (1.51)
Questa trasformazione verr`a chiamata Forward Warping.
Essendo le immagini non continue ma quantizzate in pixel, la trasformazione f non `e usabile direttamente nelle applicazioni
reali perche potrebbe sia lasciare dei buchi nella seconda immagine sia proiettare pi` u volte lo stesso punto della prima. Per
queste ragioni quando si processa unimmagine si lavora sempre con la trasformazione inversa f
1
che, per ogni punto
dellimmagine destinazione (u

, v

, restituisce il punto dellimmagine sorgente (u, v) da cui estrarre il colore, ovvero:


(u, v)

= f
1
(u

, v

) (1.52)
Questa trasformazione verr`a indicata con Inverse Warping.
`
E chiaro che anche limmagine sorgente `e composta da pixel, ma la conoscenza del punto (u, v)

permette in maniera
molto semplice lutilizzo di tecniche, quali linterpolazione lineare, per ricavare il valore del pixel.
Se la funzione f
1
`e molto complicata e si vuole applicare la medesima trasformazione a pi` u immagini, per risparmiare
tempo computazionale si pu`o creare una Look Up Table (LUT) di elementi (u, v)

grande come limmagine destinazione dove


memorizzare per ogni elemento il risultato della trasformazione (1.52).
1.11 Limmagine Integrale
Sia I una generica immagine a toni di grigio. Il valore del generico pixel (x, y) dellimmagine integrale J `e calcolato sommando
i valori di ogni pixel dellimmagine sorgente contenuti allinterno del rettangolo (0, 0) (x, y):
J(x, y) =
y

v=0
x

u=0
I(u, v) (1.53)
Con questa denizione `e da notare che gli estremi del rettangolo sono compresi nella sommatoria (gura 1.6).
14 CAPITOLO 1. ELEMENTI
J =

u
I
v
u
c d
b a
S
S = J(d) +J(a) J(b) J(c)
Figura 1.6: Costruzione dellimmagine integrale e utilizzo per calcolare aree.
Larticio computazione di usare limmagine integrale permette di ottimizzare diversi algoritmi mostrati in questo libro:
feature di Haar (sezione 5.4.1) e SURF (sezione 5.3).
Grazie allimmagine integrale `e possibile a costo costante di 4 somme ottenere la sommatoria di una qualunque sottoparte
rettangolare dellimmagine I:

y
1
y=y
0

x
1
x=x
0
I(x, y) =
J(x
1
, y
1
) +J(x
0
1, y
0
1) J(x
1
, y
0
1) J(x
0
1, y
1
)
(1.54)
Il valore cos` ottenuto rappresenta la somma degli elementi dellimmagine originale allinterno del rettangolo (estremi
inclusi).
Oltre a poter calcolare velocemente la sommatoria di una qualsiasi sottoparte dellimmagine, `e possibile ottenere facilmente
convoluzioni con kernel di forma particolare in maniera molto agevole e sempre con prestazioni invarianti rispetto alla
dimensione del ltro.
Capitolo 2
Elementi di Statistica
La visione articiale si pone come obiettivo quello di interpretare il mondo attraverso gli occhi di un calcolatore. Tuttavia,
ogni qualvolta si voglia esaminare una quantit`a reale osservabile e ricondurla a un modello matematico, si entra nel campo
della statistica. In questo capitolo vengono mostrate alcune tecniche di statistica fondamentali per chi sviluppa algoritmi di
visione delle macchine.
2.1 Media e Varianza
`
E facile supporre che la nozione della media tra numeri sia un concetto conosciuto a tutti, almeno dal punto di vista intuitivo.
In questa sezione ne viene comunque fatto un breve riassunto e verranno sottolineati alcuni aspetti interessanti.
Per n campioni di una quantit`a osservata x la media campionaria sample mean si indica x e vale
x =
1
n
n

i=1
x
i
(2.1)
Se si potessero campionare inniti valori di x, x convergerebbe al valore teorico, atteso (expected value). Questa `e la legge
dei grandi numeri (Law of Large Numbers).
Il valor medio atteso (expectation, mean) di una variabile casuale X si indica con E[X] o e si pu`o calcolare da variabili
aleatorie discrete attraverso la formula
E[X] =
x
=
+

x
i
p
i
(2.2)
e per le variabili continue attraverso
E[X] =
x
=
_
+

xp
X
(x)dx (2.3)
`
E interessante introdurre il concetto della media di una funzione di una variabile aleatoria:
E[g(X)] =
+

g(x
i
)p
i
E[g(X)] =
_
+

g(x)p
X
(x)dx (2.4)
con g(x) una generica funzione in x, realizzazioni della variabile aleatoria X, con distribuzione di probabilit`a p
X
(x).
Quando g(x) = x si parla di statistiche di primo ordine (rst statistical moment), e in generale quando g(x) = x
k
si parla
di statistiche di k-ordine. Una statistica di particolare interesse `e il momento di secondo ordine:
E[X
2
] =
_
+

x
2
p
X
(x)dx (2.5)
Tale statistica `e importante perche permette di stimare la varianza di X.
La varianza `e denita come il valore atteso del quadrato della variabile aleatoria X a cui viene tolto il suo valor medio
g(X) = X E[X]:
var(X) =
2
X
= E[(X E[X])
2
] (2.6)
e, supponendo X e E[X] processi indipendenti, si ottiene la forma pi` u semplice
var(X) =
2
X
= E[X
2
] E[X]
2
(2.7)
15
16 CAPITOLO 2. ELEMENTI DI STATISTICA
La radice quadrata della varianza `e conosciuta come deviazione standard (standard deviation) e ha il vantaggio di avere
la stessa unit`a di misura della grandezza osservata:

X
=
_
var(X) (2.8)
La matrice delle covarianze `e lestensione a pi` u dimensioni del concetto di covarianza.
`
E costruita come

ij
= cov(X
i
, X
j
) (2.9)
dove ogni elemento della matrice contiene la covarianza tra le dimensioni del vettore aleatorio X. La covarianza indica come
una serie di variabili sono tra loro legate.
I possibili modi di indicare la matrice di covarianza sono
= E
_
(X E[X])(X E[X])

= var(X) = cov(X) = cov(X, X) (2.10)


La notazione invece della cross-covarianza `e una sola:
cov(X, Y ) = E
_
(X E[X])(Y E[Y ])

(2.11)
generalizzazione del concetto di matrice delle covarianze.
La matrice di cross-covarianza ha come elementi nella posizione (i, j) la covarianza tra la variabile aleatoria X
i
e la
variabile Y
j
:
=
_

_
cov(X
1
, Y
1
) cov(X
n
, Y
1
)
.
.
.
.
.
.
cov(X
1
, Y
m
) cov(X
n
, Y
m
)
_

_ (2.12)
La matrice di covarianza cov(X, X) `e conseguentemente simmetrica.
La matrice di covarianza `e chiamata matrice di dispersione. Linversa della matrice di covarianza si chiama matrice di
concentrazione o matrice di precisione.
La matrice di correlazione r(X, Y ) `e la matrice di cross-covarianza normalizzata rispetto alle matrici di covarianza:
r(X, Y ) =
cov(X, Y )
_
var(X)var(Y )
(2.13)
2.2 Varianza di Allan
Un problema che si incontra nellanalisi di sensori inerziali `e riuscire a stimare se il valor medio di un dato segnale subisca un
cambiamento nel tempo e con quale frequenza. David Allan ha arontato questo problema per la stabilit`a degli orologi dei
GPS denendo cos` un metodo chiamato Allan Variance (AVAR). Questa tecnica permette di stimare quanto il valor medio
di un segnale cambia nel tempo a diversi valori di integrazione.
Data una sequenza sucientemente lunga in cui un determinato segnale viene campionato, questa pu`o sempre essere
divisa in parti lunghe secondi. Da ogni parte `e possibile estrarre la media
i,
e dal confronto della variazione delle medie
successive `e possibile ottenere una misura:
AVAR
2
() =
1
2(n

1)
n1

i=1
(
i+1,

i,
)
2
(2.14)
Al cambiare di cambia il valore della varianza ed `e pertanto possibile gracare AVAR in funzione di .
Con tempi di integrazione piccoli la varianza di Allan `e dominata dal rumore del sensore. Integrando su tempi pi` u lunghi
la varianza diminuisce, no a un certo punto in cui la varianza ricomincia a salire. Questo comportamento `e dovuto alla
presenza del rumore di Random Walk (RRW) del sensore. La denizione standard di bias instability `e pertanto il punto pi` u
basso della curva della varianza di Allan.
2.3 La distribuzione Gaussiana
La distribuzione Gaussiana `e una delle distribuzioni di probabilit`a pi` u diuse in quanto modella correttamente la maggior
parte degli eventi reali. Compare in questo documento sia per quando riguarda i classicatore Bayesiani (sezione 4.4), nella
LDA (sezione 4.2), sia pi` u proprimamente nella Gaussian Mixture Models della seguente sezione 2.4.
Denizione 4 La distribuzione gaussiana standard che si indica con il simbolo A(0; 1), `e quella di densit`a
p(x) =
1

2
e

1
2
x
2

(2.15)
2.4. GAUSSIAN MIXTURE MODELS 17
4 2 0 2 4 6
0
0.1
0.2
0.3
2
4
Figura 2.1: Distribuzione gaussiana
Denizione 5 La distribuzione gaussiana generale A(;
2
), con , R,
2
0, `e quella che si ottiene dalla distribuzione
standard con la trasformazione x x +.
Nel caso univariabile (gaussiana univariata) la gaussiana ha la seguente funzione di distribuzione:
p(x) =
1

2
e

1
2

2
(2.16)
dove `e il valor medio e
2
`e la varianza.
La distribuzione gaussiana multivariabile (gaussiana multidimensionale) `e data da un vettore di dimensione n per il
valor medio e da una matrice di covarianza di dimensioni n n.
p(x) =
1
(2)
n
2
_
[[
e

1
2
(x)

1
(x)
(2.17)
distribuzione normale di valor medio = [
1
,
2
, . . .
n
]
T
e covarianza =
_

11

1n
.
.
.
.
.
.
.
.
.

n1

nn
_

_.
La quantit`a a esponente dellequazione (2.17) `e la distanza di Mahalanobis tra x e (cfr. 2.5).
Quando le variabili aleatorie sono indipendenti e di varianza uguale, la matrice `e una matrice diagonale con valori tutti
uguali a
2
e la distribuzione di probabilit`a normale multivariata si riduce a
p(x) =
1
(2
2
)
n/2
e

|x|
2
2
2
(2.18)
2.3.1 Gaussiana campionata
In applicazioni pratiche di elaborazione di segnali discreti, dove la gaussiana viene usata come ltro convolutivo, anche essa
deve essere rappresentata a passi discreti g
k
. La gaussiana viene normalmente campionata a passo uniforme e, siccome ha
comunque supporto innito, vengono presi tanti campioni per solo 3 o 4 volte la deviazione standard della gaussiana:
g
k
=
_
ce

k
2
2
2
[k[ < 3
0 otherwise
(2.19)
con c fattore di normalizzazione scelto in modo che

k
g
k
= 1.
`
E possibile estendere la gaussiana al caso multidimensionale in modo molto semplice come:
g
k
1
,k
2
,...,k
n
= g
k
1
g
k
2
. . . g
k
n
(2.20)
2.4 Gaussian Mixture Models
I modelli a miscela sono un tipo di modello di densit`a che contengono un certo numero di funzioni, solitamente gaussiane.
Queste funzioni sono unite per fornire una densit` a multimodale. Possono, per esempio, essere impiegate per modellare i
colori di un oggetto per eettuare compiti quali il tracking e la segmentazione basata sul colore.
18 CAPITOLO 2. ELEMENTI DI STATISTICA
Il mixture model `e un formalismo matematico suciente per modellare una distribuzione di probabilit`a come somma di
distribuzioni parametriche. In termini matematici:
p
X
(x) =
n

k=1
a
k
h(x[
k
) (2.21)
dove p
X
(x) `e la funzione distribuzione modellata, n `e il numero di componenti nel modello, e a
k
`e il fattore di proporzione
del componente k. Per denizione 0 < a
k
< 1 k = 1, . . . , n e a
1
+ + a
n
= 1. h(x[
k
) `e una distribuzione di probabilit`a
parametrizzata da un vettore (in generale)
k
.
I mixture models sono spesso utilizzanti quando si conosce h(x), si pu`o campionare p
X
(x) e si vuole solo determinare i
parametri a
k
e
k
. Queste situazioni sono per esempio rappresentate quando si vuole analizzare una popolazione formata da
distinte sottopopolazioni.
2.5 La distanza di Mahalanobis
Un problema molto diuso nelle applicazioni reali `e quello di capire quanto un elemento x possa appartenere o meno a una
distribuzione di probabilit`a, permettendo di dare una stima approssimativa se si tratti di un inlier o un outlier.
La distanza di Mahalanobis [Mah36] permette di ottenere una misura di una osservazione normalizzato rispetto alla
varianza della stessa. Per questo motivo viene anche indicata come distanza generalizzata.
La distanza di un vettore x rispetto a una distribuzione di valor medio e matrice di covarianza `e denita come
d(x) =
_
(x )

1
(x ) (2.22)
Tale distanza pu`o essere generalizzata (generalized squared interpoint distance) a due generici vettori aleatori x e y
appartenenti alla distribuzione con covarianza :
d(x, y) =
_
(x y)

1
(x y) (2.23)
Quando la matrice di covarianza `e diagonale si ottiene la distanza euclidea normalizzata, mentre se la matrice di covarianza
fosse esattamente la matrice identit`a (ovvero le due distribuzioni fossero di fatto incorrelate tra loro) la formulazione sopra
si ricondurrebbe alla classica distanza euclidea.
La distanza di Mahalanobis permette di misurare distanze su campioni di cui non si conosce eettivamente le unit`a di
misura, assegnando di fatto un fattore di scala automatico ai dati.
2.5.1 Standard Score
Unalternativa alla distanza di Mahalanobis `e la Standard Score. Una variabile casuale X viene standardizzata, usando le
sue statistiche empiriche, applicando la trasformazione
Z =
X

(2.24)
con media e deviazione standard di X. La nuova variabile casuale Z ha, per denizione, media nulla e varianza unitaria.
`
E possibile usare questa Z-score per scremare potenziali outlier della distribuzione.
2.6 Propagazione dellincertezza
Uno dei problemi importanti in statistica `e capire come una variabile aleatoria si propaghi allinterno di un sistema complesso
e in che misura renda aleatoria luscita.
La variabile aleatoria X +Y , somma di variabili aleatorie indipendenti, ha varianza (covarianza) pari a
var(X +Y ) = var(X) + var(Y ) (2.25)
La varianza della risultante `e la somma delle singole varianze.
Sia
y = Ax
un sistema lineare dove al vettore aleatorio x `e associata la matrice di covarianza var(X). La matrice di covarianza della
variabile aleatoria y risultante, uscita del sistema, `e
var(Y ) = var(AX) = Avar(X)A

(2.26)
2.6. PROPAGAZIONE DELLINCERTEZZA 19
Tale relazione vale anche nel caso di proiezioni y = b x e similarmente la varianza diventa
var(Y ) = var(b

X) = b

var(X)b (2.27)
Generalizzando i casi precedenti, la cross-covarianza tra Ax e By si pu`o scrivere come:
cov(AX, BY ) = Acov(X, Y )B

(2.28)
e, come caso particolare, la cross-covarianza tra x e Ax
cov(X, AX) = cov(X)A

(2.29)

E da notare che cov(Y, X) = cov(X, Y )

= Avar(X).
Gli esempi di propagazione dellincertezza visti nora si possono ulteriormente generalizzare, anticipando risultati impor-
tanti per il caso non-lineare, con una trasformazione ane f denita come
f(x) = f( x) +A(x x) (2.30)
la quale trasformazione di variabili casuali Y = f(X) ha valor medio y = f( x) e matrice di covarianza
Y
= A
X
A

.
La propagazione della covarianza nel caso non-lineare non `e normalmente ottenibile in forma chiusa ed anzi normalmente
si ottiene solo in forma approssimata. Tecniche come la simulazione Monte Carlo posso essere usate per simulare in maniera
molto accurata a diversi ordini di precisione la covarianza di una generica trasformazione. Lapprossimazione lineare `e
comunque ampiamente usata nei problemi pratici ma, come si vedr`a nella sezione successiva, tecniche moderne permettono
la stima della covarianza a ordini di precisione elevati in maniera abbastanza semplice.
Normalmente, per statistiche di primo ordine (rst-order error propagation), la trasformazione f non lineare viene
approssimata, attraverso lespansione in serie, in una trasformazione ane
f(x) f( x) +J
f
(x x) (2.31)
con J
f
matrice delle derivate parziali (jacobiano) della funzione f. In tal caso il risultato del caso lineare ane mostrato
in precedenza (equazione (2.30)) pu`o essere usato per determinare la matrice di covarianza della variabile f(x), sostituendo
alla matrice A lo jacobiano e usando come valor medio atteso f( x):

Y
= J
f

X
J

f
(2.32)
2.6.1 Propagazione dellerrore attraverso statistiche linearizzate
Lapproccio a Punti Sigma Sigma Point Approch (SPA), permette di stimare il valor medio e la varianza di una variabile
casuale alluscita di un sistema f non lineare.
Per stimare valor medio e varianza, la variabile casuale x R
n
viene approssimata da 2n + 1 punti X
i
, chiamati sigma
points, ognuno pesato con un peso w
i
in modo da rappresentare attraverso questi punti una distribuzione con media e
varianza esattamente x e
x
, uguali a quelli di x.
Per ottenere dei punti con media e varianza uguali a quelli della distribuzione originale `e necessario prendere 2n + 1
sigma-points e i rispettivi pesi nel modo seguente:
X
0
= x
X
i
= x +
_

x
_
i
X
i+n
= x
_

x
_
i
(2.33)
dove `e un fattore scalare che tiene conto di quanto i punti sigma sono diusi rispetto al valor medio x. Associato a ogni
punto sigma `e presente una coppia di pesi w
m
i
e w
c
i
usati nel calcolo, rispettivamente, della media e della covarianza.
A dierenza dei metodi montecarlo, i sigma-points sono scelti in maniera deterministica in modo da rappresentare al
meglio le statistiche della variabile.
Ottenuti i sigma-points, questi vengono trasformati (unscented transformation) attraverso la funzione f in punti sigma
trasformati
Y
i
= f(X
i
) i=0,...,2n (2.34)
Da questi punti `e possibile calcolare media e varianza della variabile di uscita attraverso
y

2n
i=0
w
m
i
Y
i

2n
i=0
w
c
i
(Y
i
y)(Y
i
y)

(2.35)
per ogni punto i = 0, . . . , 2n. Media e varianza cos` ottenuti sono una buona approssimazione della media e varianza della
distribuzione in ingresso trasformata attraverso la funzione f.
20 CAPITOLO 2. ELEMENTI DI STATISTICA
La trasformazione unscented (UT) [JU97], una dei possibili Sigma Point Approch, ssa come valori =

n +, dove n
`e la dimensione dello stato e `e un numero denito come =
2
(n +) n con ]0.001, 1] un numero piccolo positivo e
solitamente posto a 0 o 3 n. In alcuni articoli viene posto = 1 e = 3 n per le distribuzioni gaussiane.
I punti sigma sono punti pesati e i pesi sono dierenti nel calcolo del valor medio e della matrice di covarianza. La
trasformazione unscented ssa questi pesi a
w
m
0
=

n+
w
c
0
=

n+
+ (1
2
+)
w
i
= w
i+n
=

2(n+)
(2.36)
ma `e da notare che dierenti implementazioni di approcci sigma-point possono avere pesi dierenti. La dierenza tra i pesi
w
m
i
e w
c
i
`e solo nel termine centrale. Viene ssato = 2 per le distribuzioni gaussiane.
2.6.2 Esempi di propagazione degli Errori
Risulta importante nel campo della visione articiale la teoria della propagazione degli errori, in quanto sono comuni le
operazioni di misura di valori, sia il riconoscimento della posizione di una particolare feature, e quanto questo errore possa
inuire nei calcoli successivi.
Lerrore di misura dovuto a rumore interviene in osservazioni nella forma x = x + , dove x `e il valore osservato, x il
valore reale e `e il rumore additivo (per esempio gaussiano bianco di varianza
2
x
).
Nel caso della visione potrebbe essere interessante stimare come si propaga nel sistema lerrore generato dallosservazione
imprecisa di un punto sullimmagine. In questo caso le variabili da stimare saranno x e y coordinate immagine aette
entrambe da errore di localizzazione di varianza
2
x
e
2
y
rispettivamente, normalmente (in prima approssimazione) non
correlate tra di loro.
La generica funzione che sfrutta la conoscenza di un punto dellimmagine z(x, y) (funzione in due variabili) si pu`o
approssimare al primo ordine con Taylor come
z(x, y) z(x
0
, y
0
) + (
z
x
)
x
0
,y
0
(x x
0
) + (
z
y
)
x
0
,y
0
(y y
0
) (2.37)
da cui la propagazione dellerrore si pu`o scrivere come

2
z
=
_
z
x
_
2

2
x
+
_
z
y
_
2

2
y
(2.38)
Esempio 1. La propagazione dellerrore di z =
1
xy
risulta essere

2
z
=

2
x
+
2
y
(x y)
4
(2.39)
Esempio 2. La propagazione dellerrore di z =
x
y
risulta essere

2
z
=
1
y
2

2
x
+
x
2
y
4

2
y
(2.40)
`
E chiaro da queste equazioni come il valore assoluto che assumono le variabili (x e y negli esempi) inuisca direttamente
sulla stima dellerrore sulla variabile nale z. Alcune variabili producono risultati a varianza inferiore man mano che
aumentano di intensit`a, mentre altre possono avere un comportamento contrario.
2.7 Condizionamento nei sistemi lineari sovradimensionati
Nella sezione precedente si `e discusso come si propaga il rumore attraverso una applicazione lineare. In questa sezione si
analizza il caso complementare dove la stima del rumore `e in uscita del sistema e si vuole conoscere come questo rumore
pregiudichi la stima delle incognite del sistema. Per buona parte di questa sezione si fa riferimento alla teoria discussa in
sezione 1.1 e ne `e di fatto la continuazione, per integrarla poi, con il capitolo successivo, sezione 3.1, nel discorso pi` u generale
di regressione a modelli non lineari.
Sia
Ax = b (2.41)
un sistema lineare ideale, pertanto non aetto da rumore, con x la soluzione esatta del problema.
Una perturbazione sulla colonna dei termini noti
Ax =

b (2.42)
2.8. MEDIA PONDERATA CON LA VARIANZA 21
con

b = b +b provoca una perturbazione x = x +x sulla soluzione di entit`a pari a
x = A
1
b (2.43)
In questo modo si ricade nel caso visto in precedenza di propagazione di rumore in un sistema lineare. Questa soluzione `e
equivalente alla regressione ai minimi quadrati (Least Squares).
Un indice pi` u interessante `e calcolare la norma di tale errore in relazione al valore atteso. Tale relazione vale
|x|
|x|
|A||A
1
|
|b|
|b|
= (A)
|b|
|b|
(2.44)
avendo denito (A) numero di condizionamento (condition number) della matrice dei coecienti (sensitivity matrix) A. Il
caso particolare in cui A `e singolare, il condizionamento della matrice si pone pari a (A) = .
`
E possibile ricavare il condizionamento di una matrice usando unulteriore propriet`a della decomposizione SVD. Se si
esplicita lequazione (1.6) si ottiene che un sistema lineare, scritto in forma di decomposizione della matrice dei coecienti,
ha come soluzione
x =

i
b

i
v
i
(2.45)
Quando i valori singolari
i
sono bassi, piccole variazioni al numeratore sono amplicate: sotto la norma euclidea il numero
di condizionamento di una matrice `e esattamente il rapporto tra il pi` u grande valore singolare rispetto al pi` u piccolo. Il
condizionamento `e sempre positivo e un condizionamento prossimo allunit`a indica una matrice ben condizionata.
Riassumendo il condizionamento ha le seguenti importanti propriet`a:
(A) = (A
1
)
(cA) = (A) per ogni c ,= 0
(A) 1
(A) =

1

n
se la norma `e euclidea
(A) = 1 se A `e ortogonale
Nel caso di sistema sovradimensionato `e richiesta una soluzione che minimizza una funzione costo come quella di
equazione (1.2). Al posto dellinversa si pu`o usare la pseudo-inversa.
Come gi`a fatto notare nella sezione 1.1 la soluzione alle equazioni perpendicolari tende invece ad amplicare gli errori in
quanto:

_
A

A
_
=
_

n
_
2
(2.46)
2.8 Media ponderata con la varianza
Avendo pi` u osservazioni dello stesso osservabile nello stesso istante, ottenute normalmente attraverso dierenti metodi di
misura con varianza dierente
2
i
, `e possibile combinare tra loro le singole osservazioni attraverso una media pesata (stimatore
di massima verosimiglianza maximum likelihood estimator) a cui ogni singolo contributo viene assegnato un peso
w
i
=
1

2
i
(2.47)
In questo modo la varianza della media si riduce al minimo possibile ed equivale a

2
x
=
1

1/
2
i
(2.48)
Conseguenza diretta `e il poter unire n letture dello stesso sensore e dello stesso osservabile (supposto costante). La
varianza nale si riduce infatti

2
x
=

2
0
n
(2.49)

E possibile costruire in modo iterativo questo risultato attraverso la successione:


x
i+1
= (1 k) x
i
+kx
i+1
k =

2
x

2
x
+
2
i+1
(2.50)
con k fattore di blending. Scritta in questo modo, la stima dellosservabile `e nella stessa forma del ltro di Kalman
monodimensionale (sezione 2.9.2): senza rumore di processo, il guadagno k `e tendente a zero.
22 CAPITOLO 2. ELEMENTI DI STATISTICA
2.9 Filtri Bayesiani
In questa sezione viene discusso il problema dei ltraggi, ovvero quando si hanno dati proveniente da uno o pi` u sensori aetti
da rumore rappresentanti osservazione dello stato dinamico di un sistema, non direttamente osservabile ma di cui `e richiesta
una stima.
Il procedimento con cui si cerca di trovare la miglior stima dello stato interno di un sistema viene chiamato ltraggio
in quanto `e un metodo per ltrare via il rumore.
Levoluzione di un sistema (levoluzione del suo stato interno) deve seguire leggi siche conosciute su cui va ad agire una
componente di rumore (rumore di processo). Un processo sico pu`o essere visto, nella sua rappresentazione di spazio di stato
(State Space Model ), attraverso una funzione che descrive come lo stato x
t
evolve nel tempo:
x
t
= f(t, x
t
, u
t
, w
t
) (2.51)
con u
t
eventuali ingressi al sistema e w
t
parametro rappresentante il rumore di processo. Allo stesso modo anche losservazione
dello stato `e un processo sico, su cui agisce il rumore di osservazione. In questo caso `e possibile denire una funzione che
modella losservazione z
t
dato lo stato attuale
z
t
= h(t, x
t
, v
t
) (2.52)
con v
t
rumore di osservazione. Questa formulazione `e descritta nel dominio continuo del tempo, ma nelle applicazioni pratiche
viene usata la versione a tempo discreto nella forma
x
k+1
= f
k
(x
k
, u
k
, w
k
)
z
k+1
= h
k
(x
k
, v
k
)
(2.53)
dove w
k
e v
k
possono essere visti come sequenze di rumore bianco di statistiche note.
x
1
x
2
... x
m
z
1
z
2
z
m
Figura 2.2: Esempio di evoluzione e osservazione di un sistema markoviano.
Nei sistemi che soddisfano le equazioni (2.53), levoluzione dello stato `e solo funzione dello stato precedente, mentre
losservazione `e solo funzione dello stato attuale (gura 2.2). Se un sistema soddisfa tali ipotesi si dice che il processo
`e markoviano: levoluzione del sistema e losservazione devono essere solo funzione dello stato corrente e non degli stati
passati. Laccesso allinformazione sullo stato avviene sempre per via indiretta attraverso losservazione (Hidden Markov
Model ).
Molti approcci per stimare da un insieme di misure lo stato sconosciuto di un sistema non tengono conto della natura
rumorosa di tali osservazioni.
`
E possibile infatti costruire un algoritmo che esegua una regressione non lineare sulle osserva-
zioni per ottenere la stima di tutti gli stati del problema, risolvendo un problema di ottimizzazione con un elevato numero
di incognite.
I ltri, a dierenza delle regressioni, si pongono come obiettivo quello di fornire la miglior stima di delle variabili (stato)
man mano che i dati delle osservazioni arrivano. Dal punto di vista teorico le regressioni sono il caso ottimo, mentre i ltraggi
convergono al risultato corretto per un numero di campioni sucientemente elevato.
I ltri bayesiani si pongono come obiettivo quello di stimare allistante di tempo k, discreto, lo stato della variabile
aleatoria x
k
R
n
data unosservazione del sistema, normalmente indiretta, z
k
R
m
.
Le tecniche di ltraggio permettono sia di ottenere una stima dello stato sconosciuto x
k
ma anche, generalizzando, la
distribuzione di probabilit`a multivariata p(x
k
) dello stato stesso.
Data losservazione del sistema `e possibile denire una densit`a di probabilit`a di x
k
a posteriori dellosservazione dellevento
z
k
dovuta proprio alla conoscenza che si ottiene da tale osservazione:
p
+
(x
k
) = p(x
k
[z
k
) (2.54)
dove, probabilit`a condizionata, p(x
k
[z
k
) indica la probabilit`a che lo stato nascosto sia x
k
data losservazione z
k
. La funzione
p(x
k
[z
k
) rappresenta il modello della misurazione dello stato (measurement model ). In letteratura la distribuzione a posteriori
p
+
(x
k
) viene anche indicata come belief.
Applicando il teorema di Bayes allequazione (2.54) si ottiene
p(x
k
[z
k
) = c
k
p(z
k
[x
k
)p(x
k
) (2.55)
con c
k
fattore di normalizzazione tale che
_
p(x
k
[z
k
) = 1.
`
E indispensabile la conoscenza di p(z
k
[x
k
) che rappresenta la
probabilit`a che losservazione sia proprio la quantit`a z
k
osservata dato il possibile stato x
k
. Lutilizzo del teorema di Bayes
per stimare lo stato data losservazione `e il motivo per il quale questa classe di ltraggi `e detta bayesiana.
2.9. FILTRI BAYESIANI 23
Oltre alla conoscenza a posteriori della distribuzione di probabilit`a, `e possibile sfruttare unulteriore informazione per
migliorare la stima: la conoscenza a priori rispetto allosservazione ottenuta dal vincolo che lo stato non si evolve in maniera
imprevedibile, ma pu`o evolversi solo in determinati modi con determinate probabilit`a, in funzione solamente dello stato
corrente. Lipotesi che il processo sia Markoviano implica infatti che lunico stato passato che inuisce sullevoluzione del
sistema `e quello di tempo k 1, ovvero p(x
k
[x
1:k1
) = p(x
k
[x
k1
).
`
E pertanto possibile fare la predizione a priori, grazie allequazione di Chapman-Kolmogorov, di equazione
p

(x
k
) =
_
p(x
k
[x
k1
, u
k
)p(x
k1
)dx
k1
(2.56)
dove p(x
k
[x
k1
, u
k
) rappresenta la dinamica del sistema (dynamic model ) e u
k
sono gli eventuali ingressi del sistema,
totalmente conosciuti.
Dalla conoscenza dello stato a priori e dallosservazione z
k
`e possibile riscrivere lequazione (2.54) nellequazione di
aggiornamento dello stato
p
+
(x
k
) = c
k
p(z
k
[x
k
)p

(x
k
) (2.57)
Lo stato viene stimato alternando una fase di predizione (stima a priori ) a una fase di osservazione (stima a posteriori ).
Questo processo, iterativo, prende il nome di stima bayesiana ricorsiva (Recursive Bayesian Estimation).
In genere le tecniche descritte in questa sezione faranno riferimento solo allultima osservazione disponibile per stimare lo
stato, per motivi di prestazioni e semplicit`a.
`
E tuttavia possibile estendere la discussione al caso in cui vengano sfruttate tutte
le osservazioni per ottenere una stima accurata dello stato. In questo caso le equazioni di ltraggio e predizione diventano
p(x
k
[z
1:k
) =
_
p(x
1:k
[z
1:k
)dx
1:k1
p(x
k+1
[z
1:k
) =
_
p(x
k+1
[x
k
)p(x
k
[z
1:k
)dx
k
(2.58)
Per motivi di semplicit`a computazionale normalmente viene valutata solo lultima osservazione, ma in determinati casi (per
esempio nei ltri particellari) `e possibile introdurre la conoscenza di tutta la storia passata nelle equazioni.
Siccome non risulta possibile sfruttare la teoria bayesiana direttamente, in quanto stima di variabili continue, sono state
proposte in letteratura diversi approcci per permettere la stima in maniera eciente sia dal punto di vista computazionale
che di utilizzo della memoria.
A seconda che il problema sia lineare o non-lineare e la distribuzione di probabilit`a del rumore sia gaussiana o meno,
ognuno di questi ltri si comporta in maniera pi` u o meno ottima.
Il Filtro di Kalman (sezione 2.9.2) `e il ltro ottimo nel caso di problema lineare e distribuzione del rumore gaussiana. I
ltri di Kalman Estesi e Sigma-Point (sezioni 2.9.4 e 2.9.5) sono ltri sub-ottimi per problemi non-lineari e distribuzione del
rumore gaussiana. Inne i ltri particellari sono soluzione sub-ottima per i problemi non lineari con distribuzione del rumore
non gaussiana.
I ltri grid-based e i ltri particellari (sezione 2.9.1) lavorano su una rappresentazione discreta dello stato, mentre i ltri
Kalman, Extendend e Sigma-Point lavorano su una rappresentazione continua dello stato.
Kalman, Extended e Sigma-Point stimano la distribuzione dellincertezza come una singola gaussiana. Esistono estensioni
multimodali come Multi-hypothesis tracking (MHT) che permettono di applicare i ltri di Kalman a distribuzioni come miscela
di gaussiane, mentre i ltri particellari e grid-based sono per loro natura multimodali.
Un ottimo survey sui ltraggi bayesiani `e [Che03].
2.9.1 Metodi Grid-based
Gli approcci grid-based si adattano perfettamente a quei problemi dove lo stato assume solo un numero limitato di valori
discreti (vengono infatti anche detti Filtri Discreti), o forniscono una stima approssimata in punti ssi nel caso di stato
continuo (histogram lters). Ogni elemento della griglia (o dellistogramma) rappresenta la probabilit`a che lo stato sia
eettivamente in quella particolare cella. La teoria dei ltri bayesiani (perci`o distribuzioni multimodali e sistemi fortemente
non lineari) `e sfruttata direttamente, limitata per`o ai soli punti discreti in cui lo stato pu`o vivere.
Si supponga che vengano usati m punti per rappresentare lo stato x R
n
. Se lo stato originale `e continuo questa `e
chiaramente una approssimazione ed `e preferibile che m n. Esistono pertanto x
i,k
R
n
con i = 1, . . . , m stati possibili a
cui `e associata una distribuzione di probabilit`a p
i,k
che si evolve nel tempo in base alla dinamica del problema.
Valgono le stesse equazioni viste in precedenza, ovvero la stima a priori :
p

i,k
=
m

j=1
p(x
i,k
[x
j,k1
)p
+
j,k1
=
m

j=1
f
i,j
p
+
j,k1
i (2.59)
e lequazione di aggiornamento dello stato a posteriori dellosservazione z
k
:
p
+
i,k
= c
k
p(z
k
[x
i,k
)p

i,k
i (2.60)
con c
k
sempre fattore di normalizzazione tale che

p
+
i
= 1.
I metodi grid-based permettono di applicare pertanto la teoria ricorsiva bayesiana direttamente.
24 CAPITOLO 2. ELEMENTI DI STATISTICA
2.9.2 Filtro di Kalman
Il ltro di Kalman [WB95] cerca di stimare in presenza di disturbi lo stato interno x R
n
, non accessibile, di un sistema
tempo discreto, la cui conoscenza del modello `e completa. Di fatto il ltro di Kalman `e lo stimatore ricorsivo ottimo: se il
rumore del problema `e gaussiano, il ltro di Kalman fornisce la stima ai minimi quadrati dello stato interno del sistema.
Per ragioni storiche il ltro di Kalman si riferisce a un ltraggio su un sistema dove la transizione di stato e losservazione
sono funzioni lineari dello stato corrente.
Seguendo la teoria dei sistemi lineari, la dinamica di un sistema `e rappresentata da una equazione dierenziale del tipo
x = A(t)x(t) +Bu(t) +w(t) (2.61)
equazione di aggiornamento dello stato, a cui `e associata unosservazione indiretta di questo stato attraverso un sistema
lineare:
z(t) = H(t)x(t) +v(t) (2.62)
con z R
m
losservabile.
Il ltro di Kalman a tempo discreto viene in aiuto dei sistemi reali dove il mondo viene campionato a intervalli discreti,
trasformando il sistema lineare in un sistema del tipo
_
x
k+1
= A
k
x
k
+B
k
u
k
+w
k
z
k
= H
k
x
k
+v
k
(2.63)
Le variabili w
k
e v
k
rappresentano rispettivamente il rumore di processo e di osservazione, valor medio nullo w
k
= v
k
= 0
e varianza rispettiva Q e R conosciute (si suppone rumore gaussiano bianco), e solitamente ottenere la stima di Q risulta
molto pi` u dicile che ottenere la stima di R. Le due variabili di rumore devono essere scorrelate tra di loro. A `e una matrice
n n di transizione dello stato, B `e una matrice n l che collega lingresso di controllo opzionale u R
l
con lo stato x e
inne H `e una matrice mn che collega lo stato con la misura z
k
. Tutte queste matrici devono essere conosciute.
Il ltro di Kalman `e un ltro di stima ricorsivo e richiede a ogni iterazione la conoscenza dello stato stimato dal passo
precedente x
k1
e la corrente osservazione z
k
del sistema.
Deniamo x

k
la stima a priori dello stato del sistema, basata sulla stima ottenute al tempo k 1 e dalla dinamica del
problema, e x
k
la stima dello stato del problema a posteriori basato anche sullosservazione z
k
. In particolare da questultima
aermazione `e possibile denire lerrore della stima a priori e a a posteriori come
e

k
= x
k
x

k
e
k
= x
k
x
k
(2.64)
A questi errori `e possibile associare
P

k
= E[e

k
e

]
P
k
= E[e
k
e

k
]
(2.65)
le matrici di covarianza a priori e a posteriori rispettivamente.
Lobiettivo del ltro di Kalman `e minimizzare la covarianza dellerrore a posteriori P
k
e fornire un metodo per ottenere
la stima di x
k
data la stima a priori x

k
e losservazione z
k
.
Il ltro di Kalman fornisce una stima dello stato a posteriori attraverso una combinazione lineare della stima dello stato
precedente e dellerrore di osservazione:
x
k
= x

k
+K
k
(z
k
H
k
x

k
) (2.66)
spostando il problema sul ricavare il fattore di guadagno K
k
(blending factor). La dierenza z
k
H
k
x

k
`e chiamata residuo,
o innovation, e rappresenta la discrepanza tra losservazione predetta e quella realmente avvenuta (di fatto la metrica usata
per calcolare il residuo pu`o essere dipendente dal problema).
Il ltro di Kalman viene normalmente presentato in due fasi: aggiornamento del tempo (fase di predizione) e aggiorna-
mento della misura (fase di osservazione).
Nella prima fase si ottiene la stima a priori sia di x
k
che della covarianza P
k
. La stima a priori x

k
viene dalla buona
conoscenza della dinamica del sistema (2.63):
x

k
= A x
k1
+Bu
k
(2.67)
e allo stesso modo viene aggiornata la stima a priori della covarianza dellerrore:
P

k
= AP
k1
A

+Q
k
(2.68)
Queste sono le miglior stime dello stato e della covarianza dellistante k ottenibili a priori dellosservazione del sistema.
Nella seconda fare viene calcolato il guadagno
K
k
= P

k
H

k
_
H
k
P

k
H

k
+R
k
_
1
(2.69)
2.9. FILTRI BAYESIANI 25
che minimizza la covarianza a posteriori, e con questo fattore viene aggiornato lo stato a posteriori attraverso lequazio-
ne (2.66).
Per compattezza, e per unicare le diverse varianti dei ltri di Kalman, spesso vengono introdotte le variabili di covarianza
cov(x
k
, z
k
) = P

k
H

k
cov( z
k
) = H
k
P

k
H

k
(2.70)
in modo da poter scrivere lequazione (2.69) come
K
k
= cov(x
k
, z
k
) (cov( z
k
) +R
k
)
1
(2.71)
Grazie al guadagno K, viene calcolata la stima a posteriori della matrice di covarianza:
P
k
= (I K
k
H
k
)P

k
(2.72)
e, sostituendo le covarianze (2.70) in (2.72) si ottiene
P
k
= P

k
K
k
cov(x
k
, z
k
)

(2.73)
Come si pu`o facilmente notare la matrice di covarianza e il guadagno di Kalman non dipendono minimamente dallo stato
ne dalle osservazioni ne tantomeno dal residuo, e hanno una storia indipendente.
Il valore iniziale dello stato deve essere il pi` u simile possibile al valore vero e la somiglianza a questo valore va inserita
nella matrice di covarianza iniziale.
Filtro di Kalman monodimensionale
`
E interessante mostrare il caso semplice di ltro di Kalman applicato al caso di stato monodimensionale coincidente con
losservabile:
x
i
= x
i1
+u
i
+w
i
z
i
= x
i
+v
i
(2.74)
dove w
i
`e il rumore di processo, la sua varianza q
i
rappresenta la stima della probabilit`a di variazione del segnale stesso
(bassa se il segnale varia poco nel tempo, alta se il segnale varia molto) mentre v
i
`e il rumore di osservazione di varianza r
i
,
rumore associato allosservazione dello stato.
Il ciclo di predizione `e molto semplice e diventa:
x

i
= x
i1
+u
i
p

i
= p
i1
+q
i
(2.75)
Il guadagno di Kalman k diventa
k
i
=
p

i
p

i
+r
i
(2.76)
e inne la fase di osservazione diventa
x
i
= x

i
+k
i
(z
i
x

i
) = k
i
z
i
+ (1 k
i
)x

i
p
i
= (1 k
i
)p

i
(2.77)
Il valore di r solitamente `e possibile stimarlo a priori, mentre quello di q va impostato attraverso esperimenti.
Come si vede nella prima delle equazioni (2.77), il fattore k `e di fatto un blending factor tra losservazione e lo stato
precedente.
Nel caso monodimensionale `e facile vedere che il guadagno k e la varianza p sono processi indipendenti dallo stato e dalle
osservazioni, tantomeno dallerrore. Se r e q non variano nel tempo, k e p sono sequenze numeriche che convergono a un
numero costante determinato solamente dalla caratterizzazione del rumore, indipendentemente dai valori assunti allinizio.
Si confronti questo risultato con quello che si ottiene dallequazione (2.50).
2.9.3 Rumore correlato
Nel caso in cui il rumore non sia semplicemente additivo, ma si propaghi nel sistema attraverso una trasformazione lineare
conosciuta, il sistema di Kalman diventa:
_
x
k+1
= A
k
x
k
+B
k
u
k
+W
k
w
k
z
k
= H
k
x
k
+V
k
v
k
(2.78)
Il rumore di processo `e correlato attraverso una matrice W
k
alla sorgente, e il rumore di osservazione attraverso una matrice
V
k
.
26 CAPITOLO 2. ELEMENTI DI STATISTICA
`
E possibile in questo caso applicare le stesse equazioni del sistema di Kalman introducendo le sostituzioni:
Q

k
= W
k
Q
k
W

k
R

k
= V
k
R
k
V

k
(2.79)
Tale risultato torner` a utile nella sezione seguente sul ltro di Kalman esteso.
Chiaramente se le matrici W
k
e V
k
sono delle identit`a, ovvero il rumore `e semplicemente additito, la forma si semplica
e ridiventa quella precedente.
2.9.4 Filtro di Kalman Esteso
Il ltro di Kalman esteso Extended Kalman Filter (EKF) `e una versione non-lineare del ltro di Kalman usata quando
levoluzione dello stato del sistema `e non-lineare.
Un sistema non lineare a tempo discreto, formato dallevoluzione dello stato e dallosservazione, si pu`o scrivere in maniera
generalizzata come
_
x
k+1
= f(x
k
, u
k
, w
k
)
z
k
= h(x
k
, v
k
)
(2.80)
dove, oltre allo stato x
k
e agli ingressi u
k
, anche gli errori di processo w
k
e di osservazione v
k
possono inuire in maniera
non lineare nellevoluzione dello stato f e nellosservazione h, generalizzando anche il concetto di rumore additivo usato in
precedenza.
EKF richiede il calcolo degli jacobiani di f e di h. Attraverso le matrici delle derivate `e possibile sfruttare le stesse
formulazioni matematiche fatte per il caso di Kalman lineare visto in precedenza, usando come matrici
A
k
=
f(x,u
k
, w)
x

k
W
k
=
f( x

k
,u
k
,w)
w

w
H
k
=
h(x, v)
x

k
V
k
=
h(x,v)
v

x
(2.81)
e usare come equazione di aggiornamento
x
k
= x

k
+K
k
(z
k
h( x

k
)) (2.82)
`
E comunque da notare che anche il calcolo del residuo z
k
h( x

k
) pu`o essere una funzione non lineare (per esempio quando
si esegue un confronto tra angoli in quanto esiste una periodicit`a dellerrore).
Rispetto a Kalman lineare, la versione EKF risulta una scelta sub-ottima come stimatore, ma comunque ampiamente
accettata e usata in applicazioni pratiche. Il ltro di Kalman esteso, per sua costruzione, raggiunge solo una precisione di
primo ordine (cosa comunque ottima nel caso di derivate seconde nulle).
2.9.5 Filtro di Kalman Sigma-Point
Nel caso di funzioni f e h non lineari, il Sigma Point Kalman Filter (SPKF) tende a fornire prestazioni migliori rispetto a
EKF: la propagazione dellerrore linearizzata dal punto di vista statistico (SPKF) `e generalmente migliore della propagazione
dellespansione in serie di Taylor (EKF).
Non solo lo stato, ma diversi punti intorno la media (chiamati sigma points) vengono propagati attraverso le varie funzioni
che compongono laggiornamento dello stato di Kalman. Non richiede lutilizzo di Jacobiani e si dimostra che fornisce una
stima migliore di media e varianza del processo.
Il ltro di Kalman Unscented (Unscented Kalman lter) `e una delle varie versioni del ltro di Kalman a Sigma-Point.
In questo caso si fa uso della teoria per la propagazione dellincertezza discussa in sezione 2.6.1 per stimare valor medio e
covarianza dello stato a priori e delle osservazioni a priori.
Nel caso pi` u generale dellaggiornamento dello stato deniamo, per mantenere la sintassi uguale a quella discussa in
sezione 2.6.1, una variabile chiamata stato aumentato x
a
R
n
a
con n
a
= n +q formata dallo stato x R
n
e dal rumore di
processo w, a media nulla, in modo da usare la funzione
X

= f(x
a
k1
, u
k
) (2.83)
di aggiornamento dello stato che tenga conto in maniera non lineare anche del contibuto del rumore di processo. Allo stesso
modo deniamo la matrice di covarianza aumentata come:
P
a
x
=
_
P
x
0
0 Q
_
(2.84)
Nel caso in cui il rumore di processo sia additivo il sistema pu`o ridiventare simile a quello di Kalman lineare nella forma
P

k
=
2n

i=0
w
c
i
(X

i


X

i
)(X

i


X

i
)

+Q
k
(2.85)
2.9. FILTRI BAYESIANI 27
Dai sigma points X

i
, proiettati attraverso f e rappresentanti la distribuzione dello stato a priori, `e possibile generare
altri punti sigma in modo da ottenere la stima dellosservazione a priori :
Z
i
= h(X

i
) (2.86)
con cui calcolare il valore pi` u probabile dellosservazione z pesando i risultati Z
i
con i pesi dei sigma point associati come
nellequazione (2.35). Anche in questo caso il rumore di osservazione pu`o essere inserito come stato aumentato o, se supposto
additivo e indipendente, pu`o venire sommato alla matrice di covarianza.
Attraverso la conoscenza dei punti sigma X

i
e Z
i
`e possibile ottenere facilmente la covarianza cov(Z) e anche la
cross-covarianza cov(X, Z) generalizzando lequazione (2.35):
cov (X, Z)
2n

i=0
w
c
i
(X
i
x)(Z
i
z)

(2.87)
Data la conoscenza della covarianza cov(Z) e la cross-covarianza cov(X, Z) il guadagno di Kalman sigma-point diventa
esattamente come quello espresso dallequazione (2.71) e laggiornamento della covarianza P
k
eque lequazione (2.73).
2.9.6 IEKF e ISPKF
Il ltro di Kalman esteso fa uso dello jacobiano della funzione di osservazione h centrata nello stato a priori, e grazie alla
conoscenza dellosservazione permette di ottenere uno stato a posteriori.
Di fatto questo procedimento `e esattamente una singola iterazione del metodo di Gauss-Newton.

E possibile aumentare le iterazioni in modo da ottenere i ltri di Kalman iterativi, che normalmente presentano prestazioni
nettamente migliori della loro controparte non iterativa.
Lunica dierenza rispetto ai rispettivi ltri non iterativi `e nella parte di osservazione (cfr. equazione (2.82)), sostituita
da iterazioni nella forma:
x
i+1
= x +K(z h(x
i
) H
i
( x x
i
)) (2.88)
con il guadagno K calcolato in maniera iterativa come
K = PH

i
(H
i
PH

i
+R)
1
(2.89)
e usando come valore iniziale per la minimizzazione, il valore x
0
= x

.
Il valore di K associato allultima iterazione viene usata per aggiornare la matrice di covarianza di processo.
Lo stesso procedimento si pu`o applicare al ltro SPKF per ottenere lIterated Sigma Point Kalman Filter [SSM06], dove
literazione per calcolare lo stato `e nella forma
x
i+1
= x +K
_
z h(x
i
) cov(A, :)

P
1
( x x
i
)
_
(2.90)
2.9.7 Particle Filter
Gli approcci lineari e quasi lineari proposti da Kalman possono essere usati in quei problemi dove lo stato `e gaussiano o quasi
gaussiano ma comunque con distribuzione unimodale: la stima dello stato allistante di tempo k `e funzione diretta dellunica
stima dello stato allistante di tempo k 1 e della covarianza di tale stima.
Quando `e richiesto di ricavare la distribuzione di probabilit`a dello stato del sistema p(x
k
; u
k1
; z
k
) allistante di tempo
k, funzione degli ingressi e delle osservazioni gli approcci di tipo Kalman non sono pi` u soddisfacenti.
Gli approcci grid based sono adatti a quei problemi, di fatto poco comuni, dove lo stato `e discretizzabile e nito. Gli
approcci histogram based/occupacy grid si adattano a una classe di problemi maggiore, per`o, a causa del campionamento
uniforme dello stato, scalano molto male con laumentare delle dimensioni.
Quando si vuole estrarre una generica statistica h() (per esempio media, o varianza) da una distribuzione di probabilit`a
p(x) si usa lequazione:

h
def
=
_
X
h(x)p(x)dx (2.91)
(cfr. equazione (2.4)).
Nel caso in cui tale stima non si possa ottenere per via analitica, `e comunque possibile ricavarla per via indiretta, attraverso
lanalisi di x
i
campioni indipendenti, con 1 i N, estratti casualmente con distribuzione esattamente p. Dati i campioni
x
i
generati in questo modo, la stima Monte Carlo di h() `e data da

h
1
N
N

i=1
h(x
i
) (2.92)
Monte Carlo non risolve tutti i problemi ne suggerisce come ottenere i campioni casuali in maniera eciente. Il problema
diventa sensibile nei casi multidimensionali dove le aree in cui la probabilit`a assume valori signicativi sono estremamente
28 CAPITOLO 2. ELEMENTI DI STATISTICA
esigue. Lobiettivo che si pone infatti lImportant Sampling (IS) `e campionare la distribuzione p(x) in regioni importanti
in modo da massimizzare lecienza computazionale.
Lidea dellImportant Sampling `e quella di prendere una pi` u semplice distribuzione q(x) (Importance density), al posto
della vera p(x) normalmente dicile da campionare (o da riprodurre), secondo la sostituzione:
_
X
h(x)p(x)dx =
_
X
h(x)
p(x)
q(x)
q(x)dx =
_
X
h(x)w(x)q(x)dx
introducendo il sistema di pesi w(x). Attraverso luso di adeguati pesi pertanto `e possibile modicare lequazione (2.92) in

h
1
N
N

i=1
w
i
h(x
i
) (2.93)
dove w
i
W
i
= p(x
i
)/q(x
i
) rappresenta un peso correttivo, fattore di importanza (important weights), per convertire la
distribuzione di supporto q a quella reale p. I pesi W
i
devono essere normalizzati
w
i
=
W
i

W
i
(2.94)
per poter essere utilizzati.
Pi` u la distribuzione q(x) `e simile alla p(x), pi` u la stima risulter`a corretta. Daltra parte la distribuzione q(x) deve essere
molto semplice da campionare (per esempio distribuzione uniforme o gaussiana).
Data la conoscenza dei ltri bayesiani e con le tecniche Montecarlo `e possibile arontare la teoria dei ltri particellari. Lo
stato al tempo t `e rappresentato da un insieme di campioni (particles) e ogni campione `e un ipotesi dello stato da vagliare.
Si pu`o parlare di una serie di particelle ottenute a priori dellosservazione, applicando lequazione (2.93) alla funzione di
evoluzione dello stato.
Se si applica direttamente la teoria bayesiana ai campioni della distribuzione stimata `e possibile modicare i pesi w
i
associati ai campioni usando contemporaneamente il modello del sistema e della percezione (Sequential Important Sampling):
w
k,i
w
k1,i
p(z
k
[x
k,i
)p(x
k,i
[x
k1,i
)
q(x
k,i
[x
k1,i
, z
k
)
(2.95)
In questo modo i campioni iniziali sono sempre gli stessi, ma cambiano solo i pesi w
i
associati.
Quando possibile `e conveniente usare come Important density la distribuzione a priori:
q(x
k,i
[x
k1,i
, z
k
) = p(x
k,i
[x
k1,i
) (2.96)
in modo che, introdotta in (2.95), si ottenga
w
k,i
w
k1,i
p(z
k
[x
k,i
) (2.97)
Il problema dellapproccio SIS `e che dopo poche iterazioni solo alcune particelle avranno peso non trascurabile (weight
degeneracy).
BootStrap/Sequential Importance Resampling
Una soluzione pi` u semplice `e la Sequential Important Resampling dove i pesi non dipendono dalle iterazioni precedenti ma
sono invece i campioni a cambiare, in seguito a una fase di resampling.
La fase di ricampionamento consiste nel generare un nuovo insieme di particelle x

ricampionando N
s
volte una versione
discreta approssimata di p(x
k
[z
k
) data da
p(x
k
[z
k
)
N
s

i=1
w
k,i
(x
k
x
k,i
) (2.98)
avendo denito
w
k,i
p(z
k
[x
k
) (2.99)
I ltri SIR non evitano il caso degenere (di fatto eliminano denitivamente le particelle poco probabili), tuttavia portano
a un notevole risparmio computazionale e concentrano la ricerca della soluzione intorno agli stati pi` u probabili.
Esistono dierenti algoritmi per eseguire il ricampionamento, per esempio:
Simple Random Resampling
Roulette Wheel / Fitness proportionate selection
Stochastic universal sampling
2.9. FILTRI BAYESIANI 29
Multinomiale (Multinomial Resamping)
Residuo (Residual Resampling)
Straticato (Stratied Resampling)
Sistematico (Systematic Resampling)
2.9.8 Stima di Parametri
Kalman, in tutte le sue varianti, `e classicamente visto come stimatore di stato. Tuttavia `e largamente diuso, principalmente
in machine learning, lutilizzo di queste tecniche per stimare i parametri di un modello:
y
k
= f(x
k
, ) (2.100)
dove y
k
sono le uscite del sistema, x
k
gli ingressi e f una funzione basata sui parametri da stimare. Il concetto di
addestramento, o tting, del modello consiste nel determinare i parametri .
Kalman permette di determinare i parametri, eventualmente variabili, del modello usando come stato da determinare
proprio in modo da ottenere un sistema iterativo del tipo
_

k+1
=
k
+u
k
y
k
= f(x
k
,
k
)
(2.101)
dove u
k
viene usato per modellare eventuali variazioni del modello: la scelta della varianza di u determina la reattivit`a alle
variazioni dei parameri del modello.
2.9.9 Filtro alfa beta
Lalpha-beta lter si pu`o vedere come una versione semplicata del ltro di Kalman dove lo stato `e rappresentato da sole due
variabili di cui una `e lintegrale dellaltra. Da una semplice similitudine con sistemi sici possiamo chiamare queste variabili
posizione x e velocit`a v. Se si suppone che la velocit`a rimanga costante nellintervallo di tempo piccolo T si ha la stima a
priori (predizione) della posizione allistante k come
x

k
= x
k1
+ Tv
k1
(2.102)
mentre la velocit`a viene sempre ritenuta costante:
v

k
= v
k1
(2.103)
Luscita tuttavia `e aetta da rumore e il valore osservato x
k
`e dierente dal valore predetto x

k
. Questo errore di
predizione r `e chiamato residuo (stima dellerrore a posteriori):
r
k
= x
k
x

k
(2.104)
Deniamo due parametri e in modo da ottenere la stima a posteriori come
_
x
k
= x

k
+r
k
v
k
= v

k
+
r
k
T
(2.105)
In questo modo si ottiene un osservatore asintotico delle variabili posizione e velocit`a. A dierenza del ltro di Kalman, il
ltro alfa-beta `e un ltro subottimo dove i parametri e sono tarati per via sperimentale senza nessun riscontro statistico.
Di fatto per`o capita spesso che anche la stima dei parametri di errore in Kalman sia frutto di supposizioni non vericabili.
Capitolo 3
Studio e Analisi di Modelli
Uno dei problemi pi` u diusi allinterno della visione articiale (e in generale allinterno della teoria dellinformazione) `e quello
di far adattare un insieme di misure aette da rumore (per esempio i pixel di unimmagine) a un modello predenito.
Oltre alla presenza di rumore, che potrebbe essere sia gaussiano bianco sia con qualunque distribuzione statistica, c`e da
considerare il problema delleventuale presenza di outlier, termine utilizzato in statistica per indicare dati troppo distanti
dal modello per farne eetivamente parte.
In questo capitolo vengono presentate sia tecniche volte a ricavare i parametri del modello da un insieme di punti aetti
da rumore (attraverso diverse tecniche di regressione) sia tecniche per individuare e rimuovere gli outlier dai dati in ingresso.
Nel capitolo successivo verranno presentate invece tecniche di regressione pi` u legate al tema della classicazione.
Per stimare i parametri di un modello alcune tecniche presenti in letteratura sono le seguenti:
Least Squares Fitting Se i dati sono tutti inliers, non ci sono outliers e lunico disturbo `e rumore, la regressione ai minimi
quadrati `e la tecnica ottima (sezione 3.1);
M-Estimator La presenza anche di pochi outlier sposta di molto il modello in quanto gli errori vengono pesati al quadra-
to [Hub96]: pesare in maniera non quadratica i punti lontani del modello stimato produce miglioramenti nella stima
stessa (sezione 3.3);
IRLS iteratively reweighted least squares viene usata quando gli outliers sono molto distanti dal modello e in bassa quantit`a:
in questa condizione si pu`o eseguire una regressione iterativa, dove a ogni ciclo i punti con errore troppo elevato vengono
rimossi (ILS) o pesati in maniera dierente (IRLS);
Hough Se i dati in ingresso sono sia aetti da errore, da molti outliers, e magari distribuzioni multimodali ma il modello
`e comunque formato da pochi parametri, la trasformata di Hough [Hou59] permette di ottenere il modello pi` u diuso
dal punto di vista statistico (sezione 3.4);
RANSAC Se gli outliers sono comparabili in numero con gli inliers e il rumore `e molto basso (rispetto alla posizione degli
outliers), il RANdom SAmpling and Consensus [FB87] permette di ottenere il miglior modello presente sulla scena
(sezione 3.5);
LMedS Il Least Median of Squares `e un algoritmo, simile a RANSAC, che ordina i punti in base alla distanza del modello
generato casualmente e sceglie fra tutti il modello con mediana dellerrore minore [Rou84] (sezione 3.5.2);
Kalman
`
E possibile inne usare un ltro di kalman per ricavare i parametri di un modello (vedi 2.9.8) quando tale
informazione `e richiesta a run-time.
A parte RANSAC e la Trasformata di Hough, le altre tecniche non permettono di gestire ottimamente il caso in cui nella
misura siano presenti due o pi` u distribuzioni che contemporaneamente si avvicinano al modello.
Nulla impedisce di usare tecniche miste, per esempio un Hough abbastanza grossolano (pertanto veloce) per rimuovere
gli outliers e successivamente una regressione ai minimi quadrati per avere un valore pi` u preciso.
3.1 Regressione ai minimi quadrati
La regressione ai minimi quadrati `e una tecnica di ottimizzazione standard per sistemi sovradimensionati che individua i
parametri = (
1
, . . . ,
m
) di una funzione f(x, ) che minimizzano un errore S calcolato come somma del quadrato (Sum
Of Squared Error) dei residui r
i
su un set di n osservazioni:
S() = SSE() =
n

i=1
|r|
2
i
=
n

i=1
|y
i
f(x
i
, )|
2
(3.1)
30
3.1. REGRESSIONE AI MINIMI QUADRATI 31
S() `e denito come residual sum of squares o alternativamente come expected squared error. Una lettura completa
sullargomento si pu`o trovare per esempio in [BW88].
In generale, data una funzione S : R
n
R bisogna trovare gli argomenti di S, chiamata pertanto funzione obiettivo o
funzione costo, che ne restituiscono il valor minimo

+
= arg min

S() (3.2)
In questo caso si parla di minimizzatore globale.
Chiaramente un minimo globale `e dicile da trovare, e normalmente si possono solo sfruttare tecniche per individuare
minimi locali.
Sia pertanto S dierenziabile. In questo caso `e valida lespansione in serie di Taylor
S(x +h) = S(x) +hS

(x) +
1
2
hS

(X)h +O([h[
3
) (3.3)
dove S

`e il gradiente e S

lhessiana.
La condizione necessaria di minimo implica che essi sia dove il gradiente si annulla:
S()
k
i
= 2

r
i
f(x
i
, )
k
i
= 0 (3.4)
Il minimo trovato in questo modo nel caso di rumore sullosservazione a valor medio nullo e varianza costante, che minimizza
la funzione costo denita come in equazione (3.1), di fatto `e il miglior stimatore lineare che normalizza la varianza (Best
Linear Unbiased Estimator BLUE).
Condizione suciente che un punto stazionario (S

() = 0) sia un minimo `e che S

() sia denita positiva.


Nel caso in cui il rumore di misura sia gaussiano con varianza non costante ma comunque conosciuta
i
, la funzione di
massima verosomiglianza da minimizzare per creare uno stimatore BLUE diventa

2
=
n

i=1
|y
i
y
i
|
2

i
(3.5)
che degenera nuovamente nel caso dei minimi quadrati quando la varianza `e costante. La condizione di minimo, equazio-
ne (3.4), si modica di conseguenza.
Generalizzando ulteriormente quando sullosservazione `e presente del rumore gaussiano con matrice di covarianza nota
, la Weighed Sum of Squared Error (SSE) si pu`o scrivere inne come

2
=
n

i=1
r

i

1
i
r
i
(3.6)
dove r
i
= y
i
y
i
. Tale stimatore coincide con il negative log likelihood per la variabile y
i
perturbata da rumore gaussiano
di media zero e covarianza
i
. Qualunque Weightes Least Squares pu`o essere ricondotto a un problema non pesato
i
= I
premoltiplicando gli scarti r
i
per una matrice L

i
tale che
1
i
= L
i
L

i
(usando per esempio una decomposizione di Cholesky
nel caso in cui tale matrice non sia diagonale). Tale formulazione della funzione di costo equivale a quella di equazione (3.1)
usando invece della distanza euclidea, la distanza di Mahalanobis (sezione 2.5).
3.1.1 Regressione lineare ai minimi quadrati
Quando f `e una funzione lineare rispetto ai parametri si parla di regressione lineare ai minimi quadrati (Linear Least
Squares o Ordinary Least Squares OLS). Tale funzione pu`o essere rappresentata nella forma di sistema lineare
y
i
= x
i
+
i
(3.7)
dove sono i parametri sconosciuti da ricavare e
i
`e rumore additivo gaussiano bianco a media nulla.
Tutti i singoli vincoli possono essere raccolti in forma matriciale
y = X + (3.8)
Il vettore y `e il vettore delle risposte (variabili dipendenti), la matrice X = (x
1
, . . . , x
n
)

che raccoglie le variabili indipendenti


(explanatory variables) viene chiamata design matrix, e inne `e il vettore del rumore additivo a media nulla E[] = 0 e
varianza . Il vettore `e chiamato Linear Projection Coecient o Linear Predictor.
Il teorema di Gauss-Markov dimostra che uno stimatore ai minimi quadrati `e la miglior scelta tra tutti gli stimatori
BLUE a minima varianza quando la varianza sullosservazione `e costante (homoskedastic).
32 CAPITOLO 3. STUDIO E ANALISI DI MODELLI
La miglior stima ai minimi quadrati

che minimizza la somma dei residui `e la soluzione del problema lineare

= arg min
b
||
2
= arg min
b

|y
i
x
i
b|
2
= (X

X)
1
X

y (3.9)
Lo stesso risultato era gi`a pervenuto nella sezione 1.1 riguardante la pseudoinversa di una matrice: una decomposizione SVD
della matrice X ritorna la soluzione migliore dal punto di vista della precisione di calcolo.
Nel caso di rumore a varianza non costante tra i campioni osservati (heteroskedastic) la regressione a minimi quadrati
pesata `e la scelta ottima dal punto bayesiano (BLUE)
w
i
=
1

i
(3.10)
con w
i
> 0 che tengono conto le varie incertezze legate ad ogni osservazione y
i
cos` che 1/w
i
sia la deviazione standard della
misura i-esima. Inseriti i pesi w
i
in una matrice diagonale W si ottiene un nuovo sistema lineare dove ogni riga di fatto ha
la medesima varianza di osservazione. La soluzione che minimizza , pu`o sempre essere espressa come

= (WX)
+
Wy (3.11)
con W =
1
.
Generalizzando ulteriormente, nel caso di rumore a varianza non costante tra i campioni osservati e non indipendente tra
loro, la miglior stima BLUE nel caso lineare deve tenere conto della covarianza del rumore

= (X

1
X)
1
X

1
y (3.12)
Tale estimatore `e chiamato Generalized Least Squares(GLS).
La matrice P, denita come
P = X(X

X)
1
X

(3.13)
`e una matrice di proiezione (projection matrix) che trasforma le uscite (response vector) y nella loro stima y senza rumore:
Py
i
= x
i

= y
i
(3.14)
per questa propriet`a P `e chiamata hat matrix.
3.1.2 Total Least Squares
Estendiamo ora il problema lineare Ax = b+ al caso pi` u generale dove la matrice dei coecienti

A = A+E `e perturbata
(Errors-In-Variables model EIV). Il problema di regressione ai minimi quadrati di questo sistema `e chiamato Total Least
squares (TLS).
La soluzione del sistema perturbato
(A+E)x = b + (3.15)
corrisponde a trovare la soluzione x che minimizzi |(E )|
F
, soggetta al vincolo (3.15).
Tecniche diuse sono la Eckart-Young-Mirsky o il teorema di Eulero-Lagrange, dove il problema lineare viene trasformato
in uno omogeneo con vincoli del tipo
((A[b) + (E[))
_
x
1
_
= 0 (3.16)
La soluzione del problema `e il kernel della matrice (A[b).
3.1.3 Levenberg-Marquardt
Gli algoritmi di risoluzione di sistemi non lineari normalmente si possono vedere divisi tra algoritmi di discesa del gradiente o
algoritmi di Gauss-Newton. Per una lettura pi` u approfondita consiglio [MBT04]. Una versione pi` u recente di questi algoritmi
tuttavia, quella proposta da Levenberg-Marquardt, cerca di lavorare nei punti di forza dei due approcci in modo da trarne
vantaggio da entrambi.
Lalgoritmo di Levenberg Marquardt (LM) `e una tecnica di regressione iterativa ormai ritenuta standard per risolvere
problemi non lineari multivariabili. Una ottima descrizione dellalgoritmo pu`o essere trovata in [Lou05]. Lalgoritmo si
pu` o vedere come composto da una fase di discesa del gradiente, lenta ma che converge, seguita da un risolutore di tipo
Gauss-Newton, pi` u veloce.
Sia f una funzione non lineare che trasforma un vettore di parametri R
m
in un vettore misura y = f(), y R
n
.
Sia y un vettore di misure sul quale modellare i parametri della funzione, attraverso una minimizzazione di
s() = |y f()|
2
= r

r
3.1. REGRESSIONE AI MINIMI QUADRATI 33
con r = y f() residuo dellerrore.
Per problemi non-convessi `e necessario fornire una stima iniziale
0
della soluzione, abbastanza vicina al minimo da
ricavare. Solitamente si esegue una regressione lineare che minimizza una qualche quantit`a algebrica, ottenendo un minimo
assoluto rispetto a questa metrica, per ottenere il punto di partenza.
La funzione f in un intorno

di pu`o essere approssimata con una espansione in serie


f( +

) f() +J

con J =
f

() jacobiano della funzione f calcolato in .


Come per ogni metodo iterativo, LM produce una serie di candidati
i
che convergono verso il minimo locale e di
conseguenza per ogni iterazione `e richiesto il calcolo di un

che minimizza la quantit`a


|x f() J

| = |r J

|
Questo `e un problema di minimo lineare che si pu`o risolvere attraverso luso della normal equations:
H

= J

r (3.17)
La matrice H = J

J `e la Hessiana approssimata di f, matrice simmetrica e semidenita positiva. Lalgoritmo di Gauss-


Newton indica come nuova stima per la soluzione del sistema (3.17).
Lalgoritmo di Levenberg-Marquardt risolve invece una versione leggermente dierente dellequazione (3.17) conosciuta
come augmented normal equations:
N

= J

r (3.18)
dove N = H + I con > 0 un fattore di attenuazione (damping factor). Quando il fattore `e elevato, la matrice N `e
pressoche diagonale e lalgoritmo si avvicina a un metodo di discesa del gradiente (steepest descent gradient). Quando il
termine `e vicino a zero, lalgoritmo approssima il metodo di Gauss-Newton.
Come impostare e come modicare tra le iterazioni tuttavia `e un problema lasciato al risolutore e diverse tecniche sono
proposte in letteratura.
Siccome il massimo elemento della diagonale di H ha lo stesso ordine di grandezza del massimo autovalore si pu`o prendere
come
0
un valore del tipo

0
= max trace H
con scelto liberamente dallutente basandosi sulla propria ducia rispetto al valore di .
La modica di tra le iterazioni pu`o essere controllata dal fattore di guadagno (gain ratio):
=
s() s( +

+J

r)
Un elevato valore di indica che la versione linearizzata di f `e molto buona e si pu`o diminuire . Viceversa se `e elevato,
allora il valore di `e da aumentare. Caso limite, quando `e negativo indica una soluzione peggiorativa da scartare e `e da
aumentare in modo da avvicinarsi a un metodo a discesa del gradiente.
3.1.4 Valutazione del modello
Indipendentemente dalla tecnica scelta per rimuovere gli outlier rimangono come importanti questioni aperte sia quella di
dare un giudizio su quanto `e buono il modello ottenuto e allo stesso tempo capire quanto potrebbe essere questa stima
distante dal modello vero, a causa degli errori sui dati in ingresso.
In questa sezione viene trattato ampiamente il caso non-lineare: il caso lineare `e equivalente usando al posto dello
jacobiano J la matrice dei parametri X.
Uno stimatore intuitivo della bont`a del modello `e il root-mean-squared residual error (RMSE) o standard error of the
regression:
s =
_

n
i=1
|y
i
y
i
|
2
n
=
_
S
n
(3.19)
con y
i
= f(x
i
,

) punto stimato grazie al modello f da cui sono stati ricavati i parametri

.
Questo tuttavia non `e un indice della bont`a della soluzione, ma solo come la trasformazione combacia con i dati in ingresso
(si pensi che il residuo dellomograa tra 4 punti `e sempre zero, indipendentemente dalla quantit`a di rumore che agisce sui
singoli punti).
La propagazione in avanti della covarianza (covariance forward propagation) `e stata gi`a mostrata nella sezione 2.6 e,
ricordando, esistono 3 metodi per eseguire tale operazione. Il primo `e basato sulla approssimazione lineare del modello e
coinvolge luso dello Jacobiano, il secondo `e basato sulla pi` u generica tecnica della simulazione Monte Carlo, e inne una via
moderna alternativa, media tra le prime due, `e la Unscent Transformation (sezione 2.9.5) che permette stime no al terzo
ordine in caso di rumore gaussiano.
34 CAPITOLO 3. STUDIO E ANALISI DI MODELLI
In questo caso il problema `e allopposto quello di valutare la propagazione allindietro della varianza (backward propaga-
tion), ovvero capire la bont`a dei parametri stimati data la covarianza del rumore stimata (Covariance Matrix Estimation).
Attraverso la matrice di covarianza `e possibile denire un intervallo di condenza di .
Tale bont`a della stima dei parametri

, nel caso non-lineare, pu`o essere valutata in prima approssimazione attraverso la
versione linearizzata del modello (ma anche in questo caso tecniche come la Montecarlo o la UT possono essere utilizzate per
stime pi` u rigorose).
`
E possibile individuare la matrice di covarianza associata alla soluzione proposta

nel caso in cui la funzione f sia
biunivoca nellintorno di tale soluzione. Se `e possibile stimare il valor medio y = f(

) e la matrice di covarianza
y
allora
la trasformazione inversa f
1
avr`a valor medio

e covarianza

= (J

1
y
J)
1
(3.20)
con J(

) jacobiano del modello f calcolato nel punto



:
J
ij
=
f

j
(x
i
,

) (3.21)
Lo stimatore di covarianza di Eicker-White `e leggermente dierente.
Nel caso semplice in cui il rumore sulle uscite di f sia indipendente di varianza costante (homoskedasticity), la matrice
di covarianza stimata asintoticamente (Asymptotic Covariance Matrix) si pu`o scrivere in maniera pi` u semplice con

= (J

J)
1

2
(3.22)
con
2
, varianza del rumore di osservazione. Normalmente si pone = s calcolata empiricamente attraverso

S
n m
(3.23)
usando le statistiche a posteriori dellerrore sui dati r
i
. Il denominatore n m rappresenta i gradi di libert`a statistici del
problema: in questo modo la varianza stimata `e innita quando il numero di incognite del modello equivale al numero di
dati raccolti.
La trasformazione f potrebbe essere sovradeterminata: il rango dello jacobiano d, con d < n, `e chiamato numero dei
parametri essenziali (essential parameters). In caso di trasformazione f sovradeterminata la formula (3.20) non `e invertibile,
ma `e possibile dimostrare che la migliore approssimazione della matrice di covarianza pu`o essere ottenuta attraverso luso
della pseudo-inversa:

= (J

1
y
J)
+
Alternativamente `e possibile eseguire una decomposizione QR con Pivot dello jacobiano, individuare le colonne linearmente
dipendenti (attraverso lanalisi della diagonale della matrice R) e rimuoverle durante linversione stessa della matrice.
3.1.5 Sampson Error
Si aronti il problema di calcolare la distanza tra un punto p rispetto a una variet`a geometrica f(x) = 0. Il risultato che
minimizzi lerrore geometrico x `e
x = arg min
x
|p x| (3.24)
sotto il vincolo f(x) = 0.
La dierenza tra minimizzare una quantit`a algebrica in maniera lineare e una quantit`a geometrica in maniera non-lineare
ha spinto la ricerca a cercare un certo compromesso. Sampson, nel cercare di eseguire una regressione alle coniche, ha
supposto che le derivate della funzione costo nellintorno del minimo sono pressoche lineari e dunque approssimabili (rst
order geometric distance).
La funzione f pu`o essere approssimata con Taylor in modo tale che

f(x) f(p) +J
f
(p)
x
= 0 (3.25)
con J
f
jacobiano della funzione f e
x
= xp. Questa `e lequazione di un iperpiano e la distanza tra il punto p con il piano

f(x) = 0 `e la distanza di Sampson.


Il problema a questo punto diventa quello di trovare il punto x pi` u vicino a p, ovvero minimizzare |
x
|, che soddis il
vincolo lineare:
J
f
(p)
x
= f(p) (3.26)
Essendo un caso di minimizzazione con vincoli si risolve attraverso luso dei moltiplicatori di Lagrange, da cui si ottiene
il risultato notevole

x
= J

f
(J
f
J

f
)
1
f(p) (3.27)
3.2. REGRESSIONI NOTEVOLI 35
3.2 Regressioni notevoli
In questa sezione verranno esaminate alcune regressioni notevoli a modelli molto semplici, come rette piani e circonferenze.
3.2.1 Regressione a una retta
Usando lequazione della retta scritta in forma esplicita e supponendo lerrore di misura contenuto lungo lasse delle y, `e
possibile denire il residuo S come
S =
1
2n
n

i=1
(mx
i
+q y
i
)
2
(3.28)
La soluzione del problema `e il punto in cui le derivate di S si annullano, ovvero:
m =

x
2
x
2

(xy) x y
=
var(x)
cov(x, y)
q = m x + y
(3.29)
con x il valor medio dei campioni x
i
e lo stesso per le altre quantit`a. La retta passa per il punto ( x, y) centroide della
distribuzione.
`
E facile modicare tale risultato nel caso in cui si vuole minimizzare lo scarto lungo le x invece che lungo le y.
3.2.2 Orthogonal Distance Fit
La scrittura della funzione costo S corretta nel caso in cui lerrore sia presente su entrambi gli assi `e la Orthogonal least-
squares line t. Lerrore pu`o essere espresso infatti usando la distanza tra il punto e la retta, secondo equazione (1.19). La
regressione che usa questa metrica, pertanto detta Perpendicular Regression o Total least squares (si veda sezione 3.1.2),
ha senso quando entrambe le coordinate sono aette da errore ovvero sono entrambe variabili aleatorie. Lammontare del
rumore sulle due componenti `e supposto uguale (per il caso pi` u generale si veda la discussione in sezione 2.5). La funzione
errore S da minimizzare `e la distanza tra il punto e la retta:
S =
1
2n
n

i=1
(ax
i
+by
i
+c)
2
a
2
+b
2
(3.30)
`
E da notare che nel caso di distanza perpendicolare esiste come soluzione sia un minimo che un massimo e pertanto
esisteranno due valori di rette (ortogonali tra loro) entrambe soluzioni del sistema.
Dalla derivata parziale
S
c
si evince che la retta di regressione passa per il centroide ( x, y) della distribuzione, ovvero che
c = a x b y (3.31)
con x e y medie dei campioni x
i
e y
i
rispettivamente.
La funzione errore (3.30), usando la relazione (3.31), si pu`o scrivere come:
S =
a
2
(

x
2
x
2
) + 2ab(

(xy) x y) +b
2
(

y
2
y
2
)
a
2
+b
2
(3.32)
ovvero, facendo sostituzioni adeguate S
xx
= var(x), S
yy
= var(y) e S
xy
= cov(x, y):
S =
a
2
S
xx
+ 2abS
xy
+b
2
S
yy
a
2
+b
2
(3.33)
pi` u facilmente derivabile. Lespressione (3.33) dellerrore non `e di carattere generale, ma vale solamente per tutte le rette che
passano per il centroide della distribuzione. Essendo una forma omogenea `e conosciuta a meno di un fattore moltiplicativo:
non esiste pertanto una sola soluzione ma una relazione che lega i parametri. Escludendo i casi a = 0, b = 0 (da trattare a
parte) il vincolo per ricavare il minimo/massimo ha la forma del tipo
(a
2
b
2
)S
xy
+ab(S
yy
S
xx
) = 0 (3.34)
soluzione del problema.
`
E da notare inne che il medesimo risultato si ottiene in maniera molto pi` u semplice applicando la decomposizione SVD
ai punti. Nel caso di regressione lineare la decomposizione SVD minimizza sia lerrore algebrico che geometrico (lerrore
algebrico e geometrico coincidono quando tutti i termini aetti da rumore sono nel termine noto).
36 CAPITOLO 3. STUDIO E ANALISI DI MODELLI
3.2.3 Regressione ortogonale a un piano
Si possono fare le stesse considerazioni della retta anche per il piano. Va sottolineato che la regressione ortogonale sia
di una retta, di un piano, o di un iperpiano, `e da considerarsi come un problema di autovalori e risolvibile attraverso la
decomposizione SVD (`e esattamente la principale applicazione della PCA).
Sia p
0
= E[p] il centroide dei punti coinvolti nella regressione. Data lequazione del piano (1.24) e come funzione errore
la sommatoria delle distanze (1.27) si ottiene immediatamente il vincolo:
k = p
0
n (3.35)
ovvero, come gi`a rilevato nel caso lineare, il centroide della distribuzione appartiene al piano. Partendo da questo primo
vincolo, `e possibile descrivere il piano come
(p p
0
) n = 0 (3.36)
sistema omogeneo sovradimensionato, la cui soluzione si pu`o ottenere con la pseudoinversa (ad esempio con la fattorizzazione
QR o SVD). Il valore di n cos` ricavato sar`a conosciuto a meno di un fattore moltiplicativo e per questo motivo si pu`o
sempre normalizzare, forzandolo alla lunghezza unitaria (le soluzioni ottenute attraverso fattorizzazioni sono solitamente gi`a
normalizzate).
3.2.4 Regressione lineare a funzione polinomiale
Si pu` o facilmente generalizzare la regressione lineare a una qualunque funzione polinomiale, del tipo:
y = a
0
+a
1
x +a
2
x
2
+. . . +a
N
x
N
(3.37)
i cui parametri si ottengono nuovamente cercando il minimo della funzione errore descritta in (3.1), dove a
0
. . . a
N
sono i
parametri della curva da ricavare. Le derivate di una funzione polinomiale sono notevoli:
S
a
j
=

n
i=0
(a
0
+. . . +a
N
x
N
i
y
i
)x
j
i
= a
0

x
j
i
+. . . +a
N

x
j+N
i

y
i
x
j
i
(3.38)
Il porre il gradiente nullo signica risolvere pertanto il sistema associato:
_

1 . . .

x
N
i

x
i
. . .

x
N+1
i
.
.
.
.
.
.
.
.
.

x
N
i
. . .

x
N+N
i
_

_
_

_
a
0
.
.
.
a
N
_

_ =
_

y
i
.
.
.

y
i
x
N
i
_

_ (3.39)
che `e una matrice simmetrica.
Alterenativamente `e possibile sfruttare la teoria della pseudoinversa (sezione 1.1) e usare direttamente lequazione (3.37)
per ottenere i coecienti del polinomio che minimizzino lerrore ai minimi quadrati. Se si pensa alla pseudoinversa risolta
con il metodo delle normal equations si vede che il sistema risultante `e esattamente lo stesso di equazione (3.39).
3.2.5 Circular regression
Se si vuole calcolare la regressione lineare di una serie da dati verso lequazione della circonferenza di centro in (x
0
, y
0
) e
raggio r la funzione da minimizzare `e
S =

_
(x
i
x
0
)
2
+ (y
i
y
0
)
2
r
2
_
2
(3.40)
dove si minimizza la distanza ortogonale tra i punti e il modello. Per risolvere il problema conviene eseguire un cambio di
variabile e minimizzare la forma algebrica:
S =

(z
i
+Bx
i
+Cy
i
+D)
2
(3.41)
dove `e stato introdotto z
i
= x
2
i
+y
2
i
per semplicit`a. Il problema si riduce alla soluzione di un sistema lineare 33 di equazione

z
i
x
i
+B

x
2
i
+C

y
i
x
i
+D

x
i
= 0

z
i
y
i
+B

x
i
y
i
+C

y
2
i
+D

y
i
= 0

z
i
+B

x
i
+C

y
i
+D

1 = 0
(3.42)
simmetrico, facilmente risolvibile. Ricavati i parametri B, C e D `e possibile ottenere i parametri originali del cerchio:
x
0
=
B
2
y
0
=
C
2
r
2
= x
2
0
+y
2
0
D (3.43)
3.3. M-ESTIMATOR 37
3.3 M-Estimator
Lutilizzo della regressione ai minimi quadrati (Least squares) dellerrore rispetto ad altre funzioni di peso `e normalmente
scelta per via della semplicit`a delle derivate che si ottengono.
Tuttavia questa tecnica tratta in maniera dierente tra loro i punti vicini e pesa molto i punti lontani dal modello
(solitamente outlier).
Per risolvere questo problema `e necessario cambiare la metrica attraverso la quale vengono valutati gli errori: una
metrica dierente che potrebbe risolvere questo problema `e la regressione al valore assoluto. Il calcolo tuttavia del minimo
della funzione errore espresso come distanza in valore assoluto (Least absolute deviations regression) non `e facile, in quanto
la derivata non `e continua e richiede lutilizzo di tecniche iterative di ottimizzazione.
Peter Huber ha proposto nel 1964 una generalizzazione del concetto di minimizzazione alla massima verosomiglianza
introducendo gli M-estimator. Alcuni esempi di funzioni di regressione sono mostrate in gura 3.1.
2 0 2
0
2
4
r

(
r
)
L
2
2 0 2
0
1
2
r

(
r
)
L
1
2 0 2
0
0.5
1
1.5
r

(
r
)
Huber
2 0 2
0
0.1
0.2
r

(
r
)
Tukey
Figura 3.1: Alcuni esempi di funzioni peso per regressioni: la regressione ai minimi quadrati (metrica L2), la regressione
lineare (L1), gli stimatori di Huber e la biquadratica di Tukey.
Un M-Estimator sostituisce la metrica basata sulla somma dei quadrati a una metrica basata su una funzione (loss
function) generica con un unico minimo in zero e con crescita sub-quadratica. Gli M-Estimator generalizzano la regressione
ai minimi quadrati: ponendo (r) = |r|
2
si ottiene la forma classica della regressione.
La stima dei parametri si ottiene attraverso la minimizzazione di una sommatoria di quantit`a pesate generiche:
min

_
r
i

i
_
(3.44)
la cui soluzione, in forma chiusa o iterativa, rispetto ai minimi quadrati `e diversa a causa della dierente derivata della
funzione :

_
r
i

i
_
r
i

= 0 (3.45)
3.4 Trasformata di Hough
Sia g(x) = 0 una funzione (il modello) di cui si conosce la struttura ma che per denirla complementamente `e necessario
ottimizzare alcuni parametri . Per denirla completamente si conoscono delle coordinate x che dovrebbero appartenere al
luogo dei punti della funzione, potenzialmente aetti da rumore. La funzione pertanto si pu`o scrivere come g(, x) = 0 con
x i vincoli e gli eventuali parametri del modello da stimare.
Siano pertanto
1
. . .
m
parametri da stimare, quantizzabili e limitati, e sia
1
un parametro tale che si possa scrivere la
funzione g come

1
= f(
2
. . .
n
, x) (3.46)
Se la funzione g `e esprimibile come in equazione (3.46), `e possibile attraverso il metodo della trasformata di Hough stimare i
parametri che rappresentano il modello pi` u probabile dati i valori x con cui addestrare il modello. Per ogni elemento x `e
possibile far variare i parametri
2
. . .
n
nel loro intervallo e inserire in una immagine accumulatore i valori di
1
restituiti
dalla funzione (3.46). In questo modo `e possibile generare una mappa n-dimensionale di probabilit`a usando osservazioni x
aette da errore ma soprattutto che possono essere sia Inliers che Outliers. Il metodo di Hough in questo caso riporta il
modello pi` u probabile tra le osservazioni in ingresso ed `e molto robusto verso gli outliers. Allo stesso modo il metodo di
Hough permette di stimare un modello in presenza di una mistura di modelli con parametri dierenti.
38 CAPITOLO 3. STUDIO E ANALISI DI MODELLI
y
x

y
x

Figura 3.2: Esempio di Trasformata di Hough per individuare rette in coordinate polari: mappa accumulatore (in alto a
destra) di un singolo punto (in alto a sinistra), e mappa accumulatore (in basso a destra) di una serie di punti colineari
insieme ad outlier (in basso a sinistra).
Normalmente risulta interessante luso di Hough dove il modello ha solo 2 parametri in quanto facilmente gracabile su
una mappa bidimensionale.
Per esempio, nel caso molto comune in cui g (il modello) sia una retta, espressa come in equazione (1.20), dove i parametri
da ricavare sono e , risulta evidente che per ogni coppia di punti (x, y) e per tutti i possibili angoli di quantizzati (in
quanto angolo `e un parametro limitato) esiste uno e un solo che soddisfa lequazione (1.20).
`
E pertanto possibile creare mappa in (, ) dove per ogni punto (x, y) e per ogni viene incrementata sulla mappa
accumulatore lelemento associato a (, cos x + sin y), relazione che soddisfa lequazione (1.20).
3.5 RANSAC
Lalgoritmo di RANdom Sample And Consesus `e un algoritmo iterativo per la stima dei parametri di un modello dove
linsieme dei dati `e fortemente condizionato da molti outlier.
`
E un algoritmo non deterministico basato sulla selezione
casuale degli elementi del modello pubblicato da Fisher [FB81] nel 1981.
RANSAC, e tutte le sue varianti, possono essere viste come un algoritmo che iterativamente si alterna tra due fasi: la
fase di generazione delle ipotesi (hypothesis generation) e la fase di valutazione delle ipotesi (hypothesis evaluation).
Lalgoritmo consiste nel selezionare casualmente s campioni tra gli n campioni in ingresso da valutare, con s suciente per
ricavare un modello (lipotesi) e contare quanti degli n elementi sono vicini abbastanza al modello proposto per appartenergli.
Tutti gli elementi in ingresso che soddisfano lipotesi si chiamano consensi (consensus). Un campione appartiene o meno
al modello (`e un inlier o un outlier) se la sua distanza rispetto al modello `e inferiore o superiore a una soglia data, soglia
dipendente dal problema.
Tra tutti i modelli generati casualmente viene inne scelto tra tutti il modello che soddisfa una determinata metrica, per
esempio, per RANSAC originale, quella che ha il consenso di numero massimo.
Esiste una relazione statistica tra il numero di iterazioni N e la probabilit`a p di individuare una soluzione di soli inlier:
N =
log(1 p)
log(1 (1 )
s
)
(3.47)
con la probabilit`a a priori della densit`a degli outlier e s il numero di punti necessari a denire un modello. Anche la
dimensione di un consensus set minimo pu`o essere dedotta in via statistica come T = (1 )n.
3.5.1 M-SAC
Siccome RANSAC restituisce come modello quello che possiede il minor numero di elementi esterni a una soglia ssata, pu`o
essere visto come un M-estimator che di fatto pone a uno tutti gli elementi pi` u distanti della soglia dal modello valutato e a
zero gli elementi allinterno della soglia :
=
_
0 [e[ <
1 [e[ >
(3.48)
3.5. RANSAC 39
Il concetto si pu` o pertanto generalizzare, nelle tecniche M-SAC (M-Estimator Sample and Consensus), dove la loss
function di RANSAC viene modicata come
=
_
e
2
[e[ <

2
[e[ >
(3.49)
Questa loss function modella gli inlier come se fossero aetti da errore gaussiano a media nulla, mentre gli outlier come
distribuzione uniforme.
3.5.2 LMedS
Lalgoritmo di rigetto degli outlier Least Median of Squares (LMedS) `e molto simile concettualmente a RANSAC.
Come per RANSAC viene generato un modello partendo da campionamenti casuali dai dati in ingresso ma, invece che
scegliere il modello che raccoglie il maggior numero di consensi (o che minimizza una loss function), LMdeS seleziona fra
tutti il modello che ha il valore mediano degli errori inferiore. Tutti i dati in ingresso pertanto vengono confrontati con il
modello, ordinati per errore, ed esaminato il valore mediano.
La relazione tra probabilit`a di individuare inlier e numero di iterazioni `e lo stesso di RANSAC. RANSAC tuttavia richiede
due parametri (il numero di iterazioni e la soglia per discriminare se un elemento appartiene o meno al data-set), mentre
LMedS ne richiede solo uno. LMedS tuttavia tollera al massimo il 50% di outlier.
Capitolo 4
Classicazione
`
E indubbio che le tematiche di classicazione e in generale di machine learning rivestano un ruolo importante nella visione
articiale e non se ne pu`o parlare in maniera completa in un breve spazio come questo: questo capitolo pertanto si pone
come obiettivo di stimolare attraverso qualche spunto di riessione la ricerca sullargomento.
Come gi`a detto in precedenza, statistica, classicazione e tting di modelli si possono vedere di fatto come un unico
argomento. Di fatto la statistica ricerca il modo pi` u corretto dal punto di vista bayesiano per estrarre i parametri (dello stato
o modello) nascosti di un sistema, aetto da rumore, mentre la classicazione propone tecniche e modi su come modellizzare
un problema in maniera eciente. Di fatto, se si conoscesse il modello esatto, qualunque problema di classicazione si
ricondurrebbe a un problema di ottimizzazione. Il problema, come si vedr`a, infatti `e quello di ricavare i parametri di un
modello generico che, potendo analizzare solo un insieme ridotto di esempi, permetta di generalizzare il problema.
Da un punto di vista molto pratico, un classicatore pu`o essere visto in due modi distinti, a seconda di che tipo di uscita
il sistema vuole fornire:
come funzione di tting di un modello (eq. (4.1))
come partizionamento dello spazio degli ingressi (eq. (4.2))
Nel primo caso un classicatore viene rappresentato in maniera molto generale come una generica funzione
f : R
n
R
m
(4.1)
che permette di associare alle n caratteristiche in ingresso (rappresentati loggetto che si vuole classicare) valori di condenza
rispetto alle m classi di uscita (categorie):
f(x) = (p(y
1
[x), . . . , p(y
m
[x))
La fase di addestramento si basa su un training set formato da coppie (x
i
, y
i
) in modo da determinare i parametri della
funzione f che minimizzi sotto una determinata metrica (funzione di costo) lerrore nel traning set stesso. Siccome non `e
normalmente possibile produrre qualsiasi tipo di associazione ingresso-uscita in modo da mappare in maniera sistematica
tutto lo spazio di input nello spazio di output e allo stesso tempo se ci`o fosse anche possibile risulterebbe impossibile disporre
di adeguata memoria per rappresentare tali associazioni, si fa uso di modelli. Il problema che il training set non pu`o coprire
tutte le possibili combinazioni dei dati in ingresso associato alla scelta di un modello troppo adeguato a tali dati pu`o provocare
una non-generalizzazione delladdestramento: elementi non presenti nel set di addestramento potrebbero essere comunque
classicati in maniera errata (problema dellovertting).
Dal punto di vista pratico, data linnit`a di possibilit`a, la funzione f non potr`a essere una generica funzione ma verr`a
rappresentata da un modello a parametri nella forma
y = f(x, )
dove y R
n
`e lo spazio degli output, x R
n
spazio degli input mentre sono i parametri del modello f da determinare.
Per addestrare il classicatore bisogna pertanto individuare i parametri ottimi che minimizzino lerrore nei parametri
in uscita: la classicazione `e pertanto un problema di ottimizzazione. Per questa ragione machine learning, tting di modelli
e statistica risultano ambiti di ricerca strettamente legati. Le medesime considerazioni usate in Kalman o per Hough e tutto
ci`o detto nel capitolo di tting di modelli ai minimi quadrati si possono usare per classicare e gli algoritmi specici di
classicazione possono essere usati ad esempio per adattare una serie di osservazioni aette da rumore a una curva.
Tornando ai modi per vedere un classicatore, lespressione (4.1) pu`o essere sempre convertita in una nuova funzione g
che ad ogni gruppo di ingressi associ una sola etichetta in uscita
g : R
n
Y = y
1
, . . . , y
m
(4.2)
per esempio attraverso una votazione per maggioranza.
40
4.1. PCA 41
Il classicatore diventa una funzione che restituisce direttamente il simbolo pi` u somigliante allingresso fornito. Il training
set in questo caso deve associare a ogni ingresso (ogni elemento dello spazio) una classe y Y in uscita. Solitamente questo
modo di vedere un classicatore permette di ridurre la complessit`a computazionale e lutilizzo di risorse.
Se la funzione (4.1) rappresenta eettivamente una funzione di trasferimento, una risposta, mentre la funzione (4.2) pu`o
essere vista come un partizionamento dello spazio R
n
dove a regioni, generalmente molto complesse e non contigue dello
spazio degli ingressi, `e associata ununica classe.
Per le motivazioni addotte in precedenza non `e sicamente possibile realizzare un classicatore ottimo (se non per
problemi di dimensioni molto contenute o per modelli semplici e conosciuti perfettamente) ma esistono diversi classicatori
general purpose che a seconda del problema e delle performance richieste possono considerarsi sub-ottimi. Nel caso dei
classicatori (4.2) il problema `e quello di ottenere un partizionamento ottimo dello spazio e pertanto `e richiesto un set di
primitive veloci e tali da non usare troppa memoria nel caso di n alti, mentre nel caso (4.1) `e richiesta espressamente una
funzione che modelli molto bene il problema.
Classicatori general purpose molto utilizzati sono
Regressione una regressione a un modello `e un classicatore e tutta la teoria del capitolo 3 pu`o essere usata per classicare
dati;
Classicatori Bayesiani `e possibile usare il teorema di Bayes direttamente come classicatore o per unire insieme pi` u
classicatori in modo da massimizzare la probabilit`a a posteriori di individuare la classe corretta (sezione 4.4);
Neural Network Le reti neurali permettono di generare funzioni di tipo (4.1) concatenando tra loro somme, moltiplicazioni
e funzioni fortemente non lineari come le sigmoidi;
Albero di decisione dove i classicatori sono messi in cascata con altri classicatori (ed ogni nodo rappresenta un qualche
attributo del problema);
Decision Stump albero di decisione degenere (1 nodo), permette di partizionare il piano (pu`o essere visto come il pi` u
semplice classicatore di tipo (4.2)) usando una semplice soglia (esempio di classicatore debole).
Un particolare caso di classicatore (4.2) `e quello di classicatore binario. In questo caso il problema consiste nel cercare
una relazione che leghi il training-set S = (x
1
, y
1
) . . . (x
l
, y
l
) (X Y) dove X R
n
`e il vettore che raccoglie le
informazioni da usare per laddestramento e Y = +1, 1 lo spazio delle classi associate.
Esempi di classicatori intrinsicamente binari sono:
LDA la Linear Discriminant Analysis (sezione 4.2) `e una tecnica che permette di trovare il piano di separazione tra le classi
che massimizza la distanza tra le distribuzioni;
SVM le Macchine a Vettori di Supporto Support Vector Machines (sezione 4.3) partizionano in maniera ottima, massi-
mizzando il margine, lo spazio usando semplici iperpiani ma pu`o essere generalizzata utilizzando kernel non lineari
permettendo di inscrivere superci complesse.
I classicatori lineari (LDA e SVM-Lineare) per risolvere il problema di classicazione binaria individuano un iperpiano
ottimo w, b di separazione tra le due classi. Un iperpiano di separazione equivale ad individuare una combinazione lineare
degli elementi x X in modo da ottenere
f : y = sgn(w x +b)
Le informazioni (features) che si possono estrarre da una immagine per permetterne la classicazione sono molteplici.
In genere usare i toni di grigio/colore dellimmagine `e raramente usato in applicazioni pratiche perche tali valori sono
normalmente inuenzati dalla luminosit`a della scena e sopratutto perche rappresenterebbero uno spazio di ingresso molto
vasto, dicilmente gestibile. Sono invece molto usate le feature di Haar o gli Istogrammi dei Gradienti (HoG).
I classicatori possono inne analizzare meno dati ma pi` u signicativi: la Principal Component Analysis (sezione 4.1) per
esempio `e una tecnica che permette di ridurre il numero di ingressi al classicatore, rimuovendo le componenti linearmente
dipendenti o ininuenti.
Inne pi` u classicatori deboli (weak) possono essere messi in relazione tra loro (Ensemble Learning, sezione 4.5) in modo
da massimizzare qualche metrica globale (ad esempio il margine di separazione tra le classi). Di fatto non sono veri e propri
classicatori ma sono tecniche per unire pi` u classicatori semplici e generare un classicatore complesso (ensemble).
Non entrer`o nella spiegazione delle reti neurali in quanto, in letteratura, `e disponibile ogni cosa a riguardo.
4.1 PCA
La Principal Component Analysis (Karhunen-Loeve) `e una tecnica che permette di ordinare in una distribuzione vettoriale
dei dati in modo da massimizzarne la varianza e, attraverso questa informazione, ridurre le dimensioni del problema. Un
esempio pratico `e lequazione di un iperpiano in n dimensioni: esiste una base dello spazio che trasforma lequazione del
piano riducendola a n 1 dimensioni.
42 CAPITOLO 4. CLASSIFICAZIONE
Siano pertanto x R
n
vettori rappresentanti i risultati di un qualche esperimento.
Se esiste una base ortonormale V tale che la matrice di covarianza di
X
espressa con questa base sia diagonale, allora
gli assi di questa nuova base si chiamano componenti principali di (o della distribuzione di X). Quando si ottiene una
matrice di covarianza dove tutti gli elementi sono 0 tranne che sulla diagonale, signica che sotto questa nuova base dello
spazio gli eventi sono tra loro scorrelati. Si pu`o dimostrare che gli elementi della diagonale sono gli autovalori di
X
e per
questa ragione le varianze della proiezione del vettore x sulle componenti principali sono gli autovalori stessi.
Sia A la matrice che raccoglie tutti i risultati degli esperimenti x. Ogni riga corrisponde a un diverso risultato x e la
distribuzione di questi esperimenti deve avere media nulla (che almeno la media empirica sia nulla).
Attraverso la SVD `e possibile decomporre la matrice degli eventi A in modo che
A = USV

`
E possibile in questo modo estrarre da A i suoi valori singolari, ordinati dal maggiore al minore. Gli autovalori maggiori
sono associati ai vettori direzione di massima correlazione. Selezionando il numero di autovettori con autovalori abbastanza
grandi `e possibile creare una base dello spazio

V tale che y R
m
ottenuto come proiezione
y =

Vx
rappresenti uno spazio di dimensioni ridotte ma che comunque contenga la maggior parte dellinformazione del sistema.
Se viene cambiata lunita di misura (si veda 2.5.1) in modo tale che tutte le componenti principali siano uguali (le varianze
siano uguali) la distribuzione viene detta sferizzata.
4.2 LDA
Un esempio di riduzione delle dimensioni del problema a scopo di classicazione `e la Analisi di Discriminante Lineare
Linear Discriminant Analysis (Fisher, 1936). Se si analizza la PCA, questa tecnica si limita a massimizzare linformazione
non distinguendo tra loro le eventuali classi che compongono il problema (PCA non considera il fatto che i dati siano
rappresentativi di diverse categorie). Per questo motivo PCA di fatto non `e un vero classicatore ma `e una tecnica utile a
semplicare il problema. LDA cerca invece di massimizzare il margine di separazione delle classi (come poi far`a anche SVM)
ma allo stesso tempo cerca di massimizzare linformazione (rappresentata dalla varianza).
Sotto il termine LDA attualmente conuiscono diverse tecniche dove la Discriminante di Fisher (Fishers Linear Discri-
minant Analysis) risulta la pi` u diusa in letteratura. Il concetto `e sempre quello di ottenere un vettore w che permetta di
proiettare lo spazio n-dimensionale in uno spazio scalare che per`o massimizzi la separazione tra le classi. Per determinare
questo indice di separazione si possono usare diverse metriche.
Usando come indice la distanza Mahalanobis (vedi 2.5) tra il valor medio (empirico) delle due classi di covarianza congiunta

d(x) =
_
(
1

2
)

1
(
1

2
) (4.3)
la proiezione w che ottiene che la separazione ottima `e quella che massimizza tale distanza. Si pu`o dimostrare che la massima
separazione si raggiunge con
w =
1
(
1

2
) (4.4)
e il valore di separazione ottimo si trova a met`a strada tra le proiezioni delle due medie
c = w(
1

2
)/2 (4.5)
nel caso in cui le probabilit`a a priori dei due insiemi
1
=
2
siano identiche.
4.3 SVM
La massimizzazione del margine introdotta da LDA non tiene comunque conto di quanto le classi vengono bene separate
sicamente, ma attua una serie di operazioni per massimizzare la distanza statistica tra di loro.
Siano denite come classi quelle tipiche di un problema binario nella forma y
i
= +1, 1. Lidea base di SVM [CV95] `e
quella di ottenere un iperpiano di R
n
ottimo (decision boundary) che separi le classi del problema di classicazione binario.
Lequazione di un iperpiano, modicando leggermente la formula (1.24), `e
w x +b = 0 (4.6)
dove il vettore normale w pu`o anche non essere di norma unitaria. Un iperpiano divide lo spazio in due sottospazi dove
lequazione (4.6) ha segno opposto.
Lobiettivo di SVM `e quello di generare un classicatore lineare basato su una funzione discriminante
f(x) = w x +b (4.7)
4.3. SVM 43
Figura 4.1: Iperpiano di separazione tra due classi ottenuto attraverso SVM. I punti sul margine (tratteggiato) sono i
Support Vectors.
Il vettore w `e chiamato weight vector ed il termine b `e chiamato bias. Il segno della funzione f(x) rappresenta il risultato
della classicazione. La supercie di separazione `e un iperpiano che divide lo spazio in due sotto parti rappresentanti le due
categorie della classicazione binaria.
Supponiamo pertanto che esistano (w
0
, b
0
) ottimi tali che soddisno il vincolo
x
i
w
0
+b
0
+1 per y
i
= +1
x
i
w
0
+b
0
1 per y
i
= 1
(4.8)
ovvero, in forma pi` u compatta:
y
i
(x
i
w
0
+b
0
) 1 0 (4.9)
per ogni (y
i
, x
i
) forniti in fase di addestramento.
Si pu`o supporre che esistano, per ognuna delle categorie, uno o pi` u vettori x
i
dove le disuguaglianze (4.9) diventano
uguaglianze. Tali elementi, chiamati Support Vectors, sono i punti pi` u estremi della distribuzione e la loro distanza rappresenta
il margine attraverso il quale le due categorie possono essere separate.
La distanza punto-piano (cfr. eq.(1.27)) vale
=
|w x +b|
|w|
(4.10)
Dati due punti di classe opposta che soddisno luguaglianza (4.9), il margine pu`o essere ricavato dallequazione (4.10), e
vale
=
2
|w
0
|
(4.11)
Per massimizzare il margine dellequazione (4.11) `e suciente minimizzare la sua inversa, ovvero
min
w,b
1
2
|w|
2
(4.12)
sotto la serie di vincoli espressi dalla disuguaglianza (4.9). Questo `e il problema di ottimizzazione primale in forma standard
dellSVM.
Questa classe di problemi (minimizzazione con vincoli come disuguaglianze primal optimization problem) si risolvono
utilizzando lapproccio di Karush-Kuhn-Tucker (il metodo dei moltiplicatori di Lagrange generalizzato a disuguaglianze).
Attraverso le condizioni KKT si ottiene la funzione lagrangiana:
/(w, b, ) =
1
2
|w|
2

i
(y
i
(x
i
w+b) 1) (4.13)
da minimizzare in w e b e massimizzare in . I pesi
i
0 sono i moltiplicatori di Lagrange. Dallannullamento delle
derivate parziali si ottiene
/
b
= 0

y
i

i
= 0 (4.14)
/
w
= 0 w =

i
y
i
x
i
(4.15)
Sostituendo tali risultati (le variabili primali) allinterno della lagrangiana (4.13) questa diventa funzione dei soli moltiplica-
tori, i dual, da cui la forma duale di Wolfe:
() =

1
2

j
y
i
y
j
x
i
x
j
(4.16)
44 CAPITOLO 4. CLASSIFICAZIONE
sotto i vincoli
i
0 e

i
y
i
= 0. Il massimo della funzione calcolato su sono gli
i
associati a ogni vettore di
addestramento x
i
. Tale massimo permette di trovare la soluzione del problema originale.
Su questa relazione sono valide le condizioni KKT tra le quali `e di notevole importanza il vincolo (Complementary
slackness)

i
(y
i
(x
i
w+b) 1) = 0 (4.17)
ovvero che il massimo della lagrangiana o `e sul bordo del vincolo (
i
,= 0) o `e un minimo locale (
i
= 0). Come conseguenza
solo gli
i
sul limite sono non nulli e contribuiscono alla soluzione: tutti gli altri campioni di addestramento sono di fatto
ininuenti. Tali vettori, associati agli
i
> 0, sono i Support Vectors.
Risolvendo il problema quadratico (4.16), sotto il vincolo (4.14) e
i
0, i pesi
i
,= 0 saranno i Support Vectors. Tali
pesi, inseriti nelle equazioni (4.15) e (4.17), porteranno a ricavare liperpiano di massimo margine. Il metodo pi` u usato per
risolvere questo problema QP `e il Sequential Minimal Optimization (SMO).
Per una trattazione approfondita delle tematiche legate a SVM si pu`o fare riferimento a [SS02].
4.3.1 Soft Margin SVM
In applicazioni reali non sempre esiste un margine, ovvero le classi siano linearmente separabili nello spazio delle features
attraverso un iperpiano. Il concetto alla base del Soft Margin permette di ovviare a questo limite, introducendo una variabile
(slack) aggiuntiva per ogni campione, in modo da rilassare il vincolo sul margine
y
i
(w x
i
+b) 1
i

i
0, i
(4.18)
Il parametro rappresenta la slackness associata al campione. Quando 0 < 1 il campione `e correttamente classicato
ma `e allinterno dellarea di margine. Quando > 1 il campione `e classicato in maniera errata.
Per cercare ancora un iperpiano di separazione in qualche modo ottimo, la funzione costo da minimizzare deve considerare
anche la distanza tra il campione e il margine:
min
1
2
|w|
2
+C

i
(4.19)
soggetta ai vincoli (4.18). Il parametro C `e un grado di libert`a del problema per indicare quanto un campione deve pagare
il violare il vincolo sul margine. Quando C `e piccolo, il margine `e ampio, mentre quando C `e prossimo a innito si ricade
alla formulazione di Hard Margin di SVM.
Ogni campione x
i
pu`o cadere in tre possibili stati: oltre il margine y
i
(w

x
i
+b) > 1 e non contribuire alla funzione, sul
margine y
i
(w

x
i
+b) = 1 non partecipando alla minimizzazione ma solo come support vector, e inne cadere allinterno del
margine ed essere penalizzato tanto quanto si discosta dai vincoli forti.
La lagrangiana del sistema (4.19), con i vincoli introdotti dalle variabili , `e
/(. . .) =
1
2
|w|
2
+C

i
(y
i
(w x
i
+b) 1 +
i
)

i
(4.20)
Con laumento del numero di vincoli, le variabili duali sono sia che .
Il risultato notevole `e che, applicate le derivate, la formulazione duale di (4.20) diventa esattamente uguale alla duale del
caso Hard Margin: le variabili
i
infatti non compaiono nella formulazione duale e lunica dierenza tra il caso Hard Margin
e il caso Soft Margin `e nel vincolo sui parametri
i
, in questo caso limitati tra
0
i
C (4.21)
invece che con la semplice disuguaglianza
i
0. Il grande vantaggio di questa formulazione `e proprio nella elevata semplicit`a
dei vincoli e nel fatto che permetta di ricondurre il caso Hard Margin a un caso particolare (C = ) del Soft Margin. La
costante C `e un limite superiore al valore che gli
i
possono assumere.
4.3.2 SVM e funzioni kernel
Nonostante il Soft Margin, alcuni problemi sono intrinsicamente non separabili nello spazio delle feature. Tuttavia, dalla
conoscenza del problema, `e possibile intuire che una trasformazione non lineare : X F trasforma lo spazio delle feature
di input A nello spazio delle feature T dove liperpiano di separazione permette di discriminare meglio le categorie. La
funzione discriminante nello spazio T `e
f(x) = w

(x) +b (4.22)
Per permettere la separazione, normalmente lo spazio T `e di dimensioni maggiori dello spazio A. Questo aumento di
dimensioni provoca un aumento della complessit`a computazionale del problema e la richiesta di risorse. I metodi Kernel
risolvono questo problema.
4.4. CLASSIFICATORI BAYESIANI 45
Il vettore w `e una combinazione lineare dei campioni di addestramento (i support vector nel caso hard margin):
w =

i
(x
i
) (4.23)
La funzione discriminante assume pertanto la forma
f(x) =

i
(x
i
)

(x) +b
=

i
k(x, x
i
) +b
(4.24)
con la valutazione della funzione kernel k(x, x

).
Al momento della valutazione della funzione discriminante pertanto `e richiesto lutilizzo dei vettori di supporto (alme-
no quelli con un parametro
i
associato non trascurabile). Di fatto SVM con kernel individua alcuni pattern del set di
addestramento come informazione utile per capire quanto vicino a loro `e il pattern di valutazione in esame.
Il bias si calcola istantaneamente dallequazione (4.24), mediando
b = E[y
j

i
k(x
j
, x
i
)] (4.25)
I kernel pi` u diusi, in quanto semplici da valutare, sono i kernel gaussiani nella forma
k(x, x

) = e
xx

2
(4.26)
con parametro da impostare, e i kernel polinomiali di grado d nella forma
k(x, x

) = (x

+ 1)
d
(4.27)
e nel caso d = 1 la formulazione si riconduce al caso lineare.
Lutilizzo di funzioni kernel, unita alla possibilit`a di precalcolare tutte le combinazioni k(x
i
, x
j
), permette di denire
uninterfaccia comune tra gli addestramenti lineari e i non lineari, mantenendo di fatto lo stesso grado di prestazioni.
4.4 Classicatori bayesiani
Il teorema di Bayes, associato alla Visione Articiale, rappresenta proprio una tecnica per la classicazione di pattern, basata
sullesperienza (training set).
Per fare un esempio si supponga di voler classicare della frutta che viene mostrata a un osservatore. Per semplicit`a
si supponga che i tipi di frutta (le categorie del classicatore) siano solo due, per esempio, arance e mele. Per gli esseri
umani, ma allo stesso modo deve essere fatto per le macchine, determinare che tipo di frutta si st`a osservando viene eseguito
esaminando determinate caratteristiche (feature) estratte dallosservazione della frutta, attraverso opportune tecniche.
Se i frutti vengono scelti in maniera totalmente casuale e non `e possibile estrarre alcuna altra informazione da essi,
lapproccio ottimo per classicarli sarebbe scegliere totalmente a caso.
La teoria bayesiana di decisione svolge un ruolo importante solo quando risultano conosciute alcune informazioni a priori
sugli oggetti.
Come primo passo, si supponga di non avere comunque conoscenza alcuna su come siano fatti i frutti, ma si sa che l80%
della frutta sono mele ed il resto siano arance. Se questa `e lunica informazione su cui basare la decisione, istintivamente
si tender`a a classicare la frutta come mela (il classicatore ottimo): ogni frutto verr`a classicato come mela in quanto, in
mancanza di altre informazioni, `e lunico modo per minimizzare lerrore. Le informazioni a priori in questo caso sono le
probabilit`a che il frutto scelto sia una mela o unarancia.
Esaminiamo a questo punto il caso in cui sia possibile estrarre qualche informazione in pi` u dalla scena osservata. Il
concetto di Bayes applicato alla classicazione `e molto intuitivo anche da questo punto di vista: se osservo una particolare
caratteristica misurabile dellimmagine x (features) riesco a stimare la probabilit`a che tale immagine rappresenti una certa
classe y
i
. Sotto questo punto di vista i classicatori bayesiani forniscono esattamente la probabilit`a che il vettore di dati in
ingresso rappresenti la determinata classe in uscita.
4.4.1 Il teorema di Bayes
La denizione di probabilit`a condizionata ci permette di ottenere immediatamente il seguente fondamentale
Teorema 1 (di Bayes) Sia , }, p uno spazio probabilizzato. Siamo gli eventi y = y
i
(abbreviato con y
i
) con i = 1..n un
sistema completo di eventi di e p(y
i
) > 0 i = 1..n.
In questo caso y
i
} con p(y
i
) > 0 si avr`a che:
p(y
i
[x) =
p(y
i
)p(x[y
i
)

n
j=1
p(y
j
)p(x[y
j
)
(4.28)
e questo i = 1..n.
46 CAPITOLO 4. CLASSIFICAZIONE
Il teorema di Bayes costituisce uno degli elementi fondamentali dellapproccio soggettivista alle probabilit`a e allinferenza
statistica. Il sistema di alternative y
i
con i = 1..n viene spesso interpretato come un insieme di cause e il teorema di Bayes,
note le probabilit`a iniziali delle diverse cause, permette di assegnare probabilit`a alle cause dato un eetto x. Le probabilit`a
p(y
i
) con i = 1..n possono essere interpretate come le conoscenze a priori, ossia quelle che si hanno prima di eettuare
un esperimento statistico. Le probabilit`a p(x[y
i
) con i = 1..n vengono interpretate come la verosimiglianza o informazione
relativa a x acquisibile eseguendo un opportuno esperimento statistico. La formula di Bayes suggerisce dunque un meccanismo
di apprendimento dallesperienza: coniugando alcune conoscenze a priori sullevento y
i
date da p(y
i
) con quelle acquisibili da
un esperimento statistico date da p(x[y
i
) si perviene ad una migliore conoscenza data da p(x
i
[y) dellevento x
i
detta anche
probabilit`a a posteriori dopo aver eseguito lesperimento.
Possiamo avere, per esempio, la distribuzione di probabilit`a per il colore delle mele, cos` come quella per le arance. Per
usare la notazione introdotta in precedenza nel teorema, chiamiamo y
1
lo stato in cui la frutta sia una mela, y
2
la condizione
in cui la frutta sia unarancia e sia la x una variabile casuale che rappresenti il colore della frutta. Con questa notazione,
p(x[y
1
) rappresenta la funzione densit`a per levento colore x subordinato al fatto che lo stato sia mela, p(x[y
2
) che sia arancia.
In fase di addestramento `e possibile costruire la distribuzione di probabilit`a di p(x[y
i
) per i mela o arancia. Oltre a questa
conoscenza sono sempre note le probabilit`a a priori p(y
1
) e p(y
2
), che rappresentano semplicemente il numero totale di mele
contro il numero di arancie.
Quello che stiamo cercando `e una formula che dica quale `e la probabilit`a di una frutta di essere mela o unarancia, avendo
osservate un certo colore x.
La formula di Bayes (4.28) permette proprio questo:
p(y
i
[x) =
p(x[y
i
)p(y
i
)
p(x)
(4.29)
date le conoscenze a priori, permette di calcolare la probabilit`a a posteriori che lo stato della frutta sia Y
i
data la feature
misurata x. Pertanto, osservato un certo x sul nastro trasportatore, calcolato p(y
1
[x) e p(y
2
[x) saremo inclini a decidere che
la frutta `e un mela se il primo valore sar`a maggiore del secondo (o viceversa):
p(y
1
[x) > p(y
2
[x)
ovvero:
p(x[y
1
)p(y
1
) > p(x[y
2
)p(y
2
)
In generale per n classi lo stimatore bayesiano si pu`o denire come una discrimant function:
f(x) = y(x) = arg max
y
p(y[x) (4.30)
`
E anche possibile calcolare un indice, data la conoscenza a priori del problema, di quanto questo ragionamento sar`a
soggetto ad errori. La probabilit`a di compiere un errore data una feature osservata x sar`a dipendente dal valore massimo
delle n curve della distribuzione in x:
p(error[x) = 1 max [p(y
1
[x), p(y
2
[x), . . . , p(y
n
[x)] (4.31)
4.4.2 Il classicatore bayesiano
Con lapproccio bayesiano, sarebbe possibile costruire un classicatore ottimo se si conoscessero in maniera perfetta, sia
le probabilit`a a priori p(y
i
), sia le densit`a condizionate alla classe p(x[y
i
). Normalmente tali informazioni sono raramente
disponibili e lapproccio adottato `e quello di costruire un classicatore da un insieme di esempi (training set).
Per modellare p(x[y
i
) si utilizza normalmente un approccio parametrico e quando possibile, si fa coincidere tale distribu-
zione con quella di una gaussiana (equazione (2.16)) o con delle funzioni spline.
Le tecniche pi` u usate per la stima sono la Maximum-Likelihood (ML) e la Stima Bayesiana che, sebbene dierenti nella
logica, portano a risultati quasi identici. La distribuzione gaussiana `e normalmente un modello appropriato per la maggior
parte dei problemi di pattern recognition.
Normalmente con una sola caratteristica non `e possibile ottenere una precisione elevata di classicazione. Fortunatamente
le caratteristiche che si possono estrarre da una immagine sono molteplici.
Siano indicate con x
j
, con j = 1, . . . , m tali caratteristiche.
`
E molto importante notare che gli eventi osservati x
j
con
cui costruire il classicatore bayesiano devono essere eventi indipendenti (indipendenza condizionale), altrimenti il teorema
di Bayes non risulta pi` u valido (uno dei limiti dei classicatori bayesiani): per esempio non si possono unire classicatori che
analizzino parti dellimmagine in comune o non si pu` o unire lo stimatore `e arancione insieme a `e non rosso.
Lassunzione Naive Bayes (o idiot Bayes) sfrutta lipotesi semplicativa di indipendenza degli attributi (feature) osservati:
in questo caso date m variabili osservate x
1
. . . x
m
la probabilit`a che levento y
i
si verichi sar`a:
p(x
1
. . . x
m
[y
i
) =
m

j=1
p(x
j
[y
i
) (4.32)
4.5. ENSEMBLE LEARNING 47
v >
+1 1
yes
no
Figura 4.2: Esempio di Decision Stump. v `e una caratteristica (feature) estratta dallimmagine e una soglia.
4.5 Ensemble Learning
Il concetto di addestramento Ensemble richiama lutilizzo di diversi classicatori, dierenti, uniti in un certo modo per
riuscire a massimizzare le prestazioni usando i punti di forza di ognuno e limitando le debolezze dei singoli.
La base del concetto di Ensemble Learning sono i classicatori deboli (weak classier): un classicatore debole riesce a
classicare almeno il 50%+1 dei campioni. Sommati in un certo modo tra di loro, classicatori deboli, permettono di costruire
un classicatore forte, risolvendo allo stesso tempo problemi tipici dei classicatori tradizionali (overtting in primis).
Lorigine dellEnsemble Learning, del concetto di classicatori deboli e in particolare il concetto di probably approximately
correct learning (PAC) sono stati per primi introdotti da Valiant [Val84].
Di fatto le tecniche di Ensemble Learning non forniscono classicatori general purpose, ma indicano solo il modo ottimo
per unire pi` u classicatori tra loro.
Esempi di tecniche di Ensemble Learning sono
Decision Tree gli Alberi di Decisione, essendo costruiti da tanti Decision Stump in cascata sono un primo esempio di
Ensemble Learning;
Bagging il BootStrap AGGregatING prova a ridurre i problemi di overtting addestrando diversi classicatori su sottoparti
del training set ed eseguendo inne una votazione per maggioranza;
Boosting Invece che prendere sottoparti del training set puramente casuali vengono, in parte, usati i campioni che rimangono
non classicati correttamente;
AdaBoost lADAptive BOOSTing (sezione 4.5.2) `e lalgoritmo di Ensemble Learning pi` u conosciuto e progenitore della
famiglia molto orida di classicatori AnyBoost;
Random Forest
TM
`e un BootStrap Aggregating su Decison Tree, Ensemble Classier costruito da diversi alberi di decisione
collegati tra loro;
e molti altri ancora.
Esempi di classicatori deboli ampiamente usati in letteratura sono i Decision Stump [AL92] associati alle feature di Haar
(sezione 5.4.1). Il Decision Stump `e un classicatore binario nella forma
h(x) =
_
+1 if pf(x) > p
1 otherwise
(4.33)
dove f(x) `e una funzione che estrae uno scalare dal campione da classicare, p = +1, 1 `e una parit`a che serve per indicare
la direzione della disuguaglianza e `e la soglia di decisione (gura 4.2).
4.5.1 Decision Tree
Un Albero di Decisione (Decision Tree) `e un metodo molto semplice ed ecace per realizzare un classicatore e ladde-
stramento degli alberi di decisione `e una delle tecniche attuali di maggior successo. Un albero di decisione `e un albero di
classicatori (Decision Stump) dove ogni nodo interno `e associato ad una particolare domanda su una caratteristica (featu-
re). Da questo nodo dipartono tanti archi quanti sono i possibili valori che la caratteristica pu`o assumere, no a raggiungere
le foglie che indicano la categoria associata alla decisione. Particolare attenzione normalmente `e posta per i nodi di decisione
binaria.
Una buona domanda divide i campioni di classi eterogenee in dei sottoinsiemi con etichette abbastanza omogenee,
straticando i dati in modo da mettere poca varianza in ogni strato.
Per permettere questo `e necessario denire una metrica che misuri questa impurit`a. Deniamo X come un insieme di
campioni contenuti in un particolare set di addestramento formato da m possibili classi. X `e di fatto una variabile aleatoria,
che assume solo valori discreti (il caso continuo `e comunque uguale).
`
E possibile associare ad ogni valore discreto x
i
, che
pu`o assumere X, la distribuzione di probabilit`a p(x
i
) = p
i
. X `e un data set formato da m classi e p
i
`e la frequenza relativa
della classe i allinterno dellinsieme X.
Data la denizione di X, negli alberi di decisione sono largamente usate le seguenti metriche:
48 CAPITOLO 4. CLASSIFICAZIONE
Entropia Dalla teoria dellinformazione, lentropia I
H
di X vale:
I
H
(X) =
m

i=1
p
i
log
2
p
i
(4.34)
Indice di Gini Lindice di impurit`a di Gini `e denito come
I
G
(X) = 1
m

i=1
p
2
i
(4.35)
Errore di Classicazione Dalla teoria bayesiana:
I
E
(X) = 1 max p
i
(4.36)
Una domanda, che ha k possibili risposte, divide linsieme c nei sottoinsiemi c
1
, . . . , c
k
.
Per testare quanto bene la condizione viene eseguita, bisogna confrontare il grado di impurit`a dei nodi gli con limpurit`a
del nodo padre: maggiore `e la loro dierenza, migliore `e la condizione scelta.
Data una metrica I() che misuri limpurit`a, il guadagno `e un criterio che pu`o essere usato per determinare la bont`a
della divisione:
= I(c)
k

i=1
N(c
i
)
N(c)
I(c
i
) (4.37)
dove N(c) `e il numero di campioni nel nodo padre e N(c
i
) `e il numero di campioni nel nodo glio i-esimo.
Se viene usata come metrica lentropia, il guadagno `e conosciuto come Information Gain.
Gli alberi di decisione inducono algoritmi che scelgono una condizione di test che massimizza il guadagno . Siccome
I(c) `e uguale per tutti i possibili classicatori e N(c) `e costante, massimizzare il guadagno `e equivalente a minimizzare la
somma pesata delle impurit`a dei nodi gli:

h = arg max
h
j
k

i=1
N(c
i
)I(c
i
) (4.38)
Nel caso di classicatori binari, la metrica di Gini `e ampiamente utilizzata, in quando il guadagno da minimizzare si
riduce a
a
1
b
1
a
1
+b
1
+
a
2
b
2
a
2
+b
2
(4.39)
con a
1
, b
1
numero di campioni positivi e negativi che il classicatore sposta nel ramo sinistro e a
2
, b
2
numero di campioni nel
ramo destro.
Gli alberi di decisione si adattano sia molto bene che velocemente ai dati di addestramento e conseguentemente, se non
limitati, sorono in maniera sistematica del problema di overtting. Normalmente agli alberi viene applicato un algoritmo
di ranamento (pruning) per ridurre, ove possibile, il problema di overtting. Gli approcci di pruning sono solitamente due:
pre-pruning o post-pruninig. Il pre-pruning si limita a fermare la creazione dellalbero sotto determinate condizioni per
evitare una eccessiva specializzazione (esempio massima dimensione dellalbero). Il post-pruning invece rana un albero
gi`a creato, eliminando quei rami che non soddisfano alcune condizioni su un validation set precedentemente selezionato.
Questa tecnica di creazione di un albero di decisione viene solitamente indicata come Classication and regression trees
(CART) [B
+
84]. Infatti, nel caso reale in cui le caratteristiche analizzate sono grandezze statistiche, non si parla di creare
un albero di classicazione, ma pi` u propriamente di costruire un albero di regressione.
4.5.2 ADAptive BOOSTing
Uno dei classicatori Ensemble che ha attirato pi` u interesse da parte dei ricercatori negli ultimi anni `e sicuramente Ada-
Boost [FS95]. Lidea base di AdaBoost `e assegnare in maniera iterativa il peso a ogni nuovo classicatore considerando la
capacit`a di classicare campioni non correttamente classicati dagli altri classicatori coinvolti nelladdestramento.
Le tecniche di Boosting permettono di generare un classicatore nella forma di modello additivo:
F
T
(x) = f
1
(x) +f
2
(x) +. . . +f
T
(x) (4.40)
con f
1
, . . . , f
T
singoli classicatori. Lunione di questi classicatori deve minimizzare la funzione di perdita esponenziale
(exponential loss)
min
F
m

i=1
e
y
t
F(x
i
)
(4.41)
4.5. ENSEMBLE LEARNING 49
Questa `e la visione statistica di Boosting di Friedman [FHT00].
Siccome la minimizzazione globale della funzione (4.41) solitamente `e impossibile, si procede a singoli passi, aggiungendo
un classicatore alla volta alla sommatoria. Lobiettivo pertanto si riduce a individuare un classicatore f(x) che minimizzi
f
T+1
= arg min
f
m

i=1
e
y
t
(F
T
(x
i
)+f(x
i
))
(4.42)
AdaBoost `e una tecnica che risponde a questa esigenza.
Sia S = (x
1
, y
1
) . . . (x
m
, y
m
) (X 1, 1) linsieme degli m campioni disponibili per laddestramento. Si supponga
di avere a disposizione 1 = h
1
, . . . , h
T
classicatori binari, ognuno dei quali, valutando il campione x
i
, con 1 i m,
restituisca una opinione y
i
= 1, +1. Sia la funzione F
T
(x; ), denita come
F
T
(x;
1
, . . . ,
T
) =
T

t=1

t
h
t
(x) (4.43)
una funzione il cui segno rappresenta lipotesi di classicazione e la sua magnitudine riette la bont`a della predizione.
Lobiettivo `e ottenere un classicatore forte H(x
i
) come somma lineare pesata dei classicatori h
t
:
H(x
i
) = sgn
_
T

t=1

t
h
t
(x
i
)
_
= sgn F
T
(x
i
; ) (4.44)
Questa `e una votazione per maggioranza: viene scelto come vincitrice lipotesi votata da pi` u classicatori, ognuno con peso
dierente
t
. Sono proprio le costanti
t
, i pesi assegnati a ogni classicatore, il risultato fornito da questa tecnica di
addestramento.
Per permettere di assegnare il peso al classicatore, `e necessario che, ad ogni campione in ingresso x
i
, sia assegnato un peso
w
i
. Pi` u il peso `e alto pi` u il campione `e stato classicato in maniera non corretta no a questo punto delladdestramento, pi` u
il peso `e basso pi` u `e stato classicato correttamente. Alla prima iterazione, tutti i pesi sono posti uguali, pari a w
(0)
i
= 1/m,
in modo da avere una esatta distribuzione statistica. Varianti come lAsymmetric AdaBoost assegnano pesi dierenti alle
diverse categorie coinvolte.
Sia u
i
= y
i
h
t
(x
i
) la funzione che esprime il successo +1 o il fallimento 1 del classicatore h
t
a classicare il campione
x
i
. Dati i pesi associati a ogni campione, `e possibile per ogni classicatore calcolare W
1
la somma dei pesi associati gli
insuccessi e W
+1
la somma dei pesi associati alle classicazioni corrette, ovvero attraverso la denizione di u
i
, in forma
compatta
W
b
=

u
i
=b
w
i
(4.45)
Sia
t
la misura dellerrore del classicatore h
t
calcolata come

t
=

y
i
=h
t
(i)
w
(t)
i
=

u
i
=1
w
(t)
i
= W

(4.46)
somma dei pesi associati ai soli campioni classicati in maniera errata, e sia
r
t
= W
+
W

w
(t)
i
u
i
(4.47)
la media ponderata usando i pesi w
i
delle performance u
i
di classicazione.
Le iterazioni dellalgoritmo di AdaBoost sono le seguenti:
1. un Oracolo fornisce un classicatore h
t
(la scelta `e di fatto lasciata allutente, cercando di selezionare il classicatore
che minimizza lerrore
t
, ma non `e obbligatorio che debba essere per forza il migliore);
2. viene calcolato lerrore
t
prodotto del classicatore h
t
sui campioni in ingresso. Quando non si riesce a trovare un
classicatore per il quale
t
> 1/2, laddestramento non pu`o proseguire e deve venire pertanto terminato;
3. dato lerrore, al classicatore h
t
viene assegnato un peso
t
, calcolato come descritto in seguito;
4. ad ogni campione x
i
la distribuzione associata w
(t+1)
i
viene aggiornata attraverso la funzione
w
(t+1)
i
=
1
Z
t
w
(t)
i
e

t
u
i
=
1
Z
t
w
(t)
i
e
y
i
f
t
(x
i
)
(4.48)
Il peso associato ai campioni che hanno avuto successo nella classicazione viene diminuito di una quantit`a propor-
zionale a e

t
, mentre ai campioni che sono stati classicati in maniera errata il peso `e aumentato di e

t
. Z
t
`e un
fattore di normalizzazione scelto in modo che

w
(t)
i
= 1 ma assume anche un signicato importante come spiegato
immediatamente sotto.
50 CAPITOLO 4. CLASSIFICAZIONE
Il parametro Z
t
vale
Z
t
=
m

i=1
w
(t)
i
e

t
u
i
= e

W
+
+e

(4.49)
e si pu` o dimostrare che lerrore di classicazione `e limitato superiormente da
1
m
i : H(x
i
) ,= y
i

T

t=1
Z
t
(4.50)
Per questo motivo Z
t
`e esattamente la quantit`a da minimizzare per ottenere il classicatore ottimo. AdaBoost `e uno schema
che minimizza

t
Z
t
.
La scelta ottima di
t
(e di riesso quella di h
t
) `e quella dove la funzione (4.49) assume il minimo, ovvero

t
=
1
2
log
_
1
t

t
_
=
1
2
log
W
+
W

=
1
2
log
_
1 +r
t
1 r
t
_
(4.51)
Con questo valore di
t
, Z
t
assume il minimo e vale
Z
t
= 2
_

t
(1
t
) = 2
_
W

W
+
(4.52)
Dallequazione (4.52) si evince che Z
t
`e minimizzato scegliendo il classicatore h
t
che ha il minore valore di
t
ovvero massimo
W
+
.
Questo algoritmo `e quello che viene denito in letteratura AdaBoost.M1 o Discrete AdaBoost [FHT00].
Il funzionamento intuitivo di AdaBoost `e molto semplice: AdaBoost per ogni nuovo classicatore aggiunto alla serie si
concentra sui pattern in ingresso che nora sono stati classicati peggio.
AdaBoost ha diverse interpretazioni: come classicatore che massimizza il margine, regressione a un modello additivo
e logistico, come minimizzatore a discesa del gradiente a passi discreti ma anche come regressione con tecnica di Newton.
Lalgoritmo di AdaBoost `e una procedura iterativa che combina diversi classicatori deboli per approssimare un classicatore
Bayesiano.
AdaBoost, come SVM, ottiene come risultato quello di massimizzare il margine di separazione tra le classi. In questo
modo riesce ad essere insensibile a problemi come lovertting.
Il problema di Boosting si pu`o generalizzare e pu` o essere visto come un problema dove `e necessario cercare dei pesi
t
che minimizzino la funzione costo globale:
P
,S
(
1
, . . . ,
t
) =
m

i=1
(y
i
F
T
(x
i
;
1
, . . . ,
t
)) (4.53)
dove (
1
`e una funzione convessa, non crescente con lim
z
(z) = 0.
Dal punto di vista analitico, AdaBoost `e un esempio di ottimizzatore a discesa del gradiente (coordinate-wise gradient
descent) che minimizza la potential function (z) = e
z
, ottimizzando un coeciente
t
per volta [LS10].
Attraverso questa formalizzazione, esistono moltissime varianti di AdaBoost, raccolte nella vasta categoria AnyBoost.
Un elenco, non esaustivo delle varianti di AdaBoost `e:
Astensione AdaBoost pu`o essere esteso anche a casi di classicatori con astensione, dove le uscite possibili sono h
j
(x
i
)
1, 0, +1. Ampliando la denizione (4.45), per semplicit`a si indichino con W

gli insuccessi, W
0
le astensioni e W
+
i successi del classicatore h
t
.
Anche in questo caso Z
t
assume il minimo con lo stesso valore di
t
del caso senza astensione (cfr. (4.51)) e con tale
scelta Z
t
varrebbe
Z
t
= W
0
+ 2
_
W

W
+
(4.54)
Tuttavia esiste una scelta pi` u conservativa di
t
proposta da Freund e Shapire

t
=
1
2
log
_
W
+
+ 1/2W
0
W

+ 1/2W
0
_
(4.55)
che permette di ssare un limite superiore a Z
t
.
Real AdaBoost generalizza ulteriormente il caso precedente, permettendo al classicatore debole di fornire una distribu-
zione di probabilit`a della classe p
t
(x) = P
w
(y = 1[x) [0, 1], in modo da sfruttare questa informazione aggiuntiva per
ottenere prestazioni migliori [FHT00]. Data la p
t
(x) il classicatore vero e proprio, che minimizza (4.42), si ottiene
come
f
t
(x) =
1
2
log
P(y = +1[x, w
(t)
)
P(y = 1[x, w
(t)
)
=
1
2
log
p
m
(x)
1 p
m
(x)
(4.56)
e laggiornamento dei pesi rimane ancora quello di equazione (4.48). Il valore di
t
non `e conosciuto in forma chiusa,
pu`o essere calcolato minimizzando la funzione (4.49), ma per semplicit`a `e possibile porre
t
= 1.
4.6. VALUTAZIONE DEI CLASSIFICATORI 51
Asymmetric-AdaBoost presenta una variante nella regola di aggiornamento dei pesi [VJ01]. Il problema di AdaBoost `e che
non minimizza il numero di falsi positivi, ma lerrore di classicazione. Le varianti Asymmetric-AdaBoost modicano
a ogni iterazione t i pesi associati ai campioni positivi e negativi di un fattore di costo c
(t)
+
e c
(t)

rispettivamente.
Cascade A prescindere dallutilizzo i meno dei classicatori Cascade [VJ02], i pesi vengono modicati di un fattore

t
=
t
/(1
t
) solo nel caso di classicazione corretta, altrimenti i pesi rimangono invariati. Il peso associato a
un classicatore viene assegnato come
t
= log
t
.
LogitBoost che per primo estende AdaBoost al problema dellottimizzazione logistica [FHT00] di una funzione F(x; )
sotto la funzione costo (z) = log (1 +e
z
).
Gentle AdaBoost generalizza il concetto di Ensemble Learning a modello additivo [FHT00] usando una regressione con
passi tipici dei metodi di Newton:
F
T+1
(x) F
T
(x) +f
t
(x) = F
T
(x) + E
w
(t)
[y[x] (4.57)
Lipotesi f
t
(x), da aggiungere al modello additivo, viene scelta come regressione ai minimi quadrati (regressione pesata
attraverso i pesi w
i
):
f
t
= arg min
f
k

i
w
i
(y
i
f
k
(x
i
))
2
(4.58)
e per ogni iterazione viene usato laggiornamento dei pesi di AdaBoost (4.48). Gentle AdaBoost pu`o essere usato anche
con un classicatore discreto come il Decision Stump. In questo caso lalgoritmo di decisione assume il minimo notevole
di (4.58) in
f(x) =
_
W
TP
W
FP
W
TP
+W
FP
x >
W
FN
W
TN
W
TN
+W
FN
otherwise
(4.59)
con i valori W

, somma dei pesi associati ai Falsi Positivi (FP), Falsi Negativi (FN), Veri Positivi (TP) e Veri Negativi
(TN).
MAdaBoost con un aggiornamento diverso dei pesi, per cercare di ridurre il peso degli outlier (o esempi troppo complessi)
nelladdestramento, ovvero
(z) =
_
1 z z 0
e
z
z > 0
(4.60)
FilterBoost usa la regressione di LogitBoost unita allaggiornamento di pesi di MadaBoost,
e moltissimi altri.
4.6 valutazione dei classicatori
Per confrontare le prestazioni di diversi classicatori binari ottenuti da diverse sessioni di addestramento si fa normalmente
uso delle curve ROC (Receiver Operating Characteristic). La curva ROC `e un graco cartesiano dove lungo le ascisse `e
indicato il numero di falsi positivi (percentuali, per frame o assoluti) e in ordinata `e presente la percentuale di corretti
riconoscimenti, generati dal classicatore al variare di una soglia: normalmente infatti ogni classicatore ha una soglia non
dimensionabile che rappresenta il compromesso tra le detezioni corrette e il numero di falsi positivi. Ogni classicatore per
essere denito tale deve avere una curva ROC migliore del classicatore casuale, ovvero la retta che congiunge i punti (0, 0)
e (1, 1) del graco ROC.
Altra curva di prestazioni diusa `e la Detection error Tradeo (DET) che permette di rappresentare sugli assi gli errori
negativi e gli errori positivi.
Fissata una determinata soglia (o quando non `e possibile denire una soglia per un classicatore) si pu`o creare la tabella
di contingenza (Confusion Matrix):
Valore Vero
p n
Classicazione
p VP FP
n FN VN
Dalla tabella vengono normalmente estratti alcuni valori di prestazione, come:
Accuracy = Numero di Predizioni Corrette / Numero totale di predizioni = (VP+VN)/(VP+VN+FN+FP);
Error Rate = Numero totale di predizioni errate / Numero totale di predizioni = (FP+FN) / (VP+VN+FN+FP);
52 CAPITOLO 4. CLASSIFICAZIONE
Precision = VP / VP+FP;
Recall = VP / VP+FN;
`
E palese che gli indici di performance vanno calcolati su un insieme di campioni non usati in fase di addestramento (il
validation set).
Capitolo 5
Punti Caratteristici
Lindividuazione di punti caratteristici (keypoint detection), la loro caratterizzazione (feature description) e inne confronto
(matching) sono tematiche strettamente legate allinterno della visione articiale. Alcune applicazioni delluso di punti
caratteristici vanno dalla creazione di immagini panoramiche, alla ricostruzione tridimensionale, odometria visuale e cos` via.
Il concetto di punto caratteristico richiama il fatto che, non tutti, ma solo alcuni punti dellimmagine hanno una probabilit`a
elevata di essere individuati senza ambiguit`a durante un confronto.
Siano I
1
e I
2
due immagini da analizzare e siano p
1
e p
2
due punti, caratteristici (feature), individuati rispettivamente
nella prima e nella seconda immagine. Per sapere se questi due punti immagine rappresentano lo stesso punto mondo,
chiaramente non osservato dallo stesso punto di vista e pertanto aetto da trasformazioni ani o omograche, `e necessario
denire una qualche forma di metrica d(p
1
, p
2
) per eseguire tale confronto. Siccome i punti estratti dalle due immagini
saranno sicuramente pi` u di uno, verr`a associato a ogni punto della prima immagine solo quel punto della seconda che ha una
distanza minima rispetto alla metrica selezionata:
p
2
= arg min
i
d(p
1
, p
2,i
) (5.1)
Solitamente, per ridurre il numero di confronti errati, viene confermata lassociazione solo se la metrica `e inferiore a una
certa soglia e il rapporto tra il miglior confronto e il secondo miglior confronto `e inferiore a una seconda soglia di unicit`a.
Inne, dopo aver trovato p
2
, la miglior associazione del punto p
1
sulla seconda immagine, si pu`o vericare che p
2
non
abbia sulla prima immagine associazioni migliori.
Prima che venisse introdotto il concetto di descrittore, il modo pi` u diuso per confrontare due punti caratteristici era la
correlazione tra le aree intorno al punto:
d(p
1
, p
2
) =

(I
1
(p
1
+)

I
1
)(I
2
(p
2
+)

I
2
) (5.2)
con una nestra di dimensione ssa centrata nel punto delle due immagini e

I
n
il valor medio dellimmagine allinterno
della nestra . w

`e un peso opzionale (ad esempio una gaussiana) per assegnare contributi diversi ai pixel vicini e lontani
dal punto. La correlazione `e invariante ai cambiamenti di luminosit`a ma richiede un elevato peso computazionale.
Un approccio pi` u performante, ma non invariante ai cambiamenti di luminosit`a, `e la SAD (Sum of Absolute Dierences):
d(p
1
, p
2
) =

[I
1
(p
1
+) I
2
(p
2
+)[ (5.3)
Per rendere la SAD invariante alla luminosit`a vengono normalmente eseguiti i confronti non sullimmagine originale, ma sulle
immagini derivata orizzontale e derivata verticale.
Siccome il confronto tra i punti tra le immagini `e un algoritmo di tipo O(n
2
), eseguire questi confronti per punto
richiede comunque un elevato peso computazionale e molteplici accessi in memoria. Soluzioni moderne infatti prevedono
lestrazione di un descrittore dallintorno del punto, di dimensione inferiore alla nestra corrispondente, che comunque
massimizzi linformazione contenuta in essa. Tali descrittori devono essere invarianti il pi` u possibile alla luminosit`a.
Un elenco, non esaustivo, di algoritmi per individuare punti caratteristici `e
Harris Corner Harris generalizza il concetto di bordo, e allintorno di un punto immagine attraverso lo studio degli auto-
valori della matrice di covarianza permette di ricavare la presenza o meno di uno spigolo.
`
E invariante a traslazioni e
rotazioni, e in parte a variazioni di scala (sezione 5.1);
KLT il Kanade-Lucas-Tomasi sfrutta una variante di Harris (Shi-Tomasi) come corner detector ed esegue il confronto
sfruttando rappresentazioni piramidali della scena;
SIFT studia limmagine in multisoluzione ed `e invariante a trasformazioni simili (sezione 5.2);
SURF una variante di SIFT pi` u performante basata sullimmagine integrale (sezione 5.3).
53
54 CAPITOLO 5. PUNTI CARATTERISTICI
5.1 F orstner-Harris
Il problema dellindividuare dei punti notevoli che possano essere facilmente individuati tra due immagini `e stato inizial-
mente risolto spostando il problema di individuare punti angolari (corner) nellimmagine, ovvero scartando quelle porzioni
dellimmagine senza texture o con solo bordi.
Deniamo le immagini dei gradienti (queste possono essere generate da un operatore dierenziale, Sobel, Prewit o Roberts)
G
x
(x, y) e G
y
(x, y) rispettivamente gradiente orizzontale e gradiente verticale dellimmagine da analizzare.
Da queste due immagini `e possibile calcolare una funzione C(x, y) rappresentate la matrice di covarianza delle immagini
dei gradienti in un intorno di (x, y) denita come
C(x, y) =
_

G
2
x
()w()

G
x
()G
y
()w()

G
x
()G
y
()w()

G
2
y
()w()
_
(5.4)
con intorno di (x, y) e w() un kernel opzionale, solitamente una gaussiana centrata in (x, y) o una nestra costante
su , per permettere di pesare in maniera dierente i punti nellintorno.
Di fatto in Harris si usano due ltri di convoluzione: uno derivativo per calcolare le immagini derivate e uno integrale
per calcolare gli elementi della matrice. La dimensione di questi ltri e lutilizzo di una gaussiana per pesare i punti rimanda
alla lettura della sezione seguente riguardo la scala di individuazione delle feature.
La matrice C `e la matrice dei momenti del secondo ordine. Per individuare punti caratteristici si possono analizzare gli
autovalori
0
e
1
(algoritmo di Shi-Tomasi) della matrice C (si legga per una trattazione pi` u approfondita la sezione 4.1).
Se sono presenti due autovalori molto elevati il punto `e un corner, se `e presente un solo autovalore di valore elevato `e un
edge, altrimenti `e una zona ragionevolmente piatta.
Triggs suggerisce di usare come funzione di confronto
0

1
per discriminare tra bordi e angoli.
Harris per evitare di calcolare gli autovalori di C, introduce un operatore H(x, y) denito come
H(x, y) = det(C) trace(C)
2
(5.5)
dove `e un parametro compreso tra 0 e 0.25, solitamente posto a 0.04.
Per Harris il punto (x, y) `e un punto caratteristico (corner) se H(x, y) > H
thr
, con H
thr
soglia da denire. Il parametro
regola la sensitivit`a del rilevatore di feature. Qualitativamente alzare rimuove i bordi mentre alzare H
thr
rimuove le
zone piatte.
5.2 Invarianza alla scala e alla rotazione
Harris `e un individuatore di punti notevoli non invariante alle variazioni di scala. Per superare questa serie di limiti,
Lindeberg [Lin94] introduce il concetto di selezione automatica della scala, permettendo di individuare i punti caratteristici
a un determinato livello di risoluzione. La rappresentazione piramidale della scena, algoritmo computazionalmente eciente
ampiamente usato in precedenza, diventa di fatto un caso particolare di questa rappresentazione scala-spazio.
Sia G(x, y; t) la gaussiana bidimensionale di varianza t > 0, di equazione
G(x, y; t) =
1
2t
e

x
2
+y
2
2t
(5.6)
(cfr. sezione 2.3).
La convoluzione L(x, y; t) tra limmagine f(x, y) e la gaussiana G(x, y; t) genera la rappresentazione scala-spazio (scale-
space representation) dellimmagine stessa. La varianza t =
2
del kernel gaussiano `e chiamata parametro di scala (scale
parameter). La rappresentazione dellimmagine alla scala degenere t = 0 `e limmagine originale stessa.
`
E da notare che applicare un ltro gaussiano a un immagine non crea nuove strutture: tutta linformazione generata dal
ltro era gi`a contenuta nellimmagine originale.
Il fattore di scala t `e un numero continuo ma, per motivi computazionali, vengono usati passi discreti di questo valore,
normalmente successioni esponenziali, come t = 2
i
o t =
1
2
e
i
.
Applicare a una immagine scala-spazio un operatore derivata, per la propriet`a commutativa tra la convoluzione e la
derivata, `e uguale ad eseguire la convoluzione dellimmagine originale con la derivata della gaussiana. In questo modo `e
possibile estendere a un qualsiasi fattore di scala la denizione di tutti i ltri bordo o punti caratteristici. Attraverso il lavoro
di Lindeberg `e stato possibile estendere il concetto dei Corner di Harris a casi invarianti di scala (metodi Harris-Laplace e
Hessian-Laplace [MS02]).
Altri operatori interessanti per trovare punti caratteristici sono per esempio il modulo del gradiente [L[, il laplaciano

2
L e il determinante dellhessiana det 1(L). Tutti questi operatori sono invarianti alle rotazioni, ovvero il punto di
minimo/massimo esiste indipendentemente dalla rotazione che assume limmagine.
Un operatore molto diuso per individuare punti caratteristici `e il Laplaciano della Gaussiana (LoG) normalizzato (scale-
normalized Laplacian operator):

2
n
L(x, y, t) = t(

2
x
2
+

2
y
2
)G =
1
t
_
1
x
2
+y
2
2t
_
e

x
2
+y
2
2t
(5.7)
5.2. INVARIANZA ALLA SCALA E ALLA ROTAZIONE 55
Figura 5.1: Rappresentazione scala-spazio di una immagine 512 512: dallimmagine originale t = 0 alle scale 1, 4, 16, 64
e 256.
Attraverso loperatore LoG, `e possibile individuare punti caratteristici come massimi o minimi locali nelle coordinate
spaziali e scala.
Per esempio, un cerchio di raggio r ha la massima risposta al laplaciano al fattore di scala = r/

2.
Lowe [Low04], nellalgoritmo Scale-invariant feature transform (SIFT), per aumentare le prestazioni, approssima il
Laplaciano della Gaussiana (LoG) con una Dierenza tra Gaussiane (DoG):
D(x, y, ) = (G(x, y, k) G(x, y, )) I(x, y)
L(x, y, k) L(x, y, )
(k 1)
2
LoG(x, y, )
(5.8)
Questo procedimento `e pi` u performante perche limmagine gaussiana a scala k pu`o venire calcolata dallimmagine gaussiana
applicando un ltro (k 1), pi` u piccolo e perci` o molto pi` u veloce rispetto ad eseguire la convoluzione k con limmagine
originale.
Se in LoG i punti caratteristici erano i minimi/massimi locali, sia nello spazio che nella scala, dellimmagine del laplaciano,
in questo caso i punti caratteristici sono i punti minimo e massimo nellimmagine dierenza tra le immagini scala , k, . . . , k
n

attraverso le quali viene processata limmagine (gura 5.3).


Con lintroduzione del passo k, il dominio della variabile viene di fatto suddiviso in passi logaritmici discreti, raccolti
in ottave, e ogni ottava viene suddivisa in S sottolivelli. In questo modo assume i valori discreti
(o, s) =
0
2
o+
s
S
k = 2
1
S
(5.9)
con
0
fattore base di scala.
I punti caratteristici, trovati come massimo/minimo in scala e spazio, entrambi discreti, vengono interpolati usando una
regressione a una quadrica tridimensionale per trovare il punto caratteristico con precisione subpixel e subscala.
Tra un ottava e quella successiva limmagine viene sottocampionata di un fattore 2: oltre allanalisi a scala multipla
allinterno di ogni ottava, limmagine viene processata allottava successiva dimezzando la dimensione orizzontale e verticale
e questo procedimento viene ripetuto pi` u volte.
La seconda fase di un algoritmo di individuazione e associazione di punti caratteristici consiste nellestrarre un descrittore
per eseguire i confronti, descrittore centrato nel punto caratteristico individuato. Di fatto, per essere invariante alla scala il
descrittore deve essere estratto al fattore di scala associato al punto caratteristico.
56 CAPITOLO 5. PUNTI CARATTERISTICI
(a) (b)
Figura 5.2: Confronto tra limmagine LoG normalizzata (a) e DoG (b)
s
c
a
l
e
Figura 5.3: Individuazione di minimi e massimi locali: per ogni pixel e per ogni scala viene confrontato un intorno 3 3 3.
Per essere invariante invece alla rotazione il descrittore deve essere estratto da una immagine normalizzata rispetto alla
rotazione dominante nellintorno del punto valutato.
Dallimmagine ruotata `e possibile estrare un descrittore che tiene conto dei bordi (per essere inviariante alla luminosit`a).
PCA-SIFT usa PCA per ridurre le dimensioni del problema a un descrittore di 36 elementi. PCA viene usato nella fase di
addestramento.
5.3 SURF
Lalgoritmo Speeded Up Robust Features [BETVG08] prende spunto dallalgoritmo SIFT e dalla teoria delle rappresentazioni
scala-spazio per proporne una versione ottimizzata dove si usano hessiane approssimate utilizzando limmagine integrale, sia
per individuare i punti caratteristici che per estrarre i descrittori.
SURF `e invariante alla traslazione, scala e rotazione ma esiste una variante semplicata, indicata con U-SURF, che `e
solo invariante a variazioni di traslazione e scala: in questo caso larea intorno al punto individuato non viene normalizzata
rispetto alla rotazione nel momento in cui viene estratto il descrittore.
In SURF i punti caratteristici vengono rilevati calcolando massimi locali sul determinante dellimmagine Hessiana denita
come:
1(x, y; t) =
_

x
2
G(t) I

xy
G(t) I

yx
G(t) I

y
2
G(t) I
_
=
_
D
xx
D
xy
D
xy
D
yy
_
(5.10)
immagine formata dalle convoluzioni tra le derivate di secondo ordine della gaussiana di varianza t =
2
e limmagine nel
punto (x, y). Per motivi di prestazioni le derivate delle gaussiane vengono quantizzate a numeri interi e approssimate a regioni
rettangolari (box lters), ovvero alcune zone rettangolari intorno al punto vengono pesate positivamente, altre negativamente
e la loro somma forma lelemento della matrice 1.
La banda di questi ltri approssimati si pu`o stimare come
=
1.2
9
l (5.11)
con l della dimensione del ltro. Il ltro 9 9, il pi` u piccolo possibile, per esempio approssima le derivate della gaussiana di
varianza = 1.2.
5.4. DESCRITTORI 57
Figura 5.4: Esempi di Feature di Haar. Nelle aree chiare e nelle aree scure larea sottesa viene sommata o sottratta
rispettivamente.
Limmagine determinante viene calcolata come
det(1) = D
xx
D
yy
(wD
xy
)
2
(5.12)
dove w `e un fattore che tiene conto della quantizzazione, cerca di compensare i vari errori di arrotondamento, e normalmente
viene posto w = 0.912 costante. Il determinante inne viene normalizzato rispetto alla dimensione della scala coinvolta, in
modo da poterlo confrontare a scale dierenti.
Limmagine viene analizzata per pi` u ottave (ogni ottava ha un fattore di scala doppio rispetto allottava precedente).
Ogni ottava `e divisa in un ugual numero di livelli di scala. Il numero di scale per ottava `e limitato dalla natura strettamente
quantizzata del ltro e le gaussiane approssimate non sono ben equispaziate come nel caso di SIFT. Di fatto 4 intervalli per
ottava `e lunico numero di suddivisioni possibile.
Allinterno di ogni ottava, al variare della scala s e della posizione, viene eseguita una Non-Maxima Suppression 3 3 3
sullimmagine del determinante di 1. I minimi/massimi locali, interpolati attraverso una quadrica tridimensionale come per
SIFT, sono i punti interessanti individuati da SURF. La scala `e posta uguale alla varianza del ltro associato s = .
Dai punti di massimo cos` trovati, usando sempre limmagine integrale, viene estratta lorientazione dominante nellintorno
del punto (intorno di raggio 6s e campionato a passo s). Anche questo caso vengono usate feature di Haar di lato 4s e pesate
con una gaussiana di distribuzione = 2s.
Attraverso linformazione sullorientazione viene generato un descrittore basato sulle direzioni dei gradienti campionando
larea in un intorno di 20s, divisa in 4 4 regioni e pesando i punti con una gaussiana = 3.3s. Allinterno di ogni regione
vengono calcolati d
x
, d
y
, [d
x
[ e [d
y
[. Sia lorientazione che listogramma dei gradienti sono estratti alla scala di rilevamento
della feature.
5.4 Descrittori
Un discorso a cavallo tra i punti caratteristici e i classicatori `e quello del descrittore. Il concetto di descrittore nasce
nel tentativo di estrare informazioni locali dellimmagine che ne permettano di conservare buona parte dellinformazione.
In questo modo `e possibile eseguire confronti (relativamente) veloci tra punti tra immagini, o usare tali descrittori come
caratteristiche su cui addestrare classicatori.
5.4.1 Feature di Haar
Le Feature di Haar (il nome deriva dalla somiglianza con le wavelet di Haar) indica una serie di ltri per immagini, formati
come sommatoria e sottrazioni di sottoparti puramente rettangolari dellimmagine stessa. Esempi di feature di Haar sono
mostrati in gura 5.4. Il valore risultante del ltro `e la somma dei toni di grigio dei pixel sottesi alle aree in bianco, sottratto
il valore dei pixel sottesi alle aree indicate in nero. Per loro natura tali ltri possono venire ecacemente implementati
usando limmagine integrale (sezione 1.11).
Le Feature di Haar vengono usate come approssimazione di convoluzioni per il calcolo di punti caratteristici nellalgoritmo
di SURF, o come classicatori deboli.
Il numero di basi per le feature `e normalmente limitato (si cerca se possibile di evitare feature troppo complesse). Oltre
al tipo di feature `e necessario selezionare la sua area di applicazione. In questo caso da ogni sotto-nestra dellarea da
analizzare `e possibile estrarre un valore a seguito dellapplicazione di una tra queste tante feature. Indicare quali sono le
feature pi` u discriminanti `e lavoro dellattivit`a di classicazione (si veda la tecnica dei Decision Stump applicati ad AdaBoost)
o attraverso tecniche come PCA.
5.4.2 Trasformazione Census
La trasformazione Census (Census-Transformation) [ZW94] consiste nel caratterizzare un elemento di un immagine attraverso
una stringa di bit rappresentativi dellarea circostante. Per ogni pixel dellimmagine viene analizzata larea circostante di
dimensione e forma ssata in maniera ordinata e ogni pixel di questarea viene confrontato con il pixel generatore. Se il pixel
ha una intensit`a di grigio maggiore viene associato un bit 1, se ha intensit`a inferiore viene associato il bit 0. Attraverso la
58 CAPITOLO 5. PUNTI CARATTERISTICI
011001110000...
Figura 5.5: Calcolo della trasformazione di Census in un intorno di un punto: lintorno di un punto viene binarizzato rispetto
al valore del punto stesso e da questa sogliatura viene costruita una stringa binaria.
Figura 5.6: Pixel considerati durante lestrazione di un descrittore LBP a 8 bit, al variare del raggio della circonferenza.
scansione dellarea in maniera ordinata `e possibile generare una stringa binaria. Un esempio della trasformazione Census in
un area 5 5 `e mostrata in gura 5.5: da questarea viene generata una stringa binaria da 25-1 bit (il pixel centrale `e di
fatto ininuente).
La trasformazione Census mostra il suo potenziale nel caso di confronti: due punti generici invece che essere confrontati
attraverso una SAD dellarea circostante, vengono confrontati attraverso la distanza di Hamming tra le stringhe binarie
rispettive di Census.
Attraverso la costruzione della stringa binaria sfruttando la dierenza di tono di grigio, la trasformazione Census `e
abbastanza invariante alla luminosit`a.
5.4.3 Local Binary Pattern (LBP)
Il codice originale di LBP crea un descrittore uguale alla trasformazione Census di una nestra 33: per ogni punto immagine
vengono esaminati gli 8 pixel nel vicinato, sogliati attraverso il pixel centrale e generata la stringa di 8 bit, equivalente a un
descrittore intero compreso tra 0 e 255.
Questo concetto originale `e stato esteso a n punti lungo una circonferenza di raggio centrata nel pixel di cui si vuole
calcolare la caratteristica (gura 5.6). Siccome il punto del raggio non cade esattamente su un pixel, si pu`o eseguire una
interpolazione bilineare per stimare il valore da sogliare per costruire la stringa binaria.
Loperatore LBP produce 2
n
possibili valori per ogni punto dellimmagine. Nel caso in cui limmagine venga ruotata, i
valori dei pixel si muovono lungo la circonferenza e come conseguenza ruotano anche i bit allinterno della stringa binaria.
`
E
possibile ottenere un operatore LBP invariante alla rotazione, normalizzando la stringa attraverso un qualche trasformazione.
Una di queste trasformazioni `e, per esempio, eseguire n rotazioni sulla stringa binaria e prendere, tra tutte le risultati, quella
di valore minimo:
LBP
r.i.
= min
i
ROR
i
(LBP) i [0, n 1] (5.13)
5.4.4 Istrogramma dei Gradienti
Listogramma dei gradienti Histogram of Oriented Gradient (HOG) `e una delle tecniche che recentemente ha avuto pi` u
successo per descrivere in maniera ecace un area.
Lidea `e quella di scomporre larea da analizzare in sottoaree (anche parzialmente sovrapposte) di dimensioni uguali (e
se non uguali inserire un fattore di correzione opportuno). Per ogni punto dellarea calcolare il gradiente (sfruttando anche
il solo operatore dierenziale) e inserire il modulo del gradiente nel bin corrispondente di un istogramma.
Il numero di bin dellistogramma unito al numero di aree in cui `e scomposta larea rappresentano il descrittore, da usare
nei confronti o negli addestramenti. Tale metodo infatti `e usato insieme a PCA (metodi PCA-SIFT) per creare descrittori o
insieme a SVM per creare un classicatore.
Capitolo 6
Pin-Hole Camera
In questo capitolo si aronta il problema di descrivere il processo che porta la luce che colpisce gli oggetti a venire impressa
su un sensore. Tale concetto `e fondamentale in quando permette di ricavare la relazione che lega i punti di unimmagine con
la loro posizione nel mondo, ovvero poter determinare la zona del mondo associata a un pixel dellimmagine o, viceversa,
capire larea dellimmagine che rappresenta un regione in coordinate mondo.
Il modello proiettivo universalmente accettato, detto della Pin-Hole Camera, `e basato su semplici rapporti geometrici.
In gura 6.1 `e mostrato uno schema molto semplicato di come avviene la formazione dellimmagine sul sensore.
Il punto osservato (x
i
, y
i
, z
i
)

, espresso in coordinate camera, viene proiettato su una cella del sensore ( u


i
, v
i
)

. Tutti
questi raggi passano per uno stesso punto: il punto focale (pin-hole).
f z
i
(0, 0, 0)
(0, 0)
( u
i
, v
i
)
(x
i
, y
i
, z
i
)
Figura 6.1: Il modello di camera pin-hole. Un punto mondo in coordinate camera viene proiettato sul piano immagine.
Analizzando la gura 6.1 si vede come i rapporti tra triangoli simili generati dai raggi ottici descrivono lequazione che
permette di proiettare un generico punto (x
i
, y
i
, z
i
)

, espresso in coordinate camera (uno dei sistemi di riferimento in cui si


pu`o operare), in coordinate sensore ( u
i
, v
i
)

:
_
u
i
v
i
_
=
f
z
i
_
x
i
y
i
_
(6.1)
dove f `e la distanza focale (distanza tra il pin-hole e il sensore).
`
E da precisare che le coordinate (x
i
, y
i
, z
i
)

, espresse in
coordinate camera, in questo libro seguono la regola della mano sinistra (molto usata in computer graphics), contrapposta alla
regola della mano destra (pi` u usata in applicazioni robotiche) abitualmente scelta invece per esprimere le coordinate mondo.
Lutilizzo della coordinata z per esprimere la distanza `e un obbligo puramente matematico a causa delle trasformazioni che
verranno presentate fra poco.
Le coordinate sensore ( u
i
, v
i
)

non sono le coordinate immagine ma sono ancora delle coordinate intermedie.


`
E quindi
necessario applicare una ulteriore trasformazione per ottenere le coordinate immagine:
_
u
i
v
i
_
=
_
D
u
u
i
D
v
v
i
_
+
_
u
0
v
0
_
(6.2)
dove le coordinate (u
0
, v
0
) (principal point) tengono conto dello scostamento dellorigine delle coordinate sugli schermi video
rispetto alla proiezione del punto focale sul sensore.
D
u
e D
v
sono fattori di conversione tra le unit`a metriche del sistema di riferimento del sensore (tipicamente metri) e quelle
immagine (pixel) e tengono conto dei diversi fattori di conversione coinvolti. Con lavvento dei sensori digitali normalmente
D
u
= D
v
.
In mancanza di informazioni, reperibili dai vari datasheet, su f, D
u
e D
v
, c`e la tendenza ad accorpare queste variabili
in due nuove variabili chiamate k
u
e k
v
(di fatto sono le lunghezze focali ecaci misurate in pixel) ottenibili in maniera
empirica dalle immagini, come si vedr`a nella sezione sulla calibrazione.
59
60 CAPITOLO 6. PIN-HOLE CAMERA
Le relazioni che intercorrono tra le variabili coinvolte nella conversione tra coordinate sensore e immagini sono
k
u
= D
u
f =
u
0
tan
u
k
v
= D
v
f =
v
0
tan
v
(6.3)
con
u
e
v
angoli approssimabili alla semiampiezza dellapertura della camera (orizzontale e verticale rispettivamente).
Quando lottica non `e distorta e il sensore ha pixel quadrati, k
u
e k
v
tendono ad assumere lo stesso valore.
A causa della presenza del rapporto, lequazione (6.1) non `e chiaramente rappresentabile in un sistema lineare. Tuttavia
risulta possibile modicare tale scrittura, aggiungendo un incognita e un vincolo ulteriore, per poter rappresentare in forma
di sistema lineare tale equazione. Per fare questo verr`a sfruttata la teoria presentata in sezione 1.4 riguardante le coordinate
omogenee. Grazie alle coordinate omogenee si mostra facilmente che il sistema (6.1) si pu`o scrivere come
_
_
u
i
v
i

_
_
=
_
_
u
i
v
i
1
_
_
= K
_
_
x
i
y
i
z
i
_
_
(6.4)
e quando risolto, fornisce = z
i
. Il sistema infatti risulta ben denito quando la terza coordinata assume valore 1, ovvero
dividendo per la terza coordinata le prime due.
Lutilizzo delle coordinate omogenee permette di rendere implicita la divisione per la coordinata z.
La matrice K, unendo le trasformazioni (6.2) e (6.3), pu`o essere scritta come:
K =
_

_
u
0
tan
u
k

u
0
0
v
0
tan
v
v
0
0 0 1
_

_
=
_
_
k
u
k

u
0
0 k
v
v
0
0 0 1
_
_
(6.5)
Tale matrice non dipendendo, come vedremo successivamente, da fattori che non siano altri che quelli della camera stessa,
`e detta matrice dei fattori intrinseci. La matrice K `e una matrice triangolare superiore, denita da 5 parametri.
Con i sensori digitali moderni si pone solitamente lo skew factor k

, un fattore che tiene conto del fatto che langolo tra


gli assi nel sensore non sia esattamente 90 gradi, a zero.
Ponendo k

= 0, linversa della matrice (6.5) si pu`o scrivere come:


K
1
=
_

_
1
k
u
0
u
0
k
u
0
1
k
v

v
0
k
v
0 0 1
_

_
(6.6)
La conoscenza di questi parametri (vedi sezione 6.4 riguardante la calibrazione) determina la possibilit`a di trasformare un
punto da coordinate camera a coordinate immagine o, viceversa, generare la retta in coordinate camera sottesa a un punto
immagine.
Con questa modellazione, in ogni caso, non si `e tenuto conto dei contributi dovuti alla distorsione della lente. Il modello
della pin-hole camera `e infatti valido solamente se le coordinate immagine che si utilizzano si riferiscono a immagini senza
distorsione. Nella sezione seguente verr`a pertanto discusso come si modella la distorsione e i metodi per rimuoverla.
6.1 Distorsione della lente
La totalit`a delle telecamere commerciali devia dal modello della pin-home camera e tale deviazione `e tanto maggiore quanto
grande `e il campo visivo della camera.
Siccome ogni ottica `e composta da un certo numero di lenti, la distorsione `e dovuta alle non idealit`a nella fase di produzione
e di assemblaggio dellottica. Dal punto di vista pratico ottenere una lente non distorcente `e un processo estremamente costoso
e nelle applicazioni a basso costo risulta un problema molto evidente.
Tali non idealit`a generano una distorsione non lineare dicilmente modellizzabile, e, siccome tale distorsione dipende
dallinterazione tra la lente e il sensore, i produttori di lenti non danno o non possono dare informazioni geometriche su come
rappresentare questa distorsione.
`
E da ricordare che il modello della pin-hole camera `e valido solamente se limmagine su cui si lavora `e non distorta.
Calibrare e correggere la distorsione geometrica `e un prerequisito per ricostruire in maniera accurata la tridimensionalit`a
della scena osservata.
In generale i contributi distorcenti della lente si dividono in radiali (diretti lungo la direttrice che unisce il punto al centro
di distorsione) o tangenziali (che sono perpendicolari alla direttrice). I contributi tangenziali (e altri contributi qui non citati)
sono normalmente pi` u piccoli, mentre la distorsione radiale `e sempre presente, e man mano che la focale diventa corta in
generale aumenta di intensit`a.
6.1. DISTORSIONE DELLA LENTE 61
Dal punto di vista pratico la distorsione si rimuove in coordinate immagine (si applica normalmente una Look-Up-Table
allimmagne) ma dal punto di vista sico la distorsione introdotta dalla lente si pone tra il mondo e il pin-hole. In letteratura
`e possibile trovare pertanto due approcci che modellano la formazione dellimmagine:
1. p = d(K[Rt]m): mondo coordinate camera proiezione prospettica distorsione immagine
2. p = Kd([Rt]m): mondo coordinate camera distorsione proiezione prospettica immagine
molto simili tra loro, ma dierenti nel signicato. Nel primo approccio la distorsione agisce sui punti dellimmagine e
permette di separare bene la parte di distorsione dalla parte di proiezione prospettica, il secondo approccio invece lavora in
coordinate camera normalizzate e si pone esattamente in mezzo alle trasformazioni, rendendole dipendenti. Per semplicit`a
la modellazione verr`a presentata usando il primo sistema di riferimento, ovvero in coordinate (u, v), ma i ragionamenti fatti
per il primo approccio valgono esattamente per il secondo, in coordinate ( u, v).
Deciso il sistema di riferimento in cui lavora la distorsione, laltra scelta da compiere `e decidere se modellare la funzione che
trasforma da coordinate distorte a coordinate non-distorte, o viceversa. Questa scelta `e dettata dalle esigenze del problema,
ovvero se `e necessario rimuovere la distorsione, o aggiungerla.
Nel caso pi` u diuso, in cui lobiettivo `e quello di avere un immagine in uscita densa e non-distorta (si veda la discussione
in sezione 1.10), `e necessario calcolare quella funzione che trasforma un punto non-distorto in un punto distorto. Questa
rappresentazione `e anche lottima per la calibrazione, in quanto la distribuzione dellerrore di individuazione di punti notevoli
in coordinate immagine `e, con buona approssimazione, gaussiana a media nulla.
Indipendentemente dalla scelta della direzione della trasformazione, si tende comunque a rappresentare la distorsione
della lente nel medesimo modo in quanto, come si vedr`a, gli unici modelli pratici sono di fatto espansioni in serie di funzioni
senza pertanto un diretto signicato sico. Siccome `e maggiormente diusa in letteratura, e pi` u usata in ambito pratico, in
questa sezione sono mostrate le equazioni che trasformano da coordinate ideali, non distorte, in coordinate distorte, reali.
Questa sezione pertanto si occupa di ricavare una relazione generale tra il punto reale (inteso come se fosse preso con una
lente ideale) (u, v) e leettivo punto immagine distorto (inteso come punto eettivamente acquisito dal sensore con la lente
non ideale) ( u, v).
In tutta limmagine esiste un solo punto (u
d
, v
d
), denito centro di distorsione, dove la distorsione non produce eetti.
Per questo punto (u, v) = ( u, v). Il centro di distorsione `e normalmente vicino ma, in generale, non coincide con il principal
point.
Per denire la distorsione `e necessario operare in una nuova serie di coordinate, relative al centro di distorsione:
u = u u
d
v = v v
d
(6.7)
In diversi articoli viene proposto, come approssimazione, ignorare il centro di distorsione e far coincidere il centro di distorsione
con il principal point o considerare solamente il termine di decentering distortion. Nel caso in cui si stia lavorando in coordinate
camera normalizzate (perci`o prima della proiezione prospettica) il termine di decentramento se ignorato deve essere posto a
(0, 0).
La formulazione classica di Brown-Conrady [Bro66] modella la distorsione della lente sotto forma di scostamento:
u = u +
u
( u, v)
v = v +
v
( u, v)
(6.8)
Tali scostamenti possono essere suddivisi per contributi:
radial distortion Lo scostamento dovuto alla distorsione radiale ha equazione

r
u
= uf
r
(r)

r
v
= vf
r
(r)
(6.9)
dove f
r
(r) `e una funzione solo del raggio r =

u
2
+ v
2
, distanza euclidea tra il punto e il centro di distorsione, e con
il vincolo f
r
(0) = 1.
La funzione f
r
(r) della distorsione radiale `e in genere sconosciuta ma pu`o essere approssimata attaverso i primi termini
dello sviluppo in serie:
f
r
(r) = 1 +k
1
r
2
+k
2
r
4
+k
3
r
6
+. . . (6.10)
La presenza delle sole potenze multiple di 2 `e dovuta alla simmetria della funzione f
r
.
thin prism distortion imperfezioni del costruttore e disallineamento tra il sensore e la lente, introducono ulterori distor-
sioni asimmetriche. Si modella solitamente come

(p)
u
= s
1
r
2
+s
3
r
4
+. . .

(p)
v
= s
2
r
2
+s
4
r
4
+. . .
(6.11)
Tali contributi sono spesso inadeguati tuttavia per descrivere gli eetti di decentramento dellottica.
62 CAPITOLO 6. PIN-HOLE CAMERA
u
v
(0, 0)
(u
0
, v
0
)
Figura 6.2: Coordinate Immagine (Image coordinates)
x
y
z
Figura 6.3: Coordinate Camera (Camera coordinates)
decentering distortion
`
E normalmente causata dallassemblaggio errato della lente e dei diversi componenti che compon-
gono lottica. Il modello di Brown-Conrady rappresenta il contributo di decentramento nella forma

(t)
u
= (p
1
(r
2
+ 2 u
2
) + 2p
2
u v)(1 +p
3
r
2
+. . .)

(t)
v
= (p
2
(r
2
+ 2 v
2
) + 2p
1
u v)(1 +p
3
r
2
+. . .)
(6.12)
Inserendo tutti questi contributi allinterno dellequazione (6.8), il modello Brown-Conrady complessivo si scrive come
u = u u
d
v = v v
d
r =

u
2
+ v
2
u = u + u(k
1
r
2
+. . .) + (p
1
(r
2
+ 2 u
2
) + 2p
2
u v)(1 +p
3
r
2
+. . .) +s
1
r
2
+. . .
v = v + v(k
1
r
2
+. . .) + (2p
1
u v +p
2
(r
2
+ 2 v
2
))(1 +p
3
r
2
+. . .) +s
2
r
2
+. . .
(6.13)
Di fatto la distorsione radiale `e dominante e, in buona parte delle applicazioni, i primi termini sono pi` u che sucienti.
Un modello molto usato `e il R3D1P1: 3 termini radiali (k
1
, k
2
, k
3
), 1 termine di decentramento (p
1
, p
2
) e 1 grado
prismatico (s
1
, s
2
).
I coecienti della distorsione sono ricavati con diverse tecniche disponibili in letteratura applicate ad immagini acquisite
in ambiente strutturato (griglie di calibrazione). Normalmente si usa un minimizzatore non lineare e, o si lavora su rette e si
itera no a che tutte le curve dellimmagine non diventano rette, plumb-line method (si veda per esempio [DF01]), o si forza
che i punti su un piano di coordinate note rappresentino una omograa. Tali tecniche sono applicabili solamente se si lavora
in coordinate immagine (approccio 1).
Per calibrare la distorsione in coordinate camera normalizzate (approccio 2) bisogna che contemporaneamente distorsione
e parametri intrinseci della camera vengano calcolati [Zha99]. Una stima iniziale dei parametri intrinseci pu`o venire da un
minimizzatore lineare, ma la stima nale, si ottiene solo attraverso un minimizzatore non lineare.
In entrambi i casi, quando lerrore per rilevare i punti di calibrazione `e gaussiano a media nulla, il miglior stimatore
(MLE) `e
min

i
|p
i
p
i
|
2
(6.14)
con p
i
la miglior stima dei punti distorti attraverso i parametri rappresentanti la distorsione della lente e i parametri
intrinseci della camera. Questo vuol dire che qualunque funzione diversa da quella usata per stimare p
i
`e una scelta sub-
ottima. In generale tuttavia i rilevatori di marker di calibrazione, soprattutto in condizioni di forte distorsione, raramente
inseriscono un errore con distribuzione esattamente gaussiana a media nulla, e di conseguenza questa rappresentazione
potrebbe non essere comunque il caso ottimo.
6.2 Coordinate Mondo e Coordinate Camera
Quando si analizzano immagini reali risulta necessario passare da un sistema di riferimento solidale con la camera, dove il
punto (0, 0, 0)

coincide con il fuoco (pin-hole) del sistema, a un sistema di riferimento pi` u generico, che meglio si adatta alle
esigenze dellutilizzatore, dove la camera `e posizionata in un punto del mondo e orientata rispetto ad esso in modo arbitrario.
6.2. COORDINATE MONDO E COORDINATE CAMERA 63
x
y
z
Figura 6.4: Coordinate Mondo ISO 8855 (World coordinates)
Allo stesso modo risulta comodo usare un sistema cartesiano dove lasse z rappresenta laltezza del punto dal suolo piuttosto
che la distanza dal pin-hole come in coordinante camera.
Per arrivare allequazione denitiva della pin-hole camera si parte dallequazione (6.4) e si considera che
il pin-hole non sia nel punto (0, 0, 0)

ma in un generico punto t
0
= (x
0
, y
0
, z
0
)

espresso in coordinate mondo;


la camera possa essere ruotata in maniera arbitraria e non coincidere con gli assi del sistema attraverso una trasforma-
zione R;
gli assi abbiano il segno invertito e siano scambiati tra loro attraverso una trasformazione .
Il motivo del cambiamento degli assi `e dettato dalle esigenze che hanno le coordinate omogenee per cui, in coordinate camera,
la coordinata z deve rappresentare la distanza dal pin-hole (la quantit`a da dividere nella proiezione prospettica) mentre, in
coordinate mondo ISO 8855, la coordinata z rappresenta invece laltezza
1
.
Sia (x
i
, y
i
, z
i
)

un punto in coordinate mondo, e ( x


i
, y
i
, z
i
)

il medesimo punto nelle coordinate camera. La relazione


che lega questi due punti si pu`o scrivere come
_
_
x
i
y
i
z
i
_
_
= R
_
_
_
_
x
i
y
i
z
i
_
_
t
0
_
_
= R
_
_
x
i
y
i
z
i
_
_
+

t
0
(6.15)
dove R `e una matrice 3 3 che converte da coordinate mondo a coordinate camera, tiene conto delle rotazioni e della
variazione del segno degli assi tra coordinate mondo e coordinate camera (vedi appendice A), mentre il vettore

t
0
= Rt
0
(6.16)
rappresenta la posizione del pin-hole t
0
rispetto allorigine del sistema mondo, rappresentato per`o nel sistema di coordinate
camera.
Va ricordato che le matrici di rotazione sono matrici ortonormali: hanno determinante 1, conservano pertanto distanze e
aree, e linversa di una matrice di rotazione `e la sua trasposta.
La matrice R e il vettore t
0
possono venire accorpati in forma di matrice 3 4 sfruttando lomogeneit`a delle coordinate.
Grazie a questa rappresentazione, `e possibile scrivere in maniera estremamente compatta la proiezione di un punto, espresso
in coordinate mondo (x
i
, y
i
, z
i
)

, in un punto di coordinate immagine (u


i
, v
i
)

_
_
u
i
v
i
1
_
_
= K[R[

t
0
]
_

_
x
i
y
i
z
i
1
_

_
(6.17)
Da questa equazione risulta abbastanza esplicito che ad ogni punto dellimmagine (u
i
, v
i
) sono associati inniti punti del
mondo (x
i
, y
i
, z
i
)

che vivono su una retta al variare del parametro .


Sottointendendo e raccogliendo le matrici si ottiene lequazione nale della pin-hole camera (che non tiene, ne deve
tener conto, della distorsione):
_
_
u
i
v
i
1
_
_
= K[R[

t
0
]
_

_
x
i
y
i
z
i
1
_

_
= P
_

_
x
i
y
i
z
i
1
_

_
(6.18)
avendo denito P = K[R[

t
0
] matrice proiettiva (camera matrix) che verr`a usata in seguito [Str87]. La matrice P `e anche
essa una matrice 3 4 ed, essendo rettangolare, non `e invertibile.
1
C`e da ricordare inne che esiste un ulteriore sistema di riferimento, chiamato sistema di coordinate sensore (body coordinates), con assi dal
medesimo signicato del sistema di riferimento mondo, ma centrato nel sensore e allineato rispeto ad esso. La conversione tra coordinate sensore
e coordinate camera `e R
wc
= R
1
bw
64 CAPITOLO 6. PIN-HOLE CAMERA
`
E da sottolineare che ponendo un vincolo aggiuntivo sui punti, per esempio z
i
= 0, la matrice P si riduce a una matrice
3 3, invertibile, che `e esattamente la matrice omograca (vedi sezione 6.3) della trasformazione prospettica dei punti del
suolo. La matrice P
z=0
`e un esempio di trasformazione IPM (Inverse Perspective Mapping) per ottenere una vista dallalto
(Bird eye view) della scena inquadrata [MBLB91].
Per quanto riguarda il problema dellinversione, se si considera il sistema di partenza (6.15), si possono mettere in evidenza
i due contributi spaziali che determinano la proiezione:

_
_
u
i
v
i
1
_
_
= KR
_
_
x
i
y
i
z
i
_
_
KRt
0
(6.19)
Da questa rappresentazione il sistema inverso (che trasforma punti immagine in coordinate mondo) si pu`o scrivere come:
_
_
x
i
y
i
z
i
_
_
= R
1
K
1
_
_
u
i
v
i
1
_
_
+t
0
= v(u
i
, v
i
) +t
0
(6.20)
dove risulta ben evidente che a ogni punto dellimmagine corrisponde una retta (al variare di ) nel mondo che passa per il
pin-hole (t
0
) e diretta nella direzione
v(u
i
, v
i
) = R
1
K
1
_
_
u
i
v
i
1
_
_
(6.21)
6.2.1 Propriet`a della matrice di rotazione
La matrice di rotazione verr`a spesso indicata nel testo in modo da compattarne la scrittura come array del linguaggio C:
R =
_
_
r
0
r
1
r
2
r
3
r
4
r
5
r
6
r
7
r
8
_
_
La matrice di rotazione `e una matrice molto sovradimensionata: i suoi 9 parametri linearmente indipendenti sono di fatto
generati 3 variabili in modo non lineare (si veda appendice).
Senza esplicitare gli angoli da cui la matrice `e generata, risulta possibile fornire qualche vincolo aggiuntivo.
La matrice di rotazione ha la propriet`a di non modicare le distanze essendo ortonormale e det(R) = 1. Ogni riga e ogni
colonna devono avere modulo unitario, ed ogni riga e ogni colonna sono ortonormali tra loro, in quanto basi ortonormali
dello spazio. Conoscendo pertanto due vettori riga o colonna della matrice r
1
, r
2
`e possibile determinare la terza base come
prodotto vettoriale dei due:
r
3
= r
1
r
2
(6.22)
Conoscendo una sottomatrice 22 `e possibile ricavare gli altri elementi della matrice stessa a meno di un segno, basandosi
sempre sul fatto che ogni riga e colonna hanno norma unitaria. Allo stesso modo il prodotto scalare tra due vettori riga o
due vettori colonna deve dare valore nullo, in quanto ortogonali tra di loro. Sotto tali vincoli, esistono due soluzioni esatte,
di cui una `e:
R =
_
_
r
0
r
1
(1 r
2
0
r
2
1
)
1
2
r
3
r
4
s(1 r
2
3
r
2
4
)
1
2
(1 r
2
0
r
2
3
)
1
2
s(1 r
2
1
r
2
4
)
1
2
(r
2
0
+r
2
1
+r
2
3
+r
2
4
1)
1
2
_
_
(6.23)
dove s = sgn(r
1
r
4
+r
2
r
5
), mentre laltra soluzione ha esattamente i segni invertiti.
6.2.2 Risultati Notevoli
Possiamo usare la matrice di rotazione e lequazione della pin-hole (6.18) per mostrare qualche risultato notevole. Deniamo,
dal sistema, la funzione f
pm
di R
3
in R
2
chiamata perspective mapping denita come:
f
pm
(x, y, z) =
_
k
u
r
0
x +r
1
y +r
2
z
r
6
x +r
7
y +r
8
z
+u
0
, k
v
r
3
x +r
4
y +r
5
z
r
6
x +r
7
y +r
8
z
+v
0
_
(6.24)
funzione del modello della pin-hole camera scritta in maniera esplicita. Per semplicit`a si `e supposto il pin-hole coincidere
con lorigine del sistema di riferimento.
6.3. TRASFORMAZIONI OMOGRAFICHE NOTEVOLI 65
I punti di fuga e calibrazione
Per ogni immagine esistono 3 punti di fuga, strettamente legati alla scelta degli assi di riferimento.
Prendiamo per esempio il primo asse. Nel nostro sistema di riferimento la coordinata x `e la distanza (per le altre 2
coordinate il discorso `e similare). Portiamo tale coordinata a innito mantenendo le altre costanti. Quello che si ottiene `e il
punto
lim
x
f
pm
(x, y, z) =
_
k
u
r
0
r
6
+u
0
, k
v
r
3
r
6
+v
0
_
(6.25)
Usando le matrici omogenee `e possibile ottenere lo stesso risultato, con un formalismo pi` u compatto.
Prendendo la trasformazione prospettica (6.17) e mandando via via x , y e z , i punti immagine (in
coordinate omogenee) che si ottengono, rappresentati i punti di fuga nelle 3 direzioni, sono esattamente le colonne della
matrice [v
x
v
y
v
z
] = K R, ovvero :
v
x
= Kr
1
v
y
= Kr
2
v
z
= Kr
3
(6.26)
avendo indicato con la sintassi r
i
le colonne della matrice R. Questo `e un primo esempio di calibrazione della camera che
sfrutta una conoscenza dellimmagine, ovvero la posizione dei punti di fuga.
In particolare, ponendosi nel caso semplicato u
0
= 0, v
0
= 0 e k

= 0, i punti di fuga si trovano in


v
x
=
_
k
u
r
0
r
6
, k
v
r
3
r
6
_
v
y
=
_
k
u
r
1
r
7
, k
v
r
4
r
7
_
v
z
=
_
k
u
r
2
r
8
, k
v
r
5
r
8
_
(6.27)
`
E da notare che siccome le 3 colonne di R sono ortonormali basta conoscere 2 punti di fuga per ottenere sempre il terzo
(vedi sezione precedente).
Horizon Line
Se mandiamo a innito non una variabile ma pi` u di una otteniamo pi` u di un punto. Per x ma con y = mx il vanishing
point degenera in una linea di equazione
k
v
(r
3
r
7
r
4
r
6
)u +k
u
(r
6
r
1
r
7
r
0
)v +k
u
k
v
(r
4
r
0
r
3
r
1
) = 0 (6.28)
linea dellorizzonte.
Punti e Linee degeneri
Come un punto nellimmagine proiettata degenera in una linea, una linea di equazione au+bv +c = 0 diventa nellimmagine
proiettata
ak
u
(r
0
x +r
1
y +r
2
z) +bk
v
(r
3
x +r
4
y +r
5
z) +c(r
6
x +r
7
y +r
8
z) = 0
ovvero
(ak
u
r
0
+bk
v
r
3
+cr
6
)x + (ak
u
r
1
+bk
v
r
4
+cr
7
)y + (ak
u
r
2
+bk
v
r
5
+cr
8
)z = 0 (6.29)
che rappresenta il piano degenere (con normale come da equazione) in tre dimensioni che passa per lorigine (il pin-hole).
6.3 Trasformazioni omograche notevoli
`
E possibile fare un breve elenco di quali trasformazioni utili in visione articiale si possono rappresentare attraverso uno-
mograa. Le trasformazioni descritte in questa sezione permettono, data la conoscenza dellorientazione della camera e dei
parametri intrinseci, di ricavare la matrice H che determina la trasformazione.
`
E inne importante far notare come per tutte
le trasformazioni dove `e coinvolta una omograa (cambio di punto di vista, perspective mapping, IPM o retticazione), in
mancanza della conoscenza dei parametri intrinseci ed estrinseci necessari per generare la trasformazione in forma chiusa,
si possono comunque ricavare implicitamente le matrice rappresentative conoscendo come (almeno) 4 punti dellimmagine
vengono trasformati (si veda per i dettagli la sezione 6.4.1).
66 CAPITOLO 6. PIN-HOLE CAMERA
Perspective Mapping e Inverse Perspective Mapping Usando lomograa `e possibile realizzare la trasformazione di
inverse perspective mapping (o bird eye view) invertendo semplicemente la matrice della perspective mapping.
La matrice omograca H = P
Z
della proiezione prospettica di un piano, perspective mapping, relativa a un piano z
costante, dove normalmente z = 0 essendo il suolo il piano pi` u importante, si pu`o ricavare in maniera molto semplice in
quanto:
P
Z
= K R
Z
(6.30)
dove R
Z
`e la matrice di rototraslazione di un piano che pu`o essere espressa come
R
Z
=
_
_
r
0
r
1
r
2
z +

t
x
r
3
r
4
r
5
z +

t
y
r
6
r
7
r
8
z +

t
z
_
_
(6.31)
avendo indicato il vettore

t come in equazione (6.16).
Questa matrice `e molto importante e verr`a discussa diusamente nella sezione 6.4 della calibrazione.
La trasformazione (6.30) essendo unomograa `e invertibile. Quando trasforma in maniera densa tutti i punti immagine
in punti mondo si chiama Inverse Perspective Mapping, mentre quando trasforma tutti i punti mondo in punti immagine si
indica come Perspective Mapping. In entrambi i casi viene proiettato correttamente solo il piano z.
`
E sempre interessante notare come anche il modello pi` u semplice della camera pin-hole a 9 parametri (6 estrinseci e 3
intrinseci) non `e ricavabile dagli 8 parametri vincoli che la matrice omograca fornisce. Tuttavia, conoscendo i parametri
intrinseci, `e possibile ottenere una stima della rotazione e della posizione della camera (sezione 6.4), in quanto lequazione 6.30
diventa invertibile:
R
Z
= K
1
H (6.32)
Vanishing Point e linea dellorizzonte Proprio per il fatto di essere limitato a trasformazioni di piani, `e possibile
calcolare in maniera molto agevole il limite della coordinata x e y attraverso la trasformazione (6.30) come
lim
x
H(x, y, 1)

=
_
h
0
h
6
,
h
3
h
6
_
lim
y
H(x, y, 1)

=
_
h
1
h
7
,
h
4
h
7
_
(6.33)
Questi limiti sono i vanishing point (cfr. sezione 6.2.2) dellimmagine.
Cambio di punto di vista In genere non `e possibile trasformare una vista generata da una camera nella vista generata
da un altra. Ci`o risulta possibile solo se si vuole rimappare correttamente solamente i punti di un determinato piano, o
quando le camere condividono lo stesso pin-hole.
Nel primo caso `e possibile rimappare i punti da una visuale a quelli di unaltra sfruttando la combinazione di una
Perspective Mapping seguita da una Inverse Perspective Mapping e sfruttando lipotesi che la scena osservata sia composta
solamente da un piano (per esempio il suolo). I punti immagine vengono proiettati in coordinate mondo su una camera 1
e riproiettati di nuovo in coordinate immagine su una seconda camera 2 con parametri intrinseci ed estrinseci dierenti.
Siccome si riproietta sempre un piano, anche la composizione di questa trasformazione `e ancora una omograa:
H = H
2
H
1
1
(6.34)
le trasformazioni omograche infatti si combinano con la semplice moltiplicazione tra matrici. Espandendo lequazione (6.34)
con (6.30) si ottiene:
H = K
2
R
Z2
R
Z
1
1
K
1
1
(6.35)
Dal punto di vista teorico il fatto di dover forzare un piano z costante incide solamente se il vettore traslazione cambia.
Nel caso in cui il vettore di traslazione venga modicato tra le due viste ed esistano punti non appartenenti al piano indicato
avviene una rimappatura errata tra le due viste (la trasformazione omograca non `e pi` u rispettata). La trasformazione (6.34)
pu`o servire per individuare anche ostacoli verticali allinterno di tecniche come il Ground Plane Stereo e il Motion Stereo.
Retticazione Lequazione generica che mette in relazione i punti immagine tra due punti di vista generici si pu`o scrivere
come
_
_
u
2
v
2
1
_
_
= K
2
R
2
(K
1
R
1
)
1
_
_
u
1
v
1
1
_
_
+K
2
R
2
(t
1
t
2
) (6.36)
dove t
1
t
2
`e il vettore che congiunge i due pin-hole. Trattazione pi` u accurata viene lasciata nel capitolo 7 sulla stereoscopia.
Nel caso in cui t
1
= t
2
la trasformazione si riduce di dimensioni e si ottiene unequazione compatibile con unomograa e
di conseguenza valida per qualunque punto dellimmagine indipendentemente dalla presenza o meno di un piano dominante.
Pertanto, nel caso in cui tra le due viste il pin-hole sia in comune (pertanto pura rotazione o modica dei parametri intrinseci),
6.4. CALIBRAZIONE 67
`e possibile realizzare una trasformazione perfetta per tutti i punti dellimmagine. Tale processo di proiezione di punti da una
camera a un altra modicando parametri intrinseci e rotazione `e chiamato retticazione.
Per retticare un immagine, ovvero per generare unimmagine 1 densa partendo dai punti dellimmagine 2, `e necessario
utilizzare la matrice omograca
H
1,2
= K
2
R
2
R
1
1
K
1
1
(6.37)
che permette di ricavare tutti i punti dellimmagine 1 dai punti dellimmagine 2, ovvero per ogni pixel (u
1
, v
1
) dellimmagine
che si vuole generare si applica la trasformazione omograca H e si ricava il punto (u
2
, v
2
) dellimmagine sorgente da cui
copiare il valore del pixel.
Attraverso la trasformazione (6.37) `e possibile trasformare unimmagine acquisita da una camera di parametri (K
2
, R
2
)
in unimmagine di una camera virtuale di parametri (K
1
, R
1
).
Come per tutte le omograe, un metodo per ottenere la matrice H senza la conoscenza dei parametri intrinseci ed
estrinseci delle due camere `e mostrato in sezione 6.4.1.
6.4 Calibrazione
Le tecniche di calibrazione si possono dividere in due categorie:
implicita dove vengono estratti gli elementi delle matrici in modo da poter proiettare punti da un sistema di coordinate a
un altro;
esplicita dove vengono estratti i parametri sici del sistema coinvolti nella proiezione prospettica.
La calibrazione implicita solitamente `e pi` u veloce e con un numero suciente di punti rappresenta correttamente la realt`a.
La calibrazione esplicita permette tuttavia pi` u libert`a di azione nelluso dei parametri ottenuti, per poter fare operazioni
sulle immagini o per poter variare dinamicamente alcuni parametri del sistema.
Il conne che separa la calibrazione implicita da quella esplicita tende a volte a venire meno.
Con la Direct Linear Transformation, sezione 6.4.1, `e possibile calibrare implicitamente il sistema, conoscendo la
posizione di punti in coordinate mondo e in coordinate immagine, ricavando la matrice di proiezione P, o la matrice di
proiezione di un singolo piano H, non conoscendo nessun parametro della camera. Usando lequazione (6.32), si pu`o
ricavare invece la matrice [Rt] dei parametri estrinseci conoscendo i parametri intrinseci.
Si `e gi`a accennato in precedenza (vedi sezione 6.2.2) come `e possibile ricavare la matrice di rotazione data la conoscenza
della matrice dei parametri intrinseci e dalla posizione dei punti di fuga.
Se si conosce la matrice di rotazione R `e possibile ottenere in forma esplicita il valore degli angoli che lhanno generata
(possono esistere pi` u soluzioni in questo caso).
Se si conosce la matrice dei parametri intrinseci K `e immediato ricavare in maniera esplicita i parametri intrinseci della
camera.
Zhang, sezione 6.4.4, propone un modo per ricavare i parametri intrinseci della camera se si conoscono le posizioni
relative di punti appartenenti allo stesso piano, osservato per`o da pi` u punti di vista.
6.4.1 Calibrazione implicita
Lidea base della Direct Linear Transformation proposta da Abdel-Aziz e Karara [AAK71] permette di calcolare direttamente
i coecienti delle matrici (6.40), (6.44) o della matrice (6.18) dinteressandosi complemente dei parametri e del modello della
trasformazione. In tale articolo viene anche presentato un approccio per risolvere problemi sovradimensionati attraverso la
tecnica della Pseudoinversa.
Dato il sistema (6.18) `e necessario ricavare i 12 parametri della matrice rettangolare P per avere una calibrazione del
sistema implicita ovvero dove non si conoscono i parametri (da 9 a 11 a seconda del modello) interni che han generato gli
elementi della matrice stessa.
Per ottenere questi 12 parametri sono necessari almeno 6 punti non linearmente dipendenti ovvero che non appertengano
allo stessa retta ma neanche allo stesso piano (ogni punto fornisce 2 vincoli come si vedr`a fra poco). Il risultato `e generalmente
instabile usando solo 6 punti e perci`o si sfruttano tecniche come la pseudoinversa per determinare una soluzione che minimizzi
gli errori di misura. Tale tecnica si chiama DLT (direct linear transformation).
_
_
u
i
v
i
1
_
_
= P
_
_
_
_
x
i
y
i
z
i
1
_
_
_
_
=
_
_
p
0
p
1
p
2
p
3
p
4
p
5
p
6
p
7
p
8
p
9
p
10
p
11
_
_
_
_
_
_
x
i
y
i
z
i
1
_
_
_
_
(6.38)
68 CAPITOLO 6. PIN-HOLE CAMERA
`
E possibile rigirare il sistema (6.38) in modo da avere 2 coppie di vincoli lineari per ogni punto di cui si conoscono le sue
coordinate in immagine e in coordinate mondo:
_
x
i
y
i
z
i
1 0 0 0 0 u
i
x
i
u
i
y
i
u
i
z
i
u
i
0 0 0 0 x
i
y
i
z
i
1 v
i
x
i
v
i
y
i
v
i
z
i
v
i
_
_
_
_
p
0
.
.
.
p
11
_
_
_ = 0 (6.39)
Essendo un sistema omogeneo, la sua soluzione sar`a il sottospazio nullo di R
12
, kernel della matrice dei termini noti. Per
questo motivo la matrice P `e conosciuta a meno di un fattore moltiplicativo e ne consegue che ha solo 11 parametri liberi
(sono anche di meno considerando in una telecamera moderna solo 3-4 parametri intrinseci e i 6 estrinseci). La matrice
P cos` ottenuta permette di proiettare un punto da coordinate mondo a coordinate immagine e da un punto in coordinate
immagine ricavare la retta che sottende nel mondo tale punto.
Solitamente per ridurre il numero di elementi della matrice P si pu`o aggiungere il vincolo che tutti i punti coinvolti nel
processo di calibrazione appartengano a un piano particolare (per esempio al terreno). Ci`o signica porre la condizione z
i
= 0
i, che implica leliminazione di una colonna (relativa allasse z) della matrice che si riduce alla dimensione 3 3, diventa
invertibile e si pu`o denire omograca (vedi sezione 1.8).
Deniamo pertanto la matrice H = P
Z
(crf. con (6.30)) come

_
_
u
i
v
i
1
_
_
= H
_
_
x
i
y
i
1
_
_
(6.40)
Come si `e visto nella sezione 6.3 tale matrice `e molto utile perche permette fra le altre cose di rimuovere la prospettiva
dallimmagine, sintetizzando una visuale fronto-parallela del piano, con una trasformazione dal nome di retticazione ortogo-
nale, bird eye view o inverse perspective mapping. Tale trasformazione vale pertanto sia che si voglia rimuovere la prospettiva
(perspective mapping o inverse perspective mapping), sia che si voglia riproiettare un piano tra due immagini (ground plane
stereo), sia generare un immagine con dierenti parametri (retticazione, immagini panoramiche).
Anche in questo caso `e possibile trasformare la relazione non lineare (6.40) in modo da ottenere dei vincoli lineari:
_
x
i
y
i
1 0 0 0 u
i
x
i
u
i
y
i
u
i
0 0 0 x
i
y
i
1 v
i
x
i
v
i
y
i
v
i
_
_
_
_
h
0
.
.
.
h
8
_
_
_ = 0 (6.41)
Siccome anche questa matrice `e denita a meno di un fattore moltiplicativo, ha 8 gradi di libert`a e si pu`o porre un vincolo
ulteriore. Lequazione (6.41) deriva anche da considerazioni puramente geometriche in quanto i vettori devono essere paralleli:
m

Hm = 0 (6.42)
Questa formulazione compatta `e quella che normalmente viene indicata come DLT [HZ04] e si applica a tutte quelle
trasformazioni lineari conosciute a meno di un fattore moltiplicativo per trasformare tale problema in un problema omogeneo.
Se si dispone di un risolutore di sistemi lineari abbastanza moderno il vincolo aggiuntivo [H[ = 1 `e automaticamente
soddisfatto durante il calcolo del kernel della matrice dei termini noti (fattorizzazione QR o decomposizione SVD).
Un altro metodo pi` u semplice ed intuivo consiste nel porre come vincolo aggiuntivo h
8
= 1: in questo modo, invece che
risolvere un sistema omogeneo, si pu`o risolvere un problema lineare tradizionale. Il sistema (6.40) si pu`o anche in questo
caso riarrangiare in modo da ottenere dei vincoli lineari nella forma:
_
x
i
y
i
1 0 0 0 x
i
u
i
y
i
u
i
0 0 0 x
i
y
i
1 x
i
v
i
y
i
v
i
_
_
_
_
h
0
.
.
.
h
7
_
_
_ =
_
u
i
v
i
_
(6.43)
Questo `e un sistema (non omogeneo) di due equazioni in 8 incognite h
0
. . . h
7
e ogni punto, di cui si conoscono sia la posizione
nel mondo su un piano sia la posizione nellimmagine, fornisce 2 vincoli.
Lavere imposto h
8
= 1 tuttavia implica che il punto (0, 0) non pu`o essere una singolarit`a dellimmagine (es. linea
dellorizzonte), e in generale non `e una scelta ottima dal punto di vista della precisione della soluzione come gi`a discusso in
precedenza.
`
E importante notare che la soluzione dipende fortemente dalla normalizzazione scelta. La scelta [H[ = c puo essere
chiamata standard least-squares.
In entrambi i casi sono richiesti almeno 4 punti per ottenere un omograa H e ogni punto in pi` u permette di ottenere
una soluzione di errore inferiore. Questi sistemi, quando sovradimensionati, possono essere risolti usando il metodo della
pseudoinversa 1.1.
La matrice H `e denita da 4 parametri intrinseci e dai 6 parametri estrinseci. La separazione dei parametri intrinseci
dai parametri estrinseci suggerisce di estrarre tali parametri in maniera indipendente in modo da irrobustire la calibrazione.
6.4. CALIBRAZIONE 69
Dopotutto i parametri intrinseci possono essere ricavati con un certo grado di precisione oine e valgono per tutti i possibili
posizionamenti della camera (si veda poi 6.4.4).
Deniamo la matrice R
Z
(cfr. con (6.31)) come

_
_
u
i
v
i
1
_
_
=
_
_
r
0
r
1
p
x
r
3
r
4
p
y
r
6
r
7
p
z
_
_
_
_
x
i
y
i
1
_
_
= R
Z
_
_
x
i
y
i
1
_
_
(6.44)
avendo indicato con ( u
i
, v
i
) le cosidette coordinate immagine normalizzate (coordinante omogenee al punto ( x
i
, y
i
, z
i
)

in
coordinate camera).
La matrice H `e denita a meno di un fattore di scala, mentre R
Z
permette di denire la scala in quanto presenta ancora
due colonne ortonormali. La conoscenza delle due colonne della matrice di rotazione permette di ricavare la terza e perci`o
tale calibrazione diventa valida per punti anche fuori dal piano z = 0.
Come `e stato fatto in precedenza, un sistema non-lineare in 3 equazioni omogenee, quando opportunamente riarrangiato,
fornisce due vincoli lineari:
Ax = 0
A =
_
x
i
y
i
0 0 u
i
x
i
u
i
y
i
1 0 u
i
0 0 x
i
y
i
v
i
x
i
v
i
y
i
0 1 v
i
_
x = (r
0
, r
1
, r
3
, r
4
, r
6
, r
7
, p
x
, p
y
, p
z
)

(6.45)
(Abdel-Aziz e Karara [AAK71]).
`
E dunque possibile costruire un sistema di 2N equazioni per tutti gli N punti di controllo,
per cercar di ottenere le 9 incognite. La matrice `e denita a meno di un fattore moltiplicativo, ma in questo caso la struttura
interna della matrice R
Z
pu`o essere daiuto per ricavare i parametri estrinseci (cfr. sezione 6.4.3). Di fatto le due colonne
della matrice devono essere ortornormali:
r
2
0
+r
2
3
+r
2
6
= 1
r
2
1
+r
2
4
+r
2
7
= 1
r
0
r
1
+r
3
r
4
+r
6
r
7
= 0
(6.46)
Questi vincoli non lineari aggiuntivi sono frutto del fatto che tale matrice `e denita esplicitamente da solo 6 parametri (3
rotazioni e la traslazione).
6.4.2 Calcolo dellomograa
Per quanto riguarda il punto di vista computazionale, lequazione (6.41) `e mal condizionata in quanto ogni colonna rappresenta
una quantit`a con un ordine di grandezza dierente. Per ottenere dal punto di vista lineare una soluzione corretta `e richiesta
una fase precedente di normalizzazione. Hartley e Zisserman [HZ04] ricordano che la normalizzazione nella DLT `e un passo
essenziale e non si pu`o ritenere puramente opzionale.
Il calcolo dellomograa in equazione (6.43) tuttavia ha il difetto di non tenere conto dellerrore di misura sui punti. Di
fatto la decomposizione SVD minimizza qualcosa che per puro caso assomiglia lerrore sul termine noto (cosa che invece
proprio non viene fatta nel caso (6.41)) e in ogni caso non si riesce a valuatare lerrore sulla matrice dei parametri. In questo
caso specico, dove si minimizza ai minimi quadrati un errore puramente matematico senza corrispondente geometrico, si
parla di algebraic least squares (ALS).
Siccome la DLT minimizza un errore algebrico e non geometrico, anche se dal punto di vista computazionale la DLT
normalizzata `e migliore, potrebbe restituire risultati peggiori dal punto di tting geometrico dei dati. La versione del
sistema (6.41) normalizzato ai minimi quadrati viene indicato con normalized algebraic least squares (NALS).
Per superare il limite del calcolo sullerrore alebrico, `e necessario tornare al problema originale e non cercare di trasformarlo
in un problema lineare ma risolverlo, per esempio in maniera iterativa, attraverso un minimizzatore non lineare.
Se il rumore `e presente solo su una delle due immagini, una funzione costo appropriata, con signicato geometrico, `e la
distanza euclidea tra i punti misurati e i punti trasformati. Questo `e chiamato normalmente errore di trasferimento (transfer
error) e minimizza una funzione costo non lineare della forma
arg min
H

|m

i
Hm
i
|
2
(6.47)
dove m

i
`e il punto immagine aetto da rumore gaussiano bianco, mentre il punto m
i
`e un punto perfettamente conosciuto.
In tal caso la funzione che minimizza lerrore geometrico `e anche quella che rappresenta la miglior stima del risultato dal
punto di vista bayesiano (Maximum Likelihood Estimator o MLE).
Tuttavia quando entrambi i dati sono aetti da rumore la funzione costo (6.47) non `e ottimale. Il modo pi` u semplice per
estendere la soluzione precedente consiste nel cercare di minimizzare lerrore di trasferimento diretto e lerrore di trasferimento
inverso (symmetric transfer error):
arg min
H

|m

i
Hm
i
|
2
+|m
i
H
1
m

i
|
2
(6.48)
In questo modo si tengono conto di entrambi i contributi nella soluzione del problema.
70 CAPITOLO 6. PIN-HOLE CAMERA
Questa tuttavia, non `e ancora la soluzione ottima, almeno dal punto di vista statistico. Uno stimatore a massima
verosomiglianza deve infatti considerare correttamente il rumore su entrambi i dati quando presente (quello che Hartley e
Zisserman chiamano Gold Standard). La soluzione alternativa, di fatto quella pi` u corretta, consiste nel minimizzare lerrore
di Riproiezione.
Questa soluzione incrementa di molto la dimensione del problema in quanto si pone come obiettivo (o comunque richiede
tra le incognite) anche quello di individuare i punti ottimi non aetti da rumore m
i
e m

i
:
arg min
H

|m

i
m

i
|
2
+|m
i
m
i
|
2
(6.49)
sotto il vincolo

m

i
= H m
i
.
Nel caso ancora pi` u generale con rumore di covarianza misurato per ogni singolo punto la metrica corretta `e la distanza
di mahalanobis (vedi sezione 2.5):
|m m|
2

= (m m)

1
(m m) (6.50)
Nel caso in cui il rumore per punto sia costante la precedente espressione si riduce alla pi` u intuitiva distanza euclidea.
Essendo una minimizzazione non lineare `e richiesta tuttavia una soluzione iniziale da cui partire per trovare il minimo
che soddisfa lequazione costo: la soluzione lineare `e ancora utile ed `e usata come spunto iniziale per individuare un minimo
sotto una metrica dierente.
Propagazione dellerrore nel calcolo dellomograa
Nel caso di errore su una singola immagine per calcolare come lerrore si propaga sulla matrice H `e necessario calcolare lo
Jacobiano della funzione costo (6.47). Esplicitando la trasformazione omograca si ottiene [HZ04]
J
i
=
r
h
=
1
w

_
m

i
0 u

i
m

i
/ w

0 m

i
v

i
m

i
/ w

_
(6.51)
con m
i
= (u
i
, v
i
, 1)

e m

i
= ( u

i
, v

i
, w

i
)

= Hm
i
. Attraverso la teoria mostrata in sezione 3.1.4 `e possibile calcolare la
matrice di covarianza dei parametri dellomograa data la covarianza sui punti m

i
. Siccome la matrice di covarianza totale
del rumore sui singoli punti sar`a molto sparsa, in quando punti diversi si suppone che abbiano rumore indipedente, la
covarianza
h
sui parametri ottenuti vale [HZ04]

h
=
_

i

1
i
J
i
_
+
(6.52)
con
i
matrice di covarianza del rumore sul singolo punto.
6.4.3 Calibrazione secondo Tsai
La calibrazione della camera per diverse applicazioni richiede la conoscenza completa dei parametri intrinseci ed estrinseci.
Uno dei metodi pi` u diusi `e sicuramente quello di Tsai [Tsa87] del 1985. Il pregio di Tsai `e stato quello di dare ordine allo
stato dellarte discusso in precedenza e fornire una nomenclatura unica ed accettata per i parametri della camera come qui
presentati.
Il modello della camera di Tsai `e basato sulla proiezione prospettica della Pin-Hole Camera, ed `e formato (nella sua forma
classica) da 11 parametri:
f Lunghezza focale della camera
k Coeciente di distorsione radiale di primo ordine
Cx,Cy Coordinate del centro ottico della lente
Sx Un fattore di scala orizzontale
Rx, Ry, Rz Angoli di rotazione per la trasformazione tra coordinate mondo e coordinate camera
Tx, Ty, Tz Vettore di traslazione per la trasformazione tra coordinate mondo e coordinate camera
Tsai esegue sia una analisi di tutte le tecniche sviluppate nora per la calibrazione, e inne propone un sistema a moduli,
dove ogni modulo permette di ricavare una serie di questi parametri.
Principalmente fa notare che se la camera `e distorta ma si pone il principal point coincidente con il centro di distorsione
valgono i rapporti:
u
d
v
d
=
u
u
v
u
(6.53)
6.4. CALIBRAZIONE 71
e di conseguenza `e possibile creare vincoli sotto questa condizione usando le coordinate distorte piuttosto che quelle non
distorte. Tale metodo pertanto `e chiamato anche radial alignment constraint (RAC).
Inizialmente usando i parametri della camera forniti dal produttore calcola il vettore traslazione e rotazione da una griglia
con punti coplanari z
i
= 0 di coordinate note, sfruttando il vincolo
(r
0
x
i
+r
1
y
i
+

t
x
)u

i
= (r
3
x
i
+r
4
y
i
+

t
y
)v

i
(6.54)
con (u

i
, v

i
) coordinate camera normalizzate usando i parametri della camera e della lente forniti dal produttore. Da questo
vincolo si pu`o creare un sistema lineare sovradimensionato di tipo
_
x
i
u

i
y
i
u

i
u

i
v

i
x
i
v

i
y
i

_
r
0
t
y
r
1

t
y
t
x

t
y
r
3

t
y
r
4

t
y
_

_
= v

i
(6.55)
avendo posto

t
y
,= 0 (ovvero la griglia non deve passare per lasse ottico). I rimanenti parametri della matrice R vengono
ottenuti usando lequazione (6.23).
Successivamente procede nel ricavare i parametri intrinseci corretti usando questi valori per la matrice di rotazione e
traslazione.
6.4.4 Calibrazione con il metodo Sturm-Maybank-Zhang
Zhang [Zha99] e contemporaneamente Sturm e Maybank [SM99] individuano un metodo per ottenere una equazione lineare
per ricavare i parametri della camera, eseguendo anche un aggiornamento delle tecniche di calibrazione (sempre valide, ma
ormai relative agli anni 80) fatte principalmente da Tsai [Tsa87] e altri [WM94].
Questa tecnica sfrutta il calcolo di diverse matrici omograche H appartenenti a un piano (per esempio una griglia di
calibrazione con marker equispaziati) e da queste cerca di ricavare i parametri intriniseci della camera in maniera esplicita.
Come gi`a discusso in precedenza la matrice H, trasformazione omograca di un piano, possiede 8 gradi di libert`a ma non `e
possibile direttamente ricavare i parametri che lhanno generata. Metodi per ottenere la matrice omograca dati i punti del
piano sono discussi in sezione 6.4.1.
`
E possibile mostrare una interessante propriet`a della matrice H esplicitando lequazione (6.30):
H =
_
h
1
h
2
h
3

= K
_
r
1
r
2
t

(6.56)
dove `e indicato per sottolineare la presenza di un fattore moltiplicativo, incognito, nel calcolo della matrice omograca.
Concentriamo lattenzione sulla parte di matrice di rotazione formata dai vettori colonna r
1
e r
2
.
Nonostante la presenza del fattore `e infatti possibile esprimere delle relazioni basate sullortogonalit`a tra i vettori r
1
e
r
2
in modo da forzare i seguenti due vincoli:
h

1
Wh
2
= 0
h

1
Wh
1
= h

2
Wh
2
(6.57)
avendo denito W (in questo caso trascurando lo skew) come
W = (K
1
)

K
1
=
_

_
1
k
2
u
0
u
0
k
2
u
0
1
k
2
v

v
0
k
2
v

u
0
k
2
u

v
0
k
2
v
u
2
0
k
2
u
+
v
2
0
k
2
v
+ 1
_

_
(6.58)
matrice simmetrica
2
.
Le 4 (o 5 incognite non trascurando lo skew) della matrice W sotto i 2 vincoli (6.57) possono essere risolte usando almeno
2 (o 3) piani diversi, ovvero matrici H le cui colonne non siano linearmente dipendenti tra loro.
Determinata la matrice W con una decomposizione di Choleski si pu`o determinare la matrice originale. Tuttavia Zhang
fornisce le equazioni per ottenere i parametri direttamente da W.
`
E infatti possibile dimostrare che si pu`o applicare la
decomposizione h

i
Wh
j
= v

ij
w, con opportuni valori del vettore v
ij
e con w i valori della matrice triangolare superiore di
W.
Per ogni matrice omograa H ottenuta, attraverso la matrice dei parametri intrinseci K, `e possibile stimare la rotazione
e la traslazione:
_
r
1
r
2
t

= K
1
H (6.59)
2
come tale rappresenta una conica ed `e in eetti lequazione della conica assoluta [LF97]
72 CAPITOLO 6. PIN-HOLE CAMERA
Da ogni griglia pertanto `e possibile ricavare tutti i parametri e misurare in questo modo lerrore. Sfruttando lortonormalit`a
delle colonne di R `e possibile ricavare = |r
1
| = |r
2
| e denire una matrice
Q =
_
r
1
r
2
r
1
r
2

(6.60)
La matrice Q comunque `e aetta da rumore.
`
E necessario ricavare R tale che
min
R
|QR|
F
R

R = I
(6.61)
Questo si pu`o ottenere automaticamente (la matrice di rotazione R pi` u vicina alla matrice Q sotto norma di Frobenius)
usando la decomposizione SVD di Q. In tal modo si ottiene direttamente
R = UV

(6.62)
matrice che soddisfa entrambi i requisiti.
Il sistema nel suo complesso `e comunque mal condizionato e dicilmente si giunge a una soluzione stabile dopo ripetute
prove. I valori ottenuti attraverso questa tecnica lineare servono per`o come punto di inizio in una fase di Maximum Likelihood
Estimation per minimizzare gli errori di riproiezione.
`
E da notare che lo jacobiano di questa trasformazione `e fortemente
sparso e richiede pertanto tecniche di risoluzione di problemi sparsi per essere gestito.
Una sola nota: Zhang nel suo articolo fa coincidere il Principal Point con il centro di distorsione, cosa generalmente non
esatta.
Capitolo 7
Visione StereoScopica
La visione StereoScopica `e il processo attraverso il quale `e possibile stimare distanze e posizioni di oggetti acquisiti da due
sensori visivi e da queste informazioni poter ricostruire la scena osservata. Il discorso `e facilmente estendibile al caso in cui
la scena sia osservata non da due, ma da pi` u camere (multiple view geometry).
Queste camere possono essere reali (per esempio una coppia di camere che formano una stereocamera) o virtuali, formate
dalla stessa camera che si sposta nello spazio (motion stereo, structure from motion).
La visione StereoScopica pu`o essere implementata principalmente in due modi:
Feature Matching dove punti notevoli tra due immagini vengono confrontati senza vincoli, se non quelli che verranno
in seguito mostrati, permettendo di individuare coppie omologhe di punti;
Rectied Stereo dove i punti tra le immagini provenienti da camere allineate (in hardware o in software attraverso
retticazione) sono sulla stessa riga su entrambe le camere e questo permette di semplicare il problema della ricerca
dei punti.
Condizione necessaria per attuare una ricostruzione tridimensionale completa della scena osservata, attraverso lanalisi
di pi` u immagini, `e la conoscenza dei parametri intrinseci delle camere coinvolte e la posa relativa tra di esse.
Se non si conosce la posa relativa questa pu`o essere stimata attraverso lanalisi stessa delle immagini, per`o la distanza
tra le camere (reali o virtuali) sar`a conosciuta a meno di un fattore moltiplicativo e di conseguenza anche la ricostruzione
tridimensionale sar`a conosciuta a meno di tale fattore.
Se non si conoscono neanche i parametri intrinseci `e sempre possibile accelerare il confronto delle feature tra le immagini
ma non sar`a possibile dire nulla sulla ricostruzione tridimensionale della scena osservata.
7.1 Posa relativa tra sensori
Introduciamo per nomenclatura, le relazioni tra sistemi di riferimento, relazioni che possono tornare utili in questo capitolo.
Sia x
w
R
3
un punto espresso in coordinate mondo (world coordinates) e sia x
s
lo stesso punto espresso in coordinate
sensore (body coordinates). I due punti sono dierenti in quanto uno rappresenta una posizione assoluta, mentre il secondo
rappresenta il punto come se il sensore fosse nel centro del sistema di riferimento, allineato rispetto agli assi.
Denizione 6 La relazione che lega le coordinate mondo a quelle sensore `e
x
w
= R
bw
x
s
+t
w
(7.1)
con R matrice di rotazione che permette di trasformare un punto da coordinate sensore a coordinate mondo, e t
w
posizione
del sensore rispetto allorigine del sistema di riferimento.
`
E da sottolineare che in questo caso la denizione di R `e dierente rispetto a quella della matrice di rotazione introdotta
nel modello pin-hole. In ogni caso `e sempre possibile convertire una matrice nellaltra applicando una permutazione e una
inversione (trasposizione).
Siano due sensori, legati allorigine del sistema di riferimento attraverso i parametri (R
1
, t
1
) e (R
2
, t
2
) rispettivamente.
Le coordinate relative (R, t)
21
del sensore 2 rispetto al sensore 1 si ricavano attraverso le relazioni:
R = R
1
1
R
2
t = R
1
1
(t
2
t
1
)
(7.2)
Attraverso queste coordinate `e possibile convertire un punto x
2
acquisito dal sensore 2 nel suo sistema di riferimento,
nella posizione che tale punto ha nel sistema di riferimento del sensore 1:
x
1
= Rx
2
+t (7.3)
73
74 CAPITOLO 7. VISIONE STEREOSCOPICA
La matrice R pertanto converte da coordinate sensore a coordinate sensore e t `e espressa nel sistema di riferimento 1.
La posa relativa (R, t)
12
, che trasforma dal sistema 2 al sistema 1, si pu`o ottenere attraverso la sua inversa (R, t)
21
come
R
12
= R
1
2
R
1
= R
1
21
t
12
= R
1
2
(t
1
t
2
) = R
1
21
t
21
(7.4)
Inne c`e da considerare il fatto che le matrici di rotazione coinvolte nelle equazioni della camera sono matrici che
convertono da mondo a camera. Come gi`a ricordato per passare da un sistema di riferimento e laltro `e suciente applicare
la trasformazione R
wc
=
bc
R
1
bw
. In questo modo `e possibile ottenere le equazioni delle pose relative espresse in coordinate
camera e passare da queste a quelle espresse in coordinate sensore:
R
2b1b
=
1
bc
R
1
1w2w

bc
t
b
=
1
bc
R
1
(t
2
t
1
)
(7.5)
con R
1w2w
= R
1
2
R
1
espresse come nel modello pin-hole.
7.2 Il piano epipolare
Nei capitoli precedenti `e stato fatto notare che da una sola immagine non `e possibile ottenere le coordinate mondo dei punti
che compongono limmagine, senza informazioni addizionali.
Lunica cosa che un generico punto dellimmagine (u, v) pu`o fornire, data lequazione della pin-hole camera (per esempio il
sistema (6.20)), `e una relazione tra le (innite) coordinate mondo (x, y, z) sottese al punto ovvero le coordinate che proiettate
attraverso una proiezione prospettica darebbero esattamente quel punto. Tale relazione `e lequazione di una retta passante
per il pin-hole t
0
e per il punto immagine (virtuale) (u, v) sul sensore. Come si evince sia dallesperienza che dalla relazione
lineare che lega tali punti, si pu`o dire che il punto sotteso (x, y, z) `e conosciuto a meno di un fattore di scala .
Riportando nuovamente lequazione (6.20) si vede quale `e la dipendenza tra i parametri della camera, il punto immagine
e la retta che rappresenta tutti i possibili punti mondo sottesi a un punto immagine:
_
_
x
i
y
i
z
i
_
_
= (KR)
1
i
_
_
u
i
v
i
1
_
_
+t
i
= v(u
i
, v
i
) +t
i
(7.6)
dove v ha lo stesso signicato come in (6.21).
Nel caso della visione stereo abbiamo due sensori e pertanto dobbiamo denire due sistemi di riferimento con parametri
K
1
R
1
e K
2
R
2
rispettivi e posizione dei pin-hole t
1
e t
2
espressi sempre in coordinate mondo. Lequazione della retta (7.6)
ricavata dal primo sistema di riferimento sul medesimo punto del mondo (x, y, z) proiettata sulla seconda immagine risulta:
_
_
u
2
v
2
1
_
_
= K
2
R
2
(K
1
R
1
)
1
_
_
u
1
v
1
1
_
_
+K
2
R
2
(t
1
t
2
) (7.7)
dove compare la somma di un vettore sempre costante che non dipende dal punto considerato (quando = 0 `e di fatto la
proiezione dellorigine del primo sistema sul secondo, epipolo) e una parte variabile che dipende dal punto considerato e dal
valore . Si pu`o indicare t = t
1
t
2
il vettore baseline che congiunge i pin-hole delle due camere.
`
E da notare che tutte le
rette passano per i due epipoli: di fatto il punto in coordinate mondo e i due epipoli creano un piano (il piano epipolare)
dove vivono le possibili soluzioni del problema della ricostruzione tridimensionale.
La geometria epipolare `e la geometria che lega due immagini acquisite da due punti di vista dierenti. Le relazioni che
intercorrono tra le immagini tuttavia non dipendono dalla scena osservata ma dipendono solamente dai parametri intrinseci
delle camere e dalle pose relative.
Lepipolo `e il punto di intersezione di tutte le linee epipolari e rappresenta la proiezione del pin-hole di una camera
nellimmagine dellaltra ovvero il punto di fuga delle linee epipolari.
Il piano epipolare `e il piano formato dal raggio ottico sotteso al punto e la baseline che unisce le due camere.
La linea epipolare `e lintersezione tra il piano epipolare e il piano immagine nella seconda immagine. Di fatto il piano
epipolare interseca in entrambe le immagini il piano nelle rette epipolari e denisce le corrispondenze tra le linee.
Nelle prossime sezioni verr`a discusso come sia possibile ricavare la retta lungo la quale un punto su una immagine pu`o
trovarsi in una seconda o come dati due punti omologhi ottenere il punto tridimensionale corrispondente.
7.3 Matrice Essenziale e matrice Fondamentale
Si `e visto che un punto su una immagine sottende una retta nel mondo, e la retta nel mondo proiettata su un altra immagine,
acquisita da una camera posta in un punto di vista dierente, rappresenta la retta epipolare dove giace lomologo del punto
della prima immagine.
7.3. MATRICE ESSENZIALE E MATRICE FONDAMENTALE 75
Tale equazione, che lega punti di una immagine con rette nellaltra, pu`o essere espressa in forma matriciale. A seconda che
si vogliano proiettare coordinate immagine o coordinate camera la matrice che lega le coordinate `e chiamata Fondamentale
o Essenziale rispettivamente.
La matrice Fondamentale (Fundamental matrix) `e denita (Faugeras e Hartley, 1992) come:
m

2
Fm
1
= 0 (7.8)
dove m
1
e m
2
sono coordinate, omogenee, dei punti omologhi rispettivamente sulla prima e sulla seconda immagine. Se due
punti su queste immagini rappresentano lo stesso punto nel mondo, lequazione (7.8) deve essere soddisfatta.
La matrice fondamentale permette di restringere lintervallo di ricerca di corrispondenze tra le due immagini in quanto,
per il dualismo punto-retta, dalla relazione (7.8) si pu`o esplicitare il luogo dei punti nella seconda immagine dove cercare i
punti della prima. Infatti lequazione di una linea dove i punti m
2
devono vivere `e descritta da
l
2
= Fm
1
(7.9)
F `e una matrice 3 3 di rango 2 e per essere determinata bastano 7 punti, in quanto i gradi di libert`a risultano essere
appunto solamente 7 (un fattore moltiplicativo e il determinante nullo riducono la dimensione del problema). Tuttavia con
(almeno) 8 punti si riesce ad ottenere una soluzione lineare del problema.
La matrice Fondamentale ha le seguenti propriet`a:
la trasposta della matrice Fondamentale della coppia ordinata di camere (1,2) `e la matrice Fondamentale della coppia
(2,1);
F `e una matrice di rango 2 con 7 gradi di libert`a (F ha 8 gradi di libert`a a cui va aggiunto il vincolo det F = 0);
l
2
= Fm
1
e l
1
= F

m
2
sono le rette epipolari rispettivamente nellimmagine 2 e nellimmagine 1;
Gli epipoli devono soddisfare la relazione Fe
1
= 0 e F

e
2
= 0, rispettivamente (sono i kernel sinistro e destro della
matrice F);
F `e una quasi correlazione: una trasformazione che trasforma punti in linee ma non invertibile.
Ben prima della denizione di matrice fondamentale, nel 1981, Christopher Longuet-Higgins [Lon81], fornisce la denizione
di matrice Essenziale (Essential matrix), ottenendo una relazione simile a quella mostrata in equazione (7.8), partendo
tuttavia dalle coordinate normalizzate ovvero supponendo i parametri intrinseci delle camere conosciuti. Tale relazione, da
cui consegue intuitivamente la denizione di matrice Fondamentale, nasce dal vincolo che il punto mondo, i pin-hole e i punti
immagine siano coplanari.
La matrice Essenziale introduce vincoli uguali a quelli della matrice Fondamentale ma, anche se introdotta storicamen-
te prima della matrice fondamentale, ne `e un caso particolare perche esprime le relazioni rispetto a coordinate camera
normalizzate:
p

2
Ep
1
= 0 (7.10)
con p
1
e p
2
coordinate camera omogenee dei punti delle due immagini.
Rispetto alla matrice Fondamentale, la matrice Essenziale ha solo 5 gradi di libert`a. Due valori singolari devono essere
uguali e il terzo essere zero.
La matrice Essenziale ha le seguenti propriet`a:
la trasposta della matrice Essenziale della coppia ordinata di camere (1,2) `e la matrice Essenziale della coppia (2,1);
E `e una matrice di rango 2 con 5 gradi di libert`a (rappresenta una posa relativa, perci`o 3 angoli e la direzione tra gli
epipoli);
l
2
= Ep
1
e l
1
= E

p
2
sono le rette epipolari rispettivamente nellimmagine 2 e nellimmagine 1.
Date due camere normalizzate, una posta nellorigine del sistema di riferimento allineata con gli assi P
1
= [I[0] e laltra
posizionata e orientata rispetto alla prima P
2
= [R[t], la matrice Essenziale si ottiene come composizione:
E = [t]

R = R
_
R

(7.11)
dove con [t]

, matrice antisimmetrica, `e indicata attraverso la sintassi del prodotto vettoriale in forma matriciale (sezione 1.6).
La relazione in equazione (7.11) si pu`o ottenere partendo da due camere calibrate, arbitrariamente orientate e posizionate,
attraverso la relazione R = R
2
R
1
1
e t = R
2
(t
2
t
1
).
Applicando la denizione di coordinate camera omogenee m = Kp nella denizione (7.10) si ottiene
m

2
Fm
1
= p

2
K

2
FK
1
p
1
= p

2
Ep
1
(7.12)
76 CAPITOLO 7. VISIONE STEREOSCOPICA
e la relazione tra matrice Fondamentale e matrice Essenziale risulta essere:
E = K

2
FK
1
(7.13)
e allopposto:
F = K

2
EK
1
1
= K

2
R[t]

K
1
1
(7.14)
La matrice Essenziale raccoglie in se le pose relativa tra le camere, mentre la matrice Fondamentale nasconde sia i
parametri intrinseci che la posa relativa.
Le coordinate degli epipoli (la proiezione su una immagine del pin-hole dellaltra camera) sono
e
1
= K
1
R

t e
2
= K
2
t (7.15)
Le matrici Fondamentale ed Essenziale possono essere usate per restringere il campo di ricerca di feature tra due im-
magini, e attraverso la loro stima, ltrare via eventuali outlier (ad esempio attraverso RANSAC). La matrice Essenziale,
se decomposta, permette di ricavare la posa relativa tra le due camere e in quanto tale dare una idea, approssimata, del
movimento che ha subito una camera che si sposta nel mondo (motion stereo).
Luso della matrice Essenziale permette di ricavare la posa relativa tra due viste. Non `e per`o possibile conoscere la
lunghezza della baseline, ma solo la sua direzione. Tuttavia `e possibile eseguire una ricostruzione tridimensionale della scena
osservata, a meno di un fattore moltiplicativo: i rapporti tra le distanze sono conosciuti, ma non il loro valore assoluto. Questo
permette per`o di osservare la medesima scena da pi` u di due viste dierenti e permettere una ricostruzione tridimensionale
coerente, dove per tutte le viste il fattore moltiplicativo sconosciuto rimane sempre lo stesso, permettendo di fondere tutte
le ricostruzioni in ununica ricostruzione.
7.3.1 Calcolo delle matrici
Il criterio per ottenere la matrice F si pu`o formalizzare come
min
F

i
_
m

2,i
Fm
1,i
_
2
(7.16)
e per imporre il determinante nullo, la matrice cos` ottenuta viene decomposta ai valori singolari e il pi` u piccolo valore
singolare viene forzato ad essere zero.
Il vincolo (7.16) pu`o essere riscritto in forma compatta come (m
1
m
2
)

vec(F), la cui soluzione `e la stessa di un sistema


lineare formato da vincoli del tipo u
i
f = 0 avendo denito
u
i
= (x
1
x
2
, y
1
x
2
, x
2
, x
1
y
2
, y
1
y
2
, y
2
, x
1
, y
1
, 1)
f = (f
1,1
, f
1,2
, f
1,3
, f
2,1
, f
2,2
, f
2,3
, f
3,1
, f
3,2
, f
3,3
)
(7.17)
con m
1,i
= (x
1
, y
1
) e m
2,i
= (x
2
, y
2
). A questi vincoli ne va aggiunto uno ulteriore, per esempio |F| = 1, normalmente gi`a
soddisfatto dai risolutori lineari di sistemi omogenei.
Per ricavare la matrice Essenziale il discorso `e analogo ed `e soluzione di un sistema n
i
e = 0 nella forma
n
i
= (x
1
x
2
, y
1
x
2
, z
1
x
2
, x
1
y
2
, y
1
y
2
, z
1
y
2
, x
1
z
2
, y
1
z
2
, z
1
z
2
)
e = (e
1,1
, e
1,2
, e
1,3
, e
2,1
, e
2,2
, e
2,3
, e
3,1
, e
3,2
, e
3,3
)
(7.18)
sempre con il vincolo aggiuntivo |E| = 1. Di fatto, usando le coordinate omogenee, i sistemi (7.17) e (7.18) sono esattamente
uguali.
Questo `e chiamato eight-point algorithm in quanto la soluzione del problema richiede almeno 8 punti per essere determi-
nata. A causa del rumore solitamente tale sistema non soddisfa il requisito che la soluzione sia di rango 2 e bisogna cercare
la matrice pi` u vicina che soddisfa tale richiesta, per esempio usando la decomposizione SVD, come suggerito da Tsai, Huang
e Hartley:
F = Udiag(r, s, t)V

= Udiag(r, s, 0)V

(7.19)
(constraint enforcement).
La matrice Essenziale rispetto a quella Fondamentale ha anche il vincolo in pi` u di avere i 2 valori singolari non nulli
uguali. Se i valori singolari (in seguito a una SVD) della matrice sono 1, la matrice si dice matrice essenziale normalizzata
(normalized essential matrix).
La matrice Essenziale ha 5 gradi di libert`a: 3 dovuti alla rotazione e 2 alla traslazione (conosciuta infatti a meno di un
fattore di scala).
La matrice Fondamentale invece ha 7 gradi di libert`a perci`o 7 `e il minimo numero di punti necessari per individuarla in
maniera non-lineare.
Eseguendo una decomposizione SVD del sistema (7.17) formato da (almeno) 7 punti si ottiene un kernel rappresentato
da due vettori f
1
f
2
: nello spazio formato da questi vettori `e necessario trovare una matrice F = F
1
+ (1 )F
2
tale che
abbia rango 2 ovvero det F = 0, equazione non lineare di terzo grado. In questo caso le soluzioni di possono essere 1 o 3:
nel caso di 3 soluzioni reali, vanno tutte e 3 valutate sui dati per individuare quella pi` u plausibile.
7.3. MATRICE ESSENZIALE E MATRICE FONDAMENTALE 77
7.3.2 Normalized Eight-Point Algorithm
La generazione, attraverso tecnica SVD, delle matrici Essenziale e Fondamentale, e in seguito lirrobustimento di queste,
forzando i valori singolari ad essere uguali, `e un processo molto sensibile al rumore.
La matrice (7.17) `e mal condizionata: questo accade quando si cerca di risolvere un sistema lineare i cui termini noti
sono formati da numeri con ordini di grandezza dierenti. Il metodo proposto da Hartley [Har95] propone di migliorare la
soluzione normalizzando le coordinate dei punti.
Le coordinate m
1
e m
2
vengono traslate separatamente in modo da avere centroide nullo e riscalate in modo da avere
come valor medio 1 (o

2 valor medio del modulo) nel nuovo sistema di coordinate m


1
e m
2
rispettivamente. Deniamo
pertanto due matrici di trasformazione T
1
e T
2
tali che
m
1
= T
1
m
1
m
2
= T
2
m
2
(7.20)
in questo modo `e possibile determinare la matrice fondamentale compatibile

F
m

2
Fm
1
= m

2
T

2
FT
1
1
m
1
= m

2

F m
1
= 0 (7.21)
da cui poi ricavare la matrice originale F = T

2

FT
1
.
7.3.3 Essential Matrix Factorization
Dalla denizione di matrice essenziale (7.11) `e facile mostrare che
EE

= [t]

[t]

(7.22)
Tale matrice deve essere una matrice simmetrica, indipendente dalle rotazioni ma dipendente solo dalla distanza relativa
tra le due camere. Questa matrice permette di ricavare il vettore traslazione, chiaramente conosciuto a meno di un fattore
moltiplicativo.
`
E da notare che tale relazione pu`o anche essere estesa alla matrice fondamentale in modo da mostrare il risultato notevole
F(K
1
K

1
)F

= K

2
[t]

[t]

K
1
2
(7.23)
La matrice Essenziale pu`o essere anche fattorizzata attraverso la Singular Value Decomposition. Sia UDV

, dove
D = diag(, , 0), la SVD di E. In questa condizione si possono estrarre i componenti generatori di E come
[t]

= UAU

R = UBV

[UB

(7.24)
dove
A =
_
_
0 1 0
1 0 0
0 0 0
_
_
B =
_
_
0 1 0
1 0 0
0 0 1
_
_
(7.25)
La matrice di rotazione R ha due possibili soluzioni e siccome il vettore t `e conosciuto a meno di un fattore moltiplicativo,
il vincolo [t[ = 1 non indica comunque il segno della traslazione, esistono anche due ulteriori alternative per la fattorizzazione
dovute a t. Esistono pertanto 4 dierenti fattorizzazioni di una matrice Essenziale e fra queste va scelta quella che proietta
i punti tra le due immagini frontalmente.
Va ricordato che normalmente, a causa del rumore, D = diag(r, s, t) ,= diag(, , 0). La matrice essenziale ottenuta
ponendo D

= diag(1, 1, 0) `e comunque la matrice essenziale normalizzata pi` u vicina a quella data in accordo con la norma
di Frobenius.
7.3.4 Algoritmi non lineari
Quando si usa la decomposizione SVD per ottenere la matrice F di fatto si ottiene la matrice F

pi` u simile sotto una


particolare norma (Frobenius). Neanche questa soluzione `e ottima perche non tiene comunque conto di come lerrore sui
punti in ingresso si propaga allinterno della matrice: `e di fatto ancora una soluzione algebrica e non geometrica.
La soluzione geometrica consiste invece nel minimizzare la distanza tra i punti e le rette generate attraverso la matrice
Fondamentale (epipolar distance).
La distanza tra un punto m
2
e la retta epipolare Fm
1
pu`o essere usata come metrica per stimare lerrore geometrico:
d (m
2
, Fm
1
) =
m

2
Fm
1

a
2
+b
2
(7.26)
con (a, b, c)

= Fm
1
equazione della retta epipolare nella seconda immagine.
78 CAPITOLO 7. VISIONE STEREOSCOPICA
Attraverso questa metrica `e posibile denire una funzione costo che minimizza lerrore in maniera simmetrica (symmetric
transfer error) tra le due immagini:
min
F

i
_
d (m
1,i
, Fm
2,i
)
2
+d
_
m
2,i
, F

m
1,i
_
2
_
(7.27)
La matrice Fondamentale pu`o essere ricavata anche attraverso una minimizzazione non lineare (ottenendo la stima di
massima verosomiglianza Maximum Likelihood Estimation) usando una funzione costo del tipo:
min
F

|m
1,i
m
1,i
|
2
+|m
2,i
m
2,i
|
2
(7.28)
sotto il vincolo m

2,i
F m
1,i
= 0. In questo caso i punti esatti m
1,i
e m
2,i
sono parte del problema (subsidiary variables).
Normalmente si unisce il problema del calcolo della matrice Essenziale o Fondamentale con quello della ricostruzione
tridimensionale e si pone come variabile sussidiaria direttamente la coordinata tridimensionale del punto osservato. Nel caso
della matrice Fondamentale, dove non `e possibile eettuare una ricostruzione tridimensionale della scena basta forzare dei
vincoli del tipo:
m
1,i
= x
i
m
2,i
= P x
i
(7.29)
usando come variabili sussidiarie, variabili conosciute a meno di una trasformazione ane.
Invece di ottenere una stima a massima verosomiglianza, in letteratura viene spesso usata lapprossimazione al primo grado
dellerrore di riproiezione (Sampson-error, sezione 3.1.5), che non richiede una tecnica iterativa per ottenere la soluzione, con
lo jacobiano
J
f
=

(m
2
Fm
1
)
2
(Fm
1
)
2
1
+ (Fm
1
)
2
2
+ (F

m
2
)
2
1
+ (F

m
2
)
2
2
(7.30)
dove (.)
i
`e la componente i-esima del vettore.
Se la matrice Essenziale pu`o essere esplicitata nelle sue 5 componenti e minimizzata in essa, uno dei grossi problemi nel
ricavare la matrice Fondamentale `e riuscire a minimizzare la funzione costo mantenendo il rango 2 della matrice Fondamentale.
Inne per rimuovere eventuali outlier nella scena tecniche come RANSAC (sezione 3.5) sono ampiamente sfruttate.
7.4 Ricostruzione con camere retticate
Se i punti (omologhi) tra le due immagini di una coppia stereo fossero sulla stessa riga dellimmagine (la stessa coordinata v
per intenderci) si potrebbe ottimizzare il codice che cerca le corrispondenze [LZ99] in quanto risulta molto facile confrontare
le potenziali aree.
Esiste una congurazione particolare di due camere in cui tale condizione viene rispettata: i parametri intrinseci devono
essere uguali e gli assi ottici orientati perpendicolarmente al vettore che congiunge i pin-hole.
Per esempio, nel caso in cui il vettore che congiunge i pin-hole giaccia sullasse y, lunica soluzione che permetta la
retticazione `e quella che ha gli angoli di rotazione = 0 e = 0 e angolo di pitch uguale.
Il procedimento software per ottenere questa congurazione quando in hardware tale vincolo non `e rispettato consiste
nella retticazione (vedi 6.3), ovvero partendo da una immagine acquisita con un set di parametri (hardware) si ottiene una
nuova vista della stessa scena ma con parametri intrinseci, yaw, pitch e roll desiderati.
Il problema della ricostruzione tridimensionale si pu`o sempre ricondurre pertanto a una coppia di camere perfettamente
allineate tra di loro e con gli assi, e a una rototraslazione per trasformare le coordinate mondo da questo sistema sensore
alleettivo sistema reale.
Nelle sezioni successive verr`a mostrato il caso particolare sia di camere perfettamente allineate rispetto agli assi, sia di
camere allineate ma inclinate (angolo di pitch non nullo), sia di camere retticate arbitrariamente orientate.
7.4.1 Camere allineate
Nel caso di camere perfettamente allineate rispetto agli assi e parametri intrinseci uguali le equazioni per la ricostruzione
tridimensionale si semplicano enormemente. In questa condizione lequazione della pin-hole camera si riducono a
u
a
= u
0
k
u
yy
a
xx
a
u
b
= u
0
k
u
yy
b
xx
b
(7.31)
avendo indicato con il pedice a la camera destra e b la camera sinistra. I vincoli di allineamento impongono x
a
= x
b
= 0,
y
a
= 0, y
b
= b e z
a
= z
b
= 0 (la camera destra `e scelta al centro del sistema di riferimento in questo caso).
La dierenza d = u
a
u
b
(disparit`a) delle coordinate orizzontali u tra due immagini della coppia stereo vale
d = u
a
u
b
= k
u
b
x
(7.32)
7.4. RICOSTRUZIONE CON CAMERE RETTIFICATE 79
avendo denito la baseline y
b
y
a
= b. Da questa relazione consegue che
x = k
u
b
d
y = (u
a
u
0
)
b
d
z = (v v
0
)
k
u
k
v
b
d
(7.33)
ricostruzione tridimensionale con la camera destra posizionata allorigine degli assi e orientata con essa. Come si vede ogni
elemento `e conosciuto con il fattore moltiplicativo b della baseline, vero fattore di scala dellimmagine, e dallinverso della
disparit`a 1/d.
Queste sono coordinate sensore, riferite a una camera nel caso di orientazione e posizionamento centrate rispetto agli
assi. Per passare da coordinate sensore a coordinate mondo bisogna applicare la matrice di rotazione R
bw
in modo da poter
scrivere
_
_
x
y
z
_
_
= R
bw
_
_
x

_
_
+
_
_
x
a
y
a
z
a
_
_
(7.34)
Unendo lequazione (7.33) con lequazione (7.34), `e possibile denire una matrice M in modo che la conversione tra punto
e coordinata mondo si possa scrivere in forma molto compatta come
_
_
x
y
z
_
_
=
1
d
M
_
_
1
u
a
u
0
v v
0
_
_
+
_
_
x
a
y
a
z
a
_
_
(7.35)
Tale rappresentazione pu`o essere ulteriormente formalizzata lavorando in coordinate camera.
In coordinate camera
Le equazioni espresse in precedenza si riferiscono a un sistema di riferimento sensore. In coordinate camera le relazioni tra
le due immagini diventano
d = u
a
u
b
= k
u
b
z
(7.36)
per la disparit`a e
x = (u
a
u
0
)
b
d
y = (v v
0
)
k
u
k
v
b
d
z = k
u
b
d
(7.37)
per lequazione del punto rappresentato.
Disparit`a in coordinate omogenee
Lequazione (7.37) `e facilmente esprimibile in forma omogenea. La matrice che converte da coordinate camera a coordinate
immagine diventa
_

_
u
v
d
1
_

_
=
_

_
k
u
0 u
0
0
0 k
v
v
0
0
0 0 0 k
u
b
0 0 1 0
_

_
_

_
x
y
z
1
_

_
= Q
1
_

_
x
y
z
1
_

_
(7.38)
e la sua opposta
_

_
x
y
z
1
_

_
=
_

_
1
k
u
0 0
u
0
k
u
0
1
k
v
0
v
0
k
v
0 0 0 1
0 0
1
k
u
b
0
_

_
_

_
u
v
d
1
_

_
= Q
_

_
u
v
d
1
_

_
(7.39)
che permette dallimmagine di disparit`a di ottenere direttamente le coordinate (camera) del punto. La matrice Q `e chiamata
reprojection matrix [FK08]. Essendo matrici omogenee sono conosciute a meno di un fattore moltiplicativo.
Inne, essendo la camera rototraslata rispetto alle condizioni ideali, `e suciente moltiplicare la matrice Q per la matrice
44, rappresentante la rototraslazione del sensore rispetto al mondo, per ottenere una nuova matrice che permette di passare
da coordinate disparit`a a coordinate mondo e viceversa.
80 CAPITOLO 7. VISIONE STEREOSCOPICA
Lutilizzo di tale formalismo permette di trasformare punti disparit`a acquisiti da coppie di camere posizionate in punti
di vista dierenti (esempio una coppia stereo che si sposta nel tempo). In questo caso la relazione che lega punti disparit`a
acquisiti nei due punti di vista `e anche rappresentata da una matrice 4 4:
H = Q
1
_
R t
0 1
_
Q (7.40)
che permette di trasformare (u, v, d) in (u

, v

, d

).
Tale classe di trasformazioni vengono normalmente indicate come 3D Homographies.
7.4.2 Camere allineate e inclinate
Sotto i vincoli espressi nelle sezioni precedenti (camere con yaw, pitch, roll, parametri intrinseci uguali e camere allineate
lungo lasse y) lunico angolo libero risulta essere quello di pitch, uguale tra le due immagini.
In questa particolare condizione la matrice di proiezione si semplica e vale
KR =
_
_
u
0
cos k
u
u
0
sin
k
v
sin +v
0
cos 0 k
v
cos v
0
sin
cos 0 sin
_
_
(7.41)
`
E da notare che `e stato usato il sistema di angoli RPY (appendice A.1) per la matrice R.
La coordinata orizzontale u di un generico punto (x, y, z) in coordinate mondo vale di conseguenza:
u
a
= u
0

k
u
(y y
a
)
cos (x x
0
) sin (z z
0
)
(7.42)
Con le ipotesi x
a
= x
b
= x
0
e z
a
= z
b
= z
0
e uguali k
u
, k
v
, u
0
, v
0
, (condizioni che si pu`o sempre ottenere con
la retticazione o considerando righe opportune dellimmagine) la matrice proiettiva (7.41) risulta essere la stessa nei due
sistemi di riferimento dierenti e, osservando lequazione (7.42), lunica dierenza tra u
a
e u
b
risulta essere il solo numeratore.
Ne consegue che la dierenza delle coordinate u nelle due immagini d = u
a
u
b
(disparit`a) vale
d = u
a
u
b
=
k
u
b
cos (x x
0
) sin (z z
0
)
(7.43)
perci` o usando ancora la relazione (7.42) si ottiene il risultato notevole
u
a
= u
0
d
y y
a
b
(7.44)
da cui inne si ricava la coordinata y del punto
y = b
u
a
u
0
d
+y
a
(7.45)
Nel caso in cui le camere siano allineate perfettamente, lunico parametro di calibrazione che incide sulla coordinata y risulta
essere la sola b.
La coordinata v del punto si pu`o scrivere invece come
v v
0
=
k
v
bk
u
(sin (x x
0
) + cos (z z
0
))d (7.46)
Da cui il sistema di equazioni:
cos (x x
0
) sin (z z
0
) =
bk
u
d
sin (x x
0
) + cos (z z
0
) =
v v
0
k
v
bk
u
d
(7.47)
la cui soluzione che permette di ottenere le restanti due coordinate tridimensionali del punto dato `e
x x
0
=
bk
u
d
_
cos
v v
0
k
v
sin
_
z z
0
=
bk
u
d
_
v v
0
k
v
cos + sin
_
(7.48)
7.5. TRIANGOLAZIONE 81
7.4.3 V-Disparity
Un caso particolare di disparit`a `e quando si osserva un piano, quello del terreno, che, per numero di punti, `e preponderante
sullimmagine. Nel caso in cui la baseline sia lungo lasse y, la disparit`a del piano z = 0 `e solo funzione di v e tale equazione
risulta essere quella di una retta.
La relazione della disparit`a dalla coordinata v si pu`o ricavare dal valore di x dalla seconda e sostituendolo nella prima
delle equazioni (7.47):
x x
0
= tan (z z
0
) +
k
u
d cos
b
v v
0
= k
v
tan d
k
v
k
u
z z
0
b cos
(7.49)
Dalla prima delle equazioni (7.49), si vede che lespressione della disparit`a dipende solamente dalla distanza x se laltezza
z `e ssata (ad esempio sul suolo), e dalla seconda si vede che la disparit`a d cresce linearmente con la coordinata v seguendo
un coeciente angolare noto
d = cos
b
z
0
(v v
d=0
) (7.50)
nel caso classico in cui k
u
k
v
(pixel quadrato). Il punto di disparit`a nulla v
d=0
, sopra menzionato, si trova in
v
d=0
= v
0
k
v
tan (7.51)
e dipende solo dallapertura verticale e dal pitch (`e ovviamente la stessa coordinata del vanishing point).
7.5 Triangolazione
Nel caso di camere non allineate, quando non c`e garanzia che i punti omologhi siano sulla stessa coordinata verticale nelle
due immagini, `e facile vedere, partendo dallequazione (7.6) che la soluzione `e il punto di incontro delle rette epipolari
generate dalle due immagini. Tale problema pu`o essere facilmente esteso al caso di n camere, anche calibrate tra di loro non
in maniera assoluta, ma usando per esempio la matrice Essenziale.
Ogni raggio ottico sotteso al pixel immagine (u
i
, v
i
), con i indicate la vista i -esima, soddisfa lequazione (7.6). Lin-
tersezione di tutti questi raggi `e un sistema, potenzialmente sovradimensionato, con 3 + n incognite in 3n equazioni:
_
_
_
x =
1
v
1
+t
1
. . .
x =
n
v
n
+t
n
(7.52)
dove con v
i
= R
1
i
K
1
i
_
u
i
v
i
1
_

si `e indicata la direttrice del raggio ottico in coordinate mondo. Le incognite sono il


punto mondo da stimare x e le distanze lungo lasse ottico
i
.
A causa delle imprecisioni di individuazione dei punti omologhi e di errori di calibrazione in generale le rette formate dai
raggi ottici sono in generale sghembe. In tal caso `e necessario ricavare la soluzione pi` u vicina sotto qualche funzione di costo:
la soluzione ai minimi quadrati `e possibile sempre con n 2, sia con tecniche come la Forward Intersections o la Direct
Linear Transfer DLT.
La minimizzazione in coordinate mondo tuttavia non `e ottima dal punto di vista della minimizzazione del rumore. La
stima ottima (Maximum Likelihood Estimation) `e sempre quella che minimizza lerrore in coordinate immagine (reprojection)
ma richiede un elevato peso computazione in quanto la funzione di costo da minimizzare `e
s =
n

i=1
_
_
_
p

1,i
x
p

3,i
x
u
i
_
2
+
_
p

2,i
x
p

3,i
x
v
i
_
2
_
_
(7.53)
con [p
1
, p
2
, p
3
] matrice di proiezione dellimmagine i-esima.
`
E un problema non-lineare non-convesso: sono presenti potenzialmente vari minimi locali e la soluzione lineare deve essere
usata come punto di inizio della minimizzazione.
7.6 Odometria Visuale e Bundle Adjustment
La Visual Odometry si pone come obiettivo quello di ricavare la posa relativa in una sequenza di immagini stereoscopiche.
Data una serie di osservazioni temporali di punti mondo ricavati dalla ricostruzione tridimensionale (x
i
, x

i
) `e possibile
ricavare in maniera lineare una trasformazione di rototraslazione (R, t) che trasforma i punti del mondo allistante di tempo
t allistante di tempo t

in modo da poter essere espressi con una equazione del tipo:


x

i
= Rx
i
+t (7.54)
82 CAPITOLO 7. VISIONE STEREOSCOPICA
La rototraslazione eseguita dalla coppia di camere pu`o essere ricavata minimizzando la quantit`a:

i
|x

i
Rx
i
t|
2
(7.55)
La soluzione a 12 parametri, lineare da dati sovradimensionati, trover`a un minimo assoluto ma non `e lo stimatore ottimo, in
quanto minimizza una quantit`a algebrica e in ogni caso non garantisce che la matrice di rotazione sia ortonormale. Partendo
dalla soluzione lineare, lutilizzo di un minimizzatore non-lineare (per esempio Levenberg-Marquardt, sezione 3.1.3) sulla
funzione costo di equazione (7.55) permette di determinare i 6 parametri (3 rotazioni e 3 traslazioni) in modo pi` u preciso.
Tale minimizzazione tuttavia viene attuata minimizzando quantit`a in coordinate mondo e non in coordinate immagine:
solo in coordinate immagine per`o `e possibile supporre il rumore di individuazione delle feature gaussiano a media nulla. Per
questa ragione `e necessario fare un ulteriore passo minimizzando lerrore in coordinate immagine (`e la Maximum Likelihood
Estimation):

i
|m
1
m
1
|
2
+|m
2
m
2
|
2
+|m

1
m

1
|
2
+|m

2
m

2
|
2
(7.56)
avendo imposto m
1
= K
1
R
1
( x
i
t
1
), m
2
= K
2
R
2
( x
i
t
2
),

m

1
= K
1
R
1
(

i
t
1
) e

m

2
= K
2
R
2
(

i
t
2
) con la sostituzione
di equazione (7.54), mantendendo lincognita sulleettiva posizione del punto x
i
nei due sistemi di riferimento. In questo
modo viene sia minimizzato lo spostamento che eseguono le camere, sia la coordinata tridimensionale di ogni singola feature
nel mondo. Nel caso di una coppia stereo retticata, la funzione costo pu`o essere di molto semplicata.
`
E possibile estendere questo ragionamento al caso in cui non siano solo due gli istanti di tempo coinvolti nella minimiz-
zazione ma n.
Il concetto di Bundle Adjustment, introdotto dalla fotogrammetria e poi acquisito dalla Computer Vision (si veda lottimo
survey [TMHF00]), indica una minimizzazione multivariabile in modo da ottenere contemporaneamente una ricostruzione
tridimensionale, le pose relative della camere in una sequenza di immagini ed eventualmente i parametri intrinseci delle
camere stesse.
Si tratta di una estensione alle tecniche non-lineari che stimano i parametri attraverso la minimizzazione di una funzione
di costo adeguata basata sugli errori di riproiezione dei punti individuati, nella stessa forma di equazione (7.56).
Siccome la stessa feature pu`o essere vista da diverse immagini, il processo di stima condiziona tutte le pose e di conseguenza
il problema non si pu`o scomporre in n problemi separati di odometria visuale: tutte le immagini della sequenza devono essere
minimizzate contemporaneamente. Per questo motivo il problema della Bundle Adjustment `e un problema dimensionalmente
elevato, sicuramente non-convesso, che richiede una ottimizzazione non semplice e fa ricorso a minimizzazione sparsa per
preservare memoria e migliorare la precisione. Basandosi ancora sullequazione (7.56), ma aumentando solo il numero di
incognite, il Bundle Adjustment `e comunque il Maximum Likelihood Estimator.
Appendice A
Matrici di Rotazione
v
v

y
x

v
y
x
y

Figura A.1: Rappresentazione dellapplicazione di una rotazione sia a un vettore che a un sistema di assi. A sinistra una
Inner Transformation, a destra una Outer Transformation.
Per discutere delle matrici di rotazione e fare qualche considerazione interessante risulta comodo partire dal caso bidi-
mensionale, schematizzato in gura A.1.
Come si pu`o vedere dalla gura la stessa trasformazione pu`o essere vista in modi dierenti, a seconda di dove si ponga
solidale losservatore.
La rotazione `e una trasformazione isometrica e la matrice R

rappresentate una generica rotazione bidimensionale assume


la forma
R

=
_
cos sin
sin cos
_
(A.1)
Tale matrice, scritta in questa forma, permette di ruotare un vettore in senso antiorario (rispetto allorigine del sistema di
riferimento) di un angolo
1
.
Questa matrice permette per`o anche di ottenere le cosidette coordinate mondo di un punto conoscendo la coordinate
sensore e sapendo che tale sensore `e ruotato di un angolo (legge della mano destra) nel sistema di riferimento mondo.
La matrice (A.1) permette perci`o di passare da coordinate sensore a coordinate mondo, mentre linversa di questa
matrice permette di passare da coordinate mondo a coordinate sensore. Va ricordato che linversa di una matrice di
rotazione `e la sua trasposta ovvero la matrice generata dallangolo .
Passando al caso tridimensionale il discorso `e simile ma non pi` u univoco: esistono inniti modi in R
3
di esprimere una
rotazione. Una rotazione `e una matrice che moltiplicata per un vettore ne preserva la lunghezza. Lo speciale gruppo di matrici
ortogonali di tutte le 3 3 matrici di rotazione `e denominato SO(3). Se una matrice R SO(3) deve avere det R = 1 e
R
1
= R

.
Esistono due possibili convenzioni per denire una matrice di rotazione. Alcuni autori preferiscono scrivere la matrice
che trasforma da coordinate sensore a coordinate mondo, altri invece lopposto.
`
E sempre possibile denire una rotazione rispetto a uno dei 3 assi, ma siccome la moltiplicazione tra matrici non `e
commutativa, esistono 24 modi per comporre tra loro le 3 matrici. Le combinazioni di matrici vengono indicate come
sequenze di Eulero seguite da 3 numeri per indicare lordine di combinazione delle rotazioni: 1 per lasse x, 2 per lasse y e
3 per lasse z.
1
Bisogna fare molta attenzione perche la trasformazione inversa/trasposta pu`o, in letteratura, essere indicata come matrice di rotazione
83
84 APPENDICE A. MATRICI DI ROTAZIONE
La versione pi` u diusa in ambito robotico `e quella degli angoli di Tait-Bryan (sequenza di Eulero 321) e si veda la
sezione seguente A.1 per i dettagli. Questo sistema di angoli tuttavia presenta alcune singolarit`a che ne limitano lutilizzo.
Alternativamente la sintassi proposta da Rodrigues (sezione A.2) o i quaternioni (sezione A.3) possono essere usati per
superare questo problema.
Indipendentemente dal signicato geometrico a cui si vuole dare la matrice di rotazione `e possibile comunque fare diverse
considerazioni.
Come gi`a detto in precedenza, la denizione della matrice R nellequazione della pin-hole camera `e stata denita, sia per
comodit` a che per tradizione, in modo tale da non ruotare un vettore (sarebbe stata ovvero una conversione da coordinate
sensore a coordinate mondo) ma allopposto rimuove la rotazione di punti del mondo conoscendo lorientazione della
camera stessa ovvero permette di convertire da coordinate mondo a coordinate camera.
Ricavare una espressione della matrice R nella forma espressa nel modello della pin-hole camera vuol dire trovare una
matrice che trasforma un punto da coordinate mondo a coordinate immagine ovvero bisogna sempre usare la matrice
inversa tra quelle indicate nelle sezioni seguenti. Sia pertanto una generica rotazione R
bw
che trasforma da coordinate
sensore (body coordinates) a coordinate mondo ricavata grazie a uno dei possibili sistemi di angoli: la matrice R
1
bw
sar`a
pertanto la matrice che converte da coordinate mondo a coordinate sensore.
Inne, siccome il sistema di riferimento camera `e diverso dal sistema di riferimento mondo, `e necessario denire una
matrice di permutazione per passare dal sistema di riferimento sensore/mondo (Z crescente verso lalto, X profondit`a e Y
crescente verso sinistra come in gura 6.4) nel sistema di riferimento camera/immagine (X crescente verso destra, Y crescente
verso il basso, Z la profondit`a come in gura 6.3):

bc
=
_
_
0 1 0
0 0 1
1 0 0
_
_
(A.2)
dove
bc
`e la matrice di permutazione degli assi.
Sotto queste considerazioni, la matrice R, matrice che converte da mondo a camera, usata nellequazione della camera
pin-hole ha come espressione
R
wc
=
bc
R
1
bw
(A.3)
A.1 Tait-Bryan Angles
Un modo per denire la matrice di rotazione in 3 dimensioni consiste nel comporre tra loro rotazioni rispetto ai 3 assi
principali del sistema di riferimento.
Deniamo langolo di beccheggio pitch, langolo di imbardata yaw e langolo di rollio roll, angoli di orientazione
del sensore rispetto al sistema di riferimento mondo
2
Tali angoli e tale nomenclatura sono deniti come Tait-Bryan Angles,
Cardan Angles da Girolamo Cardano o nautical angles.
Di seguito saranno mostrate le matrici (come riferimento per esempio [LaV06]) che convertono un vettore da coordinate
sensore a coordinate mondo attraverso angoli che rappresentano lorientazione del sensore rispetto al mondo stesso e sono
le medesime matrici che ruotano un vettore in senso antiorario (counterclockwise rotation of axes) rispetto ai vari assi del
sistema di riferimento.
Gli assi di tale sistema di riferimento sono quelli mostrati in gura 6.4. Si faccia comunque attenzione perche per i veicoli
terrestri e per le navi viene prediletto un sistema di riferimento diverso da quelli areonautico.
La matrice di rotazione dellangolo roll (asse X):
R
x
= R

=
_
_
1 0 0
0 cos sin
0 sin cos
_
_
(A.4)
La matrice di rotazione dellangolo pitch (asse Y):
R
y
= R

=
_
_
cos 0 sin
0 1 0
sin 0 cos
_
_
(A.5)
La matrice di rotazione dellangolo yaw (asse Z):
R
z
= R

=
_
_
cos sin 0
sin cos 0
0 0 1
_
_
(A.6)
2
attenzione che non esiste neanche una notazione accettata univocamente sulle lettere greche da associare ai 3 angoli. Si pu` o trovare per esempio
per langolo di yaw e per langolo di roll.
A.2. RODRIGUES ROTATION FORMULA 85
(La Valle [LaV06], pag. 80-81).
Come si `e detto nella sezione precedente, la composizione di rotazioni non `e commutativa ed `e necessario fare una scelta.
In campo areonautico viene suggerita come convenzione Roll -Pitch-Yaw (RPY).
La matrice di rotazione pertanto vale R = R
z
R
y
R
x
ed esplicitando i termini, sotto questa convenzione, si ottiene:
_
_
cos cos cos sin sin sin cos cos sin cos + sin sin
sin cos sin sin sin + cos cos sin sin cos cos sin
sin cos sin cos cos
_
_
(A.7)
Va ricordato che tale matrice ruota punti da coordinate sensore (body coordinates) a coordinate mondo.
Usando questa convenzione la matrice di rotazione del modello della camera pin-hole, attraverso lequazione (A.3), si pu`o
esprimere come prodotto di:
R =
bc
(R

)
1
(R

)
1
(R

)
1
(A.8)
La matrice di rotazione R della camera pin-hole che converte da coordinate mondo a coordinate camera si scrive:
_
_
cos sin sin + sin cos sin sin sin cos cos cos sin
cos sin cos sin sin sin sin cos + cos sin cos cos
cos cos sin cos sin
_
_
(A.9)
In questa sezione si `e chiamato R sia la trasformazione che converte da mondo a camera, che quella che converte da
sensore a mondo.
Attenzione che la matrice (A.8) siccome contiene il termine
bc
permette solo la conversione da coordinate mondo a
coordinate camera e viceversa ma non, per esempio, di convertire tra loro coordinate mondo. La matrice (A.7) invece
soddisfa a pieno questo scopo.
Va ribadito che la matrice R, espressa come nella formula (A.8), `e la matrice che rimuove la rotazione di un sensore avete
quei particolari angoli di posizionamento e pertanto trasforma da coordinate mondo a coordinate camera. In generale
invece qualunque matrice di rotazione `e una matrice che converte da coordinate sensore a coordinate mondo.
A.2 Rodrigues Rotation Formula
Rodrigues cerca di risolvere i problemi di singolarit`a intrinseci delle formulazioni di Tait-Bryan e Eulero, oltre a fornire una
formulazione molto geometrica della rotazione.
La formula della rotazione proposta da Rodrigues `e formata da un versore k e da un angolo rappresentati una asse e
la quantit`a con cui ruotare i punti rispetto al vettore stesso.
`
E possibile convertire asse e angolo in una matrice di rotazione attraverso una equazione compatta:
R = I + sin [k]

+ (1 cos )(kk

I) (A.10)
che equivale, esplicitando i termini, alla matrice di rotazione
R =
_
_
c +k
2
x
(1 c) k
x
k
y
(1 c) k
z
s k
y
s +k
x
k
z
(1 c)
k
z
s +k
x
k
y
(1 c) c +k
2
y
(1 c) k
x
s +k
y
k
z
(1 c)
k
y
s +k
x
k
z
(1 c) k
x
s +k
y
k
z
(1 c) c +k
2
z
(1 c)
_
_
(A.11)
avendo dichiarato s = sin e c = cos .
La formulazione inversa `e anchessa estremamente compatta e vale:
= cos
1
_
trace R1
2
_
k =
1
2 sin
_
_
r
32
r
23
r
13
r
31
r
21
r
12
_
_
(A.12)
Siccome k e sono di fatto 4 parametri, solitamente si usa un vettore w = k generico per rappresentare una rotazione
nella formulazione di Rodrigues e si attuano le sostituzioni:
k =
w
|w|
= |w|
(A.13)
86 APPENDICE A. MATRICI DI ROTAZIONE
A.2.1 Rotazioni innitesimali
La denizione w = k unita alla formula di Rodrigues si presta molto a esprimere rotazioni innitesimali.
Se si manda a innitesimi la formula (A.10) si ottiene
R I + sin [k]

I + [w]

=
_
_
1 w
z
w
y
w
z
1 w
z
w
y
w
z
1
_
_
(A.14)
A.3 Quaternion Notation
Son: Well, Papa, can you multiply triplets?
Father: No [sadly shaking his head], I can only add and subtract them. (William Rowan Hamilton, Conversation with his
sons (1843))
I quaternioni sono un tentativo di estensione dei numeri complessi a una dimensione maggiore. Tale formulazione `e stata
proposta per la prima volta da Sir William Rowan Hamilton. Sono rappresentati da un vettore di R
4
nella forma
q =
_

_
q
1
q
2
q
3
q
4
_

_
(A.15)
con dierenti propriet`a rispetto agli ordinari vettori quadridimensionali (come per esempio lo sono anche le coordinate
omogenee). Il prodotto tra quaternioni per esempio non `e commutativo (ma `e comunque associativo).
Il quaternione (A.15) pu`o essere visto come composto da una parte vettoriale v R
3
e da una parte scalare s:
q =
_
s
v
_
(A.16)
Un quaternione con solo la parte scalare `e chiamato reale mentre un quaternione con solo la parte vettoriale puro.
`
E possibile creare un vettore aumentato (augmented vector) di un vettore r R
3
nello spazio dei quaternioni come:
r =
_
0
r
_
(A.17)
Il complesso coniugato di un quaternione q

`e
q

=
_
s
v
_
(A.18)
La norma [q[ `e
[q[ =

q =
_
s
2
+v
2
(A.19)
Un quaternione [q[ = 1 `e chiamato quaternione unit`a. Linverso di un quaternione unit`a `e il suo complesso coniugato
q
1
= q

.
Inne un quaternione rappresenta una rotazione
q =
_
cos (/2)
usin (/2)
_
(A.20)
con un angolo di rotazione e u un versore tridimensionale. In questo caso `e un quaternione unit`a e rappresenta la rotazione
di un angolo intorno allasse u.
Un quaternione pu`o essere convertito in una matrice di rotazione (directional cosine matrix):
R =
_
_
q
2
1
+q
2
2
q
2
3
q
2
4
2q
2
q
3
2q
1
q
4
2q
2
q
4
+ 2q
1
q
3
2q
2
q
3
+ 2q
1
q
4
q
2
1
q
2
2
+q
2
3
q
2
4
2q
3
q
4
2q
1
q
2
2q
2
q
4
2q
1
q
3
2q
3
q
4
+ 2q
1
q
2
q
2
1
q
2
2
q
2
3
+q
2
4
_
_
(A.21)
`
E da notare che q e q rappresentano la medesima matrice di rotazione R.
Viceversa dalla matrice di rotazione `e possibile ricavare il quaternione attraverso
q
2
1
= (r
11
+r
22
+r
33
+ 1)/4
q
2
= (r
32
r
23
)/(4q
1
)
q
3
= (r
13
r
31
)/(4q
1
)
q
4
= (r
21
r
12
)/(4q
1
)
(A.22)
Le rotazioni possono venire rappresentate da quaternioni usando quaternioni di lunghezza unitaria, tali cio`e
q

q = 1 (A.23)
Appendice B
Nomenclatura
In questa sezione `e riportata la nomenclatura normalmente usata in visione articiale.
K Matrice dei parametri Intrinseci (vedi 6.5), anche indicata con A da diversi autori;
R Matrice di Rotazione (vedi eq. (6.15));
E Matrice Essenziale (vedi eq. (7.11));
F Matrice Fondamentale (vedi eq. (7.8));
P Matrice Proiettiva (vedi eq. (6.18));
Matrice di Permutazione (vedi eq. (A.2));
k
u
, k
v
Lunghezza focale in pixel (vedi eq. (6.3));
k

Fattore di Skew, raramente usato;


W, H Dimensione dellimmagine;

u
,
v
Met`a del campo visivo (vedi capitolo 6 per dettagli);
u
0
, v
0
Principal Point;
Angolo di Beccheggio;
Angolo di Imbardata;
Angolo di Rollio.
In this section nomenclature commonly used in articial vision are reported.
K Matrix of Intrinsic Parameters (see eq. (6.5)), and sometimes it is referred as A;
R Rotation Matrix (see eq. (6.15));
E Essential Matrix (see eq. (7.11));
F Fundamental Matrix (see eq. (7.8));
P Camera Matrix (see eq. (6.18));
Permutation Matrix (see eq. (A.2));
k
u
, k
v
Horizontal and Vertical focal lenghts in pixel dimension (see eq. (6.3));
k

Skew Factor, rarely used;


W, H Image size in pixel unit;

u
,
v
Approximately horizontal and vertical half Field Of View (see chapter 6 for details);
u
0
, v
0
Principal Point (the orthogonal projection of the optical center onto the image plane) coordinates in pixel unit;
87
88 APPENDICE B. NOMENCLATURA
Pitch angle;
Yaw angle;
Roll angle.
Bibliograa
[AAK71] Y.I. Abdel-Aziz and H.M. Karara. Direct linear transformation from comparator coordinates into object space
coordinates in close-range photogrammetry. In Proc. ASP/UI Symp. on Close-Range Photogrammetry, pages
118, Urbana, Illinois, January 1971.
[AL92] Wayne Iba Ai and Pat Langley. Induction of one-level decision trees. In Proceedings of the Ninth International
Conference on Machine Learning, pages 233240. Morgan Kaufmann, 1992.
[B
+
84] Leo Breiman et al. Classication and Regression Trees. Chapman & Hall, New York, 1984.
[BETVG08] Herbert Bay, Andreas Ess, Tinne Tuytelaars, and Luc Van Gool. Speeded-up robust features (surf). Comput.
Vis. Image Underst., 110:346359, June 2008.
[Bro66] Duane C Brown. Decentering distortion of lenses. Photogrammetric Engineering, 32(3):444462, 1966.
[BW88] Douglas M. Bates and Donald G. Watts. Nonlinear regression analysis and its applications. Wiley series in
probability and mathematical statistics. Wiley, New York [u.a.], 1988.
[Che03] Zhe Chen. Bayesian Filtering: From Kalman Filters to Particle Filters, and Beyond. Technical report, McMaster
University, 2003.
[CM09] S.L. Campbell and C.D. Meyer. Generalized inverses of linear transformations. Society for Industrial
Mathematics, 2009.
[CV95] Corinna Cortes and Vladimir Vapnik. Support-vector networks. Machine Learning, 20:273297, 1995.
10.1007/BF00994018.
[DF01] Frederic Devernay and Olivier D. Faugeras. Straight lines have to be straight. Machine Vision and Applications,
13(1):1424, 2001.
[FB81] Martin A. Fischler and Robert C. Bolles. Random sample consensus: A paradigm for model tting with
applications to image analysis and automated cartography. Communications of the ACM, 24(6):381395, 1981.
[FB87] Martin A. Fischler and Robert C. Bolles. Readings in computer vision: issues, problems, principles, and
paradigms. chapter Random sample consensus: a paradigm for model tting with applications to image analysis
and automated cartography, pages 726740. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1987.
[FHT00] J. Friedman, T. Hastie, and R. Tibshirani. Additive Logistic Regression: a Statistical View of Boosting. The
Annals of Statistics, 38(2), 2000.
[FK08] Robert B. Fisher and Kurt Konolige. Range sensors. In Bruno Siciliano and Oussama Khatib, editors, Springer
Handbook of Robotics, pages 521542. Springer, 2008.
[FS95] Yoav Freund and Robert E. Schapire. A decision-theoretic generalization of on-line learning and an application
to boosting. In Proceedings of the Second European Conference on Computational Learning Theory, pages 2337,
London, UK, 1995. Springer-Verlag.
[GVL96] Gene H. Golub and Charles F. Van Loan. Matrix Computations (Johns Hopkins Studies in Mathematical
Sciences)(3rd Edition). The Johns Hopkins University Press, 3rd edition, October 1996.
[Har95] R.I. Hartley. In defence of the 8-point algorithm. In Computer Vision, 1995. Proceedings., Fifth International
Conference on, pages 10641070, June 1995.
[Hou59] P. V. C. Hough. Machine Analysis of Bubble Chamber Pictures. In International Conference on High Energy
Accelerators and Instrumentation, CERN, 1959.
89
90 BIBLIOGRAFIA
[Hub96] P.J. Huber. Robust statistical procedures. CBMS-NSF regional conference series in applied mathematics. Society
for Industrial and Applied Mathematics, 1996.
[HZ04] R. I. Hartley and A. Zisserman. Multiple View Geometry in Computer Vision. Cambridge University Press,
ISBN: 0521540518, second edition, 2004.
[JU97] S.J. Julier and J.K. Uhlmann. A new extension of the kalman lter to nonlinear systems. In Int. Symp.
Aerospace/Defense Sensing, Simul. and Controls, volume 3, page 26, 1997.
[LaV06] S. M. LaValle. Planning Algorithms. Cambridge University Press, Cambridge, U.K., 2006. Available at
http://planning.cs.uiuc.edu/.
[LF97] Q.-T. Luong and O. D. Faugeras. Self-calibration of a moving camera from pointcorrespondences and
fundamental matrices. Int. J. Comput. Vision, 22(3):261289, 1997.
[Lin94] Tony Lindeberg. Scale-Space Theory in Computer Vision. Kluwer Academic Publishers, Norwell, MA, USA,
1994.
[Lon81] Longuet. A computer algorithm for reconstructing a scene from two projections. Nature, 293:133135, Sep.
1981.
[Lou05] M I A Lourakis. A brief description of the levenberg-marquardt algorithm implemened by levmar. Matrix, 3:2,
2005.
[Low04] David G. Lowe. Distinctive image features from scale-invariant keypoints. International Journal of Computer
Vision, 60:91110, 2004.
[LS10] Philip M. Long and Rocco A. Servedio. Random classication noise defeats all convex potential boosters. Mach.
Learn., 78(3):287304, March 2010.
[LZ99] Charles Loop and Zhengyou Zhang. Computing rectifying homographies for stereo vision. Computer Vision
and Pattern Recognition, IEEE Computer Society Conference on, 1:1125, 1999.
[Mah36] P. C. Mahalanobis. On the generalised distance in statistics. In Proceedings National Institute of Science, India,
volume 2, pages 4955, April 1936.
[MBLB91] H.A. Mallot, H.H. B ultho, JJ Little, and S. Bohrer. Inverse perspective mapping simplies optical ow
computation and obstacle detection. Biological cybernetics, 64(3):177185, 1991.
[MBT04] Kaj Madsen, Hans Bruun, and Ole Tingle. Methods for Non-Linear Least Squares Problems (2nd ed.). Infor-
matics and Mathematical Modelling, Technical University of Denmark, DTU, Richard Petersens Plads, Building
321, DK-2800 Kgs. Lyngby, 2004.
[MK04] Gerard Medioni and Sing Bing Kang. Emerging Topics in Computer Vision. Prentice Hall PTR, Upper Saddle
River, NJ, USA, 2004.
[MS02] Krystian Mikolajczyk and Cordelia Schmid. An ane invariant interest point detector. In Proceedings of the 7th
European Conference on Computer Vision, Copenhagen, Denmark, pages 128142. Springer, 2002. Copenhagen.
[Rou84] Peter J. Rousseeuw. Least Median of Squares Regression. Journal of the American Statistical Association,
79(388):871880, December 1984.
[SM99] Peter Sturm and Steve Maybank. On plane-based camera calibration: A general algorithm, singularities,
applications. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Fort Collins,
USA, pages 432437, Juin 1999.
[SS02] B. Scholkopf and A.J. Smola. Learning with Kernels: Support Vector Machines, Regularization, Optimization,
and Beyond. Adaptive Computation and Machine Learning. Mit Press, 2002.
[SSM06] G. Sibley, G. Sukhatme, and L. Matthies. The iterated sigma point kalman lter with applications to long range
stereo. In Proceedings of Robotics: Science and Systems, Philadelphia, USA, August 2006.
[Str87] Thomas M. Strat. Readings in computer vision: issues, problems, principles, and paradigms. chapter Recovering
the camera parameters from a transformation matrix, pages 93100. Morgan Kaufmann Publishers Inc., San
Francisco, CA, USA, 1987.
[Sze10] Richard Szeliski. Computer vision : Algorithms and applications. Computer, 5:832, 2010.
BIBLIOGRAFIA 91
[TMHF00] Bill Triggs, Philip F. McLauchlan, Richard I. Hartley, and Andrew W. Fitzgibbon. Bundle adjustment - a
modern synthesis. In Proceedings of the International Workshop on Vision Algorithms: Theory and Practice,
ICCV 99, pages 298372, London, UK, 2000. Springer-Verlag.
[Tsa87] R. Tsai. A versatile camera calibration technique for high-accuracy 3d machine vision metrology using o-the-
shelf tv cameras and lenses. Robotics and Automation, IEEE Journal of, 3(4):323344, August 1987.
[Val84] L. G. Valiant. A theory of the learnable. Commun. ACM, 27:11341142, November 1984.
[VJ01] Paul Viola and Michael Jones. Fast and robust classication using asymmetric adaboost and a detector cascade.
In Advances in Neural Information Processing System 14, pages 13111318. MIT Press, 2001.
[VJ02] Paul Viola and Michael Jones. Robust real-time object detection. International Journal of Computer Vision,
57(2):137154, 2002.
[WB95] Greg Welch and Gary Bishop. An introduction to the kalman lter. Technical report, University of North
Carolina at Chapel Hill, Chapel Hill, NC, USA, 1995.
[WM94] G. Q. Wei and S. D. Ma. Implicit and explicit camera calibration: Theory and experiments. IEEE Trans.
Pattern Anal. Mach. Intell., 16(5):469480, 1994.
[Zha99] Zhengyou Zhang. Flexible camera calibration by viewing a plane from unknown orientations. In Proceedings of
the Seventh IEEE International Conference on Computer Vision., volume 1, pages 666673 vol.1, 1999.
[ZW94] Ramin Zabih and John Woodll. Non-parametric local transforms for computing visual correspondence. In
ECCV (2), pages 151158, 1994.

You might also like