Sei sulla pagina 1di 80

Elementi di analisi per Visione Articiale

Paolo Medici
Dipartimento di Ingegneria dellInformazione di Parma
16 marzo 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. Di fatto non si entrer`a nei dettagli
delle dimostrazioni dei singoli teoremi ma, con lobiettivo di stimolare la curiosit`a, queste sono lasciate al lettore. Per diversi
motivi non ho neanche cercato di fare una trattazione rigorosa ed esaustiva degli argomenti trattati, ne tantomeno 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 posso dare un minimo di contributo.
Un ottimo libro, disponibile online, che tratta in maniera ampia tematiche pi` u di elaborazione di immagini pu`o essere
Computer Vision: Algorithms and Applications [33].
Il fatto stesso che nella visione articiale geometria, statistica, ottimizzazione sono argomenti cos` correlati ne fa un
ambito di studio molto completo ma non ha certo semplicato la divisione in capitoli di questo libro.
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 eventuali 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.
Ho attinto abbondamentemente da diversi libri che raccolgono in maniera ampia e completa i diversi capitoli di cui questo
libro `e formato. I libri che vorrei consigliare sono Multiple View Geometry [15] di Hartley e Zisserman e Emerging Topics
In Computer Vision [28] redatto da Medioni e Kang.
La sintassi che ho usato `e minimalista. Le matrici verranno indicate con la sintassi grassetto maiuscola A mentre i vettori
in grassetto minuscolo x. La sintassi x indica il valore stimato del vettore x. 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 raccontare in maniera molto pragmatica diverse tematiche di analisi
che ruotano intorno agli algoritmi di elaborazione di immagini e visione articiale che non sono riuscito ad incasellare bene
negli altri capitoli.
1.1 Matrice Pseudo-inversa
Uno dei problemi fondamentali nellanalisi di sistemi reali `e quello del 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 normalmente un sistema sovradimensionato. In questa situazione 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 regresione ai minimi quadrati equivale a trovare il minimo
di tale funzione errore al variare di x. Va subito fatto notare che nel minimizzare 1.2 non si fa comunque nessuna ipotesi
della distribuzione del rumore allinterno dei componenti. La soluzione ottenuta con questa minimizzazione `e una soluzione
algebrica che minimizza un errore algebrico (algebraic error). Nel capitolo di statistica si aronter`a il caso in cui si conosce
come lerrore entra nel sistema.
Si pu`o dimostare 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
La pseudoinversa di una matrice esiste se esiste linversa di A

A;
3
4 CAPITOLO 1. ELEMENTI
La pseudoinversa di una matrice quadrata coincide con la sua inversa;
La pseudoinversa di una matrice, se esiste, `e unica.
`
E possibile cercare di migliorare la soluzione in presenza di rumore conosciuto in quanto `e possibile assegnare alle equazioni
del sistema pesi diversi e questi possono essere rappresentati in una matrice diagonale di precondizionamento della matrice
A. Allo stesso modo visto che si minimizza la distanza euclidea della soluzione `e possibile moltiplicare ogni riga del sistema
per un opportuno peso in modo da pesare in maniera dierente ogni dato acquisito.
In lettura `e possibile trovare la risoluzione di sistemi sovradimensionati indicata anche come tecnica delle equazioni
perpendicolari (normal equations):
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 diverse altre
matrici 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
psudoinversa 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, anche ottenuta 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, ma con un vincolo
aggiuntivo per esempio [x[ = 1, tale che
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 nullo ma si prende solitamente la colonna associata al
minimo valore singolare.
Gli autovalori nulli della matrice S rappresentano pertanto il kernel della matrice stessa. Il numero di autovalori nulli
rappresenta la dimensione del kernel stesso. Va notato come nellequazione 1.6 la presenza di zeri nella matrice S fosse
problematica ma tale presenza `e comunque sintomo del fatto che una delle componenti del problema `e totalmente uncorrelata
con la soluzione e, in quanto tale, pu`o essere trascurata (tale risultato sar`a utilizzato in seguito nella trattazione della PCA).
La decomposizione SVD risulta una delle tecniche pi` u stabili e versatili sviluppata negli ultimi anni per la risoluzione di
sistemi lineari e di fatto in tutto questo libro si far`a larghissimo uso di tale tecnologia.
Dettagli ulteriori sulla pseudoinversa di Moore-Penrose possono essere trovati in molti libri, per esempio in [5] o nel testo
fondamentale di calcolo numerico [13].
1.2. AUTOVALORI 5
1.2 Autovalori
Data una matrice quadrata Adi 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 allautovalore .
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.
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 tale relazione si pu`o scrivere come:
x = cos
y = sin
(1.12)
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 si vedr`a nei capitoli seguenti).
Una scelta comunque diusa sono le coordinate sferiche (sperical coordinate system).
6 CAPITOLO 1. ELEMENTI
x
y
z
p

Figura 1.2: Coordinate polari in 3 dimensioni.


Con questa convenzione la relazione tra le coordinate si pu`o scrivere come
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.
Risulta ben chiaro che 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 ancora le
trasformazioni ani attraverso luso di matrici e in pi` u permettono di rappresentare anche le proiezioni prospettiche allo
stesso modo.
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.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)
1.5. LINEE, PIANI E IPERPIANI 7
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 (cfr. equazione 1.19).
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: non esistono valori di fatto non ammessi.
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.18)
1.5.4 Retta in coordiante 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.
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.19)
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.6) 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.20)
8 CAPITOLO 1. ELEMENTI
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.21)
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.21.
Nel caso di due sole rette, il sistema 1.21 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.22)
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.23)
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.23
`e
(x x
0
) n = 0 (1.24)
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.25)
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.26)
altrimenti, come nel caso di equazione 1.18, `e necessario dividere la distanza per [ n[.
Nella sezione 3.2.2 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.
1.6. PRODOTTO VETTORIALE 9
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.27)
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.28)
Una anit`a gode delle seguenti propriet`a:
trasforma rette in rette;
conserva la colinearit`a tra i punti;
converva 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.29)
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.
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.
10 CAPITOLO 1. ELEMENTI
Nello spazio R
2
lomogra (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.30)
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 facilmente descrivibile in forma di coordinate omogenee (1.4):
_
_
u
j
v
j
1
_
_
= H

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

ij
=
_
_
h
0
h
1
h
2
h
3
h
4
h
5
h
6
h
7
h
8
_
_
(1.32)
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.33)
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 perch`e qualunque multiplo dei vettori
di ingresso o uscita soddisfa ugualmente la relazione 1.30. 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 `e nella rimozione della prospettiva da immagini o 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 della camera pin-hole, `e determinare i parametri della matrice omograca 1.30, per esempio attraverso il metodo
dei minimi quadrati e un modo per ricavare i coecienti sar`a mostrato nellequazione 6.40, facendo attenzione che tale
trasformazione vale solo e solamente per i punti del piano che si `e 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.30 (unnormalized inverse homo-
graphic 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.34)
dove non `e stato fatto uso di divisioni.
`
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.35)
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.
1.9. LA TRASFORMATA Z 11
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.36)
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.37)
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.38)
mentre la trasformazione che trasforma una retta l diventi invece
l

= M

l (1.39)
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.40)
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.41)
In questo modo `e possibile scrivere lequazione 1.40 in forma matriciale
x

Cx = 0 (1.42)
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.43)
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.
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
12 CAPITOLO 1. ELEMENTI
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 attenuta dal


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

(t) si pu`o scrivere:


f

(t) =

n=0
f(nT
c
)(t nT
c
) (1.44)
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.45)
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.46)
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.47)
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
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.
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.
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.48)
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.49)
tale che trasformi il punto (u, v)

