Capitolo 5  Ricostruzione dei tessuti molli

5.1 Introduzione

Terminate le operazione descritte nel capitolo precedente si dispone di una ricostruzione del reperto dove i tessuti duri sono considerati affidabili, riguardo la ricostruzione dei tessuti molli la nostra metodologia prevede di integrare questi dati con quelli provenienti da un altro individuo ritenuto compatibile in base agli studi antropologici e assunto come “modello di riferimento”.

L’obbiettivo delle operazione descritte di seguito è quella di ottenere una perfetta corrispondenza tra i tessuti duri dei due soggetti in in modo che poi i tessuti molli del modello di riferimento possano rappresentare una buona approssimazione di quelli del reperto. Le operazioni tengono inoltre in considerazione, attraverso l’impiego delle tabelle degli spessori, le esperienze derivanti dalla ricostruzione facciale manuale.

 

Figura 11: il procedimento per la ricostruzione dei tessuti molli.

 

La figura precedente illustra le singole fasi della ricostruzione dei tessuti molli e i rispettivi obbiettivi. La fase di registrazione del volume è stata introdotta nel capitolo precedente, le successive tre fasi sono stadi di warp: con questo termine si intende l’operazione di deformazione di una entità che interviene soltanto sulle caratteristiche geometriche, lasciandone quindi invariate la topologia e gli attributi. In ciascuno degli stadi di warp la deformazione è guidata da informazioni di natura diversa, nel primo si sfruttano le posizioni dei pioli indicati nel “protocollo di Manchester” che vengono considerate come landmarks, l’obbiettivo di questa fase è quello di portare i landmarks del modello di riferimento a coincidere con quelli del reperto ed è propedeutico allo stadio successivo. Nello stadio guidato dal feature tracking si sfrutta il particolare algoritmo indicato nel paragrafo 4 per individuare un numero molto più elevato di punti corrispondenti tra i due tessuti duri. Nel terzo stadio di warp si considerano sia le posizioni che la direzione dei pioli del protocollo di Manchester per portare gli spessori dei tessuti in questi ad essere conformi a quanto indicato dalle tabelle di Rhine e Moore indicate nell’appendice B.

L’ultima fase integra i tessuti molli così ottenuti con i tessuti duri del reperto.

5.2 Procedure comuni agli stadi di warp

Le informazioni sfruttate per guidare gli stadi di warp hanno in comune il fatto di rappresentare campi vettoriali scatterati, cioè definiti su un insieme arbitrario di punti.

Il primo passo necessario è quindi quello di diffondere il campo scatterato per definire come questo agisce su ciascuno dei vertici della struttura da deformare.

La procedura di diffusione si basa sulla formula seguente

nota come metodo di Shepard [Shep] che definisce il campo diffuso come la somma del contributo dei vari generatori pesati secondo l’inverso della loro distanza. Il metodo di Shepard è implementato in VTK mediante il filtro vtkShepardMethod, questo filtro ha un parametro MaxDist che definisce la massima distanza di influenza di ciascun generatore. Come esempio nelle figure  Figura 1‑2 e Figura 1‑3 vediamo il risultato della diffusione di un campo scalare, l’intensità dei generatori e del campo diffuso è rappresenta mediante una scala cromatica. Si osserva come limitando l’area di influenza dei generatori ci possono essere zone dove il campo diffuso subisce brusche variazioni (figura Figura 1‑2), invece estendendo l’area di influenza a tutto lo spazio le zone lontane dai generatori si portano al valore medio del campo (figura Figura 1‑3) o alla sua risultante se il campo scatterato è di tipo vettoriale.

Data quest’ultima caratteristica del metodo di Shepard osserviamo che se il campo vettoriale scatterato rappresenta una rotazione o un ridimensionamento la sua risultante sarà nulla, se invece il campo rappresenta una traslazione la risultante sarà data dalla somma di tutti i generatori e quest’ultimo fatto potrebbe portare all’introduzione di artefatti.

