21
Andrea Fusiello Visione computazionale Tecniche di ricostruzione tridimensionale

Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

Embed Size (px)

Citation preview

Page 1: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

700.20A

ndrea FusielloV

isione computazionale

La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti a produrre una rappresentazione della struttura solida del mondo tridimensionale esperito attraverso proiezioni bidimensionali di esso, le immagini.

Il libro, pensato per l’adozione in un corso universitario, ma utile anche a chi, al di fuori dall’ambito accademico, si trovi ad applicare la visione alla soluzione di problemi pratici, affronta in modo approfondito alcuni di questi metodi, con un livello di dettaglio da consentirne l’implementazione e con una propensione per l’approccio geometrico.

Filo conduttore della trattazione è il processo di acquisizione della forma (shape) da molteplici elementi visuali, quali la stereoscopia, l’ombreggiatura, il moto. Il libro illustra inoltre una delle più moderne tecniche di ricostruzione della struttura della scena a partire da una pluralità di immagini (structure from motion).

Andrea Fusiello insegna Visione computazionale sin dal 2000, dapprima all’Università di Verona, e successivamente all’Università di Udine, dove è at-tualmente Professore associato di Sistemi di Elaborazione delle Informazioni. Ha pubblicato più di 100 articoli su queste tematiche e nel 2011 ha collabo-rato alla fondazione di una startup che applica la visione computazionale alla soluzione di problemi pratici.

E 29,00 (U)

Andrea Fusiello

Visione computazionaleTecniche di ricostruzione tridimensionale

FrancoAngeliLa passione per le conoscenze

700.20_17x24.indd 1 03/05/13 15:43

Page 2: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

Informazioni per il lettore

Questo file PDF è una versione gratuita di sole 20 pagine ed è leggibile con

La versione completa dell’e-book (a pagamento) è leggibile con Adobe Digital Editions. Per tutte le informazioni sulle condizioni dei nostri e-book (con quali dispositivi leggerli e quali funzioni sono consentite) consulta cliccando qui le nostre F.A.Q.

Page 3: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

Collana di informatica – Nuova serie

diretta da Arrigo L. Frisiani Comitato scientifico: Giovanni Adorni (Università di Genova), Luigi Benedicenti (University of Regina), Maurelio Boari (Università di Bologna), Giacomo Bucci (Univer-sità di Firenze), Virginio Cantoni (Università di Pisa), Paolo Ciancarini (Università di Bologna), Gianni Conte (Università di Parma), Paolo Cor-sini (Università di Pisa), Fabio Crestani (Università della Svizzera Italia-na), Rita Cucchiara (Università di Modena e Reggio Emilia), Valeria De Antonellis (Università di Brescia), Gianluca Foresti (Università di Udine), Alfonso Fuggetta (Politecnico di Milano), Andrea Fusiello (Università di Verona), Salvatore Gaglio (Università di Palermo), Marco Gori (Univer-sità di Siena), Enrico Grosso (Università di Sassari), Giovanni Guida (Università di Brescia), Giuseppe Iazeolla (Università di Roma “Tor Ver-gata”), Sebastiano Impedovo (Università di Bari), Pieter Kritzinger (University of Cape Town), Massimo Maresca (Università di Padova), Paolo Maresca (Università di Napoli Federico II), Giuseppe Mastronardi (Politecnico di Bari), Antonino Mazzeo (Università di Napoli Federico II), Massimo Melucci (Università di Padova), Marco Mezzalama (Politecnico di Torino), Stefano Mizzaro (Università di Udine), Alfredo Petrosino (Università di Napoli “Parthenope”), Antonio Puliafito (Università di Messina), Gabriella Sanniti di Baja (CNR - Istituto di Cibernetica), Nello Scarabottolo (Università di Milano), Fabrizio Sebastiani (CNR - Istituto di Scienza e Tecnologie dell’Informazione), Giovanni Semeraro (Univer-sità di Bari), Alberto Sillitti (Libera Università di Bolzano), Giancarlo Succi (Libera Università di Bolzano), Carlo Tasso (Università di Udine), Genoveffa Tortora (Università di Salerno), Marco Vanneschi (Università di Pisa), Mario Vento (Università di Salerno), Alessandro Verri (Univer-sità di Genova), Lorenzo Vita (Università di Catania), Renato Zaccaria (Università di Genova).