appartenenente allimmagine sorgente nel punto (u

, v

dellimmagine destinazione,
ovvero
(u

, v

= f(u, v) (1.50)
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 perch`e 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.51)
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.51.
14 CAPITOLO 1. ELEMENTI
1.11 Limmagine Integrale
Larticio computazione di usare limmagine integrale permette di ottimizzare diversi algoritmi mostrati in questo libro,
normalmente relativi alluso delle feature di Haar.
Sia I una generica immagine. Il valore del generico pixel (x, y) dellimmagine integrale J `e calcolato sommando i valori
di ogni pixel contenuto allinterno del rettangolo (0, 0) (x, y):
J(x, y) =
y

v=0
x

u=0
I(u, v) (1.52)
Con questa denizione `e da notare che gli estermi del rettangolo sono compresi nellimmagine (gura 1.6).
Grazie allimmagine integrale `e possibile a costo costante di 4 somme sapere la sommatoria di una sottoparte rettangolare
di qualunque dimensione dellimmagine I:
(x
1
,y
1
)

(x
0
,y
0
)
I = 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.53)
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.
1.12 Feature di Haar
Le feature di Haar (il nome deriva dalla somiglianza con le wavelet di Haar) indica una serie di ltri che si possono applicare
a un immagine formati da somme e sottrazioni di sottoparti rettangolari dellimmagine stessa. Tali ltri possono venire
ecacemente implementati usando limmagine integrale.
Capitolo 2
Elementi di Statistica
La visione articiale si pone come obiettivo quello di interpretare il mondo con gli occhi di un calcolatore.
`
E chiaro che
ogni qualvolta si voglia esaminare una quantit`a osservabile e ricondurla a un modello matematico si entra nel campo della
statistica. In questo capitolo vengono mostrate alcune tecniche di statistica (e di controlli automatici) fondamentali nel
lavoro di chi sviluppa algoritmi di visione delle macchine.
2.1 Media e Varianza
`
E facile supporre che la nozione della media tra numeri `e un concetto conosciuto a quasi tutti, almeno dal punto di vista
intuitivo. In ogni caso nulla impedisce di fare un breve riassunto.
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)
Quando g(x) = x si parla di statistiche di primo ordine (rst statistical moment), e in generale g(x) = x
k
si parla di
statistiche di k-ordine. Una statistica in particolare interesse `e il momento di secondo ordine:
E[X
2
] =
_
+

x
2
p
X
(x)dx (2.5)
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)
essendo processi indipendenti:
Var(X) =
2
X
= E[X
2
] E[X]
2
(2.7)
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)
15
16 CAPITOLO 2. ELEMENTI DI STATISTICA
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 `e la matrice di cross-covarianza normalizzata rispetto alle matrici di covarianza:
r =
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 cambia
nel tempo e con che 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 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
allintrinsico Random Walk (RRW) del sensore. La denzione 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 gli 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 2 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)
Denizione 3 La distribuzione gaussiana generale A(;
2
), con , R,
2
0, `e quella che si ottiene dalla distribuzione
standard con la trasformazione x x +.
2.4. GAUSSIAN MIXTURE MODELS 17
4 2 0 2 4 6
0
0.1
0.2
0.3
+
2
Figura 2.1: Distribuzione gaussiana
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 coovarianza 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 usata campionata a passo uniforme e, siccome
avrebbe comunque supporto innito, vengono presi tanti campioni quanti 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.
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)
18 CAPITOLO 2. ELEMENTI DI STATISTICA
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
`
E un problema di interesse 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 [26] permette di ottenere una misura di una osservazione normalizzato rispetto alla varianza
della stessa.
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 distrubuzione 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 incorrelate) la formulazione sopra si riconduce alla
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
Una variable casuale X viene standardizzata, usando le sue statistiche empiriche, quando avviene 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 la 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 aleatorio il risultato del sistema stesso.
La variabile aleatoria, 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.
Un sistema lineare `e un sistema scritto come
y = Ax
dove al vettore aleatorio x `e associata la matrice della varianza-covarianza Var(X).
In un sistema lineare
y = Ax
dove al vettore aleatorio x `e associata la matrice della varianza-covarianza Var(X), la matrice di covarianza della variabile
aleatoria y risultante `e
Var(Y ) = Var(AX) = AVar(X)A

(2.26)
Nel caso particolare di proiezioni y = b x la varianza diventa similarmente
Var(Y ) = Var(b

X) = b

Var(X)b (2.27)
2.6. PROPAGAZIONE DELLINCERTEZZA 19
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)
Gli esempi di propagazione dellincertezza visti nora si possono generalizzare, anticipando il caso non-lineare, in una
trasformazione ane f denita come
f(x) = f( x) +A(x x) (2.29)
la quale forma permette di stabilire che la variabile aleatoria f(x) ha valor medio f( x) e matrice di covarianza A
X
A

.
La propagazione della covarianza nel caso non-lineare non `e normalmente ottenibile in forma chiusa ma anzi normalmente
in forma approssimata. Tecniche come la simulazione Monte Carlo posso essere usate per simulare a diversi ordini di precisione
la covarianza della trasformazione. Normalmente lapprossimazione lineare `e ampiamente usata ma, come si vedr`a nella
sezione 2.9.5, 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 in una trasformazione ane
f(x) f( x) +J
f
(x x) (2.30)
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.29) 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.31)
2.6.1 Propagazione degli errori nellelaborazione delle immagini
Risulta importante nel campo della visione articiale la teoria della propazione 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 lerrore in elaborazioni conseguenti dovuto a allosservazione
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.32)
da cui la propagazione dellerrore si pu`o scrivere come

2
z
=
_
z
x
_
2

2
x
+
_
z
y
_
2

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

2
z
=

2
x
+
2
y
(x y)
4
(2.34)
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.35)
`
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.
20 CAPITOLO 2. ELEMENTI DI STATISTICA
2.7 Condizionamento dei sistemi 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 il modello stesso della trasformazione lineare `e perturbato da rumore.
Sia
Ax = b (2.36)
un sistema lineare ideale, non aetto da rumore, con x la soluzione esatta del problema. Una perturbazione sulla colonna
dei termini noti

b = b +b provoca una perturbazione x = x +x sulla soluzione di entit`a pari a
x = A
1
b (2.37)
Un indice pi` u interessante `e calcolare la norma di tale errore in relazione al valore atteso. Tale relazione esiste e vale
|x|
|x|
|A||A
1
|
|b|
|b|
= (A)
|b|
|b|
(2.38)
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.39)
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
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.40)
Nel caso di solo rumore di osservazione sul termine noto b la regressione a minimi quadrati pesata `e la scelta dal punto
baesiano (BLUE) ottima:
w
i
=
1

2
i
(2.41)
In questo modo si ottiene un nuovo sistema lineare dove ogni riga ha la medesima varianza di osservazione.
2.8 Total Least Squares
Estendiamo ora il problema 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 + (2.42)
`e ancora ampiamente trattata in letteratura. Tecniche diuse sono la Eckart-Young-Mirsky o il teorema di Eulero-Lagrange,
traformando il problema lineare in uno omogeneo con vincoli del tipo
((A[b) + (E[))
_
x
1
_
= 0 (2.43)
La soluzione del problema `e il kernel della matrice (A[b).
2.9. FILTRI BAYESIANI 21
2.9 Filtri bayesiani
In questa sezione viene introdotto il problema dei ltraggi, quando si hanno pi` u sensori che contribuiscono attraverso generiche
funzioni a osservare lo stato dinamico di un sistema, non direttamente osservabile.
Il concetto di ltro `e connesso al concetto di processo. Lo stato del processo allistante t `e descritto da un vettore aleatorio
che rappresenta lincognita da determinare per risolvere il problema di ltraggio. Un esempio di processo `e il moto di un
veicolo, il cui stato `e formato, per esempio, dalla posizione e dalla velocit`a.
Molti approcci per calcolare (stimare) da un insieme di misure lo stato sconosciuto di un sistema non tengono conto della
natura rumorosa di tali osservazioni.
x
1
x
2
... x
m
z
1
z
2
z
m
Figura 2.2: Esempio di evoluzione e osservazione di un sistema markoviano.
I ltri bayesiani si pongono come obiettivo quello di simare allistante di tempo k, discreto, lo stato della variabile aleatoria
x
k
R
n
data una osservazione del sistema, anche indiretta, z
k
. Dal punto di vista pi` u generale possibile si vuole ottenere la
distribuzione di probabilit`a multivariata p(x
k
) dello stato sconosciuto (Hidden Markov Model ).
Per ricavare questa variabile nascosta vengono eseguite osservazioni, aette da rumore, sullo stato del sistema. Tali
osservazioni saranno indicate con z
k
. Siccome il modello `e Markoviano, losservazione deve essere solo funzione dello stato
corrente e non degli stati passati. 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.44)
dove, probabilit`a condizionata, p(x
k
[z
k
) indica la probabilit`a che lo stato sia x
k
data losservazione z
k
. La funzione p(x
k
[z
k
)
rappresenta il modello della misurazione dello stato (measurement model ).
`
E possibile trovare negli articoli la distribuzione
a posteriori p
+
indicata come belief.
Oltre alla conoscenza a posteriori della distribuzione di probabilit`a, `e possibile sfruttare la conoscenza a priori : lo stato
deve contenere informazioni tali da permettere la predizione di come si evolver`a nel tempo. Lipotesi che il processo sia
Markoviano implica che lunico stato passato che inuisce sullevoluzione del sistema `e quello di tempo k 1.
`
E pertanto possibile fare una predizione nella forma (equazione di Chapman-Kolmogorov)
p

(x
k
) =
_
p(x
k
[x
k1
, u
k
)p(x
k
)dx
k1
(2.45)
dove p(x
k
[x
k1
, u
k
) rappresenta la dinamica del sistema (dynamic model ). u
k
sono gli eventuali ingressi del sistema,
totalmente conosciuti.
Dalla conoscenza del sistema a priori e dallosservazione z
k
, grazie al teorema di Bayes, `e possibile riscrivere lequazio-
ne 2.44 nellequazione di aggiornamento dello stato
p
+
(x
k
) = c
k
p(z
k
[x
k
)p

(x
k
) (2.46)
con c
k
fattore di normalizzazione tale che
_
p
+
= 1.
`
E indispensabile la conoscenza di p(z
k
[x
k
) che rappresenta la probabilit`a
che losservazione sia proprio la z
k
osservata dato il possibile stato x
k
.
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 Unscented (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 Unscented lavorano su una rappresentazione continua dello stato.
Kalman, Extended e Unscented 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.
Un buon survey sui ltraggi bayesiani pu`o essere [6].
22 CAPITOLO 2. ELEMENTI DI STATISTICA
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 mentre approssimano i ltri bayesiani in punti ssi (histogram lters). Ogni elemento della griglia o dellistogramma
rappresenta la probabilit`a che lo stato sia eettivamente in quella 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
(2.47)
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
(2.48)
con c
k
sempre fattore di normalizzazione tale che

p
+
i
= 1.
2.9.2 Filtro di Kalman
Il ltro di Kalman [38] 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.
Il processo di trovare la miglior stima dello stato interno viene chiamato ltraggio in quanto `e un metodo per ltrare
via il rumore.
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.49)
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.50)
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.51)
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.52)
A questi errori `e possibile associare
P

k
= E[e

k
e

]
P
k
= E[e
k
e

k
]
(2.53)
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
.
2.9. FILTRI BAYESIANI 23
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.54)
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 rappresenza 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.51:
x

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

k
= AP
k1
A

+Q
k
(2.56)
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.57)
che minimizza la covarianza a posteriori, e con questo fattore viene aggiornato lo stato a posteriori attraverso lequazione 2.54.
Inne, grazie al guadagno appena ricavato, viene calcolata la stima a posteriori della matrice di covarianza:
P
k
= (I K
k
H
k
)P

k
(2.58)
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.59)
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.60)
Il guadagno di kalman k diventa
k
i
=
p