Il filtro vtkShepardMethod si applica solo a campi scalari, per generalizzare il metodo anche alla diffusione di campi vettoriali è stato scritto un filtro chiamato vtkDiffuseField che separa le componenti dei vettori, le diffonde mediante tre istanze di vtkShepardMethod e quindi le ricombina.

Lo schema di vtkDiffuseField è mostrato nella figura Figura 1‑5, nella figura Figura 1‑4 si può vedere un esempio della sua applicazione.

 

Figura 12 : diffusione di un campo scalare mediante il metodo di Shepard con MaxDist = 0.2

Figura 13 : diffusione di un campo scalare mediante il metodo di Shepard con MaxDist = 1

Figura 14 : diffusione di un campo vettoriale, i coni rappresentanola posizione e direzione dei generatori.

 

Figura 15 : schema del filtro vtkDiffuseField

 

Descriviamo adesso le fasi della procedura di warp, che viene realizzata mediante il pipeline mostrato nella figura Figura 1‑6.

 

·        Mediante l’oggetto Reader si carica il volume da deformare

·        Il campo scatterato viene diffuso mediante l’oggetto Diff

·        Con l’oggetto Convert si dota il volume di una struttura deformabile

·        I vettori del campo diffuso vengono inseriti in questa struttura
e guidano la deformazione prodotta dall’oggetto Warp

·        Il volume viene riportato nella forma di StructuredPoints ricampionandolo mediante l’oggetto Probe

Figura 16 : Pipeline per un generico warp

 

5.3 Warp guidato dai landmarks

Per l’esecuzione di questo stadio di warp è stato sviluppato un programma che permette il posizionamento di un insieme di landmarks sulla superficie di un cranio. L’editing di oggetti nello spazio tridimensionale comporta sovente difficoltà dovute al fatto di rappresentare la scena su uno schermo bidimensionale. Per rimediare in parte a questi inconvenienti sono stati presi una serie di accorgimenti che elenchiamo di seguito.

·        Si può creare un set di landmarks da zero,  questi vengono sistemati in posizioni di default in modo da limitare le correzioni da portare manualmente.

·        Una volta posizionati i landmarks relativi ad un lato è possibile posizionare gli altri per simmetria.

·        Le posizioni sulla superficie del cranio sono espresse in coordinate sferiche, con i tasti del cursore si può spostare il landmark selezionato lungo la latitudine e lungo la longitudine

·        Si può staccare un landmark dalla superficie e quindi muoverlo sopra una sfera immaginaria che circonda la superficie del cranio, questa funzionalità permette di muoversi più velocemente e di superare eventuali buchi. Si può quindi nuovamente riportare il landmark sulla superficie.

·        Si possono staccare e riattaccare tutti i landmark contemporaneamente, questo permette di trasportare un set di landmark sopra una superficie diversa.

·        Si può posizionare il landmark selezionato su un punto qualsiasi della superficie indicandolo mediante il mouse.

·        I  landmark sono in numero fisso e sono selezionati mediante una apposita serie di pulsanti.

 

Le funzionalità descritte sono state in massima parte implementate all’interno di un unico filtro denominato vtkManchester, questo ha permesso di sfruttare efficacemente le varie opportunità offerte da VTK quali l’attraversamento della topologia e il picking. L’output del filtro è un dataset di tipo PolyData che rappresenta l’intero set di landmarks. Il metodo GetInfo() di vtkManchester viene chiamato in seguito a ciascuna interazione e fornisce le indicazioni relative al landmark correntemente selezionato che vengono mostrate sulla barra di stato dell’ applicativo.

 

Il set di landmark scelto deriva da quello usato nelle tabelle degli spessori in [TT] che è relativo solo alla zona del volto ed è stato esteso in modo da realizzare una copertura omogenea dell’intero cranio. Il set prevede adesso 67 landmarks ed è mostrato nell’ appendice C.

 

Dopo avere posizionato i landmark su entrambi i modelli, il warp deforma il modello di riferimento in modo da portare i suoi landmark a coincidere con quelli posizionati sul reperto. Le figura Figura 1‑11 mostrano i risultati ottenuti.

 

 