Page 4: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

I lettori che desiderano informarsi sui libri e le riviste da noi pubblicati possono consultare il nostro sito Internet: www.francoangeli.it e iscriversi nella home page

al servizio “Informatemi” per ricevere via e-mail le segnalazioni delle novità.

Page 5: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

Andrea Fusiello

Visione computazionaleTecniche di ricostruzione tridimensionale

Page 6: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

Codice MATLAB©, materiale aggiuntivo ed errata corrige si trovano in rete all’indirizzo http://tinyurl.com/visio-comp

Progetto grafico di copertina: Alessandro Petrini

1a edizione. Copyright © 2013 by FrancoAngeli s.r.l., Milano, Italy.

Copyright © 2013 by FrancoAngeli s.r.l., Milano, Italy.

L’opera, comprese tutte le sue parti, è tutelata dalla legge sul diritto d’autore. L’Utente nel momento in cui effettua il download dell’opera accetta tutte le condizioni della licenza d’uso dell’opera previste e

comunicate sul sito www.francoangeli.it.

Page 7: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

Indice

Prefazione 13

Ringraziamenti 15

1 Introduzione 171.1 Il prodigio della visione . . . . . . . . . . . . . . . . . . . . 171.2 Visione computazionale di basso livello . . . . . . . . . . . 181.3 Applicazioni tangibili . . . . . . . . . . . . . . . . . . . . . 20

2 Formazione dell’immagine 212.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 212.2 Geometria della formazione dell’immagine . . . . . . . . . 212.3 Immagini digitali . . . . . . . . . . . . . . . . . . . . . . . 232.4 Lenti sottili . . . . . . . . . . . . . . . . . . . . . . . . . . 242.5 Fotometria della formazione dell’immagine . . . . . . . . . 27

3 Calibrazione della fotocamera 303.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 303.2 Modello stenopeico della fotocamera . . . . . . . . . . . . . 30

3.2.1 Modello semplificato . . . . . . . . . . . . . . . . . 313.2.2 Modello generale . . . . . . . . . . . . . . . . . . 333.2.3 Proprietà della matrice di proiezione prospettica . . . 37

3.3 Calibrazione della fotocamera . . . . . . . . . . . . . . . . 393.3.1 Metodo DLT . . . . . . . . . . . . . . . . . . . . . 403.3.2 Raffinamento non lineare . . . . . . . . . . . . . . . 42

5

Page 8: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

3.3.3 Estrazione dei parametri . . . . . . . . . . . . . . . 423.3.4 Distorsione radiale . . . . . . . . . . . . . . . . . . 43

4 Stereopsi: geometria 494.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 494.2 Triangolazione . . . . . . . . . . . . . . . . . . . . . . . . 50

4.2.1 Metodo linear-eigen . . . . . . . . . . . . . . . . . 524.3 Geometria epipolare . . . . . . . . . . . . . . . . . . . . . 534.4 Rettificazione epipolare . . . . . . . . . . . . . . . . . . . . 57

4.4.1 Rettificazione delle MPP . . . . . . . . . . . . . . . 574.4.2 Rettificazione delle immagini . . . . . . . . . . . . 59

5 Posa relativa 645.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 645.2 Matrice essenziale . . . . . . . . . . . . . . . . . . . . . . 65

5.2.1 Fattorizzazione della matrice essenziale . . . . . . . 675.2.2 Calcolo della matrice essenziale . . . . . . . . . . . 69

5.3 Metodo di Horn . . . . . . . . . . . . . . . . . . . . . . . . 71

6 Omografie tra immagini 756.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 756.2 Omografia indotta da un piano . . . . . . . . . . . . . . . . 756.3 Calcolo dell’omografia (DLT) . . . . . . . . . . . . . . . . 786.4 Parallasse planare . . . . . . . . . . . . . . . . . . . . . . . 806.5 Calibrazione di Zhang . . . . . . . . . . . . . . . . . . . . . 826.6 Moto e struttura da omografia . . . . . . . . . . . . . . . . . 84