i
p

i
+r
i
(2.61)
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.62)
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.62, 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.89.
24 CAPITOLO 2. ELEMENTI DI STATISTICA
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.63)
Il rumore di processo `e correlato attraverso una matrice W
k
alla sorgente, e il rumore di osservazione attraverso una matrice
V
k
.
`
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.64)
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.
Il sistema 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.65)
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.66)
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 Unscented
Nel caso di funzioni f e h estremamente non lineari, Unscented Kalman lter (UKF), anche chiamato Sigma Point Kalman
Filter (SPKF), tende a fornire prestazioni migliori rispetto a EKF. Non solo lo stato, ma diversi punti intorno la media (chia-
mati 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.
La trasformazione unscented (UT) [18] 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
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 P
xx
, uguali a quelli di x. + Per ottenere dei punti con media e varianza uguali a quelli della distribuzione
originale `e necessario prendere i 2n + 1 sigma points e i rispettivi pesi nel modo seguente:

0
= x w
0
=

n+

i
= x +
_
_
(n +)P
xx
_
i
w
i
=

2(n+)

i+n
= x
_
_
(n +)P
xx
_
i
w
i+n
=

2(n+)
(2.67)
dove n `e la dimensione dello stato e `e un numero denito come =
2
(n +) n con 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.
A dierenza dei metodi montecarlo, i sigma points sono scelti in maniera deterministica in modo da rappresentare al
meglio le statistiche della variabile.
2.9. FILTRI BAYESIANI 25
Ottenuti i sigma points, questi possono venire trasformati attraverso la funzione
y
i
= f(
i
) (2.68)
e viene calcolata media e varianza del risultato ottenuto (unscented transformation)
y
2n

0
w
i
f(x
i
) P
yy

2n

0
w

i
(y
i
y)(y
i
y)

(2.69)
per ogni punto i = 0, . . . , 2n. Questa media e varianza sono una buona approssimazione possibile della media e varianza
della distribuzione in ingresso trasformata attraverso la funzione f. La dierenza tra i pesi w
i
e w

i
`e solo nel primo termine
dove si pone w

0
= /(n +) + (1
2
+), con = 2 per le distribuzioni guassiane.
Nel caso dellaggiornamento dello stato deniamo, per mantenere la sintassi uguale, una variabile chiamata stato aumen-
tato 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

= f(x
a
k1
, u
k
) (2.70)
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
xx
=
_
P
xx
0
0 Q
_
(2.71)
Attraverso questo procedimento `e possibile generare il ltro di kalman unscented.
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

0
w

i
(

i
)(

i
)

+Q
k
(2.72)
Dai sigma points

i
, proiettati attraverso f e rappresentanti la distribuzione dello stato a priori, `e possibile fare la stima
dellosservazione a priori :
Z
i
= h(

i
) (2.73)
da cui calcolare il valore pi` u probabile dellosservazione z pesando i risultati Z
i
con i pesi dei sigma point associati come
dallequazione 2.69. Anche in questo caso il rumore di osservazione pu`o essere inserito come stato aumentato e se supposto
additivo e indipendente pu`o venire sommato alla matrice di covarianza.
Il guadagno di Kalman unscented diventa:
K = P
xz
(P
zz
+R)
1
(2.74)
con P
zz
covarianza di Z
i
e P
xz
cross covarianza tra

i
e Z
i
.
2.9.6 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.75)
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 deteminare 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.76)
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.
26 CAPITOLO 2. ELEMENTI DI STATISTICA
2.9.7 Particle Filter
Gli approcci lineari e quasi lineari proposti da Kalman possono essere usati in quei problemi dove lo stato `e quasi gaussiano
e comunque di distribuzione unimodale: lo stato allistante di tempo k `e funzione diretta dello stato allistante di tempo
k 1. In generale `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 grid based sono adatti a quei problemi, di fatto poco comuni, dove lo stato `e discretizzatbile 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.
Ricordando la prima sezione di questo capitolo, quando si vuole ricavare una generica statistica h() da una distribuzione
di probabilit`a p(x) si usa lequazione:

h
def
=
_
X
h(x)p(x)dx (2.77)
Nel caso in cui tale stima non si possa ottenere per via analitica, `e comunque possibile ricavarla per via indiretta, attraverso
lutilizzo di x
i
campioni indipendenti, con 1 i N, estratti casualmente usando la distribuzione p. La stima Monte Carlo
di h() `e data da

h
1
N
N

i=1
h(x
i
) (2.78)
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
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), al posto della vera p(x)
normalmente dicile da campionare, 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
Attraverso luso di adeguati pesi pertanto `e possibile modicare lequazione 2.78 in

h
1
N
N

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

W
i
(2.80)
per poter essere utilizzati.
Pi` u la distribuzione q(x) `e simile alla p(x), pi` u la stima risulter`a corretta. Dallaltra parte la distribuzione q(x) deve
essere molto semplice da campionare.
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.
Se si applica direttamente la teoria bayesiana ai campioni della distribuzione stimata `e possibile modicare i pesi w
i
associati ai campioni usando il modello del sistema e della percezione (Sequential Important Sampling):
W
k,i
= W
k1,i
p(z
k
[x
k,i
) (2.81)
In questo modo i campioni iniziali sono sempre gli stessi, ma cambiano solo i pesi w
i
associati. Questo approccio tuttavia
ha il problema di degenerare in casi in cui i pesi sono prossimi a zero.
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.
2.9.8 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.82)
2.10. MEDIA PONDERATA CON LA VARIANZA 27
mentre la velocit`a viene sempre ritenuta costante:
v

k
= v
k1
(2.83)
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.84)
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.85)
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.
2.10 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.86)
In questo modo la varianza della media si riduce al minimo possibile ed equivale a

2
x
=
1

1/
2
i
(2.87)
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.88)

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.89)
che `e la stessa forma del ltro di kalman monodimensionale, dove si vede bene che, senza rumore di processo, il guadagno k
e tendente a zero.
Capitolo 3
Studio e Analisi di Modelli
Uno dei problemi pi` u diusi allinterno della visione articiale `e quello di far adattare un insieme di misure aette da rumore
(generalmente i pixel di unimmagine) a un modello predenito.
Oltre alla presenza di rumore, che potrebbe essere sia gaussiano bianco ma anche 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 [17]: pesare in maniera non quadratica i punti lontani del modello stimato produce miglioramenti nella stima stessa
(sezione 3.5);
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 multi modali ma il modello
`e comunque formato da pochi parametri, la trasformata di Hough [16] permette di ottenere il modello pi` u diuso dal
punto di vista statistico (sezione 3.6);
RANSAC Se gli outliers sono comparabili con gli inliers e il rumore `e molto basso (rispetto alla posizione degli outliers),
il RANdom SAmpling and Consensus [10] permette di ottenere il miglior modello presente sulla scena (sezione 3.7);
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 [30] (sezione 3.7.2);
Kalman
`
E possibile inne usare un ltro di kalman per ricavare i parametri di un modello (vedi 2.9.6) 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)
28
3.1. REGRESSIONE AI MINIMI QUADRATI 29
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 [2].
La condizione di minimo si individua nel punto dove il gradiente si annulla:
S()
k
i
= 2

r
i
f(x
i
, )
k
i
= 0 (3.2)
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).
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.3)
che degenera nuovamente nel caso dei minimi quadrati quando la varianza `e costante. La condizione di minimo, equazione 3.2,
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.4)
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.5)
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.6)
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).
La miglior stima ai minimi quadrati

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

= argmin
b

|y
i
x
i
b|
2
= (X

X)
1
X

y (3.7)
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 (heteroskedastic) e in generale 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.8)
Tale estimatore `e chiamato Generalized Least Squares(GLS).
La matrice P, denita come
P = X(X

X)
1
X

(3.9)
`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.10)
per questa propriet`a P `e chiamata hat matrix.
30 CAPITOLO 3. STUDIO E ANALISI DI MODELLI
3.1.2 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. 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 [23]. 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
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.11)
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.11.
Lalgoritmo di Levenberg-Marquardt risolve invece una versione leggermente dierente dellequazione 3.11 conosciuta
come augmented normal equations:
N

= J

r (3.12)
dove N = H + I con > 0 un fattore di attenuazione (damping factor). Quando il fattore `e elevato, la matrice N `e
pressoch`e 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.3 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.
3.1. REGRESSIONE AI MINIMI QUADRATI 31
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.13)
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.
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.14)
con J(

) jacobiano del modello f calcolato nel punto



:
J
ij
=
f

j
(x
i
,

) (3.15)
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.16)
con
2
, varianza del rumore di osservazione. Normalmente si pone = s calcolata empiricamente attraverso