Figura 17 : set di landmark
staccati  dalla superfici, vista frontale

Figura 18  : set di landmark
staccati  dalla superfici, vista laterale

Figura 19 : interfaccia del programma per il posizionamento dei landmarks

Figura 110 : Pipeline per il posizionamento dei landmarks 

Figura 111 risultati del warp guidato dai landmarks

5.4 L’algoritmo per il feature tracking

Il feature tracking è una tecnica applicata nell’analisi di sequenze di immagini, e permette di inseguire (track) un insieme di punti caratteristici (feature) lungo la sequenza.

Nel nostro caso particolare abbiamo considerato la relazione tra i tessuti duri del reperto e quelli del modello di riferimento come una trasformazione nel tempo, l’applicazione del feature tracking permette quindi, scelto un insieme di punti in uno dei modelli, di individuare i punti corrispondenti nell’altro.

 

Il particolare algoritmo preso in considerazione deriva da un lavoro di Lucas e Kanade [LK] relativo al feature tracking su immagini bidimensionali ed è stato poi generalizzato al caso tridimensionale in un successivo lavoro di Alex Sarti e Federico Fraticelli [FF]. Nel corso di questa tesi l’algoritmo è stato reimplementato in modo da avvalersi delle funzionalità offerte da VTK ed è reso disponibile mediante il filtro vtkFeatTrack.

Di seguito ne diamo una breve descrizione teorica.

 

Siano

 L’intensità luminosa al tempo t di un punto (x,y,z) nell’immagine,

 la velocità del punto (x,y,z),

ci attendiamo che l’ intensità luminosa sia la stessa al tempo  nel punto , dove  ,  e .

 

(5.1)                    

 

Introducendo l’ipotesi di campo di moto ovunque continuo [LK] possiamo sviluppare la (5.1) in serie di Taylor ed ottenere

 

(5.2)                    

 

dove e contiene termini di ordine superiore al primo in dx, dy, dz e dt.

Semplificando , dividendo per dt, e facendo il limite per , otteniamo

 

(5.3)                    

 

che mediante la seguente notazione

 

 

diventa

 

(5.4)      (equazione di vincolo del campo di moto)

 

Nel metodo proposto da Lucas e Kanade si sostituisce all’uguaglianza dell’equazione (5.4) una condizione di minimizzazione locale su di un intorno   di un punto  che rappresenta una possibile feature.

 

(5.5)                    

 

Dalla soluzione della minimizzazione (5.5) si può ricavare la velocità del punto  come segue

 

(5.6)                    

dove

                             

 

Tuttavia affinché il calcolo dia risultati affidabili deve essere soddisfatta la seguente condizione.

 

 (5.7)                   

 

dove M è una matrice 3x3,  indica l’autovalore minimo e é un valore di soglia che va fissato in modo diverso a seconda dei casi, l’individuazione del valore corretto di é uno dei punti critici dell’algoritmo.

Il termine a sinistra della (5.7) può essere inteso come una misura dell’ affidabilità delle feature.

 

Nel nostro caso particolare la coordinata temporale può assumere solo valori 0 ed 1, E(x,y,z,0) rappresenterà le densità del reperto ed E(x,y,z,1) quelle del modello di riferimento. Vediamo come le formule si traducono nella forma discreta.

 

(5.8)     

  

(5.9)                    

 

(5.10)                  

 

(5.11)                  

 

In [FF] viene fatto osservare che il risultato ottenuto dalla (5.6) è generalmente affetto da un errore dell’ordine del 10%, per migliorare la precisione del risultato si impiega il metodo iterativo descritto di seguito.

Dato un punto (ritenuto una feature affidabile ) p nel modello di riferimento si calcola la prima stima del moto v mediante la (5.6)  La posizione q1 della feature corrispondente nel modello del reperto è quindi approssimata da p + v · t  = p + v. Facciamo notare che ottenere v = 0 significa che la feature corrispondente a p è ancora p.

Nel generico passo d’interazione il moto viene stimato mediante la formula seguente (5.12) che equivale a supporre di spostare la finestra W (solo nel modello del reperto)  nella posizione qi.

 