7 Posa esterna 887.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 887.2 Posa assoluta . . . . . . . . . . . . . . . . . . . . . . . . . 89

7.2.1 Metodo procustiano . . . . . . . . . . . . . . . . . 907.3 Posa esterna . . . . . . . . . . . . . . . . . . . . . . . . . . 91

7.3.1 Metodo lineare di Fiore . . . . . . . . . . . . . . . . 917.3.2 Metodo non lineare di Lowe . . . . . . . . . . . . . 937.3.3 Metodo diretto . . . . . . . . . . . . . . . . . . . . 95

8 Punti salienti 1008.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 1008.2 Metodo di Harris e Stephens . . . . . . . . . . . . . . . . . 101

6

Page 9: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

8.2.1 Accoppiamento . . . . . . . . . . . . . . . . . . . . 1048.3 Algoritmo di tracciamento KLT . . . . . . . . . . . . . . . 1078.4 Scale Invariant Feature Transform (SIFT) . . . . . . . . . . 109

8.4.1 Spazio-scala . . . . . . . . . . . . . . . . . . . . . 1098.4.2 Filtraggio LoG . . . . . . . . . . . . . . . . . . . . 1108.4.3 Rivelatore . . . . . . . . . . . . . . . . . . . . . . . 1138.4.4 Descrittore . . . . . . . . . . . . . . . . . . . . . . 1168.4.5 Accoppiamento . . . . . . . . . . . . . . . . . . . . 118

9 Stereopsi: calcolo della disparità 1219.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . 1219.2 Accoppiamento di finestre . . . . . . . . . . . . . . . . . . 124

9.2.1 Metriche di accoppiamento . . . . . . . . . . . . . . 1259.2.2 Compromesso affidabilità - accuratezza . . . . . . . 1289.2.3 Indicatori di affidabilità . . . . . . . . . . . . . . . . 1329.2.4 Occlusioni . . . . . . . . . . . . . . . . . . . . . . 132

9.3 Accoppiamento globale . . . . . . . . . . . . . . . . . . . . 134

10 Mosaicatura e sintesi di immagini 13810.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 13810.2 Mosaici . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

10.2.1 Allineamento . . . . . . . . . . . . . . . . . . . . . 14010.2.2 Trasformazione geometrica . . . . . . . . . . . . . 14110.2.3 Miscelazione . . . . . . . . . . . . . . . . . . . . . 144

10.3 Altre applicazioni . . . . . . . . . . . . . . . . . . . . . . . 14510.3.1 Stabilizzazione dell’immagine . . . . . . . . . . . . 14610.3.2 Rettificazione ortogonale . . . . . . . . . . . . . . . 147

10.4 Sintesi di immagini . . . . . . . . . . . . . . . . . . . . . . 14710.4.1 Trasferimento con la profondità . . . . . . . . . . . 14810.4.2 Interpolazione con disparità . . . . . . . . . . . . . 14810.4.3 Trasferimento epipolare . . . . . . . . . . . . . . . 14910.4.4 Trasferimento con parallasse . . . . . . . . . . . . 14910.4.5 Trasformazione delle immagini . . . . . . . . . . . 151

11 Ricostruzione non calibrata 15511.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 15511.2 Matrice fondamentale . . . . . . . . . . . . . . . . . . . . 156

11.2.1 Calcolo della matrice fondamentale . . . . . . . . . 15711.3 Ricostruzione proiettiva . . . . . . . . . . . . . . . . . . . . 159

7

Page 10: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

11.3.1 Ricostruzione da due viste . . . . . . . . . . . . . . 16011.3.2 Ricostruzione multivista . . . . . . . . . . . . . . . 161

11.4 Autocalibrazione . . . . . . . . . . . . . . . . . . . . . . . 16311.4.1 Promozione euclidea . . . . . . . . . . . . . . . . . 16411.4.2 Metodo di Mendonça e Cipolla . . . . . . . . . . . . 166