S
n m
(3.17)
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.14 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.4 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 = argmin
x
|p x| (3.18)
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
32 CAPITOLO 3. STUDIO E ANALISI DI MODELLI
supposto che le derivate della funzione costo nellintorno del minimo sono pressoch`e 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.19)
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.20)
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.21)
3.2 Regressione di una retta ai minimi quadrati
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.22)
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.23)
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.1 Orthogonal Distance Fit
Una scrittura della funzione costo S corretta nel caso di errore su entrambi gli assi `e la Orthogonal least-squares line t.
Lerrore pu`o essere espresso usando la distanza tra il punto e la retta in esame (equazione 1.18). Tale distanza, detta anche
Perpendicular Regression o Total least squares (si veda sezione 2.8), ha senso quando entrambe le coordinate sono aette da
errore o sono variabili aleatorie. 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.24)
`
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.25)
con x e y medie dei campioni x
i
e y
i
rispettivamente.
La funzione errore 3.24, usando la relazione 3.25, 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.26)
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.27)
pi` u facilmente derivabile. Lespressione 3.27 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:
3.3. REGRESSIONE LINEARE A FUNZIONE POLINOMIALE 33
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.28)
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).
3.2.2 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).
Dichiamariamo p
0
= E[p] il centroide dei punti. Data lequazione del piano 1.23 e come funzione errore la sommatorie
delle distanze 1.26 si ottiene immediatamente il vincolo:
k = p
0
n (3.29)
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.30)
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, ma si pu`o sempre normalizzare,
forzando alla lunghezza unitaria (le soluzioni ottenute attraverso fattorizzazioni sono normalmente gi`a normalizzate).
3.3 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.31)
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.32)
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.33)
che `e una matrice simmetrica.
Alterenativamente e possibile sfruttare la teoria della pseudoinversa (sezione 1.1) e usare direttamente lequazione 3.31
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.33.
3.4 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.34)
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.35)
34 CAPITOLO 3. STUDIO E ANALISI DI MODELLI
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.36)
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.37)
3.5 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.38)
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.39)
3.6 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.
3.7. RANSAC 35
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).
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.40)
Se la funzione g `e esprimibile come in equazione 3.40, `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.40. 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.
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.19, 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.19.
`
E pertanto possible 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.19.
3.7 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 [9] 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 inliner 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 statitica 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.41)
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.
36 CAPITOLO 3. STUDIO E ANALISI DI MODELLI
3.7.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.42)
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.43)
Questa loss function modella gli inlier come se fossero aetti da errore gaussiano a media nulla, mentre gli outlier come
distribuzione uniforme.
3.7.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 inliner 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 la parte di classicazione rivesta un ruolo importante nella visione articiale, e non se ne pu`o parlare in
un breve spazio come questo. Lobiettivo di questo capitolo pertanto `e stimolare attraverso qualche spunto di riessione la
ricerca sullargomento.
Come gi`a detto in precedenza, statistica, classicazione e tting di modelli si possono vedere come un unico argomento.
Di fatto la statistica ricerca il modo pi` u corretto dal punto di vista bayesiano per estrarre i parametri nascosti di un sistema,
mentre la classicazione propone tecniche e modi su come modellizzare un problema in maniera eciente.
I classicatori possono essere visti in due modi distinti, a seconda delluscita che 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 associa alle n caratteristiche in ingresso (rappresentati loggetto che si vuole classicare) un valore di condenza rispetto
alle m classi di uscita (categorie):
f(x) = (P(x[y
1
), . . . , P(x[y
m
))
La fase di addestramento si basa su un training set formato da coppie (x
i
, y
i
) in modo da determinare la 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 risulerebbe impossibile disporre di adeguata
memoria per rappresentare tali associazioni, si fa uso di modelli.
La funzione f in generale infatti non sar`a una qualunque funzione ma sar`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
a ogni gruppo di ingressi associa una sola etichetta in uscita
g : R
n
Y = y
1
, . . . , y
m
(4.2)
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
37
38 CAPITOLO 4. CLASSIFICAZIONE
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;
LDA la Linear Discriminant Analysis (sezione 4.2) `e una tecnica che permette di ridurre il numero di ingressi al classicatore,
massimizzando la separazioni tra le classi;
SVM la Support Vector Machine (sezione 4.3) partiziona in maniera ottima lo spazio usando iperpiani ma pu`o essere
generalizzata utilizzando kernel non lineari permettendo di inscrivere superci complesse;
Neural Network Le reti neurali permettono di generare funzioni di tipo 4.1 concatendando tra loro somme, moltiplicazioni
e funzioni fortemente non lineari come le sigmoidi;
Viola & Jones Permette di partizionare il piano (pu`o essere visto come un classicatore di tipo 4.2) usando combinazioni
di rettangoli (feature di Haar) unite con AdaBoost, e in questo modo usa poca memoria ed `e estremamente veloce.
I classicatori possono analizzare meno dati, ma pi` u signicativi per ridurre la complessit`a, o pi` u classicatori possono
essere collegati tra loro in modo da massimizzare le prestazioni globali:
PCA la Principal Component Analysis (sezione 4.1) `e una tecnica che permette di ridurre il numero di ingressi al classi-
catore, rimuovendo le componenti linearmente dipendenti o ininuenti;
AdaBoost lADAptive BOOSTing (sezione 4.5.1) `e una tecnica che permette di mettere in cascata pi` u classicatori semplici
(weak) cercando di massimizzare il margine dellerrore. Di fatto non `e un vero classicatore ma una tecnica per unire
pi` u classicatori semplici e generare un classicatore complesso (ensemble);
Albero di decisione dove i classicatori sono messi in cascata con altri classicatori (ogni nodo rappresenta un qualche
attributo della classe);
Random Forest
TM
`e un altro Ensemble Classier costruito da diversi alberi di decisione collegati tra loro.
Non entrer`o nella spiegazione delle reti neurali in quanto, in letteratura, `e disponibile ogni cosa a riguardo.
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
) (XY) dove X R
n
`e il vettore che raccoglie le informazioni
da usare per laddestramento e Y = +1, 1 lo spazio delle classi associate.
I classicatori lineari (LDA 4.2 e SVM-Lineare 4.3) 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)
`
E sempre possibile estendendere un classicatore binario (in maniera pi` u o meno eciente) al caso multiclasse.
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.
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).
4.2. LDA 39
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.
Lidea base di SVM [7] `e quella di ottenere un piano di R
n
ottimo (decision boundary) che separi le due classi del problema
di classicazione. SVM si basa sul fatto che solo i campioni sulla frontiera (i support vector) sono importanti per ottenere
questo piano ottimo.
Siano denite queste classi quelle di un problema binario nella forma y
i
= +1, 1.
Lequazione di un iperpiano 1.23 `e
w x +b = 0 (4.6)
dove il vettore normale w non viene supposto di norma unitaria. La distanza punto-piano 1.26 in questo caso vale
=
[w x +b[
[w[
(4.7)
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)
40 CAPITOLO 4. CLASSIFICAZIONE
`
E da notare che esiste anche una versione di SVM Soft Margin che permette di ottenere una soluzione ottima nel caso in cui
non esista un iperpiano che separi esattamente le due classi.
Esistono per ogni classe uno o pi` u vettori dove le diseguaglianze 4.8 diventano uguaglianze. Tali elementi (Support
Vectors) sono i punti pi` u estremi della distribuzione e la loro distanza rappresenta il margine. Dallequazione 4.7 si vede che
tale margine vale
=
2
[w
0
[
(4.10)
Per massimizzare il margine risulta necessario minimizzare w
0
w
0
sotto il vincolo 4.9.
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 diseguaglianze).
Otteniamo pertanto la funzione lagrangiana:
L(w, b, ) =
1
2
w w

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

y
i

i
= 0 (4.12)
L
w
= 0 w
0
=

i
y
i
x
i
(4.13)
Sostituendo tali risultati (le variabili primali) allinterno della lagrangiana 4.11 questa diventa funzione dei soli moltiplicatori
(i dual da cui forma duale di Wolfe):
L(w, b, ) =

1
2

j
y
i
y
j
x
i
x
j
(4.14)
Il massimo di questa funzione (
i
associati a ogni vettore di addestramento) permette di trovare la soluzione del problema
originale.
Su questa relazioni 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.15)
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. Tali vettori, associati agli
i
> 0, sono i Support Vectors.
Risolvendo il problema quadratico 4.14, sotto il vincolo 4.12 e
i
0, i pesi
i
,= 0 saranno i Support Vectors. Tali pesi,
inseriti nelle equazioni 4.13 e 4.15, porteranno a ricavare liperpiano di massimo margine.
4.4 Classicatori bayesiani
La presenza di Bayes nella Visione Articiale `e dovuto al fatto che rappresenta una tecnica per la classicazione di pattern,
basata sullesperienza (training set).
Si supponga che un osservatore stia osservando un ipotetico nastro trasportatore che trasporta frutta in un deposito. La
cinghia trasporta per semplicit`a 2 tipi di frutta, per esempio, aranci e mele. Spetta allosservatore il determinare quale dei
due tipi di frutta sono sulla cinghia ad un particolare istante. Per gli esseri umani e per le macchine, questo viene fatto
esaminando determinate caratteristiche delle frutta, attraverso opportune tecniche, e classicando i frutti come un arancio o
come una mela.
Se i frutti entrano nel deposito in maniera totalmente casuale e non `e possibile estrarre alcuna altra informazione,
lapproccio ottimo per classicarle sarebbe tirando a caso.
La teoria bayesiana di decisione svolge un ruolo importante quando ci sono alcune informazioni a priori sugli oggetti che
stiamo provando a classicare. Per esempio, si supponga comunque di non avere conoscenza su come siano fatti i frutti, ma
si sa che l80% della frutta che il nastro trasporta sono mele ed il resto siano aranci. Se questa `e lunica informazione su cui
basare la decisione, istintivamente si tender`a a classicare la frutta come mela (il classicatore ottimo). Le informazioni a
priori in questo caso sono le probabilit`a di una mela o di un aracio di essere sul nastro trasportatore.
Se una decisione deve essere presa con solo questa informazione, `e obbligatorio usare la sola regola
_
P(mela) > P(arancio) A = mela
P(mela) < P(arancio) A = arancio
Ci` o ovviamente pu`o sembrare strano, perche se usata questa regola, allora ogni frutto casuale verr`a classicato come
mela, ma, in mancanza di altre informazioni, si minimizza in questo modo lerrore.
Il concetto di bayes applicato alla classicazione di pattern `e molto intuitivo da questo punto di vista: se osservo una
particolare caratteristica misurabile dellimmagine B
j
(features) riesco a stimare la probabilit`a che tale immagine rappresenti
una certa classe A
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. CLASSIFICATORI BAYESIANI 41
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 A
i
con i = 1..n un sistema completo di
eventi di e P(A
i
) > 0 i = 1..n.
In questo caso B / con P(A) > 0 si avr`a che:
P(A
i
[B) =
P(A
i
)P(B[A
i
)
n

j=1
P(A
j
)P(B[A
j
)
(4.16)
e questo i = 1..n.
Il teorema di Bayes costituisce uno degli elementi fondamentali dellapproccio soggettivista alle probabilit`a e allinferenza
statistica. Il sistema di alternative A
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 B. Le
probabilit`a P(A
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(B[A
i
) con i = 1..n vengono interpretate come la verosimiglianza o
informazione relativa a B acquisibile eseguendo un opportuno esperimento statistico. La formula di Bayes suggerisce dunque
un meccanismo di apprendimento dallesperienza: coniugando alcune conoscenze a priori sullevento A
i
date da P(A
i
) con
quelle acquisibili da un esperimento statistico date da P(B[A
i
) si perviene ad una migliore conoscenza data da P(A
i
[B)
dellevento A
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 gli aranci. Per
usare la notazione introdotta in precedenza nel teorema, chiamiamo A
1
lo stato in cui la frutta sia una mela, A
2
la condizione
in cui la frutta sia un arancio e sia la B una variabile casuale, in questo caso continua, che rappresenti il colore della frutta.
Con questa notazione, P(B[A
1
) rappresenta la funzione densit`a per levento colore B subordinato al fatto che lo stato sia
mela, P(B[A
2
) che sia arancio.
In fase di addestramento `e possibile costruire la distribuzione di probabilit`a di P(B[A
i
) per i mela o arancio. Oltre a
questa conoscenza sono sempre note le probabilit`a a priori P(A
1
) e P(A
2
), che rappresentano semplicemente il numero totale
di mele contro il numero di aranci che sono sul nastro trasportatore. Quello che stiamo cercando `e una formula che dica
quale `e la probabilit`a di una frutta di essere mela o un arancio, avendo osservate un certo colore B.
La formula di Bayes 4.16 permette proprio questo:
P(A
i
[B) =
P(B[A
i
)P(A
i
)
P(B)
(4.17)
date le conoscenze a prori, permette di calcolare la probabilit`a a posteriori che lo stato della frutta sia A
i
data la feature
misurata B. Pertanto, osservato un certo B sul nastro trasportatore, calcolato P(A
1
[B) e P(A
2
[B) saremo inclini a decidere
che la frutta `e un mela se il primo valore sar`a maggiore del secondo (o viceversa).
P(A
1
[B) > P(A
2
[B)
ovvero:
P(B[A
1
)P(A
1
) > P(B[A
2
)P(A
2
)
`
E interessante notare che esiste un indice, data la conoscenza a priori del problema, di quanto questo sar`a soggetto ad
errori. La probabilit`a di compiere un errore data una feature osservata B sar`a dipendente dal valore massimo delle n curve
della distribuzione in B:
P(error[B) = 1 max [P(A
1
[B), P(A
2
[B), . . . , P(A
n
[B)] (4.18)
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(A
i
), sia le densit`a condizionate alla classe P(B[A
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(B[A
i
) si utilizza normalmente un approccio parametrico, facendo coincidere per esempio tale distribuzione
con quella di una gaussiana (equazione 2.16) N(
i
,
i
) di valor medio
i
e varianza
i
o attraverso 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.
Un altra classe di stimatori sono quelli binari (come nel caso dellarancio o mela): B non `e una variabile continua ma
vale 0, 1, per cui esistono solo le probabilit`a P(B = 0, 1 [A
i
).
42 CAPITOLO 4. CLASSIFICAZIONE
`
E molto importante notale che gli eventi osservati B
j
con cui costruire il classicatore bayesiano devono essere eventi
indipendenti (indipendenza condizionale), altrimenti il teorema di Bayes non risulta pi` u valido (il limite dei classicatori
bayesiani): per esempio non si possono unire classicatori che analizzino parti dellimmagine in comune o non si possono
unire lo stimatore B `e arancio insieme a B `e non rosso.
La classicazione Naive Bayes sfrutta lipotesi semplicativa di indipendenza degli attributi osservati: in questo caso dati
m variabili osservate B
1
. . . B
m
la probabilit`a che levento A
i
si verichi sar`a:
P(B
1
. . . B
m
[A
i
) = P(B
1
[A
i
) . . . P(B
m
[A
i
) =

j
P(B
j
[A
i
) (4.19)
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 Enseble 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 [36].
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.
4.5.1 ADAptive BOOSTing
Uno dei classicatori Ensemble pi` u interessanti `e AdaBoost [12]. Lidea base di AdaBoost `e assegnare in maniera iterativa il
peso a un nuovo classicatore coinvolto nelladdestramento valutando quanto bene hanno classicato nel complesso gli altri
classicatori gi`a coinvolti.
Si supponga di avere a disposizione h
t
classicatori binari, ognuno dei quali, valutando il campione x
i
, restituisca un
opinione y
i
= 1, +1. 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
)
_
(4.20)
Questa `e una votazione per maggioranza: viene scelto come vincitrice lipotesi votata da pi` u classicatori pesati da un fattore

t
Sono proprio le costanti
t
, i pesi assegnati a ogni classicatore, il risultato fornito da questa tecnica di addestramento.
Ad ogni campione in ingresso x
i
sia assegnato un peso D(i). Allinizio tutti i pesi sono uguali pari a D
0
(i) = 1/n in modo
da avere una distribuzione statistica. Le iterazioni dellalgoritmo di AdaBoost sono le seguenti:
1. si scelga (la scelta `e lasciata allutente) un classicatore h
t
e si associ, come descritto in seguito, un certo peso
t
a
tale classicatore;
2. si stimi lerrore del classicatore h
t
sulla distribuzione attraverso la funzione

t
=

y
i
=h
t
(i)
D
t
(i) (4.21)
e quando
t
> 1/2 si termini laddestramento;
3. per ogni campione x
i
si aggiorni la distribuzione associata D
t+1
(i) attraverso
D
t+1
(i) =
D
t
(i)e

t
u
i
Z
t
(4.22)
avendo indicato con u
i
= y
i
h
t
(x
i
) una funzione che indica se il classicatore h
t
ha avuto successo +1 o fallito 1 a
classicare il campione x
i
. Z
t
`e un fattore di normalizzazione scelto in modo che

D
t
= 1.
Questo algoritmo e quello che viene denito in letteratura AdaBoost.M1 o Discrete AdaBoost.
Di fatto si pu`o dimostrare che
Z
t
=

D
t
(i)e

t
u
i
(4.23)
e esattamente la quantit`a da minimizzare per ottenere un classicatore ottimo.
La scelta ottima di
t
`e quella per il quale la funzione 4.23 assume il minimo, ovvero

t
=
1
2
ln
_
1
t

t
_
=
1
2
ln
_
1 +r
t
1 r
t
_
(4.24)
4.5. ENSEMBLE LEARNING 43
con r
t
=

D
t
(i)u
i
, media ponderata in D
i
delle performance del classicatore.
AdaBoost pu`o essere esteso anche a casi di classicatori con astensione, dove le uscite possibili sono h
j
(x
i
) 1, 0, +1.
Per semplicit`a si indichino con W

gli insuccessi, W
0
le astensioni e W
+
i successi del classicatore h
t
:
W
b
=

u
i
=b
D(i) (4.25)
intesi come somma dei pesi associati al campione.
Anche in questo caso Z verrebbe minimizzato con la stessa quantit`a

t
=
1
2
ln
_
W
+
W

_
(4.26)
e con tale scelta Z varebbe
Z = W
0
+ 2
_
W

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

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

+ 1/2W
0
_
(4.28)
che permette di ssare un limite superiore a Z
t
.
Se il classicatore h
t
non restituisce solo la classe, ma anche un livello di condenza della detection, lalgoritmo si trasforma
nel Real AdaBoost, dove le prestazioni sono normalmente migliori rispetto al Discrete.
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 (e le sue varianti) sono di fatto una
tecnica di ottimizzazione non-lineare di tipo discesa del gradiente (gradient descent optimizers).
AdaBoost, come per le 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.
Capitolo 5
Punti Caratteristici
Lindividuazione di punti caratteristici (keypoint detection), la loro caratterizzazione (feature description) e inne confron-
to (mathing) 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
= argmin
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 moltiplici 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).
44
5.1. F

ORSTNER-HARRIS 45
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 [20] 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 [29]).
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)
46 CAPITOLO 5. PUNTI CARATTERISTICI
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 [24], 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 perch`e 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 logaritimici 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.
5.3. SURF 47
(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 [3] 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.
48 CAPITOLO 5. PUNTI CARATTERISTICI
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.
Capitolo 6
Pin-Hole Camera
In questo capitolo si aronta il problema di formalizzare la relazione tra i punti dellimmagine con la loro posizione nel mondo,
ovvero poter determinare la zona del mondo associata a un punto dellimmagine o viceversa capire larea dellimmagine
associata a un punto nel mondo.
Il modello 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, 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, 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 per esprimere le coordinate mondo.
( u
i
, v
i
)

non sono le coordinate immagine ma sono ancora delle coordinate intermedie ed `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.
In mancanza di informazioni su f, D
u
e D
v
si tende 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 della calibrazione.
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)
49
50 CAPITOLO 6. PIN-HOLE CAMERA
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 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. Nella sezione 1.4 sono state introdotte le coordinate omogenee. Grazie a questo articio matematico
si pu`o facilmente mostrare 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. Con i sensori digitali moderni si pone solitamente lo skew factor k

= 0 essendo un
fattore che tiene conto del fatto che langolo tra gli assi nel sensore non siano esattamente 90 gradi.
La matrice K `e una matrice triangonale superiore, denita da 5 parametri.
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) 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.
In questa modellazione in ogni caso non si `e tenuto conto dei contributi dovuti alla distorsione della lente. Il modello della
pin-hole camera `e valido solamente se le coordinate immagine che si utilizzano si riferiscono a immagini senza distorsione.
Per una discussione dettagliata sulla distorsione introdotta dalle ottiche e metodi per rimuoverla si faccia riferimento alla
seguente sezione 6.1.
6.1 Distorsione della lente
La quasi totalit`a delle telecamere commerciali, ma in generale qualsiasi lente, devia dal modello della pin-home camera, in
particolare nella condizione di ampi angoli di visuale. La distorsione `e dovuta alle non idealit`a nella fase di produzione della
lente, ma di fatto ottenere una lente con focale corta non distorcente `e un processo estremamente costoso.
Tali non idealit`a generano una distorsione non lineare dicilmente modellizzabile, e i produttori di lenti e camere non
danno normalmente informazioni geometriche accurate su come considerare 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 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 trascurabili, mentre la distorsione radiale `e sempre presente, e man mano che la focale diventa corta in
generale (non `e ovviamente vero sempre) aumenta di intensit`a.
Questa sezione si occupa di ricavare una releazione generale tra il punto reale (inteso come se fosse preso con una lente
ideale) (u
u
, v
u
) e leettivo punto immagine distorto (inteso come punto eettivamente acquisito dal sensore con la lente non
ideale) (u
d
, v
d
).
Tipicamente il modello di distorsione dellimmagine pu`o essere diviso per contributi:
radial distortion Il punto ideale (u
u
, v
u
) viene spostato radialmente nel punto immagine distorto (u
d
, v
d
) attraverso una
funzione del solo raggio r
d
distanza tra il punto e il centro di distorsione (che in generale `e diverso dal centro geometrico
dellimmagine ma anche dal principal point). Tale funzione pu`o essere denita come:
r
u
r
d
= f
d
(r
d
) (6.7)
6.2. COORDINATE MONDO E COORDINATE CAMERA 51
u
v
(0, 0)
(u
0
, v
0
)
Figura 6.2: Coordinate Immagine (Image coordinates)
Lequazione della distorsione radiale `e non lineare ma pu`o essere approssimata attaverso i primi termini dello sviluppo
in serie (Brown-Conrady model [4]). La funzione f
d
, rapporto tra il raggio ideale r
u
e il raggio acquisito r
d
, viene
espressa in serie di Taylor come
f
d
(r) = 1 +k
1
r
2
+k
2
r
4
+k
3
r
6
+. . . (6.8)
La presenza delle sole potenze multiple di 2 `e dovuta alla parit`a della funzione f
d
.
Il punto nellimmagine dedistorta (u
u
, v
u
) si ottiene di conseguenza:
_
u
u
= u
d
f(r
d
)
v
u
= v
d
f(r
d
)
(6.9)
tangential lens distortion La distorsione tangenziale introdotta dalla lente normalmente `e trascurabile. Quando uti-
lizzata, il modello pi` u usato `e sempre il Brown-Conrady, nel quale viene aggiunta una componente tangenziale alla
distorsione radiale troncata ai primi termini:

(t)
u
= 2p
1
uv +p
2
(r
2
+ 2u
2
)

(t)
v
= p
1
(r
2
+ 2v
2
) + 2p
2
uv
(6.10)
decentering distortion
`
E normalmente causata dallassemblaggio errato della lente (i punti sono aetti sia da distorsione
radiale che tangenziale).
Di fatto la distorsione radiale `e dominante, e in buona parte delle applicazioni i primi termini sono pi` u che sucienti.
Normalmente lequazione inversa della 6.8 `e necessaria per ottenere unimmagine dedistorta (vedi 1.10): per questa ragione
normalmente in letteratura e nei toolbox di calibrazione disponibili, per comodit`a, viene ricavata lespansione in serie della
funzione opposta f
u
(r
u
). In entrambi i casi essendo funzioni radiali possono essere valutati solo i termini di potenza pari.
Alternativamente `e possibile generare una LookUpTable per rimuovere la distorsione cercando le radici reali del polinomio
per ogni pixel dellimmagine dedistorta.
Anche se di fatto non esiste uno standard, i coecienti possono essere normalizzati per essere indipendenti dalla risoluzione
dellimmagine e per tenere conto del fatto che i pixel potrebbero non essere quadrati.
I coecienti della distorsione sono ricavati con diverse tecniche disponibili in letteratura: normalmente si usa un mini-
mizzatore non lineare e si itera no a che tutte le linee dellimmagine non diventano rette (plumb-line method, si veda per
esempio [8]).
Tra una formulazione del modello della distorsione e la sua opposto, viene usata una oppure laltra a seconda della
relazione che si cerca. Sia p un punto distorto in coordinate immagine e x punto in coordinate mondo reale, le equazioni per
ricavare i parametri della lente si ottengono attraverso una funzione costo nella forma
min
f,h
|p f(h(x))|
2
(6.11)
o altrimenti, la sua opposta
min
f,h
|f(p) h(x)|
2
(6.12)
dove nel primo caso f `e la funzione che aggiunge la distorsione e nel secondo `e lequazione che la toglie. La prima formulazione
`e comoda per ricavare direttamente una LookUpTable che rimuove la distorsione dai punti dellimmagine, la seconda per
ricavare il punto distorto dato il punto non distorto.
Come ultima nota, in diversi articoli viene proposto, come approssimazione, di far coincidere il centro di distorsione e il
principal point.
52 CAPITOLO 6. PIN-HOLE CAMERA
x
y
z
Figura 6.3: Coordinate Camera (Camera coordinates)
x
y
z
Figura 6.4: Coordinate Mondo ISO 8855 (World coordinates)
6.2 Coordinate Mondo e Coordinate Camera
Quando si analizzano immagini 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.
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 da cui 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, che la camera possa essere


ruotata in maniera arbitraria e non coincidere con gli assi del sistema e inne si siano cambiati di segno e di orientazione gli
assi. Il cambiamento degli assi `e dettata dalle esigenze delle 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.13)
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 sezione B), mentre il vettore

t
0
= Rt
0
(6.14)
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 hanno determinante 1, conservano 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 34 (sfruttando lomogeneit`a delle coordinate).
Grazie a questa rappresentazione, `e possibile scrivere in maniera estremamente compatta la proiezione di un punto in
coordinate mondo (x
i
, y
i
, z
i
)

in coordinate immagine (u
i
, v
i
)

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

t
0
]
_

_
x
i
y
i
z
i
1
_

_
(6.15)
Da questa equazione risulta abbastanza esplicito che a 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 .


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
6.2. COORDINATE MONDO E COORDINATE CAMERA 53
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.16)
avendo denito P = K[R[

t
0
] matrice proiettiva (camera matrix) che verr`a usata in seguito [31]. La matrice P `e anche essa
una matrice 3 4 ed, essendo rettangolare, non `e invertibile.
`
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 [27].
Per quanto riguarda linversione, se si considera il sistema di partenza (6.13), 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.17)
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.18)
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.19)
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 comunque fornire qualche vincolo aggiuntivo (in
teoria i vincoli sarebbero 6).
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.20)
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.21)
dove s = sgn(r
1
r
4
+r
2
r
5
), mentre laltra soluzione ha esattamente i segni invertiti.
54 CAPITOLO 6. PIN-HOLE CAMERA
6.2.2 Risultati Notevoli
Possiamo usare la matrice di rotazione e lequazione della pin-hole (6.16) 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.22)
funzione scritta in maniera esplicita del modello della pin-hole camera.
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:
lim
x
f
pm
(x, y, z) =
_
k
u
r
0
r
6
+u
0
, k
v
r
3
r
6
+v
0
_
(6.23)
Usando le matrici omogenee `e possibile ottenere lo stesso risultato, con un formalismo pi` u compatto.
Prendendo la trasformazione prospettica 6.15 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.24)
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.25)
`
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:
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.26)
linea dellorizzonte.
Punti e Linee degeneri
Come un punto nellimmagine proiettata degenera in una linea, una linea 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.27)
rappresenta il piano degenere (con normale come da equazione) in tre dimensioni che passa per il pin-hole.
6.3. TRASFORMAZIONI OMOGRAFICHE NOTEVOLI 55
6.3 Trasformazioni omograche notevoli
`
E possibile fare un breve elenco di quali trasformazioni utili in visione articiale si possono rappresentare attraverso una
omograa. 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, `e
possibile comunque ricavare implicitamente la matrice di tali trasformazioni conoscendo come 4 punti dellimmagine (almeno)
vengano trasformati (ref. 6.4.1).
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 P
Z
della proiezione prospettica di un piano perspective mapping, relativa al piano z costante dove
normalmente z = 0 essendo il piano del suolo si pu`o ricavare in maniera molto semplice in quanto:
P
Z
= H = K R
Z
(6.28)
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.29)
avendo indicato il vettore

