Indice
1 Introduzione 1
1.1 Obiettivi della tesi . . . 3
1.2 Organizzazione della tesi . . . 4
2 Stato dell’arte 6 2.1 Polynomial Texture Maps . . . 7
2.1.1 Acquisizione del data set . . . 9
2.1.2 Generazione della Polynomial Texture Map . . . 11
2.1.3 Applicazioni 3D . . . 14 2.1.4 Applicazioni 2D . . . 15 2.1.5 Compressione . . . 20 2.1.6 Ambiti di utilizzo . . . 21 2.2 Shading Enhancement . . . 23 2.2.1 Normal Enhancement . . . 23 2.2.2 3D Unsharp Masking . . . 27 2.2.3 Exaggerated Shading . . . 29
2.2.4 Multiscale Shape e Detail Enhancement . . . 32 2.3 JPEG2000 . . . 34 3 RtiViewer 39 3.1 Librerie utilizzate . . . 40 3.2 L’architettura di RtiViewer . . . 42 3.3 Interfaccia grafica . . . 44
3.4 Gestione dei dati . . . 50
3.4.1 Gestione dati locali . . . 50
3.4.2 Gestione dati remoti . . . 51
3.5 Dettagli implementativi . . . 55 3.5.1 Modulo Rti . . . 55 3.5.2 Modulo Enhancement . . . 58 4 Shading Enhancement 60 4.1 Diffuse Gain . . . 61 4.2 Specular Enhancement . . . 62 4.3 Normal Enhancement . . . 64 4.4 Unsharp Masking . . . 70 4.5 Detail Enhancement . . . 76 4.6 Coefficient Enhancement . . . 81 5 Risultati 85 5.1 Corsica-Elba . . . 88
INDICE iii
5.2 Tomba Arcivescovile . . . 97
5.3 Sarcofago Romano . . . 105
5.4 Risultati enhancement . . . 114
Introduzione
I recenti sviluppi delle tecnologie di acquisizione digitale hanno messo a di-sposizione di studiosi e appassionati numerosi strumenti per creare fedeli rappresentazioni digitali di artefatti di significativa importanza storica e cul-turale. Differenti tecniche di acquisizione sono state messe a punto negli ultimi anni, sia per una completa acquisizione della forma tridimensionale degli oggetti in esame che per l’acquisizione del comportamento in riflettan-za degli stessi. Queste ultime tecniche si pongono come obiettivo quello di catturare e simulare in maniera accurata il comportamento di un dato og-getto sotto le pi`u differenti condizioni di illuminazione, conservando il punto di vista prescelto. In pratica con questo tipo di approccio, chiamato Re-flection Transformation Imaging, `e possibile acquisire per un dato oggetto un’immagine tale che permetta in un secondo tempo all’utente di variare in-terattivamente l’illuminazione e vederne rappresentati gli effetti in maniera estremamente fedele.
Il termine Reflection Transformation Imaging `e stato usato per la prima volta da Tom Malzbender [MGW01] per descrivere un metodo semplice ed efficiente, basato su un’acquisizione fotografica, che permette di modellare le propriet`a della superficie di un oggetto in funzione delle condizioni di illuminazione. Questa, cos`ı come altre tecniche di re-illuminazione, crea una speciale immagine dell’oggetto che codifica il comportamento in riflettanza
2
per ogni pixel. Queste immagini sono chiamate Polynomial Texture Maps (PTM).
Visto la semplicit`a e l’efficacia di questo metodo, l’uso delle PTM ha riscosso notevole interesse in diverse applicazioni nel campo dei beni cultu-rali. Uno dei motivi principali `e che questo tipo di visualizzazione consente all’utente di cambiare interattivamente l’effetto dell’illuminazione sulla su-perficie, offrendo nuove modalit`a di analisi dell’oggetto. In particolare l’uso dei meccanismi per esaltare il contrasto proposti con questa tecnica, risul-tano essere molto utili non solo in termini di documentazione, ma anche in termini di analisi dei dettagli della superficie difficili da ottenere con i sistemi di visualizzazione classici.
Un altro motivo della loro applicazione nell’ambito dei beni culturali `e che le PTM rappresentano un interessante alternativa alle tecniche di acqui-sizione 3D, come la scansione 3D, le quali sono molto pi`u costose in termini di equipaggiamento, tempo di acquisizione e post-elaborazione dei dati ac-quisiti. Inoltre le PTM sembrano essere la soluzione migliore per la visua-lizzazione e la documentazione di alcune classi di oggetti, come ad esempio bassorilievi e iscrizioni, dove le informazioni restituite dalla possibilit`a di una re-illuminazione interattiva e fedele sono spesso pi`u importanti di quelle fornite da una pura descrizione geometrica.
Negli ultimi anni le PTM sono state utilizzate in diversi progetti nell’am-bito della conservazione e lo studio dei beni culturali. Uno dei primi `e stato lo studio delle inscrizioni cuneiformi su antiche tavolette di argilla di origine sumerica. A seguire, sono stati presentati diversi progetti anche in campi tra loro molto distanti. In particolare, in [HBMG02] `e stato proposto l’utilizzo delle PTM per lo studio di antichi fossili paleolitici che presentano un bas-so contrasto se fotografati in modo tradizionale. In [PSM05] e [MVSL05], invece, sono state analizzate le potenzialit`a della tecnica nello studio della superficie dei dipinti ad olio e nella la documentazione di collezioni di
an-tiche monete, consentendo anche la creazione di mostre virtuali. Infine nel 2006 sono stati presentati i risultati ottenuti dall’utilizzo delle PTM nello studio del funzionamento del pi`u antico calcolatore analogico della storia, la Macchina di Antikythera [Fea06].
1.1
Obiettivi della tesi
L’obiettivo principale della tesi `e lo sviluppo di un sistema di visualizzazione, chiamato RtiViewer, per immagini generate con tecniche di Reflection Tran-sformation Imaging. Le specifiche di massima del sistema sono state definite nell’ambito di un progetto internazionale di ricerca che coinvolge i Laboratori di Palo Alto dell’HP, il CHI(Cultural Heritage Imaging) e l’ISTI-CNR.
Le principali caratteristiche che il sistema RtiViewer dovr`a avere sono:
• un’interfaccia grafica semplice e intuitiva, che consenta di interagire facilmente con il sistema anche da parte di utenti non tecnologicamente esperti;
• il caricamento e la visualizzare di immagini memorizzate sul disco locale e su server remoti;
• la possibilit`a di applicare ad un’immagine una serie di tecniche di sha-ding enhancement, per consentire una migliore percezione delle forme e dei dettagli dell’oggetto;
• il supporto per diverse piattaforme, per permetterne l’utilizzo su sistemi Windows, Mac e Linux;
• un meccanismo semplice per assicurare l’estendibilit`a del software sia a nuovi formati di immagini che a nuove tecniche di shading enhancement.
1.2 Organizzazione della tesi 4
Per quanto riguarda il caricamento da server remoti, `e fondamentale met-tere a disposizione una serie di strumenti che permettano di predisporre un immagine per la visualizzazione remota, e sfruttare tecniche di compressione con l’obiettivo di minimizzare la quantit`a di dati da scambiare via rete.
Nel corso dei prossimi capitoli sar`a analizzato il modo con cui sono stati affrontati e raggiunti questi obiettivi.
1.2
Organizzazione della tesi
La tesi `e suddivisa in sei capitoli. Dopo questo capitolo introduttivo segue la descrizione dello stato dell’arte. Nel capitolo sono descritti gli aspetti e le ca-ratteristiche pi`u importanti delle Polynomial Texture Maps e sono analizzati alcuni degli algoritmi di details enhancement proposti in letteratura negli ultimi anni, ponendo particolare attenzione agli aspetti che ne consentono l’applicazione su una PTM. Infine `e descritto l’algoritmo per la generazione di immagini wavelet JPEG2000, utilizzato per comprimere efficientemente la quantit`a di dati da scambiare via rete durante il caricamento da server remoti, evidenziandone vantaggi e svantaggi.
Nel terzo capitolo viene descritto il software realizzato, presentando le scelte architetturali ed implementative. Partendo da una panoramica su alcune decisioni tecniche e sulla scelta delle librerie software, si passa ad esa-minare alcune delle principali componenti del programma dedicando ampio spazio all’analisi dell’interfaccia grafica.
Nel quarto capitolo sono analizzate le tecniche di shading enhancement proposte ed implementate, approfondendo gli aspetti pi`u importanti e ca-ratteristici. Per ognuna di esse sono anche analizzati brevemente i risultati finali raggiunti in fase di rendering, confrontando le immagini generate con quella originale.
Nel quinto capitolo sono elencati i risultati ottenuti, sia in termini di prestazioni ed utilizzo di memoria a livello globale del software, sia in termini di analisi delle varie tecniche di shading enhacement.
Le conclusioni sono trattate nell’ultimo capito. In particolare, vengono analizzati gli obiettivi raggiunti, e descritti i problemi incontrati durante la progettazione e la realizzazione del programma. Infine viene fornita una panoramica dei possibili sviluppi futuri di RtiViewer.
Capitolo 2
Stato dell’arte
Il software RtiViewer, che verr`a descritto in questa tesi, consente la visua-lizzazione diretta di immagini generate con tecniche di Reflection Transfor-mation Imaging e la loro analisi tramite tecniche di shading enhancement. RtiViewer, che dispone di un sistema di caricamento dati sia da disco locale che remoto, permette di interagire in tempo reale con l’immagine modifican-do una serie di parametri di rendering, tra cui la posizione della luce e la configurazione della tecnica di enhancement scelta per esaltare le forme e il dettaglio.
In questo capitolo saranno descritte le caratteristiche di un tipo di im-magini generato con una particolare tecnica di Reflection Transformation Imaging, le Polynomial Texture Maps (PTM), che sono il principale forma-to supportaforma-to attualmente dal software RtiViewer. Dopo un’introduzione sulle caratteristiche principali di tale tipo di immagini, saranno analizzati il processo di acquisizione e generazione delle PTM e le principali applicazioni in ambito 2D e 3D. Saranno inoltre analizzati diversi algoritmi di detail en-hancement, tra cui la tecnica di Normal Enen-hancement, l’Unsharp Masking, la tecnica di Exaggerate Shading, ed infine il Multiscale Shape e Detail Enhance-ment, ponendo particolare attenzione su quelli effettivamente adattabili alle Polynomial Texture Maps. Infine sar`a brevemente analizzato l’algoritmo di compressione JPEG2000 utilizzato per permettere la visualizzazione di una
PTM da remoto.
2.1
Polynomial Texture Maps
Il Polynomial Texture Mapping, sviluppato nei laboratori della HP nel 2001 da Malzbender, Gelb e Wolters [MGW01], rappresenta una nuova forma di texture mapping che, memorizzando all’interno di ogni singolo texel i coef-ficienti di un polinomio che descrive in maniera accurata il comportamento della superficie rispetto alla luce, permette di incrementare il fotorealismo rispetto ai metodi tradizionali, consentendo la percezione delle deformazioni della superficie. Le tecniche tradizionali di texture mapping sono utilizzate per dare del dettaglio geometrico ad un modello 3D tramite un immagine, laddove una modellazione dei dettagli tramite la geometria non `e possibile sia per la complessit`a del modello che per l’efficienza del rendering. Se per`o l’illuminazione dell’ambiente in cui la texture `e utilizzata, `e differente dall’il-luminazione dell’ambiente in cui `e stata acquisita, il rendering pu`o risultare scorretto e poco realistico. Risultato che pu`o ulteriormente peggiorare se si esegue il blending tra la texture e l’illuminazione calcolata sulla geometria del modello (vedi Figura 2.1).
Figura 2.1: Confronto tra PTM (sopra) e texture mapping tradizionale (sotto) al variare dell’illuminazione. (Immagine tratta da [MGW01])
2.1 Polynomial Texture Maps 8
Una prima soluzione a questo problema `e stata l’introduzione del bump mapping (vedi Figura 2.2). Il bump mapping prevede la memorizzazione in ogni texel di uno spostamento relativo da applicare alla normale alla su-perfice, producendo sulla superficie stessa un aspetto rugoso. Creare una bump map partendo da una set di texture generate da foto reali, risulta ge-neralmente difficile, e sebbene siano state sviluppate diverse tecniche, tutte presentano dei limiti con oggetti caratterizzati da una superficie molto varia che causa inter-riflessione e self-shadowing.
Figura 2.2: Bump Mapping: a sinistra rendering classico; a destra rendering con applicazione di una bump map.
Il Polynomial Texture Mapping `e una tecnica basata su immagini che non richiede la modellazione di una geometria complessa o la generazione di una bump map. I dati di input richiesti sono semplicemente un insieme di fotografie dell’oggetto da usare come texture, tutte acquisite dallo stesso punto di vista ma sotto differenti condizioni di illuminazione. Le posizioni della luce sono distribuite generalmente in modo non uniforme sulla semisfera che circonda l’oggetto rispetto al punto di vista prescelto. La variazione del colore della superficie `e catturata da un polinomio biquadratico.
Sebbene approssimata, questa rappresentazione `e compatta e permette una veloce ricostruzione del colore durante il rendering. Il risultato `e una speciale texture che riproduce gli effetti dovuti alla variazione dell’incidenza
della luce, sia che si cambi l’orientamento della superficie dell’oggetto su cui `
e mappata, sia che si cambi la posizione della sorgente luminosa. Inoltre per-mette di modellare le variazioni di colore dovute a self-shadowing, scattering e inter-riflessione.
2.1.1
Acquisizione del data set
L’acquisizione comporta la generazione di un set di fotografie con punto di vista fisso e posizione della luce differente. La scelta di utilizzare un punto di vista fisso semplifica notevolmente la fase di acquisizione, in quanto elimina tutti i problemi di installazione e calibrazione della fotocamera. Per sem-plificare l’acquisizione sono stati sviluppati diversi dispositivi sperimentali [MGW01] (Figura 2.3).
(a) (b)
Figura 2.3: Dispositivi per l’acquisizione di PTM: (a) a semisfera; (b) ad arco. (Immagine tratta da [DCCS06])
L’oggetto in Figura 2.3a `e adatto per l’acquisizione di oggetti piccoli (in-torno ai 15 cm). `E costituito da una semisfera in plastica su cui sono distri-buite in maniera uniforme 50 luci stroboscopiche che illuminano la cupola al
2.1 Polynomial Texture Maps 10
suo interno. In cima della semisfera `e posizionata una fotocamera digitale a punto di vista fisso che permette di acquisite le foto del soggetto della PTM. Il dispositivo in Figura 2.3b consente l’acquisizione per oggetti di dimen-sioni maggiori, dell’ordine di un metro. `E costituito da un arco di 90 gradi del diametro di 1.5 metri su cui sono montate 12 luci stroboscopiche che puntano verso il centro dell’arco. Pu`o ruotare di 360 gradi intorno al punto in cui `e posizionata la fotocamera digitale permettendo di acquisire foto lungo diversi archi di meridiani appartenenti alla semisfera ideale che circonda l’oggetto. Entrambi possono essere pilotati automaticamente via software rendendo la fase di acquisizione pi`u semplice e veloce.
Nel 2006 `e stato proposto un metodo per l’acquisizione di PTM per oggetti di media e grande dimensione [DCCS06], dell’ordine di 2-3 metri. Per questo tipo di oggetti i dispositivi in Figura 2.3 risultano poco adatti. `E necessario invece suddividere il processo di acquisizione in tre passi:
• Definizione di un piano di acquisizione; • Acquisizione;
• Elaborazione dei dati acquisiti.
La dimensione dell’oggetto e l’impossibilit`a di muoverlo rendono necessario una pianificazione della fase di acquisizione in modo da renderla pi`u veloce. Selezionare dei punti di illuminazione correnti `e importante in quanto, una volta data la dimensione e la posizione dell’oggetto, in generale non si ha la possibilit`a di illuminarlo con una semisfera fissa, come nei metodi visti precedentemente. Invece `e possibile definire una semisfera virtuale su cui andare a posizionare la luce manualmente. Le dimensioni di questa semisfera e la distribuzione delle luci su di essa dipendono dalle dimensioni dell’oggetto e dal numero di posizioni da cui campionare l’illuminazione.
Al fine di semplificare la disposizione delle luci `e stato sviluppato un tool, chiamato PtmPlanner, che genera automaticamente le coordinate in cui posizionare la sorgente luminosa. Il tool richiede i parametri di setup della scena, quali le dimensioni dell’oggetto da acquisire, l’altezza da terra e la distanza della camera, ed i parametri di acquisizione, quali la distanza della luce e due angoli che rappresentano il passo orizzontale e verticale tra due posizioni vicine sulla semisfera. Una volta generati i punti, il tool permette di eseguire automaticamente una riduzione del numero di posizioni senza degradare eccessivamente la qualit`a della PTM.
Il metodo proposto per l’acquisizione (Figura 2.4) prevede l’utilizzo di una fotocamera digitale ad alta risoluzione e di un riflettore da posizionare manualmente nelle posizioni generate in fase di pianificazione. Sebbene l’in-tervento manuale risulti maggiore rispetto ai dispositivi precedenti, questo metodo consente, grazie all’utilizzo del tool PtmPlanner, l’acquisizione del set di foto in un tempo ragionevole.
Il passo di post-elaborazione del dati acquisiti `e necessario per migliorare la stima della luminosit`a dei pixel. Un fattore critico nel calcolo accurato dell’illuminazione `e costituito dalla posizione della fotocamera, che deve ri-manere fissa. Infatti anche un piccolo disallineamento di pochi pixel pu`o provocare un effetto di aliasing. Per evitare questo problema `e necessario allineare le foto prima di eseguire la stima della illuminazione. Questa `e l’u-nica tipo di elaborazione da eseguire prima della generazione della PTM, in quanto ogni altra forma di calibrazione delle foto non `e necessaria visto che sono tutte realizzate con la stessa esposizione.
2.1.2
Generazione della Polynomial Texture Map
Dopo la fase di acquisizione, le foto devono essere analizzate per generare la relativa PTM. In particolare, viene generata una texture che memorizza per
2.1 Polynomial Texture Maps 12
Figura 2.4: Tecnica di acquisizione per oggetti di media e grande dimensione. (Immagine tratta da [DCCS06])
ogni texel i coefficienti di un polinomio biquadratico che codifica le variazioni di colore al variare della posizione dell’illuminazione.
Anche se la tecnica da punto di vista teorico consente di modellare per-fettamente il comportamento in riflettanza di oggetti puramente lambertiani, ovvero che presentano una superficie caratterizzata dalla solo riflessione dif-fusiva, ottimi risultati si ottengono anche su oggetti caratterizzati da una componente di riflessione speculare dovuta ad esempio a materiali quali oro o marmo (vedi capitolo 5).
Un aspetto chiave nella generazione della PTM `e l’analisi della variazione del colore dei pixel. In particolare al variare della direzione dell’illuminazio-ne, mentre la cromaticit`a del pixel rimane pressoch´e costante, la luminosit`a presenta una varianza maggiore. Quindi il modello prevede il calcolo di un colore di base per texel (Rn(u, v), Gn(u, v), Bn(u, v)), che viene modulato con un modello di illuminazione L(u, v, lu, lv) che `e funzione delle coordinate del
texel e della direzione della luce incidente:
R(u, v) = L(u, v)Rn(u, v);
G(u, v) = L(u, v)Gn(u, v); (2.1)
B(u, v) = L(u, v)Bn(u, v)
Inoltre, negli oggetti perfettamente Lambertiani, la dipendenza dell’illumi-nazione del texel dalla posizione della luce `e abbastanza uniforme. Come so-pra menzionato la modulazione del colore avviene utilizzando un polinomio biquadratico:
L(u, v, lu, lv) = a0(u, v)lu2+ a1(u, v)lv2+ a2(u, v)lulv+ + a3(u, v)lu+ a4(u, v)lv+ a5
(2.2)
dove (lu, lv) sono le proiezioni del vettore luce normalizzato nello spazio di coordinate locali della texture (u, v).
I coefficienti a0− a5 sono calcolati per ogni texel partendo dai dati foto-grafici. Date N + 1 foto, per ogni pixel si ricava il valore dell’illuminazione Li e si calcolano a0− a5 dal seguente sistema di equazioni lineari, riconducendo la ricerca ad un problema di minimi quadrati con soluzione di minima norma 2, risolvibile tramite l’algoritmo di decomposizione ai valori singoli:
lu02 l2v0 lu0lv0 lu0 lv0 1 l2 u1 l2v1 lu1lv1 lu1 lv1 1 .. . ... ... ... ... ... lui2 l2vi luilvi lui lvi 1 .. . ... ... ... ... ... l2 uN lvN2 luNlvN luN lvN 1 a0 a1 .. . a5 = L0 L1 .. . Li .. . LN (2.3)
Questa rappresentazione, che prevede la modellazione separata dell’illumina-zione per ogni texel, prende il nome di LRGB PTM e comporta il salvataggio nella texture map per ogni texel del colore di base RGB e dei 6 coefficienti
2.1 Polynomial Texture Maps 14
del polinomio a0 − a5, per un totale di nove componenti. `E stato definito un ulteriore formato chiamato RGB PTM in cui i tre canali RGB vengo-no modellati direttamente dal polivengo-nomio biquadratico, per un totale di 18 componenti. Questo formato risulta particolarmente utile per modellare la variazione di colore dei pixel in funzione di altri parametri, come la profondit`a del focus o il tempo (paragrafo 2.1.6).
Prima di essere salvati all’interno della texture, i coefficienti in virgola mobile, ottenuti risolvendo il sistema 2.3, vengono scalati di un fattore λ e correnti di un fattore di errore Ω in modo da ridurli a interi a 8 bit. Questi fattori vengono memorizzati all’interno della PTM, uno per ogni coefficien-te per un totale di 6, per poi essere riutilizzati in fase di ricostruzione sui coefficienti a 8 bit a0i per recuperare i coefficienti finali ai:
ai = λ(a0i− Ω) (2.4)
Dettagli sul formato interno dei file per le diverse tipologie di PTM si possono trovare in [MWG01].
2.1.3
Applicazioni 3D
In ambienti 3D, la dipendenza delle PTM dal vettore della luce incidente pu`o essere combinato con l’esistente modello di illuminazione per generare diversi effetti. Un possibile metodo consiste nel modulare la componente speculare dell’equazione standard di illuminazione con il risultato della stima di una PTM. L’esistente modello di illuminazione di Phong diventa:
I = Iaka+ Idkd(N · L) + Isks(N · H)nP T M (u, v, lu, lv) (2.5)
La dipendenza dalla luce incidente pu`o anche essere utilizzata per approssi-mare l’effetto Fresnel. L’effetto Fresnel `e importante per quelle superfici, tipo metallo e vetro, che presentano un comportamento riflessivo altamente sensi-bile all’angolo di incidenza dell’illuminazione. In particolare per le superfici
metalliche la riflessione `e influenzata dalle caratteristiche intrinseche del ma-teriale, come la lunghezza d’onda. Questa dipendenza pu`o essere modellata dal polinomio biquadratico e memorizzata in una PTM. Inoltre, essendo il polinomio indipendente per ogni texel, queste propriet`a possono variare sul-la superficie permettendo sul-la rappresentazione di differenti materiali in una singola texture.
Le PTM possono modellare anche materiali anisotropi. Le tecniche di rendering proposte per questo tipo di materiali prevedono la definizione di un piano di normali per i punti della superficie allineati con la direzione di anisotropia. A questo punto nel calcolo dell’equazione di illuminazione viene usata la proiezione del vettore luce incidente nel piano delle normali. Nelle PTM `e possibile memorizzare la variazione della proiezione del vettore luce nel piano delle normali come una funzione della direzione di illuminazione. Quindi pi`u la direzione della luce incidente si avvicina alla direzione di ani-sotropia, maggiori saranno i valori restituiti dalla valutazione del polinomio. Questi valori possono essere modulati con la componente speculare dell’illu-minazione in modo che gli specular highlights vengano visualizzati solo nelle regioni in cui la direzione della luce incidente si allinea con la direzione di anisotropia.
2.1.4
Applicazioni 2D
Sebbene siano state sviluppate come estensione del texture mapping, le PTM vengono spesso utilizzate in applicazioni a carattere prevalentemente 2D, in quanto riescono, come gi`a detto, a modellare in modo estremamente compat-to il comportamencompat-to di una scena al variare delle condizioni di illuminazione, e sono quindi estremamente utili per codificare immagini re-illuminabili. Un esempio `e dato dai differenti utilizzi nel campo dei beni culturali, che copro-no diversi aspetti come l’analisi di antichi reperti archeologici (incisioni su
2.1 Polynomial Texture Maps 16
tavolette di argilla di origine sumerica, fossili paleolitici e incisioni rupestri), lo studio della superficie di dipinti ad olio e la documentazione di collezioni di monete antiche (vedi paragrafo 2.1.6).
Una prima applicazione riguarda l’esaltazione del dettaglio e delle forme. In questo ambito sono stati proposti due metodi di detail enhancement che si basano sull’estrazione delle normali alla superficie dai coefficienti del poli-nomio [MGWZ01]. In particolare, per le superfici diffusive, la direzione della luce che massimizza l’illuminazione fornisce una stima della normale alla su-perficie per ogni pixel dell’immagine. Quindi il calcolo della normale si riduce alla ricerca dei valori (lu, lv) che massimizzano l’equazione 2.2. Risolvendo il seguente sistema: ∂L ∂u = ∂L ∂v = 0 (2.6) si ottiene: lu0= a2a4− 2a1a3 4a0a1− a22 (2.7) lv0 = a2a3− 2a0a4 4a0a1− a22 (2.8)
dove (lu0, lv0) sono le proiezioni della normale nel piano di coordinate (u, v). La normale completa `e data semplicemente da:
~
N = (lu0, lv0, q
1 − l2
u0− l2v0) (2.9)
Queste normali possono essere utilizzate per esaltare le forme e il dettaglio della superficie. I metodi proposti sono due:
• Specular Enhancement ; • Diffuse Gain;
Lo Specular Enhancement permette di simulare la riflessione speculare con l’obiettivo di esaltare le forme della superficie (vedi Figura 2.5). Il mo-dello di illuminazione utilizzato `e quello di Phong. Il contributo di riflessione
Figura 2.5: Specular Enhancement: (A) foto originale; (B) foto ricostruita da una PTM; (C) immagine ottenuta applicando un modello di illuminazione completamente speculare; (D) immagine ottenuta con un modello di illuminazione speculare e diffusivo. (Immagine tratta da [MGWZ01])
speculare da sommare all’immagine per ogni texel (u, v), `e calcolato utiliz-zano la normale stimata ~N e il vettore ~H ottenuto come media tra il vettore della luce incidente e il vettore di vista:
~
Is = ks( ~H · ~N )n (2.10)
Inoltre il modello consente la modifica interattiva delle caratteristiche del materiale, come la costante di specularit`a ks e l’esponente di specularit`a n.
Il Diffuse Gain permette di esaltare il dettaglio della superficie (vedi Figura 2.6). In particolare l’equazione 2.2 consente la modellazione della
2.1 Polynomial Texture Maps 18
Figura 2.6: Diffuse Gain: (A) foto originale; (B) foto ricostruita da una PTM; (C) diffuse gain con fattore di guadagno g = 1.9. (Immagine tratta da [MGWZ01])
variazione di colore sulla superficie dell’oggetto in funzione della posizione dell’illuminazione tramite una parabola convessa in due dimensioni. La cur-vatura gaussiana di questa parabola pu`o essere incrementata in modo arbi-trario da un fattore di guadagno g ricalcolando dei nuovi coefficienti usando
le seguenti trasformazioni: a00 = ga0 a01 = ga1 a02 = ga2 (2.11) a03 = (1 − g)(2a0lu0+ a2lv0) + a3 a04 = (1 − g)(2a1lv0+ a2lu0) + a4 a05 = (1 − g)(a0l2u0+ a1lu02 + a2lu0lv0) + (a3− a03)lu0+ (a4− a04)lv0+ a5 Questo mantiene per ogni texel la stessa direzione di l’illuminazione massima, e quindi conserva la normale alla superficie, ma incrementa la sensibilit`a della superficie alla direzione dell’illuminazione esaltando le propriet`a di riflessione. Un altra possibile applicazione `e la rappresentazione di una scena statica al variare delle condizioni di focus (vedi Figura 2.7). Acquisito il set di imma-gini, si assegna ad ogni immagine un valore di −1.0 < lu < 1.0 mantenendo lv costante, e si calcolano i coefficienti del equazione 2.2 per ogni canale di colore in ogni pixel. Il risultato `e una RGB PTM che permette di variare in maniera continua la profondit`a di campo. Inoltre `e utile tenera legato il parametro lv alla apertura della camera in modo da permettere il controllo dell’estensione del focus.
Figura 2.7: PTM per la rappresentazione di una scena al variare delle condizioni di focus. (Immagine tratta da [MGW01])
2.1 Polynomial Texture Maps 20
2.1.5
Compressione
I due formati di Polynomial Texture Map visti nel paragrafo 2.1.2, LRGB e RGB, prevedono che per ogni pixel dell’immagine vengano rispettivamente salvati 9 e 18 coefficienti. Visto che entrambi presentano un elevata com-pressibilit`a, `e stato proposto un algoritmo di compressione [WM01] che ha portano alla definizione di un formato compresso il cui punto di partenza `e la compressione JPEG.
Le modalit`a di compressione proposte sono tre, tra cui una compressione lossless, che consente di preservare tutte le caratteristiche dell’immagine ori-ginale senza introdurre perdita di informazione, e due compressioni lossy, che comportano perdita di informazioni e si distinguono per il massimo livello di errore introdotto.
L’algoritmo si basa sull’osservazione che i vari piani del coefficienti, visua-lizzati come immagini, risultano molto simili. L’approccio utilizzato `e quel-lo della compressione delle immagini spettrali. Un immagine multi-spettrale consiste in differenti bande, ognuna delle quali rappresenta una visione leggermente differente della stessa scena al variare della lunghezza d’onda della luce utilizzata per illuminare la scena stessa. Un approccio comune nella compressione di questo genere di immagini consiste nel de-terminare una trasformazione di decorrelazione che rimuove le informazioni comuni dalle varie bande.
L’algoritmo proposto prevede due tipi di codifica per i vari piani: inter-plane, eseguita rispetto un piano di riferimento, e intra-inter-plane, eseguita rispet-to al contenurispet-to del piano stesso. La decorrelazione `e necessaria per decidere quale codifica adottare per ogni piano, per determinare quale piano usare come riferimento in modalit`a inter-plane, e per decidere l’ordine di codifica tra i vari piani. La codifica da adottare e l’ordine di codifica dei piani sono determinati da un algoritmo che costruisce una matrice dei costi e minimizza
il costo totale della compressione. La sequenza di decorrelazione che mini-mizza questo costo `e determinata interpretando la matrice dei costi come una matrice di adiacenza di un grafo completo e trovando su questo grafo il l’albero di copertura a costo minimo.
La codifica intra-plane `e basata su una semplice differenza tra il piano da comprimere e il piano di riferimento. Per ottenere un codifica migliore, e quindi garantire pi`u scelte per la decorrelazione, `e possibile applicare al piano di riferimento delle trasformazioni, tra cui la plane inversion, ottenuta complementando i valori di ogni pixel, e la motion compensation, ottenuta con una traslazione del piano di riferimento. In particolare la motion com-pensation `e una tecnica usata nella compressione video che risulta utile anche per la compressione di PTM perch´e, essendo generate da un insieme di im-magini con diverse condizioni di illuminazione, i cambiamenti della direzione della luce possono provocare piccoli movimenti dei contorni dell’oggetto. Do-po che ogni piano `e stato decorrelato subisce un ulteriore compressione con l’algoritmo JPEG.
Dopo la codifica, ogni piano viene ricostruito e comparato con quello ori-ginale; se il valore di un pixel ricostruito presenta un errore rispetto a quello originale maggiore di una soglia definita dalla modalit`a di compressione, al-lora la posizione del pixel e il suo valore originale vengono aggiunti in fondo alla codifica del piano per garantire una ricostruzione dell’immagine con un massimo livello di errore garantito.
2.1.6
Ambiti di utilizzo
Le Polynomial Texture Map vengono utilizzate in diversi progetti, soprattutto nell’ambito della conservazione e studio dei beni culturali.
Uno dei primi lavori `e stato l’acquisizione delle inscrizioni cuneiformi su tavolette di argilla [MGWZ01]. Lo studio tradizionale di questo tipo di
manu-2.1 Polynomial Texture Maps 22
fatti prevede l’utilizzo di una luce direzionale sotto cui posizionare l’oggetto per percepire meglio le inscrizioni. Questo `e necessario perch´e alcune carat-teristiche si possono notare chiaramente solo quando illuminate da una certa direzione. L’utilizzo di una PTM permette agli esperti di analizzare la tavo-letta sotto differenti condizioni di illuminazione in un modo che richiama lo studio fisico del manufatto, ma con il vantaggio di utilizzare delle condizioni di illuminazione ottimali.
I tool di trasformazione dell’illuminazione sono anche utilizzati nel cam-po della paleontologia per migliorare l’acquisizione e lo studio di immagini di fossili che presentano basso contrasto e alto rilievo [HBMG02]. Gli stessi tool utilizzati su PTM relative ad antichi reperti di arte rupestre permettono di rilevare dettagli molto accurati su fratture, venature e segni prodotti dall’uo-mo. Inoltre un lavoro congiunti della National Gallery e della Tate Gallery di Londra dimostra che le PTM, e in particolare lo Specular Enhancement, permettono di raccogliere informazioni preziose sulla superficie di dipinti ad olio [PSM05].
Recentemente le PTM sono state utilizzate per lo studio del funziona-mento del pi`u antico calcolatore analogico della storia, la Macchina di Anti-kythera, costruito per calcolare posizioni astronomiche [Fea06]. Lo studio dei vari frammenti ha portano ad una nuova ricostruzione del meccanismo grazie all’aumento del numero di iscrizioni visibili e traducibili ottenuto dell’utilizzo delle PTM.
Oltre a questi ambiti, `e stato proposto l’utilizzo congiunto di PTM, usate come texture map, e tecniche di structured light scanning, che consentono di acquisire la geometria dell’oggetto, per permettere la visualizzazione in 3D di tavole con inscrizioni cuneiformi [Mud04] [MMSL06]. Questa tecnica prevede l’acquisizione da pi`u punti di vista della geometria dell’oggetto e della relativa PTM. Le scansioni con le relative texture sono allineate tra di loro con un apposito tool, e il risultato visualizzato in un viewer 3D sviluppato presso i
laboratori della HP di Palo Alto da Dan Gelb. Il viewer permette di traslare, ruotare, effettuare la zoom sull’oggetto, e manipolare in maniera interattiva la direzione dell’illuminazione. Un ulteriore utilizzo di questa tecnica `e stato proposto in [MVSL05] per documentare collezioni di monete, permettendo la creazione di mostre virtuali.
2.2
Shading Enhancement
Con il termine shading enhancement si indicano tutte quelle tecniche che pun-tano a migliorare lo shading in maniera coerente esaltando la percezione delle forme e dei dettagli. Di seguito saranno presentate alcune tecniche proposte negli ultimi anni, di cui tre tecniche specifiche per modelli tridimensionali ed una per immagini.
2.2.1
Normal Enhancement
Proposto nel 2005 [CST05], il Normal Enhancement consente di esaltare le caratteristiche geometriche di un modello 3D durante il rendering modifi-cando semplicemente le normali alla superficie. L’idea di fondo `e che lo shading fornisce un tipo di informazioni nella percezione dell’immagine che `
e molto pi`u qualitativa che quantitativa. Al contrario, informazioni visive quali la sagoma dell’oggetto o le discontinuit`a di colore apportano informa-zioni pi`u significative della reale forma dell’oggetto. Inoltre per ottenere una miglioramento delle percezioni, lo shading non necessariamente deve essere fisicamente corretto.
La tecnica si basa sulla possibilit`a di esaltate le componenti ad “alta frequenza” del modello, lasciando inalterata la geometria e la silhouette degli oggetti, e modificando l’orientamento della superficie.
2.2 Shading Enhancement 24
Un approccio semplice per ottenere le componenti ad alta frequenza di una mesh M , proposto in [GSS99], consiste nel sottrarre alla mesh originale una mesh a bassa frequenza ML, ottenuta per mezzo di un filtro di smoothing di Laplace, M −ML. L’enhancement si ottiene sommando queste componenti ad alta frequenza alla mesh originale usando un opportuno fattore di scala; la mesh finale ME`e data da ME = M +k(M −ML). L’effetto che si ottiene, oltre ad esaltare la percezione delle forme, `e quello di modificare la geometria e in particolare la silhouette dell’oggetto. In Figura 2.8 `e mostrato un esempio di mesh con le relative versioni smoothed ed enhanced.
Figura 2.8: Esaltazione del dettaglio su mesh: mesh originale (sinistra); mesh a bassa frequenza (centro); mesh esaltata (destra). (Immagine tratta da [GSS99])
In alternativa alla modifica della geometria, per esaltare la percezione delle caratteristiche di una superficie, `e possibile utilizzare le informazioni di tipo qualitativo fornite dallo shading della superficie, come le normali.
La metodologia rimane pressocch´e la stessa. Per ogni faccia prima si ge-nera la normale smoothed nLtramite un filtro passa basso e successivamente si calcola la normale enhanced nE, come
nE = n + k(n − nL) (2.12)
L’effetto che si ottiene applicando la formula 2.12 dipende principalmente da due parametri: il tipo di filtro utilizzato per generare le normali smoothed e
il valore della costante di peso k usata per perturbare le normali originali e che determina l’intensit`a dell’effetto di enhancement. L’operazione di filtro pu`o essere eseguita con un filtro di Laplace che iterativamente per ogni faccia calcola la media con le normali delle facce adiacenti. Il numero di iterazioni determina l’estensione del processo di smoothing.
I risultati ottenuti dall’applicazione del Normal Enhancement si possono valutare in Figura 2.9.
Figura 2.9: Confronto tra le mesh originali e le mesh ottenute applicando il normal enhancement. (Immagine tratta da [CST05])
Queste tecniche, che esaltano le componenti ad alta frequenza, funzionano correttamente solo se la mesh di partenza `e abbastanza densa e uniforme dal
2.2 Shading Enhancement 26
punto di vista geometrico o, in altre parole, se i triangoli sono pi`u piccoli rispetto alla dimensione di molte caratteristiche della mesh e il rapporto tra maggior e il minor lato del triangolo non `e troppo elevato. Se la mesh non possiede queste propriet`a, `e necessario processare la mesh per suddividere ricorsivamente tutte le facce pi`u grandi di una certa soglia. Inoltre `e possibile utilizzare una versione pesata del filtro di Laplace, che riduce il problema della geometria non uniforme pesando l’influenza delle normali dei triangoli vicini con la loro dimensione. In alternativa `e possibile ritriangolare la mesh. Il Normal Enhancement risulta particolarmente utile per migliorare il rendering di oggetti quali pezzi meccanici elaborati al CAD, che presentano superfici levigate e contorni netti e molto regolari. Per questo tipo di og-getti le comuni tecniche di shading risultano inadatte in quanto generano un aspetto piatto o immagini poco chiare e ambigue. Di contro, sotto particolari condizioni di rendering `e possibile che delle superfici piatte siano visualizzate come concave, effetto che pu`o essere contenuto variando opportunamente i due parametri di controllo. Tra i vantaggi della tecnica la possibilt`a di essere eseguita in preprocessing sul modello, permettendo la memorizzazione delle nuove normali nel modello stesso, con il risultato di renderla completamente view-independent e utilizzabile in qualunque sistema di rendering che dia la possibilit`a all’utente di specificare le normali.
La tecnica `e stata testata anche su oggetti che presentano forme molto irregolari. Il risultato ottenuto si caratterizza per l’esaltazione dei dettagli di alta frequenza, supponendo materiali puramente diffusivi e l’utilizzo di una singola luce posizionata nello stesso punto dell’osservatore. Al contrario, se si utilizza un’illuminazione pi`u complessa o materiali speculari emerge la natura 3D dell’enhancement.
2.2.2
3D Unsharp Masking
Il 3D Unsharp Masking [RSI+08], ispirato dalla tecnica di unsharp masking su immagini, permette di esaltare in modo coerente il contrasto locale in una scena 3D su superfici arbitrarie, sotto qualsiasi forma di illuminazione.
Il principio alla base della comprensione di un’immagine `e la capacit`a del uomo di ricostruire mentalmente lo scenario originale partendo da una serie di informazioni come la variazione di colore, la specularit`a, le occlusioni, le ombre. L’enhancement del contrasto locale esalta queste informazioni aiutando l’interpretazione di scene 3D a geometria complesse in ambiti tipo la diagnostica medica, la simulazione computerizzata, la navigazione geografica, la realizzazione di film e videogiochi. Il problema principale `e decidere quale informazione esaltare.
L’approccio proposto, invece di identificare e modificare le varie informa-zioni separatamente, opera sulla causa comune di tutte, i cambiamenti nella riflessione della luce, mantenendo quindi la coerenza della scena 3D. L’effetto ottenuto `e un incremento del contrasto percepito rispetto al contrasto reale della scena, in modo coerente con tutti i punti di vista e sotto ogni tipo di illuminazione.
Questa tecnica deriva direttamente dalla classica tecnica di elaborazio-ne delle immagini chiamata appunto Unsharp Masking (vedi Figura 2.10). Essa prevede il calcolo di una versione “sfuocata” dell’immagine originale e successivamente la somma all’immagine originale della differenza amplificata tra l’originale e la versione sfuocata (o addolcita o smooth).
Matematicamente, l’unsharp masking U (S) di un segnale S, con intensit`a λ e smoothness σ `e definita come:
U (S) = S + λ(S − Sσ) (2.13)
In ambito 3D, S `e la radianza uscente da un punto delle superficie verso la posizione dell’osservatore, e Sσ `e la versione smoothed della radianza. La
2.2 Shading Enhancement 28
Figura 2.10: Unsharp Masking di immagini: immagine originale (sinistra); immagine con Unsharp Masking (destra).
differenza C(S) = S − Sσ `e chiamata segnale di contrasto. L’intensit`a di questo segnale `e controllata dal parametro σ, che indica il livello massimo di smoothing, e dalla funzione locale λAdapt, calcolata dal valore di guadagno λ. Anche se il valore di guadagno λ `e scelto dall’utente, risultati migliori si ottengono con valori adattati localmente alla scena. Richiedere un enhance-ment troppo elevato pu`o generare infatti degli aloni. Questo effetto `e causato dalla mancanza di basse frequenze nel segnale S rispetto alla alte frequenze amplificate dal segnale di contrasto C(S). In particolare, il sistema di visua-lizzazione risulta essere meno sensibile a questo fenomeno se sono presenti altre frequenze, ad esempio create da una texture, consentendo l’utilizzo di un λ maggiore. Si definisce quindi un valore di guadagno adattivo λAdapt come:
λAdapt= λ p
1 + V ar(S) (2.14)
dove V ar(S) `e la varianza della luce incidente in una piccola zona di superficie della mesh.
Un possibile modo di calcolare la versione smoothed della radianza Sσ `
e adottare un filtro di smoothing di Laplace che sostituisca la radianza per ogni vertice con la media dei vertici vicini. Eseguendo iterativamente questo
filtro si ottiene un incremento dello smoothing. Il numero di iterazioni `e dato dal parametro σ. Questo parametro non pu`o essere ne troppo basso, perch´e il segnale di contrasto presenterebbe una banda troppo stretta, ne troppo elevato, perch´e si includerebbero anche le componenti di bassa frequenza.
I risultati ottenuti dall’applicazione del 3D Unsharp Masking si possono valutare in Figura 2.11.
Figura 2.11: 3D Unsharp masking: segnale originale (sinistra); 3d unsharp masking con σ = 20 e λ = 0.5 (centro); segnale di contrasto con σ = 20 e λ = 0.5 (destra). (Immagine tratta da [RSI+08])
2.2.3
Exaggerated Shading
La tecnica di Exaggerated Shading[RBD06] `e una tecnica di rendering non fotorealistico proposta nel 2006 basata su variazioni locali della posizione della luce sulle differenti aree della superficie dell’oggetto. L’obiettivo `e quello di comunicare all’osservatore la geometria della superficie, includendo sia la forma globale che i dettagli. Questo perch´e, con le tradizionali tecniche di rendering, basate su illuminazione globale o locale, difficilmente si riescono ad esaltare i dettagli in ogni punto, in quanto tipicamente rilevabili solo utilizzando un’illuminazione radente.
La tecnica, ispirata della metodologie utilizzate in cartografia per il di-segno dei rilievi, si basa su un approccio multiscale e locale del cosiddetto toon shading. Il toon shading `e un evoluzione 3D delle tecniche usate
nell’a-2.2 Shading Enhancement 30
nimazione classica, in cui i soggetti sono disegnati evidenziando la silhouette o la suddivisione in componenti e colorando le campiture mediante shading costante.
Le idee chiave dell’Exaggerated Shading sono tre:
• L’illuminazione subisce un operazione di clamp come nel toon shading per enfatizzare le variazioni macroscopiche della superficie:
• L’illuminazione `e calcolata a vari livelli usando delle versioni addolcita delle normali alla superficie in modo da esaltare la forma globale e i dettagli a frequenze differenti;
• La direzione della luce varia come se fosse sempre radente rispetto l’o-rientazione globale di una parte della superficie dell’oggetto, esaltando i dettagli.
L’algoritmo si compone di tre passi: l’applicazione di un modello di il-luminazione locale, il calcolo dello shading a pi`u livelli e l’estensione del modello locale ad una geometria arbitraria. Il modello di illuminazione lo-cale di partenza `e quello utilizzato in cartografia, che prevede la modella-zione di una componente diffusiva e una componente ambientale, ignorando completamente la riflessione speculare:
1 2 +
1
2(ˆn · ˆl) (2.15)
dove ˆn e ˆl sono la versione normalizzata della normale e del vettore della luce incidente. A questo punto per esaltare localmente i dettagli, un metodo frequentemente utilizzato in cartografia `e quello di enfatizzare l’altezza. Se da un lato questo mette in evidenza le piccole pendenze, dall’altro pone il problema di alcuni spigoli o creste che possono presentare un contrasto maggiore rispetto ad altri.
Per questa ragione il metodo adottato nel Exaggerated Shading `e ispirato dal toon shading. In particolare si utilizza una versione “soft” del toon shading:
1 2 +
1
2clamp[−1...1]a(ˆn · ˆl) (2.16) con a parametro deciso dall’utente.
Il calcolo dello shading a pi`u livelli si esegue usando una versione smoo-thed della geometria. Per ogni vertice si memorizzano la normale originale n0 insieme a diverse versioni smoothed ni, per i = 1 . . . b, calcolate in un passo di preprocessing della geometria. Date le versioni smoothed delle normali, si eseguono una serie di calcoli di shading. Infine i risultati sono moltiplicati insieme e mappati nel range [0 . . . 1].
Per estendere il modello locale all’intero oggetto 3D, non si pu`o utilizzare una singola direzione di illuminazione in quanto si fornirebbe meno dettaglio nelle aree della superficie quasi perpendicolari ad essa o lontane della luce. Per questo motivo si varia localmente la direzione della luce per vertice e per livello. In particolare, si effettua la proiezione della direzione della luce sul piano perpendicolare alla normale smoothed ni+1, e dopo si calcola il soft toon shading usando la nuova direzione di illuminazione:
ci = clamp[−1...1]a(ˆni+1· ˆli+1) (2.17) dove:
li+1= lglobal− ˆni+1(ˆni+1− lglobal) (2.18) Questo permette di esaltare il dettaglio locale in maniera indipendente all’o-rientazione generale della superficie.
Infine i risultati del calcolo dell’illuminazione ai diversi livelli sono com-binati con un offset globale e con lo shading per il pi`u basso livello di
2.2 Shading Enhancement 32 dettaglio: c = 1 2+ 1 2 kb(ˆnb· ˆlglobal) | {z } termine base + b−1 X i=0 kici | {z } termine dettagli (2.19)
dove i valori ki e kb sono dei pesi che determinano il contributo sul risultato finale di un certo livello.
I risultati ottenuti dall’applicazione del Exaggerated Shading si possono valutare in Figura 2.12.
Figura 2.12: Exagerated shading: oggetto con illuminazione diffusiva (sinistra); oggetto con exaggerated shading (destra). (Immagine tratta da [RBD06])
2.2.4
Multiscale Shape e Detail Enhancement
Proposto nel 2007, il Multiscale Shape e Detail Enhancement `e una tecnica di elaborazione delle immagini per esaltare la forma e i dettagli di un’immagine basata sull’incremento locale del contrasto. I dati di input sono costituiti da un set di fotografie di un oggetto acquisite da un punto di vista fisso ma con differenti condizioni di illuminazione. Per ogni immagine di input si cal-cola una decomposizione multi-livello basata su un filtro bilaterale, per poi
costruire l’immagine finale combinando le informazioni di dettaglio ottenute da tutte le immagini ad ogni livello di decomposizione. A differenza delle tecniche re-illuminazione come le PTM, questo approccio non richiede infor-mazioni aggiuntive riguardanti la posizione della luce o la calibratura della fotocamera. L’approccio `e simile all’Exaggerated Shading ma non richiede nessuna informazione sulla geometria della scena.
La tecnica si compone di due passi: analisi e sintesi. Nel passo di analisi si calcola la decomposizione multi-livello e nel passo di sintesi si combinano le informazioni di dettaglio per generare l’immagine finale. Diversi test hanno dimostrato che si possono ottenere risultati ottimi anche con poche immagini di input. Per esempio 3-5 immagini sono gi`a sufficienti per ottenere buoni risultati.
L’algoritmo lavora su immagini con un singolo canale I = log Y , dove Y `e il canale di luminanza nello spazio di colori YUV. Una volta applicato l’algoritmo si eseguono le operazioni inverse per creare l’immagine a colori.
La decomposizione multi-livello del passo di analisi si basa su un filtro bilaterale che preservi i bordi. Questi filtri sono usati spesso per decomporre un’immagine in un livello base, che elimina le piccole variazioni di intensit`a e conserva i bordi pi`u marcati, e un livello di dettaglio ottenuto come differenza tra l’originale e il livello base.
In particolare per ogni immagine I si costruisce una serie di immagini filtrate Ij per j = 0 . . . b in maniera iterativa partendo da I0 = I:
Ipj+1 = f (Ij, p, σs,j, σr,j) (2.20)
dove f `e una funzione che per ogni pixel p restituisce il risultato della convo-luzione, in un intorno Ω di p, con due filtri gaussiani di varianza σs,j e σr,j, che prendono come input rispettivamente la distanza di un pixel dell’intor-no da p e la differenza tra il valore di un pixel dell’intordell’intor-no e il pixel p. La varianza σs,j serve a incrementare lo smoothing, raddoppiando la larghezza
2.3 JPEG2000 34
dello spazio gaussiano ad ogni livello con una legge del tipo:
σs,0 = σs
σs,1= √
3σs,0 (2.21)
σs,j = 2j−1σj−1 ∀j > 1
mentre la varianza σr,j permette di preservare i contorni pi`u marcati assu-mendo una legge del tipo:
σr,j = σr/2j (2.22)
Un passo di analisi pi`u veloce si pu`o ottenere utilizzando un primo filtro gaussiano pi`u sparso.
A questo punto `e possibile calcolare un insieme di immagini di dettaglio come differenza tra immagini filtrate a due livelli successivi:
Dj = Ij− Ij+1 (2.23)
Il passo di sintesi genera l’immagine finale come:
IResult = IDetail+ βIBase 0 < β ≤ 1 (2.24)
dove IDetail massimizza le piccole variazioni di luminanza ed `e calcolata come media pesata delle immagini di dettaglio Dj di tutte le immagini di input, e IBase combina le informazioni di shading di tutte le immagini di input filtrate a livello pi`u alto, ovvero quello con minor livello di dettaglio. Il parametro β `e utilizzato per bilanciare enfasi dell’immagine di dettaglio con l’immagine base.
I risultati ottenuti dall’applicazione del Multiscale Shape e Detail Enhan-cement si possono valutare in Figura 2.13.
2.3
JPEG2000
Il JPEG2000[fS04] `e una tecnica di compressione di immagini basata sulla trasformata DWT (Discrete Wavelet Transform), creata nel 2000 per
rim-Figura 2.13: Multiscale Shape e Detail Enhancement: un dettaglio nelle 5 immagini di input (sinistra); un immagine di input (centro); risultato finale (destra). (Immagine tratta da [FAR07])
piazzare lo standard JPEG basato sulla trasformata DCT (Discrete Cosine Transform). Mentre nella DCT si scompone l’immagine in componenti ar-moniche (in pratica una analisi in frequenza) e blocco per blocco, nella DWT si scompone l’intera immagine in sottobande a cascata. Adottando questo approccio ed estendendo l’analisi a tutta l’immagine, si elimina una delle principali limitazioni del JPEG: l’eccessiva tassellizzazione che si manifesta al crescere del fattore di compressione.
Le caratteristiche principali del JPEG2000 sono:
• Supporto per differenti spazi di colore; • Supporto per compressione lossless e lossy;
• Fattore di compressione alto e buona qualit`a a bassi bit rate; • Scalabilit`a per risoluzione e per qualit`a;
2.3 JPEG2000 36
• Supporto per regioni di interesse (ROI), che permette di definire aree dell’immagine che saranno codificate con qualit`a pi`u alta rispetto al resto dell’immagine;
• Formato di file flessibile con supporto ai metadati.
L’algoritmo si compone di diverse fasi. Si comincia con la trasformazione dell’immagine dallo spazio RGB ad uno spazio di colori pi`u adatto. Poich´e la trasformata DWT `e eseguita su ogni componente di colore in maniera indipendente rispetto alle altre, `e necessario che le componenti siano ragio-nevolmente decorrelate l’una rispetto all’altra. La rappresentazione RGB non gode di questa propriet`a, dunque si preferisce utilizzare la rappresen-tazione dell’immagine in uno spazio di coordinate luminanza-crominanza, che assicura una sufficiente decorrelazione tra le tre componenti di colore dell’immagine. Le possibili scelte sono due:
• Irreversible Color Transform (ICT) che usa lo spazio di colori Y CbCr e causa degli errori di arrotondamento;
• Reversible Color Transform (RCT) che usa una versione modificata dello spazio di colori Y U V e non introduce errori di quantizzazione in modo da essere pienamente reversibile.
Dopo la trasformazione di colore, l’immagine `e suddivisa in regioni ret-tangolari, tiles, che sono trasformate e codificate separatamente. Le tiles possono avere qualsiasi dimensione ed `e possibile considerare l’intera imma-gine come un unica tile. Una volta scelta la dimensione, tutte le tiles avranno quella dimensione.
Ognuna di queste tiles subisce la trasformazione wavelet. JPEG2000 usa due differenti versioni di trasformazioni wavelet:
• irreversible, che introduce un rumore di quantizzazione che dipende dalla precisione del decoder;
• reversible, che utilizza coefficienti interi ed `e usata nella compressione lossless.
Dopo la trasformazione wavelet, i coefficienti vengono quantizzati per ridurre il numero di bit necessari a rappresentarli, al costo di una perdita di qualit`a. Il risultato `e un insieme di numeri interi che devono essere codificati bit a bit. Il parametro che pu`o essere modificato per settare la qualit`a finale dell’immagine corrisponde al passo di quantizzazione: pi`u grande `e il passo, maggiore `e la compressione e minore `e la qualit`a.
I coefficienti quantizzati sono raggruppati in pi`u code-blocks, ognuno dei quali viene codificati per mezzo di un processo chiamato EBCOT (Embed-ded Block Coding with Optimal Truncation), che si occupa di riscrivere i dati in input, in maniera tale da eliminare le ridondanze dovute alla rappre-sentazione dei coefficienti wavelet, e riordinare l’output, trasmettendo prima l’informazione pi`u importante.
EBCOT `e composto da due blocchi logici distinti, detti tier. Il tier 1 riceve in input un code-block e lo codifica utilizzando un modello di proba-bilit`a adattativo, basato su un codificatore aritmetico. Ogni blocco genera codewords (sequenze di dati compressi indipendenti), che sono raggruppate in livelli di qualit`a progressivi, detti layers. Per costruire i layers, le codewords sono suddivise in pezzi, detti chunks. Il tier 2 raccoglie queste informazioni e dispone i chunks di tutti i blocchi nei layers in base al valore dell’infor-mazione che contengono. Infine, l’infordell’infor-mazione codificata `e raggruppata in una collezione di pacchetti, ciascuno contenente i dati codificati per un certa sottobanda (scalabilit`a per risoluzione) e per un certo layer (scalabilit`a per qualit`a).
Questa struttura `e stata progettata con l’obiettivo di ottenere un bit-stream che fosse scalabile per qualit`a e risoluzione e, nello stesso tempo, possedesse un certo grado di scalabilit`a spaziale. La scalabilit`a per
risoluzio-2.3 JPEG2000 38
ne `e ottenuta mediante la decomposizione wavelet. La scalabilit`a spaziale `e assicurata dall’esecuzione dell’operazioni di codifica, in maniera indipenden-te, su blocchi sufficientemente piccoli. L’organizzazione a layers progressivi, infine, garantisce la scalabilit`a per qualit`a.
Il JPEG2000 guadagna circa il 20-30% in termini di compressione rispet-to allo standard JPEG. Quesrispet-to lo rende utile per applicazioni che utilizzino immagini di grandi dimensioni e che presentano un basso contrasto sui con-torni, come ad esempio le immagini mediche. Lo svantaggio principale `e rappresentato dall’elevata complessit`a computazionale.
RtiViewer
La funzionalit`a principale del sistema RtiViewer `e la visualizzazione di PTM sotto differenti e innovative condizioni di rendering, determinate dalle condi-zioni di illuminazione e dalla tecnica di shading enhancement utilizzata. Rti-Viewer `e il sistema che dovr`a sostituire il precedente tool di visualizzazione per PTM, sviluppato in Java presso i laboratori della HP, migliorandone pre-stazioni, grazie ad uno sviluppo basato sul C++ e su OpenGL, funzionalit`a, grazie alle innovative tecniche di enhancement proposte ed implementate, ed estendibilit`a, grazie ad una architettura basata su plugin che permet-te in maniera molto semplice l’implementazione di permet-tecniche di enhancement aggiuntive ed il supporto di different formati di PTM.
RtiViewer `e stato sviluppato in C++ usando esclusivamente librerie open-source, tra cui la VCGlib del Visual Computing Lab di Pisa, il framework Qt della Trolltech e la libreria OpenJpeg del Communications and Remote Sensing Lab del Universit´e Catholique de Louvain. Per garantire un maggio-re diffusione e utilizzo `e stato adottato un sviluppo multi-piattaforma che ne consente l’esecuzione in ambiente Mac, Windows e Linux. Inoltre il sistema supporta il caricamento di immagini dal disco locale, o via HTTP da un server remoto, in modo completamente trasparente all’utente.
Nel seguente capitolo sar`a analizzata l’architettura di massima del soft-ware. In particolare, dopo una breve descrizione del modello di architettura
3.1 Librerie utilizzate 40
adottato e delle librerie utilizzate, sar`a analizzata l’interfaccia grafica, illu-strando le principali caratteristiche e funzionalit`a. Sar`a inoltre analizzata la modalit`a di visualizzazione per immagini pubblicate su un server remoto e il tool realizzato per predisporre le PTM per questo tipo di visualizzazione. Infine saranno presentati alcuni dettagli implementativi, ponendo particolare attenzione sugli aspetti dell’architetture che garantiscono al software l’esten-dibilit`a sia a nuovi formati di immagini RTI che a nuove tecniche di shading enhancement.
3.1
Librerie utilizzate
Qt: Qt `e un framework sviluppato dalla Trolltech che permette di semplifi-care notevolmente lo sviluppo in C++ di applicazioni multi-piattaforma. `E completamente object-oriented, facilmente estendibile e consente la program-mazione a componenti. Nato come prodotto commerciale nel 1996, a partire dalla versione 4.0 `e stata messa a disposizione una versione open source con un numero di funzionalit`a ridotte utilizzabile per sistemi Windows, Linux e Mac.
All’interno di RtiViewer, il framework Qt viene utilizzato per lo svilup-po dell’interfaccia grafica e non solo, in quanto mette a dissvilup-posizione diversi moduli che implementano funzionalit`a aggiuntive in modo completamente indipendente dalla piattaforma, come la lettura e la scrittura di documen-ti XML, la gesdocumen-tione delle comunicazioni di rete via HTTP, la gesdocumen-tione di comandi OpenGL all’interno dell’applicazione. Inoltre mette a disposizione una API semplice per la realizzazione di applicazioni multi-thread.
La caratteristica che lo rende particolarmente utile nella realizzazione dell’interfaccia grafica `e il meccanismo denominato signals-slots. In generale, nello sviluppo di un’interfaccia grafica si vuole che oggetti di ogni genere siano in grado di comunicare con altri oggetti. Il meccanismo messo a disposizione
dai toolkit pi`u vecchi `e quello delle callback. Una callback `e un puntatore ad una funzione, che viene passato come argomento alla funzione da eseguire per consentire la notifica di qualche evento. Questo meccanismo presenta due difetti: primo, non `e type-safe, in quanto non si pu`o essere sicuri che la callback venga chiamata con parametri corretti; secondo, la callback `e strettamente accoppiata con la funzione da eseguire, che deve conoscere quale callback chiamare.
In Qt, l’alternativa alle callback `e data appunto del meccanismo dei segna-li e degsegna-li slot. Un signal viene emesso quando occorre un particolare evento. Uno slot `e un metodo chiamato in risposta ad un particolare signal. Questo meccanismo `e type-safe perch´e la firma di un signal deve corrispondere con la firma dello slot che lo riceve, quindi il compilatore pu`o controllare i tipi dei parametri. Eccezionalmente, se un signal presenta pi`u parametri dello slot con cui `e connesso, i parametri in eccedenza vengono ignorati. Inoltre signals e slots sono accoppiati in modo lasco: una classe che emette un signal non conosce n´e si preoccupa dello slot che lo ricever`a. L’interno meccanismo garantisce che se un signal `e connesso ad uno slot, allora lo slot sar`a invocato con gli stessi parametri del signal. A sua volta lo slot pu`o essere utilizzato come un normale metodo. Esattamente come un oggetto non sa se qualcuno ricever`a il suo signal, uno slot non sa se qualche signal `e collegato a lui. Tutto questo assicura la creazione di componenti completamente indipendenti.
OpenGL: La libreria usata per il rendering 3D `e OpenGL nella versione 2.1. L’utilizzo all’interno del software `e limitato al rendering dell’immagi-ne come texture. In particolare a partire dalla versiodell’immagi-ne 2.0, OpenGL offre la possibilit`a di utilizzare texture rettangolari e non solo quadrate. Inol-tre a partire dalla stessa versione supporta un linguaggio di shading chia-mato GLSL (OpenGL Shading Language), molto simile al C, che permette di programmare intere parti della pipeline grafica con l’utilizzo di pixel e
3.2 L’architettura di RtiViewer 42
vertex-shader.
VCG: La libreria VCG del Visual Computing Lab del ISTI-CNR di Pi-sa mette a disposizione tutto il necesPi-sario per la visualizzazione di ambienti virtuali tridimensionali. La libreria fornisce soprattutto strutture dati e fun-zioni a basso livello per la gestione dei dati di oggetti 3D. Il suo utilizzo `e limitato alla gestione di vettori e punti dello spazio e nel piano.
OpenJpeg: La libreria, scritta in C, mette a disposizione un codec per immagini JPEG2000. Oltre al codec base, offre una serie di funzionalit`a avanzate, come il supporto al formato MJ2 (Motion JPEG 2000), o un tool di indicizzazione utile per il protocollo JPIP. Il suo utilizzo all’interno del software riguarda la compressione delle immagini accessibili su un server remoto, in modo da ridurre la quantit`a di dati scambiati via rete.
3.2
L’architettura di RtiViewer
L’architettura di RtiViewer si compone di quattro moduli:
• l’interfaccia grafica (Gui);
• il modulo per il caricamento dei dati da remoto (HttpThread); • il modulo per la gestione in memoria delle immagini (Rti);
• il modulo per la gestione delle diverse tecniche di shading enhancement (Enhancement).
Ognuno di essi espone un’interfaccia che viene utilizzata opportunamente dagli altri moduli.
Gui: L’interfaccia grafica `e composta da una serie di controlli che consen-tono all’utente finale di interagire in tempo reale e in maniera intuitiva con il software. Il paradigma utilizzato `e quello Model View Control che, insie-me alle funzionalit`a avanzate delle libreria Qt, ha portato allo sviluppo di controlli grafici indipendenti e riutilizzabili.
HttpThread: Il modulo si occupa del recupero di un immagine via HTTP. Il caricamento avviene in maniera completamente asincrona in un thread dif-ferente da quello principale dell’applicazione. Per il caricamento `e necessario che l’immagine venga predisposta per la visualizzazione remota tramite la suddivisione in diverse tiles a differente risoluzione.
Rti: Il modulo si occupa della gestione dell’immagine in memoria. In par-ticolare definisce una gerarchia di classi astratte che consente di estendere il modulo ad eventuali nuovi formati di immagini. Questa gerarchia definisce una serie di metodi che si occupano del caricamento dei dati dell’immagine da locale e da remoto e della generazione del risultato finale del rendering in base alla scelte effettuate dall’utente sull’interfaccia grafica. Alla base del-le gerarchia sono state impdel-lementate del-le classi per la gestione deldel-le diverse tipologie di PTM.
Enhancement: Il modulo contiene tutte le classi che implementano le va-rie tecniche di shading enhancement messe a disposizione dell’utente. Ognu-na di queste classi implementa uOgnu-na classe astratta comune che ne permette l’utilizzo all’interno dell’architettura in maniera completamente trasparente. Questo garantisce l’estendibilit`a del modulo e dell’intero programma. Inol-tre ognuna espone dei metodi specifici per applicare la tecnica in fase di rendering.
3.3 Interfaccia grafica 44
3.3
Interfaccia grafica
L’aspetto cruciale di un programma interattivo `e l’interfaccia grafica. Avere un’interfaccia semplice e intuitiva consente all’utente di interagire velocemen-te con il software. In particolare l’invelocemen-terfaccia `e stata realizzata per consentire l’utilizzo da parte di utenti poco esperti e con conoscenze informatiche limita-te. In questo paragrafo verranno presentate le scelte effettuate per cercare di ottimizzare l’usabilit`a, mantenendo prestazioni accettabili anche su sistemi non modernissimi.
L’interfaccia di RtiViewer, come illustrato in Figura 3.1, si compone di due parti: il browser, che occupa la parte sinistra della finestra e consente di interagire direttamente sull’immagine, e una serie di strumenti di con-trollo nella parte destra, che consentono di impostare i diversi parametri di rendering.
L’idea di base di RtiViewer `e quella di fornire all’utente la possibilit`a di navigare l’immagine e settare i diversi parametri di rendering in tempo reale, visualizzando il risultato all’interno del browser.
In totale l’interfaccia si compone di cinque controlli, tra cui:
• Il browser ; • La toolbar ;
• Il light control, per settare interattivamente la posizione della luce; • Il rendering dialog, per la selezione della tecniche di shading
enhance-ment da applicare all’immagine;
Figura 3.1: RtiViewer per Windows con un particolare della PTM acquisita dalla tomba dell’arcivescovo Giovanni Scherlatti conservata presso il Museo dell’Opera Primaziale di Pisa.
Browser
La funzionalit`a principale del browser `e il rendering del’immagine. Il ciclo di rendering implementato prevede le seguenti fasi:
1. Recupero dei parametri di rendering, come la condizione di illumina-zione, la modalit`a di rendering richiesta, e la porzione di immagine visualizzata;
2. Calcolo della PTM con i parametri di rendering recuperati;
3. Generazione di un’immagine RGB a partire dai dati restituiti dal cal-colo della PTM;
3.3 Interfaccia grafica 46
5. Rendering della texture nel browser.
Tra le ulteriori funzionalit`a messe a disposizione ci sono lo zoom e la naviga-zione dell’immagine, la possibilit`a di variare localmente la posizione della luce e l’implementazione di alcune modalit`a di rendering avanzate particolarmente utili per utenti esperti e con conoscenze nell’ambito della grafica.
L’interazione avviene attraverso il mouse e la tastiera. Nello specifico il dragging con il tasto sinistro del mouse consente la navigazione, qualora l’immagine non sia gi`a interamente visualizzata nel browser, mentre lo zoom si ottiene o tramite la rotella del mouse o tramite le combinazioni classiche di tasti CTRL + ‘+’ (per l’operazione di zoom in) e CTRL + ‘-’ (per l’ope-razione di zoom out ). Il trascinamento con il tasto destro del mouse consente invece di modificare localmente la posizione della luce.
Ad ogni interazione di questo tipo vengono emessi dei segnali dal browser con lo scopo di mantenere coerenti le informazioni sull’immagine visualizzata e sulla posizione della luce in tutti i controlli che compongono l’interfaccia, in particolare nel navigator e nel light control. A questo scopo sono stati implementati degli slots che consentono di ricevere aggiornamenti su queste informazioni dall’esterno.
Con il doppio click `e possibile invece centrare il browser sul punto dell’im-magine in cui si trova il puntatore del mouse ed eseguire contemporaneamente lo zoom.
Le modalit`a di rendering avanzate sono diverse e riguardano aspetti tec-nici e specialistici come la visualizzazione della normal map associata ad una PTM, la visualizzazione della componente di illuminazione o RGB del formato LRGB-PTM, o la visualizzazione di informazioni parziali relative alla tecnica di shading enhancement scelta. La selezione avviene da tastiera tramite combinazioni di tasti.
Inoltre il browser garantisce l’interattivit`a durante l’utilizzo del mouse solo se il tempo necessario al calcolo del buffer dati da cui ricavare la texture risulta minore di un valore massimo di millisecondi. Se questa condizione non viene soddisfatta l’interattivit`a viene garantita solo al rilascio del tasto del mouse.
Toolbar
La toolbar mette a disposizione quattro pulsanti che consentono, partendo da sinistra in Figura 3.2:
• Il caricamento di un’immagine dal disco locale. • Il caricamento di un’immagine da un server remoto. • La modifica delle configurazione del software.
• La visualizzazione di una finestra di informazioni.
I dettagli sul caricamento di dati da un server remoto saranno esposti nel paragrafo 3.4
Figura 3.2: Toolbar.
Light control
Il light control (Figura 3.3) permette all’utente di modificare in maniera semplice ed intuitiva la posizione della luce. L’interazione avviene con il tasto sinistro del mouse.