11.5 Fattorizzazione di Tomasi-Kanade . . . . . . . . . . . . . . 168

12 Ricostruzione in pratica 17412.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 17412.2 Approccio sequenziale . . . . . . . . . . . . . . . . . . . . 175

12.2.1 Validazione delle corrispondenze . . . . . . . . . . 17612.2.2 Ricostruzione incrementale . . . . . . . . . . . . . . 17712.2.3 Bundle adjustment . . . . . . . . . . . . . . . . . . 179

12.3 Approccio gerarchico . . . . . . . . . . . . . . . . . . . . . 184

13 Fotocoerenza multivista 18713.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 18713.2 Stereo multivista . . . . . . . . . . . . . . . . . . . . . . . 18913.3 Ricostruzione da fotocoerenza . . . . . . . . . . . . . . . . 194

13.3.1 Voxel coloring . . . . . . . . . . . . . . . . . . . . 19513.3.2 Space carving . . . . . . . . . . . . . . . . . . . . 196

13.4 Ricostruzione da sagome . . . . . . . . . . . . . . . . . . . 19813.4.1 Algoritmo di Szelisky . . . . . . . . . . . . . . . . 199

14 Flusso ottico 20314.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 20314.2 Il campo di moto . . . . . . . . . . . . . . . . . . . . . . . 203

14.2.1 Calcolo del moto e della struttura . . . . . . . . . . 20714.3 Il flusso ottico . . . . . . . . . . . . . . . . . . . . . . . . . 212

14.3.1 Metodo di Lucas-Kanade . . . . . . . . . . . . . . . 213

15 Chiaroscuro, tessitura, sfocatura 21915.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 21915.2 Chiaroscuro . . . . . . . . . . . . . . . . . . . . . . . . . . 219

15.2.1 Formulazioni della mappa di riflettanza . . . . . . . 22115.2.2 Algoritmo di Tsai-Sha . . . . . . . . . . . . . . . . 22415.2.3 Stima della direzione di illuminazione . . . . . . . . 22515.2.4 Stereo fotometrico . . . . . . . . . . . . . . . . . . 227

15.3 Fuoco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

8

Page 11: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

15.3.1 Fochettatura . . . . . . . . . . . . . . . . . . . . . . 22815.3.2 Sfocatura . . . . . . . . . . . . . . . . . . . . . . . 230

15.4 Tessitura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23315.4.1 Orientazione del piano da tessitura . . . . . . . . . . 234

16 Metodi attivi e modellazione 3D 23816.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 23816.2 Shape from X . . . . . . . . . . . . . . . . . . . . . . . . . 238

16.2.1 Immagini range . . . . . . . . . . . . . . . . . . . . 24016.3 Illuminazione strutturata . . . . . . . . . . . . . . . . . . . 241

16.3.1 Stereo attivo . . . . . . . . . . . . . . . . . . . . . 24216.3.2 Triangolazione attiva . . . . . . . . . . . . . . . . . 24316.3.3 Frange marezzate . . . . . . . . . . . . . . . . . . . 248

16.4 Sensori a tempo di volo . . . . . . . . . . . . . . . . . . . . 24816.5 Dalla misura al modello 3D . . . . . . . . . . . . . . . . . . 250

16.5.1 Registrazione . . . . . . . . . . . . . . . . . . . . . 25016.5.2 Fusione geometrica . . . . . . . . . . . . . . . . . . 252

A Nozioni di algebra lineare 257A.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 257A.2 Prodotto scalare . . . . . . . . . . . . . . . . . . . . . . . . 257A.3 Norma matriciale . . . . . . . . . . . . . . . . . . . . . . . 258A.4 Matrice inversa . . . . . . . . . . . . . . . . . . . . . . . . 259A.5 Determinante . . . . . . . . . . . . . . . . . . . . . . . . . 259A.6 Matrici ortogonali . . . . . . . . . . . . . . . . . . . . . . . 261A.7 Forme lineari e quadratiche . . . . . . . . . . . . . . . . . . 262A.8 Rango . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263A.9 Autovalori ed autovettori . . . . . . . . . . . . . . . . . . . 265A.10 Decomposizione ai valori singolari . . . . . . . . . . . . . . 267A.11 Prodotto esterno . . . . . . . . . . . . . . . . . . . . . . . . 272A.12 Prodotto di Kronecker . . . . . . . . . . . . . . . . . . . . . 274A.13 Rotazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