t come in equazione 6.14.
Questa matrice `e molto importante e verr`a discussa diusamente nelle sezione 6.4 della calibrazione.
La trasformazione 6.28 essendo un omograa `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.
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.28 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.30)
Questi limiti sono i vanishing point (cfr. 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.31)
le trasformazioni omograche infatti si combinano con la semplice moltiplicazione tra matrici.
Questa trasformazione `e la base di tecniche come la Ground Plane Stereo.
Espandendo lequazione 6.31 con 6.28:
H = K
2
R
Z2
R
Z
1
1
K
1
1
(6.32)
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). Tale tecnica tuttavia
pu`o servire per individuare anche ostacoli verticali allinterno di tecniche come il Motion Stereo.
`
E sempre interessante notare come anche il modello pi` u semplice della pin-hole camera 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 (ref. 6.4).
56 CAPITOLO 6. PIN-HOLE CAMERA
Retticazione Lequazione generica che mette in relazione i punti immagine tra due punti di vista 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.33)
dove t
1
t
2
`e il vettore che congiunge i due pin-hole. Trattazione pi` u accurata viene lasciata nel capitolo 7 della 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),
`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 `e necessario generare la matrice omograca
H = K
2
R
2
R
1
1
K
1
1
(6.34)
per poter ricavare tutti i punti dellimmagine 1 dai punti dellimmagine 2 (per voler generare unimmagine 1 densa), ovvero
per ogni (u
1
, v
1
) dellimmagine che vogliamo generare applichiamo la trasformazione omograca e ricaviamo il (u
2
, v
2
) del-
limmagine sorgente. In questo modo andiamo a trasformare i parametri di una camera espressi con K
2
R
2
in una immagine
di una camera virtuale di parametri K
1
R
1
.
Un metodo per ottenere la matrice Hsenza la conoscenza dei parametri intrinseci ed estrinseci delle due camera `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 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. 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 trovare (sono pi` u di una solitamente) combinazioni di angoli che la
generano.
Se si conosce la matrice dei parametri intrinseci K `e immediato ricavare i parametri intrinseci della camera.
Zhang 6.4.4 propone un modo per ricavare i parametri intrinseci se si conoscono le posizioni relative di punti di uno
stesso piano osservato da pi` u punti di vista.
6.4.1 Calibrazione implicita
Lidea base della Direct Linear Transformation proposta da Abdel-Aziz e Karara [1] permette di calcolare direttamente
i coecienti delle matrici 6.37, 6.41 o della matrice 6.16 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.16 `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
6.4. CALIBRAZIONE 57
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.35)
`
E possibile rigirare il sistema 6.35 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.36)
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.28) come

_
_
u
i
v
i
1
_
_
= H
_
_
x
i
y
i
1
_
_
(6.37)
Come si `e visto nella sezione 6.3 tale matrice `e molto utile perch`e 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.37 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.38)
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.38 deriva anche da considerazioni puramente geometriche in quanto i vettori devono essere paralleli:
m