(5.12)                  

 

Va notato che qi in generale non corrisponde ad un punto del reticolo e quindi i valori devono essere calcolati sfruttando l’interpolazione.

L’iterazione termina con successo quando si ottiene v = 0 ciò segnala che qi è effettivamente il punto nel reperto corrispondente a p nel modello di riferimento. L’iterazione viene invece arrestata con insuccesso se qi esce dal volume o viene superato il numero massimo di iterazioni prefissato.

5.5 Warp guidato dal feature tracking

Prevede le seguenti operazioni

·        Scelta di un insieme dei vertici relativi ai tessuti duri del modello di riferimento che verranno proposti come feature candidate al tracking.

·        Selezione delle feature candidate in base alla valutazione dell’affidabilità

·        Feature Tracking delle feature ritenute affidabili

·        Eventuale visualizzazione ed analisi del campo scatterato prodotto

·        Esecuzione del warp

 

Per la realizzazione di questo stadio di warp sono stati realizzati, oltre al filtro vtkFeatTrack, la classe vtkFeatReliability che calcola i valori delle affidabilità  e le associa agli scalari del dataset in input in modo da permetterne la visualizzazione, e la classe vtkMultiThreshold che permette diverse modalità di intervento sul campo scatterato al fine di discriminare eventuali valori errati.

 

Figura 112 :
finestra per l’inserimento dei parametri

Figura 113 : Pipeline relativo al feature tracking

 

L’interfaccia del programma permette di intervenire sui numerosi parametri dell’algoritmo sottostante come il numero di punti feature desiderati, la soglia di affidabilità, la dimensione della finestra usata e le condizioni che controllano la terminazione del metodo iterativo.

 

 

 

Figura 114 : Visualizzazione delle affidabilità (sopra) e visualizzazione del campo vettoriale generato (sotto)  

 

Figura 115 : Cranio del modello diriferimento(in blu) dopo il warp guidato dal feature tracking sovrapposto al cranio del reperto (in bianco)

Figura 116 : Tessuti molli del modello diriferimento(in blu) dopo il warp sovrapposti al cranio del reperto (in bianco)

Figura 117 : Aspetto del modello diriferimento dopo il warp

 

 

5.6 Warp guidato dagli spessori dei tessuti

Per questo stadio lo stumento presentato nel paragrafo 1.3 è stato esteso in modo da permettere di rappresentare i landmarks come pioli, e di definirne l’orientamento. Sebbene sia possibile orientare un piolo secondo la normale alla superficie non è sempre questa la direzione desiderata, si veda in proposito la tabella nell’ appendice B.

Questo stadio di warp non è ancora stato completamente realizzato, per il momento è possibile deformare solo la superficie del volto invece dell’intero volume. La figura seguente mostra l’interfaccia del programma ed il risultato della deformazione del modello in base agli spessori previsti dalle tavole per il caso di un individuo magro (emaciated).

 

Figura 118 : Interfaccia di questo stadio di warp

 

Figura 119 : warp guidato dagli spessori
(in alto) pioli posizionati sul cranio del modello
(in basso) tre esempi ottenuti impiegando tabelle di spessori diverse

5.7 Osservazioni

Come gia’ anticipato, la realizzazione dello stadio precedente e’ stata solo parziale, di conseguenza l’integrazione dei dati del modello di riferimento con quelli del reperto non e’ ancora stata eseguita. Nessuna delle due operazioni persenta particolari difficolta’ e potra’ essere realizzata nell’auspicabile proseguimento del lavoro. Difficolta’ sono invece state incontrate per quanto riguarda il reperimento del modello di riferimento adatto e nella fase relativa al feature tracking. Il modello mostrato e’ l’unico al momento disponibile e non risponde ai requisiti antropologici. I risultati ottenuti con il feature tracking sono solo parzialmente soddisfacenti per il fatto che il reperto ha la bocca parzialmente aperta a differenza del modello di riferimento e questa situazione non puo’ essere gestita correttamente al momento.