B Nozioni di geometria proiettiva 279B.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 279B.2 Proiezione prospettica . . . . . . . . . . . . . . . . . . . . . 279B.3 Coordinate omogenee . . . . . . . . . . . . . . . . . . . . . 282B.4 Equazione della retta . . . . . . . . . . . . . . . . . . . . . 283B.5 Trasformazioni . . . . . . . . . . . . . . . . . . . . . . . . 284

9

Page 12: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

C Regressione 287C.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 287C.2 Minimi quadrati . . . . . . . . . . . . . . . . . . . . . . . . 288C.3 Campioni anomali e robustezza . . . . . . . . . . . . . . . 288C.4 Regressione robusta . . . . . . . . . . . . . . . . . . . . . . 291

C.4.1 M-stimatori . . . . . . . . . . . . . . . . . . . . . . 291C.4.2 Least Median of Squares . . . . . . . . . . . . . . . 291C.4.3 RANSAC . . . . . . . . . . . . . . . . . . . . . . . 294

D Ottimizzazione numerica 298D.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . 298D.2 Metodo di Newton . . . . . . . . . . . . . . . . . . . . . . 298D.3 Metodo di Gauss-Newton . . . . . . . . . . . . . . . . . . . 299D.4 Metodo di Levenberg-Marquardt . . . . . . . . . . . . . . . 300

Indice analitico 303

10

Page 13: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

A mio padre

Page 14: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti
Page 15: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

Prefazione

Di solito, ci si convince meglio con le ragioni trovate dase stessi che non con quelle venute in mente ad altri.

B. Pascal

Il testo si concentra sullo studio di teorie e tecniche computazionali perstimare le proprietà geometriche (la “struttura”) di oggetti solidi a partire dal-le immagini. La scelta degli argomenti riflette una visione personale delladisciplina e certamente è possibile riscontrare omissioni. La trattazione cheho privilegiato è una visita in profondità dei metodi della visione computa-zionale, piuttosto che una visita in ampiezza. Questo vuol dire che il testonon ha la presunzione di fornire una panoramica sui metodi esistenti; invece,ne sono stati selezionati alcuni e descritti ad un livello tale da consentirnel’implementazione. A questo proposito, il libro è corredato da una collezionedi funzioni MATLAB, scaricabile dal web.

Idealmente il testo può essere suddiviso in quattro sezioni: nozioni di base(capitoli 1 2, 3), geometria di due viste (capitoli 4, 5, 6 e 7), metodi immagi-ne (capitoli 8, 9 e 10), metodi multivista (capitoli 11, 12, 13) e metodi shapefrom X (capitoli 14, 15 e 16). Il docente può scegliere un percorso maggior-mente focalizzato sulla geometria, omettendo i metodi immagine ed i metodishape from X, oppure seguire un approccio più classico, omettendo i metodimultivista ed i capitoli 6, 7 e 10. Il diagramma concettuale del testo è riportatoin figura 1.

I prerequisiti sono le nozioni di algebra lineare che vengono richiamatein appendice A, con la maggior parte delle quali lo studente di informatica oingegneria dell’informazione dovrebbe comunque essere già familiare. Tra lenozioni di base, da trattare all’inizio del corso, si deve includere anche la partedi geometria proiettiva riportata in appendice B. Alcune nozioni di statistica(appendice C) e calcolo numerico (appendice D) possono essere sviluppatedurante il corso all’occorrenza.

13

Page 16: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

Figura 1. – Diagramma concettuale dei capitoli del testo

14

Page 17: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

Ringraziamenti