Hm = 0 (6.39)
Questa formulazione compatta `e quella che normalmente viene indicata come DLT [15] e si applica a tutte quelle trasforma-
zioni lineari conosciute a meno di un fattore moltplicativo 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.37 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.40)
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.
58 CAPITOLO 6. PIN-HOLE CAMERA
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.
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.29) 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.41)
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, se riarrangiato, fornisce due vincoli
lineari:
_
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
_
(r
0
, r
1
, r
3
, r
4
, r
6
, r
7
, p
x
, p
y
, p
z
)

= 0 (6.42)
(Abdel-Aziz e Karara [1])
`
E dunque possibile costruire un sistema di 2 N 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.43)
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.38 `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 [15] ricordano che la normalizzazione nella DLT `e un passo
essenziale e non si pu`o ritenere puramente opzionale.
Il calcolo dellomograa in equazione 6.40 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.38) 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. Questo punto richiede
investigazioni ulteriori. La versione del sistema 6.38 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
argmin
H

|m

i
Hm
i
|
2
(6.44)
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 Extimator o MLE).
6.4. CALIBRAZIONE 59
Tuttavia quando entrambi i dati sono aetti da rumore la funzione costo 6.44 non `e ottimale. Il modo pi` u semplice
per estendere la soluzione precedente consisten nel cercare di minimizzare lerrore di trasferimento diretto e lerrore di
trasferimento inverso (symmetric transfer error):
argmin
H

|m

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

i
|
2
(6.45)
In questo modo si tengono conto di entrambi i contributi nella soluzione del problema.
Questa tuttavia, non `e la soluzione ottima, 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
:
argmin
H