Questo testo deriva dalle dispense che ho preparato per corsi istituziona-li o interventi seminariali negli ultimi 15 anni. I primi capitoli nascono, informa embrionale, nel 1997 e si sono poi evoluti ed ampliati fino alla versio-ne attuale. Ringrazio gli studenti dell’Università di Udine e dell’Universitàdi Verona che, lungo questi anni, hanno segnalato errori, mancanze, e par-ti poco chiare. Alcuni di essi hanno contribuito con immagini, illustrazionio porzioni di testo. Li cito in ordine cronologico: Tiziano Tommasini, Lu-ca da Col, Alberto Censi, Sara Ceglie, Nicola Possato, Massimo Sabbadini,Michele Aprile, Roberto Marzotto, Alessandro Negrente, Alberto Sanson,Andrea Colombari, Michela Farenzena, Riccardo Gherardi, Chiara Zanini,Roberto Toldo. Germana Olivieri ha tradotto in italiano alcune parti trattedalla mia tesi di dottorato (in inglese). Il testo ha beneficiato delle puntua-li correzioni suggerite da Guido Maria Cortelazzo, Riccardo Gherardi, LucaMagri, Francesco Malapelle, Samuele Martelli e Roberto Toldo, che ringraziosentitamente.

Le fonti bibliografiche sono molteplici, riporto quelle che hanno maggior-mente informato alcuni capitoli: capitolo 2 (Trucco e Verri, 1998), capitolo3 (Faugeras, 1993), capitolo 8 (Lindeberg, 2012), capitolo 9 (Brown et al.,2003), capitolo 13 (Dyer, 2001), capitolo 14 (Cipolla, 2012), capitolo 15(Trucco e Verri, 1998), capitolo 16 (Curless, 1999).

I crediti per le figure sono riconosciuti nelle rispettive didascalie.

15

Page 18: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

Bibliografia

Brown M. Z.; Burschka D.; Hager G. D. (2003). Advances in computational stereo.IEEE Transactions on Pattern Analysis and Machine Intelligence, 25(8), 933–1008.

Cipolla R. (2012). Computer vision and robotics lecture handouts. Scaricato da:http://mi.eng.cam.ac.uk/ cipolla/undergraduate.htm.

Curless B. (1999). From range scans to 3d models. SIGGRAPH Comput. Graph.,33(4), 38–41.

Dyer C. (2001). Volumetric scene reconstruction from multiple views In Foundationsof Image Understanding. A cura di Davis L. S., capitolo 16. Kluwer, Boston.

Faugeras O. (1993). Three-Dimensional Computer Vision: A Geometric Viewpoint.The MIT Press, Cambridge, MA.

Lindeberg T. (2012). Scale invariant feature transform. Scholarpedia, 7(5), 10491.

Trucco E.; Verri A. (1998). Introductory Techniques for 3-D Computer Vision.Prentice-Hall, Upper Saddle River, NJ.

16

Page 19: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

1. Introduzione

1.1. Il prodigio della visione

Se ci fermiamo a riflettere in modo distaccato sulla visione come abilitàsensoriale, dobbiamo convenire con Ullman che essa è prodigiosa:

As seeing agents, we are so used to the benefits of vision, and so una-ware of how we actually use it, that it took a long time to appreciate thealmost miraculous achievements of our visual system. If one tries toadopt a more objective and detached attitude, by considering the visualsystem as a device that records a band of electromagnetic radiation asan input, and then uses it to gain knowledge about surrounding objectsthat emit and reflect it, one cannot help hut be struck by the richness ofinformation this system provides. (Ullman, 1996)

La visione artificiale nasce come branca dell’intelligenza artificiale negli an-ni Settanta del secolo scorso e si sviluppa successivamente come disciplinaautonoma con proprie metodologie, paradigmi e problemi. Nell’approcciomoderno essa non si propone di replicare la visione umana. Il tentativo sa-rebbe infatti probabilmente destinato al fallimento per l’intrinseca differenzatra i due hardware. Il paragone che viene spesso evocato è quello del volo:gli sforzi per replicare il volo animale nella storia sono tutti falliti, mentregli aeroplani, con un approccio completamente diverso, hanno risolto il pro-blema in modo più che soddisfacente, superando in alcuni aspetti gli uccellistessi.

17

Page 20: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

1.2. Visione computazionale di basso livello

La visione computazionale (o visione artificiale o computer vision) è la di-sciplina dell’informatica che si occupa dell’estrazione di informazioni dalleimmagini. Le informazioni possono essere di natura numerica (per esempiocoordinate spaziali) o simbolica (per esempio identità e relazioni tra ogget-ti). Semplificando, potremmo dire che si tratta di scoprire cosa è presentenella scena e dove. Un elenco non esaustivo delle applicazioni della visionecomputazionale comprende:

• il controllo di attuatori (robotica mobile o industriale);

• la rivelazione di eventi (videosorveglianza);

• la modellazione di oggetti o ambienti;

• l’interazione con il calcolatore.

Essa ha profonde connessioni con la robotica, la pattern recognition, l’elabo-razione delle immagini e la fotogrammetria.

Seguendo Ullman (1996) si usa distinguere tra visione di basso livelloe di alto livello. La prima si occupa di estrarre determinate proprietà fisi-che dell’ambiente visibile, come profondità, forma tridimensionale, contornidegli oggetti. I processi di visione di basso livello sono tipicamente paralle-li, spazialmente uniformi e relativamente indipendenti dal problema e dallaconoscenza a priori associata a particolari oggetti.

Viceversa, la visione di alto livello si occupa dell’estrazione di proprie-tà delle forme, di relazioni spaziali, di riconoscimento e classificazione dioggetti. I processi di alto livello sono di solito applicati ad una porzione del-l’immagine, dipendono dall’obiettivo della computazione e dalla conoscenzaa priori associata agli oggetti.

Anche tralasciando i problemi di alto livello legati alla percezione e alriconoscimento di oggetti, il solo compito di ricostruire la pura struttura geo-metrica della scena è difficile. Di questo ci occuperemo in questo libro:studieremo metodi computazionali (algoritmi) che mirano ad ottenere unarappresentazione della struttura solida (sterèos) del mondo tridimensionaleesperito attraverso proiezioni bidimensionali di esso, le immagini.

Questo approccio al problema si può agevolmente inquadrare all’internodel ricostruzionismo, la teoria sviluppata da Marr alla fine degli anni Settanta:

18

Page 21: Visione - francoangeli.it · 700.20 Andrea Fusiello Visione computazionale La visione computazionale, o visione artificiale, è la disciplina che studia i metodi computazionali atti

In the theory of visual processes, the underlying task is to reliably de-rive properties of the world from images of it; the business of isolatingconstraints that are both powerful enough to allow a process to be de-fined and generally true of the world is a central theme of our inquiry.(Marr, 1982)

Questo, naturalmente, non è il solo paradigma possibile in visione. Aloimo-nos e Shulman (1989), per esempio, sostengono che la descrizione del mondonon debba essere generica, ma dipendente dall’obiettivo.

Geometria della scena - forma e posizione delle superfici

Fotometria della scena - caratteristiche illuminazione

- riflettanza delle superfici

Modello del sensore - ottico/geometrico - radiometrico

- elettronico

Immagine/i

Grafica

Visione

Figura 1.1. – Relazione tra visione e grafica

La visione computazionale (di basso livello) si può efficacemente descri-vere come l’inverso della grafica al calcolatore, nella quale, dati:

• la descrizione geometrica della scena,

• la descrizione fotometrica della scena (fonti luminose e proprietà dellesuperfici),

• la descrizione completa dell’apparato di acquisizione (fotocamera),

il calcolatore produce l’immagine “sintetica” vista dalla fotocamera.La riduzione dimensionale operata dalla proiezione (geometria) e la mol-

teplicità delle cause che concorrono a determinare la luminosità ed il colorerendono il problema inverso sottovincolato e di non banale soluzione.

Il sistema visivo umano sfrutta molteplici “indizi visivi” (visual cues) perrisolvere il problema, ed anche i metodi computazionali che vedremo farannolo stesso. Alcuni di questi indizi sono: la disparità binoculare, il moto, ilchiaroscuro (o shading), la sfocatura, le tessiture.

19