|m

i
m

i
|
2
+|m
i
m
i
|
2
(6.46)
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.47)
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.44. Esplicitando la trasformazione omograca si ottiene [15]
J
i
=
r
h
=
1
w

_
m

i
0 u

i
m

i
/ w

0 m

i
v

i
m

i
/ w

_
(6.48)
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.3 `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 [15]

h
=
_

i

1
i
J
i
_
+
(6.49)
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 [35] 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
60 CAPITOLO 6. PIN-HOLE 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.50)
e di conseguenza `e possibile creare vincoli sotto questa condizione usando le coordinate distorte piuttosto che quelle non
distorte.
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.51)
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.52)
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.21.
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 [39] e contemporaneamente Sturm e Maybank [32] 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 [35] e altri [37].
Questa tecnica calcola la matrice H (vedi 6.37) appartenente a un piano (esempio una griglia di calibrazione con marker
equispaziati) e da questa cerca di ricavare i parametri intriniseci in maniera esplicita. Come gi`a discusso in precedenza la
matrice H, trasformazione omograca di un piano, possiede 8 gradi di libert`a, tuttavia non direttamente riconducibili ai
parametri da ricavare.
`
E possibile mostrare una interessante propriet`a della matrice H esplicitando lequazione 6.28:
H =
_
h
1
h
2
h
3

= K
_
r
1
r
2
t

(6.53)
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 r
1
e r
2
.
Nonostante la presenza del fattore `e infatti possibile esprimere delle relazioni basate sullortogonalit`a tra i vettori
colonna 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.54)
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.55)
matrice simmetrica (e come tale rappresenta una conica, e in eetti `e la conica assoluta [25]).
Le 4 (o 5 incognite non trascurando lo skew) della matrice W sotto i 2 vincoli 6.54 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
6.4. CALIBRAZIONE 61
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.56)
Da ogni griglia pertanto `e possibile ricavare tutti i parametri e misurare in questo mdoo 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.57)
La matrice Q comunque `e aetta da rumore.
`
E necessario ricavare R tale che
min
R
|QR|
F
R

R = I
(6.58)
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.59)
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
Extimator 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 4 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)
62
7.2. IL PIANO EPIPOLARE 63
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.18), `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.18 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.19.
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.
64 CAPITOLO 7. VISIONE STEREOSCOPICA
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 [21], 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 perch`e 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)
7.3. MATRICE ESSENZIALE E MATRICE FONDAMENTALE 65
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.
66 CAPITOLO 7. VISIONE STEREOSCOPICA
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 [14] 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 perch`e 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.
7.4. RICOSTRUZIONE CON CAMERE RETTIFICATE 67
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 di massima verosomiglianza
(maximum likelihood) 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.
Alternativamente alla Maximum Likelihood in letteratura viene spesso usata lapprossimazione al primo grado dellerrore
di riproiezione (Sampson-error, sezione 3.1.4), 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.7) 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 [22] 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)
68 CAPITOLO 7. VISIONE STEREOSCOPICA
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 [11]. 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.
7.4. RICOSTRUZIONE CON CAMERE RETTIFICATE 69
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 B.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)
70 CAPITOLO 7. VISIONE STEREOSCOPICA
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. Lintersezione
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 soluzione ottima (Maximum Likelihood Extimation) `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)
7.6. ODOMETRIA VISUALE E BUNDLE ADJUSTMENT 71
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, ottenuta per esempio con la pseudoinversa, trover`a un minimo assoluto ma non ottimo
(per esempio non garantisce che la matrice di rotazione sia ortonormale). Lutilizzo di un minimizzatore non-lineare (per
esempio Levenberg-Marquardt, capitolo 3.1.2) a 6 parametri (3 rotazioni e 3 traslazioni) fornisce una stima migliore della
rototraslazione.
La minimizzazione tuttavia viene attuata tra coordinate mondo e non in coordinate immagine, dove di fatto nasce il
rumore. Per questa ragione `e necessario fare un ulteriore passo di Maximum Likelihood Extimation minimizzando lerrore in
coordinate immagine:

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

1
m

1
|
2
+|m

2
m

2
|
2
(7.56)
In questo modo viene sia minimizzato lo spostamento che eseguono le camere, sia la coordinata tridimensionale di ogni singola
feature nel mondo. La funzione costo sovrastante pu`o essere semplicata notevolmente nel caso di immagini retticate.
Esaminiamo a questo punto il caso in cui non siano solo due gli istanti di tempo coinvolti nella minimizzazione ma n.
Il concetto di Bundle Adjustment, introdotto dalla fotogrammetria e poi acquisito dalla Computer Vision (si veda lot-
timo survey [34]), indica una minimizzazione multivariabile in modo da ottenere contemporaneamente una ricostruzione
tridimensionale e le pose relative della camere in una sequenza di immagini.
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 (MLE).
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.
A dierenza della Visual Odometry tutte le immagini della sequenza vengono 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.
Appendice A
Formule di Prostaferesi
In questa appendice riporto una raccolta di formule di prostaferesi, trigonometriche e di Werner.
Addizione di angoli noti:
sin(a ) = sin a
cos(a ) = cos a
sin(a

2
) = cos a
cos(a

2
) = sin a
tan(a ) = tan a
tan(a

2
) = cot a
(A.1)
Potenze notevoli:
sin
2
+ cos
2
= 1
cos
2
sin
2
= cos 2
cos
2
=
1
2
(1 + cos 2)
sin
2
=
1
2
(1 cos 2)
(A.2)
Scomposizione di somma e dierenza di angoli:
sin(a b) = sin a cos b cos a sin b
cos(a b) = cos a cos b sin a sin b
tan(a b) =
tan a tan b
1 tan a tan b
sin(2a) = 2 sin a cos a
(A.3)
Scomposizione di prodotto:
sin a sin b =
1
2
cos(a b)
1
2
cos(a +b)
cos a cos b =
1
2
cos(a b) +
1
2
cos(a +b)
sin a cos b =
1
2
sin(a b) +
1
2
sin(a +b)
(A.4)
72
Appendice B
Matrici di Rotazione
v
v

y
x

v
y
x
y

Figura B.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 B.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
_
(B.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 B.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.
La versione pi` u diusa in ambito robotico `e quella degli angoli di Tait-Bryan e si veda la sezione seguente B.1 per i
dettagli. Questo sistema di angoli tuttavia presenta alcune singolarit`a che ne limitano lutilizzo. Alternativamente la sintassi
proposta da Rodrigues (sezione B.2) o i quaternioni (sezione B.3) possono essere usati per superare questo problema.
1
Bisogna fare molta attenzione perche la trasformazione inversa/trasposta pu`o, in letteratura, essere indicata come matrice di rotazione
73
74 APPENDICE B. MATRICI DI ROTAZIONE
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
_
_
(B.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
(B.3)
B.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 [19]) 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 perch`e 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
_
_
(B.4)
La matrice di rotazione dellangolo pitch (asse Y):
R
y
= R

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

=
_
_
cos sin 0
sin cos 0
0 0 1
_
_
(B.6)
(La Valle [19], 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).
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.
B.2. RODRIGUES ROTATION FORMULA 75
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
_
_
(B.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 B.3, si pu`o
esprimere come prodotto di:
R =
bc
(R

)
1
(R

)
1
(R

)
1
(B.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
_
_
(B.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 B.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 B.7 invece soddisfa
a pieno questo scopo.
Va ribadito che la matrice R, espressa come nella formula B.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.
B.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) (B.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)
_
_
(B.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
_
_
(B.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|
(B.13)
B.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 B.10 si ottiene
R I + sin [k]

I + [w]

=
_
_
1 w
z
w
y
w
z
1 w
z
w
y
w
z
1
_
_
(B.14)
76 APPENDICE B. MATRICI DI ROTAZIONE
B.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
_

_
(B.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 B.15 pu`o essere visto come composto da una parte vettoriale v R
3
e da una parte scalare s:
q =
_
s
v
_
(B.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
_
(B.17)
Il complesso coniugato di un quaternione q

`e
q

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

q =
_
s
2
+v
2
(B.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)
_
(B.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
_
_
(B.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
)
(B.22)
Le rotazioni possono venire rappresentate da quaternioni usando quaternioni di lunghezza unitaria, tali cio`e
q

q = 1 (B.23)
Appendice C
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.13);
E Matrice Essenziale (vedi eq. 7.11);
F Matrice Fondamentale (vedi eq. 7.8);
P Matrice Proiettiva (vedi eq. 6.16);
Matrice di Permutazione (vedi eq. B.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.13);
E Essential Matrix (see eq. 7.11);
F Fundamental Matrix (see eq. 7.8);
P Camera Matrix (see eq. 6.16);
Permutation Matrix (see eq. B.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;
77
78 APPENDICE C. NOMENCLATURA
Pitch angle;
Yaw angle;
Roll angle.
Bibliograa
[1] Y. Abdel-Aziz and H. 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,
Jan. 1971.
[2] D. Bates and D. Watts. Nonlinear regression analysis and its applications. Wiley series in probability and mathematical
statistics. Wiley, New York [u.a.], 1988.
[3] H. Bay, A. Ess, T. Tuytelaars, and L. Van Gool. Speeded-up robust features (surf). Comput. Vis. Image Underst.,
110:346359, June 2008.
[4] D. C. Brown. Decentering distortion of lenses. Photogrammetric Engineering, 32(3):444462, 1966.
[5] S. Campbell and C. Meyer. Generalized inverses of linear transformations. Society for Industrial Mathematics, 2009.
[6] Z. Chen. Bayesian ltering: From kalman lters to particle lters, and beyond. Statistics, pages 169, 2003.
[7] C. Cortes and V. Vapnik. Support-vector networks. Machine Learning, 20:273297, 1995. 10.1007/BF00994018.
[8] F. Devernay and O. D. Faugeras. Straight lines have to be straight. Machine Vision and Applications, 13(1):1424,
2001.
[9] M. A. Fischler and R. 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.
[10] M. A. Fischler and R. 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.
[11] R. B. Fisher and K. Konolige. Range sensors. In B. Siciliano and O. Khatib, editors, Springer Handbook of Robotics,
pages 521542. Springer, 2008.
[12] Y. Freund and R. 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.
[13] G. H. Golub and C. F. Van Loan. Matrix Computations (Johns Hopkins Studies in Mathematical Sciences)(3rd Edition).
The Johns Hopkins University Press, 3rd edition, Oct. 1996.
[14] R. Hartley. In defence of the 8-point algorithm. In Computer Vision, 1995. Proceedings., Fifth International Conference
on, pages 10641070, June 1995.
[15] R. I. Hartley and A. Zisserman. Multiple View Geometry in Computer Vision. Cambridge University Press, ISBN:
0521540518, second edition, 2004.
[16] P. V. C. Hough. Machine Analysis of Bubble Chamber Pictures. In International Conference on High Energy Accelerators
and Instrumentation, CERN, 1959.
[17] P. Huber. Robust statistical procedures. CBMS-NSF regional conference series in applied mathematics. Society for
Industrial and Applied Mathematics, 1996.
[18] S. Julier and J. 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.
[19] S. M. LaValle. Planning Algorithms. Cambridge University Press, Cambridge, U.K., 2006. Available at
http://planning.cs.uiuc.edu/.
79
80 BIBLIOGRAFIA
[20] T. Lindeberg. Scale-Space Theory in Computer Vision. Kluwer Academic Publishers, Norwell, MA, USA, 1994.
[21] Longuet. A computer algorithm for reconstructing a scene from two projections. Nature, 293:133135, Sep. 1981.
[22] C. Loop and Z. Zhang. Computing rectifying homographies for stereo vision. Computer Vision and Pattern Recognition,
IEEE Computer Society Conference on, 1:1125, 1999.
[23] M. I. A. Lourakis. A brief description of the levenberg-marquardt algorithm implemened by levmar. Matrix, 3:2, 2005.
[24] D. G. Lowe. Distinctive image features from scale-invariant keypoints. International Journal of Computer Vision,
60:91110, 2004.
[25] 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.
[26] P. C. Mahalanobis. On the generalised distance in statistics. In Proceedings National Institute of Science, India,
volume 2, pages 4955, Apr. 1936.
[27] H. Mallot, H. B ultho, J. Little, and S. Bohrer. Inverse perspective mapping simplies optical ow computation and
obstacle detection. Biological cybernetics, 64(3):177185, 1991.
[28] G. Medioni and S. B. Kang. Emerging Topics in Computer Vision. Prentice Hall PTR, Upper Saddle River, NJ, USA,
2004.
[29] K. Mikolajczyk and C. Schmid. An ane invariant interest point detector. In Proceedings of the 7th European Conference
on Computer Vision, Copenhagen, Denmark, pages 128142. Springer, 2002. Copenhagen.
[30] P. J. Rousseeuw. Least Median of Squares Regression. Journal of the American Statistical Association, 79(388):871880,
Dec. 1984.
[31] T. 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.
[32] P. Sturm and S. 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.
[33] R. Szeliski. Computer vision : Algorithms and applications. Computer, 5:832, 2010.
[34] B. Triggs, P. F. McLauchlan, R. I. Hartley, and A. 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.
[35] 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.
[36] L. G. Valiant. A theory of the learnable. Commun. ACM, 27:11341142, November 1984.
[37] 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.
[38] G. Welch and G. Bishop. An introduction to the kalman lter. Technical report, University of North Carolina at Chapel
Hill, Chapel Hill, NC, USA, 1995.
[39] Z. Zhang. Flexible camera calibration by viewing a plane from unknown orientations. volume 1, pages 666673 vol.1,
1999.