POLITECNICO DI TORINO
I Facoltà di Ingegneria
Corso di Laurea in Ingegneria Biomedica
Tesi di Laurea Magistrale
AnatoMimo: uno specchio
interattivo.
Applicazione all’apprendimento dell’anatomia.
Relatore:
Prof. Filippo Molinari
Correlatore:
Dr. Stéphane Cotin
Candidato:
Thomas Massari
Dicembre 2016
Sommario
La complessità dell’anatomia ne rende l’apprendimento un compito difficile. Nel
corso degli anni, diversi supporti di conoscenza hanno visto la luce con lo scopo di
rappresentare e strutturare l’anatomia: dai disegni su lavagna, ai libri di anatomia,
passando per la tappa fondamentale della dissezione e dei lavori pratici sui modelli
plastici in 3D. È peraltro difficile imparare la dimensione dinamica dell’anatomia
attraverso gli strumenti di apprendimento tradizionali, nozione che è tuttavia es-
senziale alla formazione dei medici. Per facilitare questo compito, si propone un
sistema basato sul concetto di «embodiment», un concetto secondo il quale il nostro
sistema motore influenza la nostra cognizione. Attraverso questo lavoro di tesi, si
vuole proporre un sistema originale, innovativo e interattivo per l’apprendimento
dell’anatomia chiamato «AnatoMimo». L’idea è quella di creare un’applicazione in
tempo reale di un modello anatomico digitale 3D (pelle, scheletro, muscoli, organi,
apparato vascolare) che viene animato mimando i movimenti dell’utilizzatore. Si
utilizza la Kinect come sensore di movimento.
La prima sfida consiste nella cattura realistica e in tempo reale dei movimenti
dell’utilizzatore. Riprodurre il comportamento di strutture anatomiche è un com-
pito complesso a causa delle informazioni ricavate dalla Kinect, spesso parziali e
molto rumorose. Si propone l’uso di regole anatomiche riguardanti le articolazioni
del corpo (asse di rotazione e limiti articolari) per vincolare i movimenti estratti
dalla Kinect e ottenere movimenti realistici. Per ottenere dei movimenti fluidi, si è
deciso di utilizzare il filtro doppio esponenziale di Holt. La seconda sfida riguarda
l’importante compito di ritorno visivo e di interazione. Durante questo lavoro, ci si
è particolarmente interessati alla resa del corpo completo per visualizzare il funzio-
namento generale del corpo umano e delle sue diverse articolazioni. Per rispettare
il vincolo di tempo reale, quello che si propone qui è più dell’animazione grafica at-
traverso deformazione del modello piuttosto che della biomeccanica attraverso una
simulazione completa dei movimenti.
I diversi elementi sono stati integrati in un sistema operazionale presentato in
dettaglio nella seguente tesi. La presentazione di questo lavoro sotto forma di ver-
sione demo verrà effettuata all’interno di una mostra itinerante in Francia nel 2017,
chiamata “De l’Homo Numericus au Citoyen Numérique”.
iii
Ringraziamenti
Vorrei ringraziare tanta gente.
iv
Indice
Sommario iii
Ringraziamenti iv
1 Introduzione 1
1.1 Contestualizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 Il progetto AnatoMimo . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Il gruppo Mimesis . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Obiettivi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Pianificazione dell’elaborato . . . . . . . . . . . . . . . . . . . . . . . 5
2 Stato dell’arte 6
2.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1 Utilizzo delle conoscenze anatomiche al di fuori del settore
medicale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Storia dei supporti di conoscenza anatomica . . . . . . . . . . . . . . 9
2.2.1 Visualizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2 Il corpo come supporto . . . . . . . . . . . . . . . . . . . . . . 10
2.2.3 Rappresentazioni iconografiche . . . . . . . . . . . . . . . . . . 12
2.2.4 Atlanti anatomici . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.5 Rappresentazioni in volumi . . . . . . . . . . . . . . . . . . . 15
2.2.6 Rappresentazioni digitali . . . . . . . . . . . . . . . . . . . . . 17
2.2.7 Conclusione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Le nuove tecnologie al servizio del settore medico . . . . . . . . . . . 20
2.3.1 Realtà aumentata . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.2 Lo specchio interattivo . . . . . . . . . . . . . . . . . . . . . . 21
2.4 Conclusione e discussione . . . . . . . . . . . . . . . . . . . . . . . . . 24
3 Anatomia: conoscenze anatomiche e modelli 3D 25
3.1 Anatomia umana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.1 Terminologia anatomica . . . . . . . . . . . . . . . . . . . . . 26
v
3.1.2 Strutture anatomiche . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.3 Terminologia di movimento . . . . . . . . . . . . . . . . . . . 32
3.2 Rappresentazione anatomica . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.1 Modelli anatomici di riferimento . . . . . . . . . . . . . . . . . 34
3.2.2 Tipi di dati e livello di dettaglio . . . . . . . . . . . . . . . . . 38
3.2.3 Il modello anatomico di riferimento utilizzato . . . . . . . . . 41
4 Cattura e resa del movimento 44
4.1 Movimenti e deformazioni in computer grafica . . . . . . . . . . . . . 45
4.1.1 Struttura di controllo . . . . . . . . . . . . . . . . . . . . . . . 45
4.1.2 Skinning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.1.3 Induzione del movimento . . . . . . . . . . . . . . . . . . . . . 48
4.2 Motion capture attraverso telecamere RGB-D . . . . . . . . . . . . . 48
4.2.1 Metodi di cattura dei movimenti . . . . . . . . . . . . . . . . 50
4.2.2 La Kinect V2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2.3 Kinect e lo scheletro di animazione . . . . . . . . . . . . . . . 56
4.3 Struttura di controllo del modello . . . . . . . . . . . . . . . . . . . . 57
4.3.1 Sistema gerarchico . . . . . . . . . . . . . . . . . . . . . . . . 57
4.3.2 Correzioni delle articolazioni . . . . . . . . . . . . . . . . . . . 59
4.3.3 Filtraggio di una serie di dati nel tempo . . . . . . . . . . . . 59
4.4 Skinning del modello . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.4.1 Algoritmo di Linear Blend Skinning . . . . . . . . . . . . . . . 63
4.5 Conclusione e discussione . . . . . . . . . . . . . . . . . . . . . . . . . 65
5 Integrazione del sistema 67
5.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.1.1 Confronto tra gli specchi interattivi . . . . . . . . . . . . . . . 68
5.1.2 Piano del capitolo . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.2 Sperimentazione e integrazione . . . . . . . . . . . . . . . . . . . . . . 70
5.2.1 SOFA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.2.2 Tempo reale e cadenza delle immagini . . . . . . . . . . . . . 73
5.2.3 Materiale, spazio di lavoro e mezzo di visualizzazione . . . . . 75
5.2.4 Funzionamento della demo . . . . . . . . . . . . . . . . . . . . 75
5.3 Visualizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.3.1 OpenGL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.3.2 Rendering del modello . . . . . . . . . . . . . . . . . . . . . . 79
5.4 Interfaccia e interazione . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.4.1 Interfaccia di AnatoMimo . . . . . . . . . . . . . . . . . . . . 80
5.4.2 Interazione con le conoscenze . . . . . . . . . . . . . . . . . . 81
5.5 Animazione del battito cardiaco . . . . . . . . . . . . . . . . . . . . . 82
5.5.1 Animazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
vi
5.5.2 Calcolo attività motoria . . . . . . . . . . . . . . . . . . . . . 83
5.6 Conclusione e discussione . . . . . . . . . . . . . . . . . . . . . . . . . 85
6 Conclusione 86
6.1 Richiamo dei contributi . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.1.1 Cattura e seguito dei movimenti . . . . . . . . . . . . . . . . . 87
6.1.2 Integrazione, visualizzazione e sperimentazione . . . . . . . . . 88
6.2 Prospettive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.3 Settori di applicazione di questo lavoro . . . . . . . . . . . . . . . . . 89
6.3.1 Settore medico e paramedico . . . . . . . . . . . . . . . . . . . 89
6.3.2 Apertura ad altri domini . . . . . . . . . . . . . . . . . . . . . 89
Appendici 92
A Grafo della scena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
B Plugin Kinect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Bibliografia 100
vii
Elenco delle figure
2.1 Elementi anatomici nei musei. . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Elementi anatomici nel cinema . . . . . . . . . . . . . . . . . . . . . . 9
2.3 La dissezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4 La conservazione dei corpi . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5 Le iconografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.6 Disegni sulla lavagna . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.7 Atlanti nel web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.8 Le statue di cera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.9 Manichino anatomico industriale. . . . . . . . . . . . . . . . . . . . . 16
2.10 Diversi tipi di immagini mediche . . . . . . . . . . . . . . . . . . . . . 18
2.11 Realtà aumentata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.12 Magic Mirror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.13 Digital Mirror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.14 Anatomie Spiegel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1 Riferimenti anatomici . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Principali direzioni anatomiche . . . . . . . . . . . . . . . . . . . . . 28
3.3 Sistema muscolo scheletrico . . . . . . . . . . . . . . . . . . . . . . . 29
3.4 Diversi tipi di articolazione . . . . . . . . . . . . . . . . . . . . . . . . 31
3.5 Diversi tipi di movimenti (parte 1) . . . . . . . . . . . . . . . . . . . 32
3.6 Diversi tipi di movimenti (parte 2) . . . . . . . . . . . . . . . . . . . 34
3.7 Esempi di mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.8 Scanner della pelle di un utilizzatore . . . . . . . . . . . . . . . . . . 36
3.9 Database di mesh della pelle . . . . . . . . . . . . . . . . . . . . . . . 37
3.10 Modellizzazione di modelli anatomici alla mano . . . . . . . . . . . . 38
3.11 Diversi criteri di astrazione per lo scheletro . . . . . . . . . . . . . . . 40
3.12 Diversi criteri di astrazione per il sistema muscolare . . . . . . . . . . 41
3.13 Diversi strati anatomici del modello di riferimento utilizzato . . . . . 42
4.1 Diverse strutture di controllo del movimento . . . . . . . . . . . . . . 46
4.2 Diversi metodi di skinning . . . . . . . . . . . . . . . . . . . . . . . . 47
4.3 Cattura dei movimenti, sistemi pesanti . . . . . . . . . . . . . . . . . 49
viii
4.4 Funzionamento interno della Kinect V2.0 Microsoft . . . . . . . . . . 52
4.5 Zona di cattura della Kinect . . . . . . . . . . . . . . . . . . . . . . 52
4.6 Sistema Kinect di cattura dell’utilizzatore . . . . . . . . . . . . . . . 53
4.7 Sticky model dell’utilizzatore . . . . . . . . . . . . . . . . . . . . . . . 55
4.8 Sistema di controllo gerarchico . . . . . . . . . . . . . . . . . . . . . . 58
4.9 Correzione delle articolazioni tramite imposizione di limiti . . . . . . 60
4.10 Confronto fra dati Kinect grezzi e filtrati . . . . . . . . . . . . . . . . 62
4.11 Skinning del modello . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.1 Pipeline del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.2 Setup del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.3 Layers del modello utilizzato . . . . . . . . . . . . . . . . . . . . . . . 80
5.4 Interfaccia e interazione del sistema . . . . . . . . . . . . . . . . . . . 81
5.5 Grandezza energetica per identificare la quantità di moto . . . . . . . 84
ix
Elenco delle tabelle
3.1 Complessità geometrica del modello 3D . . . . . . . . . . . . . . . . . 42
5.1 Confronto degli specchi interattivi . . . . . . . . . . . . . . . . . . . . 69
x
INTRODUZIONE
1
Capitolo
1
1 – Introduzione
1.1 Contestualizzazione
L’anatomia è composta da conoscenze complesse, numerose, strutturate, statiche
e dinamiche. Capire come l’anatomia funziona e comprendere la sua cinematica è
importante per gli studi medici, sportivi ma anche per l’educazione in generale.
Nel corso degli anni, diversi supporti di conoscenza hanno visto la luce con lo
scopo di rappresentare e strutturare l’anatomia: dai disegni su lavagna, ai libri di
anatomia, passando per la tappa fondamentale della dissezione e dei lavori prati-
ci sui modelli plastici in 3D. È peraltro difficile imparare la dimensione dinamica
dell’anatomia attraverso gli strumenti di apprendimento tradizionali, nozione che è
tuttavia essenziale alla formazione dei medici.
Per colmare questa mancanza, l’obiettivo che ci si è proposti è quello di sviluppare
un sistema tempo reale che permetta di visualizzare il corpo in azione, chiamato
«AnatoMimo».
1.1.1 Il progetto AnatoMimo
Attraverso AnatoMimo, un qualsiasi utilizzatore, muovendo il proprio corpo, potrà
osservare attraverso una resa di immagini e tecniche di interazione adeguate il fun-
zionamento dei diversi elementi anatomici messi in gioco all’interno di un’azione di
movimento.
L’idea consiste nell’animare un modello anatomico 3D (pelle, scheletro,
muscoli, organi e sistema vascolare) mimando i movimenti di un utiliz-
zatore. Si parla qui di un’applicazione in tempo reale di tipo «specchio
interattivo».
Supponendo che l’esperienza corporea, nel senso di utilizzare il proprio corpo,
possa aiutare chiunque voglia imparare, specialmente uno studente di medicina, nel
processo di apprendimento, di comprensione e di memorizzazione [1], si propone
d’innovare il campo dei metodi di apprendimento dell’anatomia. Il lavoro svolto è
basato su due ipotesi:
• La visualizzazione spaziale è fondamentale per la comprensione e l’apprendi-
mento di forme 3D articolate complesse [2, 3]. Le tecniche interattive basate
sulla visualizzazione spaziale, possono fortemente facilitare la comprensione,
la memorizzazione e l’apprendimento del contenuto dinamico complesso [4, 5].
• Il «Somatic Learning» fa riferimento all’idea di apprendere attraverso l’eserci-
zio corporeo specificamente elaborato per mettere in collegamento la coscienza
e la sensazione dei movimenti: il nostro sistema motore influenza la nostra
cognizione [6, 7]. Si parla qui di incorporamento o «embodiment».
2
1 – Introduzione
Attraverso questo lavoro di tesi, si propone quindi un sistema originale e inno-
vativo per l’apprendimento dell’anatomia basato sull’ipotesi che l’interattività offre
una migliore connessione tra il corpo dell’utilizzatore e le conoscenze anatomiche
pertinenti.
1.1.2 Il gruppo Mimesis
Il progetto di sviluppo di questa idea è stato affidato alla squadra Mimesis, di cui ho
fatto parte durante uno stage di otto mesi. Mimesis è un gruppo di ricerca dinamico,
avente sede a Strasbourg, che fa parte di INRIA.
L’Istituto Nazionale per la Ricerca nell’Informatica e nell’Automazione è un isti-
tuto nazionale francese per la ricerca focalizzato sull’informatica, la teoria dell’au-
tomazione e la matematica applicata. INRIA compie lavori di ricerca sia nell’infor-
matica teorica che applicata e in questo processo ha realizzato numerosi programmi
tra i quali SOFA (Simulation Open Framework Architecture), che verrà in seguito
introdotto più nel dettaglio perché ampiamente utilizzato nel corso di questa tesi.
Mimesis lavora su simulazioni mediche in tempo reale, sviluppando tecnologie
innovative per l’addestramento, l’assistenza e la guida dei medici.
1.2 Obiettivi
Come si è già precedentemente accennato, la messa in opera di un tale approccio
passa attraverso la risoluzione di un certo numero di problemi sia tecnici che scien-
tifici più o meno padroneggiati nello stato dell’arte. I vincoli che si sono imposti
sono i seguenti: il tutto deve essere fatto in tempo reale o in modo interattivo (sin-
cronizzato all’azione o immediatamente in seguito alla fine dell’azione); i sensori che
permettono la cattura del movimento devono poter essere sufficientemente semplici
(ad es.: Kinect, ecc.) per un utilizzo di tipo «grande pubblico».
Per quanto riguarda la problematica del tempo reale, quello che si propone qui è
più dell’animazione grafica attraverso deformazione del modello piuttosto che della
biomeccanica attraverso una simulazione completa dei movimenti.
Conoscenze e organizzazione
L’anatomia costituisce una risorsa di conoscenze complesse ed estese dove una mol-
titudine di dati convivono. L’organizzazione e la strutturazione di tali conoscenze
ma anche il loro utilizzo interattivo in tempo reale costituisce una sfida scientifica.
Si presenta in questa tesi un approccio innovativo che associa una base di cono-
scenze simboliche a una rappresentazione geometrica dell’anatomia, permettendo di
ricercare delle informazioni complesse in maniera intuitiva.
3
1 – Introduzione
Nel seguito della tesi, verrà utilizzato l’appellativo «modello portatore di cono-
scenze anatomiche» o «modello anatomico di riferimento» un insieme di dati 3D,
spesso strutturati secondo un lessico anatomico specifico. In questo caso, è costituito
da una mesh di pelle superficiale e da mesh rappresentanti le strutture anatomiche
interne (scheletro, organi, ecc.).
Cattura tempo reale dei movimenti dell’utilizzatore
Nel contesto di AnatoMimo, la semplicità della percezione ha potenzialmente un for-
te impatto nell’utilizzabilità globale di AnatoMimo nel contesto dell’apprendimento.
Si tratta di permettere la diffusione di questo tipo di sistema al di fuori di una sa-
la specializzata dotata di un equipaggiamento di sensori costosi. I sensori semplici
sono quindi privilegiati: telecamera di un tablet o di un smartphone, accelerometri,
Kinect, ecc.
L’idea di questo lavoro è quello di poter visualizzare dei fenomeni anatomici
specifici durante il movimento e in tempo reale. La natura delle informazioni in
entrata al sistema, potenzialmente abbastanza povera, e il vincolo del tempo reale o
quanto meno del tempo interattivo pongono delle vere sfide scientifiche e tecniche.
Riprodurre il comportamento delle strutture anatomiche è un compito comples-
so ma inevitabile per questo sistema. Conoscenze che permettono di riconoscere,
interpretare e utilizzare i movimenti catturati sono utilizzate con lo scopo di definire
delle regole anatomiche riguardanti le articolazioni del corpo (asse di rotazione e
limiti articolari) per ottenere dei movimenti fluidi e anatomicamente corretti.
Integrazione e interazioni
Il compito di ritorno visivo e di interazione, dove il corpo dell’utilizzatore serve
alla cattura dell’azione, sono molto importanti in questo progetto. Si introduce
un approccio innovativo utilizzando sia la cattura tempo reale dei movimenti che
un modello anatomico di riferimento organizzato, per la realizzazione di un nodo
operazionale di AnatoMimo.
Lo scopo è di concepire delle tecniche interattive nel contesto dell’autoappren-
dimento di conoscenze anatomiche complesse e dinamiche. AnatoMimo è basato su
un certo numero di componenti funzionali che si articolano gli uni sugli altri in un
sistema operazionale, presentato in dettaglio in questa tesi. Anche se i metodi di
cattura, di simulazione, di resa visiva e interazione sono delle tecniche già studiate,
l’integrazione del tutto costituisce in sé una vera sfida scientifica.
La pertinenza dello strumento di apprendimento proposto deve essere validata.
Per adempiere questo scopo, si è pensato di presentare questo lavoro sotto forma
di dimostrazione durante una mostra itinerante in Francia nel 2017, che si chiama
4
1 – Introduzione
“De l’Homo Numericus au Citoyen Numérique” (dall’Homo Numericus al cittadino
numerico).
1.3 Pianificazione dell’elaborato
Il seguito dell’elaborato di tesi è organizzato come segue:
• Il capitolo 2 propone una panoramica dei principali domini che utilizzano l’a-
natomia, seguita da un trascorso storico dei supporti d’apprendimento dell’a-
natomia, campo a cui si è particolarmente interessati. In seguito si discuterà
sull’apporto delle nuove tecnologie per l’apprendimento e in particolare sulla
tipologia di specchio interattivo.
• Il capitolo 3 spiega il modo migliore per descrivere l’anatomia e il movimento.
Si presenterà il modello anatomico di riferimento attraverso le varie scelte fatte.
• Il capitolo 4 presenta, attraverso diverse tecnologie più o meno pesanti, i meto-
di di cattura del movimento. Si presenterà la tecnologia qui utilizzata (Kinect
Windows V2.0) e le principali tecnologie concorrenti. Verrà anche esposto nei
dettagli il metodo usato per ottenere dei movimenti anatomicamente corret-
ti, insieme al metodo con il quale il movimento dell’utilizzatore influisce sulla
modifica e deformazione del modello anatomico di riferimento.
• Il capitolo 5 spiega i processi di integrazione dei diversi contributi nel sistema
funzionale di AnatoMimo, insieme alle scelte fatte in termini di visualizzazione,
di interfaccia e di interazione con il contenuto anatomico.
• Il capitolo 6 infine conclude questa tesi, fornendo una visione generale e discu-
tendo delle prospettive future.
5
STATO DELL’ARTE
2
Capitolo
6
2 – Stato dell’arte
2.1 Introduzione
L’anatomia è composta da conoscenze statiche e dinamiche del corpo, che sono uti-
li in diversi campi: dal campo pedagogico (ad es.: musei, esposizioni), al campo
artistico e della moda, al campo dell’animazione e degli effetti speciali, e tanti al-
tri. Certamente le conoscenze anatomiche sono essenziali per il settore medico e
paramedico, come anche per la simulazione medicale.
La visualizzazione anatomica è stata per tanto tempo riservata alla creazione di
un modello mentale del corpo umano con l’intento di migliorare le cure mediche. I
medici hanno bisogno di questa rappresentazione per trasferirla sui loro pazienti e
quindi applicare le loro conoscenze caso per caso: in funzione del paziente, dell’ope-
razione da effettuare, ecc. Si è scelto di presentare qui un trascorso dei diversi settori
che attingono alle conoscenze anatomiche, pur non essendo direttamente legati al
settore medico e paramedico.
2.1.1 Utilizzo delle conoscenze anatomiche al di fuori del
settore medicale
Settore grande pubblico: musei ed esposizioni
Con lo scopo di comunicare e istruire il grande pubblico, un gran numero di musei
presentano degli allestimenti anatomici sotto diverse forme. Ecco qualche esempio
rappresentativo.
La galleria di anatomia comparata di Parigi presenta uno vicino all’altro un
insieme di scheletri di vertebre di diverse specie. Fornisce un’idea generale della
statura e della forma dei diversi animali, e permette il confronto tanto sulla struttura
generale dello scheletrico quanto sulla forma delle ossa in maniera individuale.
Dopo quattro anni di lavoro intensivo, il museo di Toulose espone, in una postura
dinamica, 75 scheletri di specie diverse mettendoli come se si potessero scoprirli nel
loro ambiente naturale (vedere figura 2.1a). Gli obiettivi di questo muro sono di
presentare le diversità morfologiche e comportamentali degli animali.
All’interno delle gallerie del Vaticano, la sala dedicata alla storia egizia presenta
una mummia a cui sporgono i piedi, le mani e la testa in buono stato (vedere
figura 2.1d). Questo allestimento anatomico mostra come i riti culturali e religiosi
influissero sull’aldilà ai tempi dei faraoni.
L’allestimento anatomico presentato in figura 2.1b permette la visione dettagliata
e lo studio del sistema respiratorio mentre la figura 2.1c rappresenta uno stampo
delle arterie di una mano adulta eseguita da Gunther von Hagens con dell’acido
corrosivo.
7
2 – Stato dell’arte
(a)
(b) (c) (d)
Figura 2.1: Presentazione degli elementi anatomici nei musei, per il grande pub-
blico. (a) Muro dei 75 scheletri del museo di Tolosa. (b) Istituto di anatomia -
Università di Berna. (c) Gunther von Hagens, stampo delle arterie di una mano
adulta. (d) Mummia egizia - musei vaticani.
Settore del cinema e degli effetti speciali
Nel settore del cinema e degli effetti speciali, le conoscenze anatomiche sono essen-
zialmente integrate nel processo di creazione di effetti speciali, soprattutto con lo
scopo di aggiungere realismo alle deformazioni della pelle dei personaggi virtuali.
Molti film d’animazione della DreamWorks usano un’anatomia interna sempli-
ficata per ottenere delle deformazioni della pelle e delle deformazioni facciali reali-
stiche. Per il modello di Fiona presentato in figura 2.2a, un sistema composto da
90 muscoli e da uno scheletro semplificato è stato utilizzato. Sono essenzialmente
rappresentati i comportamenti dei muscoli e le zone adipose grazie all’utilizzo di una
semplice simulazione.
Ad un livello più realistico, si può presentare il sistema di simulazione dei tessuti
molli sviluppato da Weta Digital e utilizzato per i film come «Avatar» (vedere figura
8
2 – Stato dell’arte
2.2b) o «Il signore degli Anelli». Basato su dati ottenuti da MRI di vere persone, il
sistema permette la visualizzazione di deformazioni dovute alle ossa, ai muscoli, ai
depositi di grasso o anche ai tendini.
Alcuni film utilizzano questo genere di sistema per animare gli animali. In figura
2.2c si può vedere il modello utilizzato per rappresentare la tigre in «La vita di Pi»,
costituito da uno strato superficiale di pelle, da uno scheletro minimalista e da zone
simulate (in verde) che rappresentano i tessuti molli (muscoli, organi, ecc.).
(a) (b) (c)
Figura 2.2: Utilizzo dell’anatomia per il cinema e gli effetti speciali. (a) Shrek -
DreamWorks 2001. (b) Avatar - Weta Digital 2009. (d) La vita di Pi - 2012.
2.2 Storia dei supporti di conoscenza anatomica
Dopo aver rapidamente fatto un trascorso dei settori non direttamente legati alla
medicina ma che si basano comunque su conoscenze anatomiche, si vorrebbe ora fare
uno stato dell’arte dei supporti di conoscenza anatomica esistenti, spiegare il loro
contesto di utilizzo e la loro evoluzione verso gli strumenti che si usano oggigiorno.
Nel seguito di questa sezione, si richiameranno brevemente le nozioni di «visualiz-
zazione». Si vedranno in seguito i diversi tipi di supporto di conoscenza: dall’utilizzo
del corpo, passando per le rappresentazioni iconografiche, gli atlanti anatomici, le
rappresentazioni in volume fino ad arrivare alle rappresentazioni virtuali.
2.2.1 Visualizzazione
Il termine «visualizzazione scientifica» o semplicemente «visualizzazione» si riferisce
all’idea di una rappresentazione grafica organizzata che permette di spiegare grafi-
camente un concetto o dei dati sperimentali in maniera semplice e intuitiva ad un
grande pubblico. Si può prendere come esempio l’utilizzo di grafici per conosce-
re le tendenze dei mercati finanziari o l’utilizzo di mappe mentali [8] per aiutare
nell’apprendimento di nozioni.
9
2 – Stato dell’arte
Lo scopo iniziale della creazione di diversi mezzi di visualizzazione per il corpo
umano è di documentare le scoperte scientifiche per poterle trasmettere e conser-
vare. Diversi mezzi sono stati utilizzati per visualizzare l’anatomia, ciascuno di
essi permettendo di veicolare delle conoscenze e degli approcci diversi, che verranno
presentati nel seguito di questa sezione.
2.2.2 Il corpo come supporto
Dissezione
Si definisce dissezione l’azione di analizzare un corpo, umano o animale, andando
a separare minuziosamente le strutture che lo compongono. Il termine dissezione
definisce diverse procedure in funzione dell’obiettivo di ricerca: la dissezione pedago-
gica1
, la vivisezione2
e l’autopsia3
. Le prime dissezioni fatte sono state le vivisezioni
effettuate da medici greci durante la dinastia tolemaica (dal 305 a.C. al 30 a.C.) sui
condannati a morte.
Dopo l’acquisizione di popolarità nel XIII secolo grazie alla medicina legale, le
pratiche di dissezione si sono evolute fino ad oggigiorno in virtù dell’avanzamento
tecnologico ma anche per ragioni etiche. Per esempio, sarebbe inconcepibile fare
delle vivisezioni su soggetti umani in quest’epoca. Quello a cui si è interessati qui è
la dissezione pedagogica.
La figura 2.3a mostra il dipinto a olio su tela di Rembrandt realizzato nel 1632 e
intitolato “Lezione di anatomia del dottor Tulp”. Questo dipinto venne commissio-
nato da una gilda di medici e rappresenta una lezione di anatomia della mano e sui
movimenti delle dita.
La dissezione pedagogica è effettuata per due scopi: studiare nel dettaglio l’a-
natomia e imparare gesti chirurgici. Per delle motivazioni diverse (sociali, etiche,
religiose ecc.) la scienza è in costante mancanza di corpi. Ai giorni nostri, i corpi
dati alla scienza sono un dono molto raro, una decisione difficile da prendere e che
solo pochissime persone la fanno. In più, questi corpi non possono che essere esami-
nati una sola volta, e presentano poca variabilità (si tratta spesso di corpi di persone
anziane). Questi fattori rendono questa tecnica accessibile unicamente a pochi in-
dividui ed è per questo che nuovi strumenti, come la dissezione virtuale, rischiano
1
Dissezione pedagogica: sia per imparare e osservare le strutture anatomiche che per apprendere
le procedure mediche
2
Vivisezione: dissezione effettuata su un corpo ancora vivo, spesso con lo scopo di mostrare
azioni fisiologiche o patologiche
3
Autopsia: o esame «post mortem», è l’esame medico dei cadaveri, spesso legato alla medicina
legale
10
2 – Stato dell’arte
(a) (b)
Figura 2.3: La dissezione come supporto per l’apprendimento. (a) Lezione di
anatomia del dottor Tulp, Rembrandt - 1632. (b) Anatomage - 2012.
di occupare un posto sempre più importante per l’apprendimento dell’anatomia tra
gli studenti.
Si può citare per esempio la tavola di dissezione virtuale Anatomage [9] (vedere
figura 2.3b): un tavolo a misura d’uomo che permette di interagire con un modello
anatomico 3D corredato da annotazioni. Utilizzando uno scalpello virtuale e dei
piani di taglio, questo tavolo permette d’isolare le strutture anatomiche e di navi-
gare tra gli strati anatomici più o meno profondi. Il modello utilizzato può essere
cambiato in funzione dei bisogni pedagogici (ad es.: modello femminile, maschile,
patologico, ecc.). Il mondo virtuale permette l’utilizzo di un modello all’infinito e
permette di poter essere confrontato con vari casi alcuni anche molto rari.
Conservazione del corpo
Con lo scopo di fissare e conservare il corpo per preservarlo per le generazioni future,
sono state inventate delle tecniche come la fissazione in formalina o la plastinazione.
Si trovano ancora in alcune esposizioni di anatomia dei corpi o parti di corpi
umani (come gli organi) conservati nella formalina. Questa tecnica consiste nell’im-
mergere il materiale anatomico in un grande volume di liquido di fissazione. La
durata della fissazione varia in funzione della grandezza del campione e sfortunata-
mente i colori del materiale anatomico si sbiadiscono man mano che il tempo passa.
La tecnica di plastinazione è stata introdotta da Gunther von Hagens nel 1977,
anatomista tedesco ed autore delle mostre intitolate “Body Worlds” (vedere figura
2.4a. Questa tecnica mira a conservare i tessuti biologici sostituendo i diversi liquidi
organici con del silicone. Al contrario della conservazione in formalina, la plastina-
zione fissa in modo solido le strutture anatomiche, il che impedisce di poter eseguire
11
2 – Stato dell’arte
(a) (b)
Figura 2.4: La conservazione dei corpi. (a) Exposition Body Worlds. (b) Human
Body Exhibition.
in seguito una dissezione o manipolazione indispensabile per l’apprendimento dei
gesti chirurgici.
Un’altra mostra di dissezioni di corpi umani plastinati, simile alle Body Worlds,
è “Body: the exhibition” (vedere figura 2.4b).
2.2.3 Rappresentazioni iconografiche
L’illustrazione: tra arte e scienza
Nell’ottica di preservare le conoscenze acquisite durante le dissezioni e poterle tra-
smettere alle generazioni future, sono cominciate a venire alla luce delle rappresenta-
zioni 2D già a partire dal 1492 con il trattato medico medievale chiamato Fasciculus
medicinae, eseguito con la tecnica della xilografia (incisione su legno).
Grazie a queste illustrazioni molto dettagliate e corredate da annotazioni, Leo-
nardo da Vinci (1452-1519) ha fatto molto avanzare la conoscenza nel dominio del-
l’anatomia introducendo la sua visione realistica e precisa. Queste illustrazioni ana-
tomiche mostrano in maniera oggettiva il funzionamento meccanico e la topologia
dell’anatomia. La figura 2.5a presenta due disegni a matita e ad inchiostro realiz-
zati da Leonardo da Vinci. Si è ugualmente cimentato nella rappresentazione del
cuore, del sistema vascolare, del movimento dell’occhio, di organi interni e del loro
funzionamento.
Le illustrazioni anatomiche di Andrea Vesalio (1514-1564) sono diventate di rife-
rimento per molte generazioni di medici o operatori sanitari. Il suo lavoro dettagliato
e completo, basato su ricerche fatte a partire da dissezioni, lo pone come riferimento
in termini di anatomia descrittiva. La figura 2.5b rappresenta una pagina delle sua
opera in sette volumi pubblicata nel 1543 e intitolata De Corporis Fabrica. Andrea
12
2 – Stato dell’arte
(a) (b)
Figura 2.5: Le iconografie come supporto di apprendimento. (a) Illustrazioni di
Leonardo da Vinci. (b) Illustrazioni di Andrea Vesalio.
Vesalio, insieme a Da Vinci, fu uno dei primi a rappresentare gli écorché anatomici4
in posizioni naturali in rapporto al contesto artistico e sociale del Rinascimento. Le
presentazioni per strati successivi permette di fare il legame in maniera semplice tra
lo strato superficiale della pelle e gli strati più profondi.
Ai giorni nostri, degli schemi descrittivi fatti con il gesso sulla lavagna sono
ancora spesso utilizzati durante i corsi di anatomia per insegnare i concetti agli
studenti. Si possono citare gli schemi di Chuan-Bin-Chung (vedere le figure 2.6).
Figura 2.6: Le iconografie temporali fatte con il gesso sulla lavagna come supporto
di apprendimento. Illustrazioni di Chuan-Bin-Chung.
4
écorché anatomici: disegno, dipinto o scultura che mostra la muscolatura di un individuo privo
del rivestimento della pelle.
13
2 – Stato dell’arte
2.2.4 Atlanti anatomici
Il termine atlante anatomico fa riferimento, in primo luogo, alle opere che presentano
degli strati successivi del corpo o di una struttura anatomica specifica complessa,
per aiutare a comprenderne la forma ed a posizionarla rispetto al resto del corpo
o ad altre strutture anatomiche. Spesso le pagine sono intercalate da lucidi in cui
sono presenti delle annotazioni per aiutare ad identificare le strutture.
Si trovano ugualmente degli atlanti statistici di un segmento del corpo o di un or-
gano in particolare che descrivono le differenze trovate tra i vari corpi e la percentuale
di apparizione di queste differenze.
Nel corso degli anni sono stati sviluppati degli atlanti anatomici di assoluto rife-
rimento, come per esempio i libri di anatomia clinica di Pierre Kamina [10]. Questi
atlanti, come le illustrazioni, per natura essendo stampati, mancano di interattività.
Atlanti anatomici interattivi: web semantico
Grazie all’acquisizione di popolarità del web semantico - standardizzazione dei pro-
tocolli di condivisione, di lettura e di scambio d’informazioni strutturate - e allo
sviluppo della tecnologia WebGL, che permette la visualizzazione in tempo reale
di un modello anatomico 3D nella maggior parte dei browser, sempre più atlanti
anatomici interattivi sono disponibili in rete.
(a) (b)
Figura 2.7: Atlanti anatomici interattivi. (a) BioDigitalHuman - 2016. (b)
ZygoteBody - 2014.
Si presentano in figura 2.7 un insieme di atlanti anatomici interattivi che per-
mettono di navigare negli strati anatomici in modo semplice e ergonomico. Spesso,
una barra di ricerca è proposta per aiutare l’utilizzatore nella navigazione grazie alla
14
2 – Stato dell’arte
creazione di un lessico anatomico. Il RDF5
è il formato di base utilizzato per creare
e organizzare i lessici anatomici.
Nel 1999, nasce uno dei primi atlanti interattivi con il nome di InnerBODY
[11], basato su una rappresentazione 2D del corpo sul piano frontale. È possibile
navigare all’interno del modello scegliendo di visualizzare uno specifico sistema (ad
es.: sistema circolatorio, sistema muscolare, sistema scheletrico, ecc.) o selezionando
un segmento anatomico (ad es.: tronco, bacino, arti inferiori, ecc.) o ancora un’entità
anatomica (ad es.: cuore, vena cava, ecc.). Una rappresentazione 3D del corpo
completo è stata poi aggiunta per permettere all’utilizzatore di girare intorno al
modello anatomico nello spazio.
La figura 2.7a rappresenta un progetto di atlante anatomico, basato su una
rappresentazione 3D del corpo intero, che funziona sfruttando la tecnologia Bio-
DigitalHuman [12], da cui deriva il suo nome. Rispetto agli altri atlanti classici,
quest’ultimo permette di poter selezionare delle strutture di interesse corredate da
annotazioni e supporti per domande di apprendimento. È ugualmente possibile
visualizzare dei video e delle simulazioni preregistrate mettendo in risalto dei com-
portamenti fisiologici (ad es: il battito cardiaco) o delle azioni chirurgiche (ad es:
chirurgia del labbro e del palato).
Il ZygoteBody [13], presentato in figura figura 2.7b, propone lo stesso tipo di
servizi che il BioDigitalHuman.
Si noti che, anatomicamente parlando, tutti gli atlanti sono un po’ sbagliati:
sono incompleti e presentano degli errori difficili da trovare per i non esperti.
2.2.5 Rappresentazioni in volumi
Ceroplastica: le statue di cera anatomiche
Le statue di cera anatomiche dell’intero corpo o di un segmento specifico, apparse
nel XVIII secolo, sono una forma di documentazione in volume che permette di
presentare in maniera realistica i risultati delle dissezioni.
Gaetano Giulio Zumbo (1656-1701) fu il primo modellista a utilizzare la cera per
creare dei modelli anatomici (vedere figura 2.8a). Uno studio fu creato a Firenze
nell’edificio del museo La specola [14] con l’idea di creare numerose opere e inviarle
nei grandi centri anatomici europei.
La creazione di tali modelli era lunga, costosa e per un’elevata precisione e qualità
di un solo modello potevano essere necessarie la realizzazione di centinaia di cadaveri
come riferimento. La cera colorata, nonostante la sensibilità ai cambiamenti di
temperatura, permette di conservare a lungo termine delle informazioni molto precise
ma non permette un’esplorazione interattiva come la dissezione.
5
RDF: Resource Description Framework
15
2 – Stato dell’arte
(a) (b)
Figura 2.8: Le statue di cera come supporto per l’apprendimento. (a) Dettaglio di
una statua di cera di Gaetano Zumbo. (b) Venere anatomica di Clemente Susini.
Clemente Susini (1754-1814) ha contribuito in questo settore creando dei modelli
nella categoria «Veneri anatomiche» (vedere figura 2.8b): statue di cera di donne,
a grandezza naturale, le cui costruzioni erano spesso basate sulle illustrazioni come
quelle di Vesalio. Per aumentare il realismo, spesso erano utilizzati dei veri capelli
e degli occhi di vetro. Queste statue di cera sono state create con lo scopo di
demistificare la dissezione tra il grande pubblico.
Stampa 3D
Ai giorni nostri i manichini anatomici sono pro-
Figura 2.9: Manichino
anatomico industriale.
dotti essenzialmente in plastica e se ne possono tro-
vare di industriali, di cui un esempio può essere tro-
vato in figura 2.9, o di modelli in serie limitata.
La comparsa della stampa 3D ha permesso la per-
sonalizzazione dei modelli su un dato individuo per
aiutare la pianificazione e l’allenamento preoperato-
rio. Per esempio, vengono fatte delle stampe 3D
con la tecnologia ColorJet printing (CJP) [15]: a
partire da dati MRI un modello 3D unico nel suo
genere viene stampato. Questi modelli sono sta-
ti presentati durante i CES 2016 da 3D Systems
[16].
16
2 – Stato dell’arte
2.2.6 Rappresentazioni digitali
L’utilizzo dello schermo come tramite (ad es: smartphone, tablet, computer) ci
riporta verso delle rappresentazioni piane. Malgrado questo, nel quadro numeri-
co, le rappresentazioni virtuali permettono l’interazione con l’anatomia, come la
condivisione e il riutilizzo all’infinito di uno stesso modello.
Imaging biomedico
Si chiama imaging biomedico l’insieme dei mezzi di acquisizione e di resa di immagini
del corpo umano. Queste tecnologie hanno rivoluzionato la medicina e premetto-
no di visualizzare bene sia l’anatomia che alcuni fenomeni fisiologici o metabolici.
Esistono una moltitudine di tipi di immagini mediche, basate su diversi fenomeni
fisici, ciascuna permettendo la visualizzazione di dati ben precisi. Alcuni tra i tipi
più conosciuti sono:
• Imaging a risonanza magnetica (MRI), utilizza i campi magnetici per otte-
nere dei tagli virtuali del corpo umano secondo i tre piani principali. Permette
una buona visualizzazione dei tessuti molli infatti viene spesso utilizzata per
studiare il cervello, le articolazioni e i tessuti circostanti, ecc. Questo tipo di
dati sono spesso alterati dalla presenza di artefatti dovuti ai movimenti del
paziente durante la cattura delle immagini perché la durata di acquisizione di
questo tipo di dati è molto lunga. La precisione è funzione del tempo impie-
gato per cattura ciascuna fetta anatomica e nel migliore dei casi la distanza
tra due strati può scendere al di sotto del millimetro.
• Tomografia computerizzata (TC), misura la percentuale di assorbimento
dei vari tessuti al passaggio di raggi X, per ottenere delle fette che possono
essere studiate in tutti i piani dello spazio come nelle immagini tridimensio-
nali. Permette la visualizzazione di strutture anatomiche rigide come le ossa.
Attraverso vari mezzi di contrasto, si può ottenere la visualizzazione di vasi
sanguigni, apparato digestivo, dischi intervertebrali, ecc. Questa tecnologia è
molto rapida (un ampio volume del corpo umano può essere catturato in ma-
niera molto precisa in qualche secondo) e le immagini ottenute appartengono
a strati distanti tra di loro anche inferiore al millimetro.
• Tomografia a emissione di positroni (PET), utilizza dei radiofarmaci per
osservare l’organismo a livello cellulare: si parla qui di imaging funzionale
e non più morfologico. Permette di misurare nelle tre dimensioni l’attività
metabolica o molecolare di un organo specifico o di un tessuto specifico come
quello cancerogeno. Come per la MRI, anche la PET è molto lunga e richiede
al paziente di rimanere immobile il più a lungo possibile.
17
2 – Stato dell’arte
• Ecografia, una delle uniche tecniche di imaging biomedico in tempo reale,
sfrutta gli ultrasuoni. È spesso usata per osservare i battiti del cuore o durante
la gravidanza per verificare il buono stato di salute del feto. In funzione
della frequenza, l’immagine può essere più o meno precisa, e presentare delle
strutture più o meno profonde.
(a) (b) (c) (d)
Figura 2.10: Diversi tipi di immagini mediche. (a) MRI. (b) TC. (c) PET. (d)
Ecografia.
Strumenti per l’imaging medico
Come si è appena detto, esistono una moltitudine di tipi di immagini cliniche, cia-
scun tipo avente un formato diverso dalle altre. Non è quindi inusuale, per uno
stesso paziente, utilizzare diversi protocolli di imaging medico. Maintz e colleghi
[17] propongono un riassunto dei diversi metodi che permettono di allineare tra di
loro immagini mediche di diversi formati, o anche metodi per allineare immagini
mediche pre-operatorie e post-operatorie.
Con lo scopo di rendere migliore la visualizzazione e la comprensione dei dati,
molti approcci propongono di generare delle immagini volumetriche a partire da
immagini mediche.
Utilizzo delle immagini mediche
Ai giorni nostri, la resa e la visualizzazione volumetrica di immagini mediche, sono
diventate indispensabili per aiutare i clinici nella loro diagnosi e studi preoperatori.
Queste rappresentazioni volumetriche permettono anche ai clinici di conoscere lo
stato di un paziente senza dover far ricorso ad un’operazione.
Tra le applicazioni dell’imaging medico, la diagnosi per pianificazione e la guida
di un gesto chirurgico sono tra le più importanti. Anche la simulazione medica-
le è ugualmente fondamentale per l’apprendimento del comportamento dei tessuti.
Si tratta di simulare in maniera molto realistica il funzionamento o il comporta-
mento di una parte del corpo umano. L’efficacia della simulazione come supporto di
apprendimento è stata validata nel settore medico attraverso numerosi studi [18, 19].
18
2 – Stato dell’arte
La simulazione medicale può ugualmente aiutare l’apprendimento dei gesti da
eseguire durante l’operazione chirurgica senza introdurre rischi per un paziente. Le
simulazioni spesso in tempo reale, possono essere molto diversificate: simulazione di
vasi sanguigni, di fegato [20], etc.
2.2.7 Conclusione
L’apprendimento dell’anatomia implica la comprensione di strutture anatomiche, il
loro funzionamento fisiologico e il loro movimento. Queste conoscenze sono indi-
spensabili a diversi gradi di complessità e precisione per l’educazione generale, per
gli studi sportivi e gli studi i medicina.
Come visto precedentemente, i supporti di conoscenze anatomiche che permet-
tono la condivione e la diffusione del sapere, sono molto numerosi: dall’utilizzo del
corpo all’imaging medicale, passando per le rappresentazioni iconografiche, gli atlan-
ti anatomici e le rappresentazioni in volume. Si è anche parlato ugualmente dei loro
sviluppi attuali.
Si può osservare in tutti i supporti alcune funzioni fondamentali:
• contesto: le strutture studiate sono sempre poste nel loro contesto anatomico
per una migliore cartografia della conoscenza.
• espressione del vivente: le strutture studiate sono sempre illustrate, non come
delle strutture fisiche inerti ma come delle strutture vive, con lo scopo di
esprimerne il funzionamento e la dinamica.
• approccio artistico: le strutture studiate sono corredate da annotazioni o
colorate in modo per meglio visualizzarle e cosi assimilarle meglio.
Una difficoltà importante che continua a permanere viene dal fatto che risulta
difficile illustrare e spiegare l’anatomia in movimento, conoscenza essenziale alla
formazione dei medici, a partire da mezzi statici [21].
Con l’avanzare della tecnologia è diventato comune l’uso di smartphone, tablet
e computer. Un grande sforzo è stato fatto per trovare dei metodi innovativi che
permettano di creare, visualizzare e animare un contenuto di alta qualità per aiutare
l’apprendimento. Questi metodi innovativi sfruttano la personalizzazione del con-
tenuto, l’interazione, il movimento del contenuto e l’apprendimento intuitivo. Nel-
la sezione seguente si presenteranno i progressi tecnologici raggiunti per facilitare
l’apprendimento delle nozioni anatomiche e medicali.
19
2 – Stato dell’arte
2.3 Le nuove tecnologie al servizio del settore me-
dico
La capacità dei chirurghi a creare un modello mentale che mescola le immagini del
singolo paziente con le conoscenze anatomiche generali, fa parte del loro saper fare.
Per aiutare i medici nella fase di apprendimento e nello studio di casi complessi, sono
stati proposti nuovi approcci basati su nuove tecnologie che permettono, per esem-
pio, una comprensione dell’anatomia prendendo in conto fenomeni dinamici legati
alla produzione di un movimento. Le nuove tecnologie sono basate essenzialmente
sui progressi in trattamento di immagini, informatica grafica, visione artificiale e
sviluppo di nuovi sensori.
2.3.1 Realtà aumentata
Il termine «realtà aumentata» ingloba tutte le interfacce in cui è presente una so-
vrapposizione di dati virtuali su degli oggetti reali. Queste interfacce combinano
metodi di interazione, di visualizzazione e permettono di inserire delle informazioni
in un contesto esterno, utilizzando spesso una scala realistica, per esempio inserendo
una struttura anatomica sopra il corpo dell’utilizzatore.
Grazie all’avvento della realtà aumentata, un buon numero di applicazioni hanno
visto la luce nel settore medico, anche nella visualizzazione e l’apprendimento di
conoscenze anatomiche: ci interesseremo solo di queste ultime.
Le applicazioni in realtà aumentata nel dominio medico possono essere suddivise
in due categorie: le applicazioni pedagogiche (imparare grazie all’interazione) [22] e
le applicazioni di aiuto alle procedure mediche [23]. Esistono diversi tipi di interfacce
per le applicazioni in realtà aumentata: occhiali per realtà aumentata, proiezione su-
gli oggetti, sensori di profondità con schermo, ecc. In figura 2.11 vengono presentate
alcune interfacce di realtà aumentata.
Gli occhiali «HoloLens» (vedere figura 2.11a), commercializzati da Microsoft,
permettono la visualizzazione del contenuto anatomico e potranno diventare in fu-
turo supporto per le lezioni in classe. Gli occhiali permettono di girare intorno ad
un oggetto virtuale e interagire con quest’ultimo. Con lo scopo di presentare il
potenziale di questa tecnologia, Microsoft ha sviluppato un’applicazione chiamata
«HoloAnatomy» [24].
Il Virtual-Tee (vedere figura 2.11b) e i sistemi di libri aumentati (vedere figura
2.11c) sono basati su una tecnologia di riconoscimento di forme. Con l’aiuto di
un’applicazione su un device portabile (smartphone o tablet), l’utilizzatore può avere
accesso ad un contenuto virtuale specifico posizionato nell’ambiente reale.
20
2 – Stato dell’arte
(a) (b) (c)
Figura 2.11: Realtà aumentata al servizio del settore medico. (a) HoloAnatomy
che utilizza le HoloLens. (b) Virtual-Tee. (c) Libro aumentato 4D.
Nella sezione seguente si presenterà in maniera più precisa i sistemi che utilizzano
dei sensori di profondità per seguire l’utilizzatore, interfaccia che si vuole mettere in
atto nell’AnatoMimo.
2.3.2 Lo specchio interattivo
Si chiama «specchio interattivo» uno schermo davanti al quale l’utilizzatore potrà
vedere e interagire con del contenuto virtuale anatomico spesso sovrapposto sulla sua
propria immagine. I criteri di qualità per questo tipo di sistema sono l’interattività
e l’integrazione dei dati.
L’interattività viene definita grazie ad un’applicazione tempo reale e grazie al
monitoraggio (più o meno complesso) dell’utilizzatore: i dati sono spesso legati
ad una zona specifica dell’utilizzatore. L’integrazione si definisce attraverso il ri-
dimensionamento dei dati ad una scala adatta e attraverso l’inserimento di questi
nell’immagine dell’utilizzatore.
Gli specchi interattivi sono spesso utilizzati in diversi settori (moda, trucco)
ma nel caso di applicazioni anatomiche lo specchio rileva i diversi strati anatomici
interni ad un utilizzatore e gli fornisce l’impressione di potere vedere all’interno del
suo proprio corpo. Si presenta nel seguito, un insieme di specchi interattivi che sono
apparsi in questi ultimi anni.
Magic Mirror
Dopo diversi anni di ricerca nello sviluppo di strumenti in realtà aumentata per la
chirurgia mini-invasiva, il team Mirracle [25], sotto la direzione del professor Nassir
Navab, ha cominciato nel 2011 un progetto di specchio magico per visualizzare
e interagire con dei dati anatomici. Il «Magic Mirror» [26, 27, 28] è un sistema
interattivo che permette la visualizzazione delle conoscenze anatomiche in tempo
21
2 – Stato dell’arte
Figura 2.12: Magic Mirror sviluppato dal gruppo Mirracle (2011-2014)
reale e basato sul riconoscimento dei movimenti del braccio per navigare tra i vari
strati anatomici. Una Kinect PrimeSense è stata utilizzata, insieme alle librerie
OpenNi e NITE, per stimare la postura dell’utilizzatore.
La figura 2.12 fornisce un esempio di feedback visivo che si può ottenere con
questo sistema. Può essere presentato su uno semplice schermo o anche su un
muro di schermi, in funzione dei bisogni della dimostrazione. Per avere in qualsiasi
momento un effetto di sovrapposizione dell’anatomia sull’utilizzatore, un sistema di
posizionamento dei dati viene applicato. Per gestire l’integrazione dei dati anatomici
sull’immagine dell’utilizzatore, i dati vengono cerchiati in giallo.
Digital Mirror
Figura 2.13: Digital Mirror - Museo delle Arti e dei Mestieri a Parigi - 2014
L’allestimento 3D intitolato «Digital Mirror» [29] presentato al Musée des arts et
métiers di Parigi da Maître e collaboratori è stato creato con lo scopo di visualizzare
in tempo reale l’interno del proprio corpo: scheletro e organi.
La visualizzazione si fa con l’aiuto di un’immagine composita del corpo interno
creata a partire da diverse immagini mediche: PET, raggi X e MRI. Un modello
femminile e un modello maschile sono creati e si alternano grazie ad un algoritmo
di determinazione del sesso dell’utilizzatore.
22
2 – Stato dell’arte
La figura 2.13 fornisce un esempio di questa dimostrazione. Il feedback visivo si
effettua su un insieme di otto schermi di circa 1.65m di altezza ciascuno. L’utiliz-
zo di un sensore Microsoft Kinect permette di catturare i movimenti dei segmenti
anatomici e quindi deformare rigidamente l’immagine, in sincronia con il corpo del-
l’utilizzatore per ottenere una visualizzazione simile in termini di postura. Questo
lavoro è stato presentato a Toronto a CHI6
2014.
Anatomie Spiegel
Figura 2.14: Anatomie Spiegel - http://anatomiespiegel.de - 2015
Presentato al congresso annuale della GMA7
nel 2015 a Leipzig, il progetto «Ana-
tomie Spiegel» [30] è stato sviluppato da due studenti, Simon Kirsch e Alexander
Borner, supervisionati dal professor Bernd Hanisch.
Il sitema «Anatomie Spiegel» permette la visualizzazione di un modello anatomi-
co virtuale corpo completo (sistema muscolare, organi, sistema scheletrico, sistema
circolatorio). La geometria è modellizzata attraverso l’uso dello strumento di scul-
tura 3D ZBrush [31]. Per validare la modellizzazione, gli studenti hanno utilizzato le
opere dell’Istituto d’anatomia dell’Università Martin Luther ad Halle. Un modello
per ogni sesso è stato presentato e può essere modificato in funzione della scelta
dell’utilizzatore. Inoltre i modelli sono corredati da annotazioni.
La figura 2.14 mostra un esempio di questa dimostrazione. Il feedback visivo
tempo reale viene effettuato su uno schermo le cui dimensioni possono evolvere in
funzione delle necessità. L’utilizzo di uno scheletro di animazione dato dal sensore
Microsoft Kinect V2.0 permette l’animazione e l’impostazione della postura dell’uti-
lizzatore. La profondità (spostamento dell’utilizzatore lungo l’asse sagittale) è anche
6
CHI: Computer-Human Interaction conference
7
GMA: società tedesca di formazione medica
23
2 – Stato dell’arte
utilizzata per far comparire e sparire delle strutture anatomiche e quindi navigare
intuitivamente all’interno delle conoscenze anatomiche.
Sintesi
Questa lista è esaustiva al momento della stesura della tesi e ricapitola i principali
sistemi che esistono sotto il termine di specchio anatomico interattivo. Si può notare
che la più parte di questi sistemi sono basati su dei sistemi di cattura del movimento
leggeri (vedere sezione 4.2). Questi sistemi sono spesso rilasciati insieme a un kit
di sviluppo, o SDK 8
, che garantisce un semplice accesso alle uscite del sensore. Gli
algoritmi e i tipi di dati che vengono forniti dipendono dal tipo di SDK ed è sempre
fornito un accesso sia alla mappa di profondità che a quella a colori.
2.4 Conclusione e discussione
In un primo tempo, questo capitolo introduce i diversi domini che utilizzano le
conoscenze anatomiche (vedere sezione 2.1.1). Si centra il contesto parlando dei
diversi supporti di conoscenza anatomica (vedere sezione 2.2) e facendo un breve
giro d’orizzonte sulle nuove tecnologie al servizio del settore medicale (vedere se-
zione 2.3). Si sono quindi introdotti, in sezione 2.3.2, i sistemi di tipo «specchio
interattivo» utilizzati nell’ambito del medicale, simili al sistema AnatoMimo che si
vuole sviluppare.
8
SDK: Software Development Kit
24
ANATOMIA: CONOSCENZE
ANATOMICHE E MODELLI 3D
3
Capitolo
25
3 – Anatomia: conoscenze anatomiche e modelli 3D
3.1 Anatomia umana
Nel corso degli anni, sono venuti alla luce una grande quantità di studi sul corpo
umano. Alcuni trattando il corpo nel suo insieme attraverso delle conoscenze generali
e altri più specifici, trattando di una sola regione del corpo o di una patologia. Ci
si interessa in questo caso allo studio del morfotipo: studio e descrizione del corpo
a partire dalla sua apparenza esteriore (anatomia delle forme esterne).
3.1.1 Terminologia anatomica
Per assicurare una buona comprensione delle descrizioni anatomiche da parte di tutti
gli interessati al settore e per convenzione, è stata pubblicata una standardizzazione
della terminologia utilizzata in anatomia e fisiologia umana, per la prima volta nel
1998 dalla Federazione Internazionale delle Associazioni degli Anatomisti (IFAA).
Il sistema di riferimento anatomico definisce, a partire da una postura anatomica
di riferimento1
, diverse posizioni e direzioni nello spazio. Queste dichiarazioni per-
mettono di esprimere la posizione e l’orientamento di elementi anatomici rispetto
allo spazio del corpo stesso e quindi astrarre il punto di vista dell’osservatore. Questa
postura anatomica di riferimento (vedere figura 3.1a) viene descritta nel seguente
modo: il soggetto si trova in una postura eretta, i gomiti accostati ai fianchi, i palmi
delle mani rivolti all’osservatore, i piedi avvicinati, leggermente divaricati in punta.
Per eseguire un’analisi descrittiva di una postura o di un movimento del corpo nella
sua totalità, sono stati definiti 3 piani (vedere figura 3.1b) passanti per il centro di
gravità del corpo umano e perpendicolari tra loro:
• il piano sagittale passa per la linea mediana del corpo e divide in due parti
simmetriche: la parte destra e quella sinistra. È in questo piano che si studiano
i movimenti come il cammino o la corsa.
• il piano frontale divide il corpo in una parte anteriore e una parte posteriore.
È in questo piano che si studiano i movimenti come le rotazioni interne o
esterne della caviglia.
• il piano trasversale divide il corpo in due parti: superiore e inferiore. È in
questo piano che si può studiare per esempio la torsione delle spalle rispetto
alle anche.
Sono ugualmente definiti tre assi (vedere figura 3.1c), rette che rappresentano una
direzione o intorno alle quali avviene una rotazione, ciascuno dei quali si situa
all’intersezione tra due piani:
1
Nota: a non confondere con la postura di riferimento fisiologico che differisce leggermente
26
3 – Anatomia: conoscenze anatomiche e modelli 3D
• l’asse trasversale è situato all’intersezione del piano frontale con quello
trasversale ed è perpendicolare al piano sagittale.
• l’asse antero-posteriore è situato all’intersezione del piano sagittale con
quello trasversale ed è perpendicolare al piano frontale.
• l’asse longitudinale è situato all’intersezione del piano frontale con quello
sagittale ed è perpendicolare al piano trasversale.
(a) (b) (c)
Figura 3.1: Riferimenti anatomici. (a) Postura anatomica di riferimento. (b) Tre
piani anatomici: il piano sagittale (in verde), il piano frontale (in rosso) e il piano
trasversale (in blu). (c) Tre assi anatomici principali: l’asse trasversale (in rosso),
l’asse antero-posteriore (in blu) e l’asse longitudinale (in verde).
La profondità anatomica permette di definire una posizione relativa di una strut-
tura in esame rispetto alla superficie esterna della pelle. Il termine superficiale in-
dica le strutture vicine alla superficie del corpo (ad es.: la pelle è superficiale rispetto
ai muscoli). Al contrario, il termine profondo indica le strutture lontani dalla su-
perficie. La traslazione di un piano rispetto al proprio asse permette un percorso di
strato in strato del corpo: da quello più superficiale al piano più profondo.
Per una descrizione più specifica, il corpo umano può essere scomposto in un
insieme di segmenti: testa, collo, tronco, arti superiori (braccio, avambraccio e mano)
e arti inferiori (coscia, gamba e piede). Questi segmenti sono uniti gli uni agli altri
attraverso le principali articolazioni del corpo umano. Si può quindi migliorare la
descrizione anatomica attraverso termini di direzione e orientamento come i seguenti:
27
3 – Anatomia: conoscenze anatomiche e modelli 3D
anteriore e posteriore, inferiore e superiore, medio e laterale e infine prossimale e
distale.
(a) (b) (c)
(d)
Figura 3.2: Principali direzioni anatomiche. (a) Anteriore e posteriore. (b)
Superiore e inferiore. (c) Mediale e laterale. (d) Prossimale e distale.
• Si considera come anteriore (vedere figura 3.2a) qualsiasi struttura situata
davanti rispetto ad un’altra in relazione all’asse sagittale (ad es.: gli occhi sono
anteriori rispetto al cervello); mentre si dice che una struttura è posteriore
se questa si trova dietro ad un’altra seguendo l’asse sagittale (ad es.: i reni
sono posteriori rispetto al fegato).
• Si considera come superiore (vedere figura 3.2b) qualsiasi struttura situata
sopra rispetto ad un’altra in relazione all’asse longitudinale (ad es.: il cuore è
superiore rispetto allo stomaco); mentre si dice che una struttura è inferiore
se questa si trova sotto ad un’altra seguendo l’asse longitudinale (ad es.: il
polpaccio è inferiore rispetto alla coscia).
• Si considera come mediale (vedere figura 3.2c) qualsiasi struttura situata
vicino rispetto all’asse longitudinale del corpo (ad es.: gli occhi sono mediali
rispetto alle orecchie); mentre si dice che una struttura è laterale se questa si
trova lontana ad un’altra rispetto all’asse longitudinale (ad es.: gli occhi sono
laterali rispetto al naso).
28
3 – Anatomia: conoscenze anatomiche e modelli 3D
• Si considera come prossimale (vedere figura 3.2d) qualsiasi struttura situata
vicino rispetto al centro di gravità del corpo (baricentro) in termini di artico-
lazioni (ad es.: il gomito è prossimale rispetto al polso); mentre si dice che una
struttura è distale se questa si trova lontana dal centro di gravità del corpo in
termini di articolazioni (ad es.: le caviglie sono distali rispetto alle ginocchia).
3.1.2 Strutture anatomiche
Il corpo umano è composto da un insieme di strutture anatomiche, ciascuna delle
quali avente una funzione ben precisa. Per esempio il sistema cardiovascolare è un
sistema circolatorio a circuito chiuso che assicura il trasporto di sangue dal cuore
verso le estremità e i vari organi. Il sistema respiratorio permette lo scambio di gas
tra il corpo e l’ambiente esterno. Il sistema nervoso permette una comunicazione
rapida tra le diverse parti del corpo attraverso una trasmissione di un potenziale
elettrico.
Il lavoro svolto in questa tesi si basa sull’anatomia in movimento e in primo
luogo ci si concentrerà sull’apparato muscolo-scheletrico, chiamato anche apparato
locomotore e composto dal sistema scheletrico, articolare e muscolare (vedere figura
3.3).
(a) (b) (c)
Figura 3.3: Apparato locomotore o sistema muscolo scheletrico. (a) Sistema
scheletrico. (b) Sistema articolare. (c) Sistema muscolare.
29
3 – Anatomia: conoscenze anatomiche e modelli 3D
Il sistema scheletrico
Lo scheletro è una struttura solida che sostiene il corpo e protegge gli organi interni
ma anche mobile, giocando un ruolo importante nella mobilità del corpo. All’età
adulta, lo scheletro è composto da 206 ossa in media, nella più parte costituiscono
mani e piedi. Ogni osso ha una forma propria e che è stata modellizzata nel corso
dei secoli dalla sua funzione e dal suo posizionamento nel corpo. A seguito di una
classificazione morfologica delle ossa, esistono quattro grandi tipi di ossa:
• le ossa corte presentano dimensioni nelle tre direzioni pressocché uguali (ad
es.: le ossa del carpo che costituiscono il polso).
• le ossa piatte presentano due dimensioni predominanti sulla terza (ad es.: la
scapola).
• le ossa lunghe presentano una dimensione predominante sulle altre due (ad
es.: il femore).
• le ossa irregolari sono tutte le ossa che non rientrano nelle categorie prece-
denti, come la mandibola o le vertebre.
Il sistema articolare
Le zone di contatto tra due ossa o tra un osso e della cartilagine sono chiamate
articolazioni. Nel corpo umano sono presenti circa 360 articolazioni: 86 per il cranio,
6 per la laringe, 66 per la gabbia toracica, 76 per la colonna vertebrale e il bacino,
64 per gli arti superiori e 62 per gli arti inferiori. Ci si interesserà unicamente alle
articolazioni tra due ossa. Queste articolazioni sono più o meno mobili in funzione
della loro forma e struttura anatomica circostante. Le articolazioni sono costituite
da osso e da tessuto connettivo che permette la stabilizzazione dell’articolazione e
moderano passivamente le forze trasmesse da una struttura all’altra.
In base al movimento che riescono ad esprimere, le articolazioni si suddividono
in sinartrosi (superfici articolari immobili), anfiartrosi (articolazioni semi-mobili) e
diartrosi (articolazioni che permettono ampi movimenti). Le diartrosi sono quelle
di interesse e si possono suddividere a loro volta in cinque forme:
• la trocleoartrosi consente movimenti di flessione ed estensione attraverso
una rotazione attorno ad un asse (1 g.d.l.); il suo equivalente meccanico è
rappresentato da un giunto rotoidale ed è presente nelle articolazioni di gomito,
ginocchio, caviglia e interfalangee.
• la trocoide consente movimenti di pronazione e supinazione attraverso una
rotazione attorno ad un asse (1 g.d.l.); il suo equivalente meccanico è rappre-
sentato da un giunto rotoidale ed è presente nell’accoppiamento tra capitello
del radio e ulna.
30
3 – Anatomia: conoscenze anatomiche e modelli 3D
• l’articolazione a sella consente movimenti di flessione, estensione, abduzio-
ne e adduzione attraverso un movimento angolare (2 g.d.l.); il suo equiva-
lente meccanico è rappresentato da un giunto cardanico ed è presente negli
accoppiamenti di carpo-metacarpo del pollice e sterno-clavicola.
• la condiloartrosi consente movimenti di flessione, estensione, abduzione e
adduzione attraverso un movimento angolare (2 g.d.l.); il suo equivalente mec-
canico è rappresentato da un giunto cardanico ed è presente nell’accoppiamento
radio-carpo.
• l’enartrosi consente movimenti di flessione, estensione, abduzione, adduzione
e rotazione attraverso un movimento angolare più una rotazione (3 g.d.l.); il
suo equivalente meccanico è rappresentato da un giunto sferico ed è presente
nell’articolazione dell’anca e nell’accoppiamento scapola-omero.
Figura 3.4: I diversi tipi di articolazione nel corpo umano: 1. Trocleoartrosi, 2.
Trocoide, 3. Enartrosi, 4. Condiloartrosi, 5. Articolazione a sella
Il sistema muscolare
Il muscolo, o tessuto muscolare, è un tessuto attivo che permette, attraverso la sua
contrazione, il movimento e il mantenimento della postura. In funzione della loro
fisiologia, si possono distinguere tre grandi gruppi di muscoli:
• I muscoli scheletrici che permettono il movimento vero e proprio
31
3 – Anatomia: conoscenze anatomiche e modelli 3D
• I muscoli lisci che ricoprono generalmente gli organi interni
• Il muscolo cardiaco, caso particolare di muscolo scheletrico
Il sistema muscolare, composto da circa 600 muscoli, è l’insieme dei muscoli
scheletrici. Per il seguito di questo documento, quando si parlerà di muscoli si
intenderà muscoli scheletrici, non avendo utilizzato gli altri tipi di muscoli nel corso
del lavoro.
Un muscolo scheletrico è diviso in tre parti: il tendine di origine attaccato al-
l’osso fisso, il centro costituito da fibre muscolari e il tendine d’inserzione attaccato
all’osso mobile. Sulla superficie dell’osso si possono distinguere dei piccoli solchi che
permettono l’attacamento dei muscoli.
3.1.3 Terminologia di movimento
Nel seguito della tesi, ci si interesserà particolarmente dei corpi in movimento. Nella
parte del sistema articolare della sezione 3.1.2, si è parlato dei diversi tipi di arti-
colazioni nel corpo umano. Una terminologia specifica è stata messa in pratica per
descrivere i movimenti di queste articolazioni e le figure 3.5 e 3.6 illustrano l’insieme
di questi movimenti.
Figura 3.5: I diversi tipi di movimenti nel corpo umano: 1. Flessione, 2. Esten-
sione, 3. Abduzione, 4. Adduzione, 5. Circonduzione, 6. Rotazione, 7. Rotazione
esterna, 8. Rotazione interna.
La flessione permette di piegare un segmento del corpo su un altro attraver-
so la diminuzione dell’angolo a livello dell’articolazione tra i due segmenti presi in
considerazione. Si prenderà come esempio la flessione del ginocchio che consiste
nella dimuzione dell’angolo formato tra la coscia e la gamba. L’estensione permet-
te a due segmenti consecutivi di essere uno il prolungamento dell’altro attraverso
32
3 – Anatomia: conoscenze anatomiche e modelli 3D
l’allungamento dell’angolo a livello dell’articolazione. Si prenderà come esempio l’e-
stensione del gomito che consiste nell’aumento dell’angolo formato tra il braccio e
l’avambraccio, che ha come effetto l’allineamento dell’ulna e dell’omero. In funzione
dell’articolazione, è possibile che i termini siano invertiti: per esempio nell’estensione
e flessione della spalla si parlerà di antepulsione e retropulsione.
Guardando il corpo nel piano frontale, si definisce con abduzione il movimento
di rotazione laterale quando i segmenti si allontanano dall’asse longitudinale. Si
può prendere come esempio l’abduzione del braccio. Al contrario, l’adduzione
corrisponde al movimento di rotazione laterale che permette il riavvicinamento dei
segmenti verso l’asse longitudinale. Si può prendere come esempio l’adduzione del
braccio.
La circonduzione è il movimento che permette all’estremità distale di un seg-
mento di descrivere un cerchio, combinando flessione/estensione e abduzione/addu-
zione dell’articolazione. Le articolazioni che permettono la circonduzione sono di
tipo sferico come l’articolazione della spalla o dell’anca.
Si parla di rotazione di un segmento anatomico quando questo gira intorno al
suo asse longitudinale. Quest’asse longitudinale attraversa il segmento da un capo
all’altro per collegare le due estremità del segmento. La rotazione esterna defini-
sce la rotazione secondo la quale l’osso si allontana della linea mediale del corpo. Si
può prendere come esempio la rotazione esterna dell’anca . Al contrario, la rota-
zione interna definisce la rotazione attraverso la quale l’osso si avvicina alla linea
mediale del corpo. Si può prendere come esempio la rotazione interna dell’anca. Nel
caso dell’articolazione della caviglia, il termine eversione è utilizzato per parlare
della rotazione esterna e il termine inversione è utilizzato per definire la rotazione
interna.
Il termine pronosupinazione identifica il movimento di rotazione di un seg-
mento del corpo rispetto ad un altro. Per l’avambraccio, si parla di pronazione
quando si effettua una rotazione interna e una supinazione quando si effettua una
rotazione esterna. L’esempio classico è quello dell’avambraccio infatti il movimento
relativo tra il radio e l’ulna permette la pronazione e la supinazione della mano.
3.2 Rappresentazione anatomica
Nel contesto del progetto AnatoMimo, la possibilità di poter interagire attivamente e
illimitatamente con il modello portatore di conoscenze anatomiche impone l’utilizzo
di un modello anatomico digitale. I progressi dell’informatica sia a livello dei concetti
che della loro messa in opera hanno suscitato lo sviluppo di numerose applicazioni
destinate ai ricercatori, medici o al grande pubblico.
33
3 – Anatomia: conoscenze anatomiche e modelli 3D
Figura 3.6: I diversi tipi di movimenti nel corpo umano: 1. Inversione, 2.
Eversione, 3. Pronazione, 4. Supinazione.
In questa sezione verranno approfonditi i concetti di modello anatomico digitale,
le sue possibili rappresentazioni e quale tra queste è stata scelta nel corso dello
svolgimento della tesi.
3.2.1 Modelli anatomici di riferimento
A seconda del settore e dello scopo ricercato, le necessità in termini di modello
anatomico di riferimento possono essere molto diverse: alcuni hanno bisogno di
uno strato superficiale di pelle e altri hanno bisogno anche dell’anatomia interna.
Dopo aver introdotto brevemente il concetto di «mesh», si presenteranno in seguito
i diversi modelli di riferimento corrispondenti a queste due necessità.
Mesh
Una mesh poligonale, anche detta maglia poligonale, è la discretizzazione spa-
ziale di un corpo continuo, o anche, una modellizzazione geometrica di un dominio
attraverso elementi finiti. L’obiettivo di realizzare una mesh è quello di procedere
ad una semplificazione di un sistema attraverso un modello che rappresenta tale
sistema ed eventualmente l’ambiente esterno, nell’ottica di simulazioni di calcolo o
di rappresentazioni grafiche. Una mesh è definita dal suo sistema di riferimento,
dai vertici che la costituiscono (caratterizzati da coordinate) e da un politopo2
che
2
Politopo d-dimensionale: è l’analogo di un poligono nel piano (d=2) e di un poliedro nello
spazio (d=3)
34
3 – Anatomia: conoscenze anatomiche e modelli 3D
attraverso i suoi spigoli unisce n diversi vertici. Una mesh può essere caratterizza-
ta dalla sua dimensione (tipicamente 2D o 3D), dal suo volume, dalla sua finezza
(superficie o volume medio dei poligoni che compongono la mesh), la geometria dei
politopi (triangoli, parallelogrammi, rettangoli, quadrati per i poligoni in 2D e te-
traedri, prismi, parallelepipedi, cubi per i poliedri in 3D) e il grado dell’elemento
(grado del polinomio che viene utilizzato per descrivere gli spigoli degli elementi; nel
caso di elementi finiti, rappresenta anche il grado dei polinomi di interpolazione).
Nel caso in cui i politopi abbiano spigoli rettilinei e facce piane, si parla di mesh
«lineari», mentre si chiamano mesh «quadratiche» nel caso in cui gli spigoli siano
curve (definite da tre punti: i due estremi e il punto medio). Le mesh quadratiche
permettono di descrivere più fedelmente la frontiera dell’oggetto ma si aumenta il
numero di vertici necessari. Si parla di mesh «cubiche», nel caso in cui gli spigoli
siano costituiti da tre segmenti. Si può vedere in figura 3.7a un esempio che riassume
questi concetti.
La discretizzazione del dominio attraverso geometrie primitive definisce la forma
di un oggetto poliedrico in computer grafica e nell’analisi agli elementi finiti, appros-
simando cosi il comportamento del solido con quello dei poliedri che lo compongono.
Nel contesto di AnatoMimo, le mesh, che sono state utilizzate, hanno unicamente
lo scopo di fungere da rappresentazioni grafiche digitali dei vari tessuti umani. Non
sono state eseguite analisi agli elementi finiti per dedurre il comportamento degli
elementi in gioco. In figura 3.7b viene rappresentato un cuore in modalità wireframe,
ovvero un tipo di visualizzazione che evidenzia solo gli spigoli di un solido, rendendo
trasparente tutto il resto.
(a) (b)
Figura 3.7: Esempi di mesh. (a) Diversi tipi di elementi che compongono le mesh.
(b) Mesh di un cuore in wireframe.
35
3 – Anatomia: conoscenze anatomiche e modelli 3D
Strato superficiale di pelle
Esistono diversi metodi per ottenere una superficie esterna di pelle: creazione di
mesh alla mano o per generazione automatica. Per la creazione alla mano, dei sof-
ware di modellizzazione 3D (tra i quali Blender [32]) o di scultura (tra i quali ZBrush
[31]) sono utilizzati. Per la generazione automatica si tratta spesso di scannerizzare
una persona e ricostruire la sua pelle a partire da i dati recuperati (pelle parziale,
nuvola di punti, ecc.)
Esistono diversi sistemi, più o meno pesanti, per scannerizzare la pelle di un
utilizzatore. Ciascun tipo di sistema di acquisizione fornisce dei risultati più o meno
realistici, spesso in funzione del numero e della qualità dei sensori di acquisizione.
(a) (b)
Figura 3.8: Scanner di un utilizzatore: pelle user-specific. (a) Light Stage 6 [33].
(b) Scanner a partire di un sensore leggero.
In figura 3.8a viene presentato il sistema Light Stage 6 [33], composto da teleca-
mere ad alta risoluzione e un insieme di sorgenti luminose che permettono la cattura
di un utilizzatore (corpo intero o semplicemente solo il viso) sotto diverse condizioni
di illuminamento. Questo permette di creare un campo d’illuminamento della pelle
che renderà possibile ottenere una texture3
della pelle fotorealistica [34].
La figura 3.8b presenta una soluzione per scannerizzare il corpo di un utilizzatore
attraverso l’uso di un sensore di profondità. Quattro nuvole di punti parziali (posi-
zioni 3D e colori) sono catturati e poi assemblati per generare una mesh texturata
del corpo intero dell’utilizzatore.
Per ottenere delle mesh più generiche, sono nati degli approcci con delle basi
di dati. Questi permettono, a partire da un gran numero di mesh, di generare dei
modelli statistici, basati su delle misure antropomorfiche indotte.
3
Texture: un’immagine bidimensionale che viene riprodotta su una o più facce di un modello
poligonale tridimensionale
36
3 – Anatomia: conoscenze anatomiche e modelli 3D
Nasce nel 2005 SCAPE [35], una delle prime basi di dati ma anche la più utilizzata
(vedere figura 3.9a). Raggruppa due set di dati: il primo è composto da 37 mesh di
persone diverse in posizioni simili; il secondo è composto da 70 mesh di una stessa
persona in diverse posizioni. La cattura della mesh si esegue grazie a 50-60 marker
e uno scanner Cyberware WBX corpo intero che cattura simultaneamente quattro
nuvole di punti parziali.
La base di dati Dyna [36] è un’estensione di SCAPE e permette la deformazione
del corpo intero basandosi non più su delle posizioni statiche ma su dei dati dinamici,
prendendo in considerazione la deformazione dei tessuti molli sottostanti alla pelle.
Si può anche citare la base di dati FAUST [37], composta da 300 mesh di 10
persone in posizioni molto diverse (vedere figura 3.9b). Un approccio multi camera
è stato utilizzato per catturare la geometria.
(a) (b)
Figura 3.9: Database di dati composti da un insieme di mesh della superficie della
pelle. (a) Database SCAPE [35]. (b) Database FAUST
Anatomia interna
Esistono diversi modi per ottenere un modello di riferimento dell’anatomia inter-
na: utilizzando direttamente il corpo (con preparati istologici), utilizzando delle
immagini mediche o utilizzando delle opere anatomiche (illustrazioni, foto).
Si chiama preparato istologico una porzione di tessuto animale o vegetale adatta
ad essere analizzata tramite microscopio ottico o elettronico. Dopo il taglio, le strisce
sottilissime vengono colorate e fissate con della resina o della formalina per evitare la
decomposizione. Si può citare la costruzione e la messa in opera di «Visible Human
Project» [38] negli Stati Uniti, il progetto di atlante radiologico «VOXEL MAN 3D
Navigator» [39] e il progetto coreano «Visible Korean Human».
Alcuni metodi sfruttano le immagini mediche per ricostruire dei corpi completi
o dei sistemi specifici [40]. Si tratta spesso, in un primo momento, di segmentare le
immagini mediche per separare le strutture anatomiche le une dalle altre e quindi
ottenere il contorno delle strutture. Questo settore è molto vasto in termini di
metodi ma il fatto di segmentare automaticamente immagini mediche risulta ancora
molto difficile.
37
3 – Anatomia: conoscenze anatomiche e modelli 3D
Sim4Life [41] è un insieme di strumenti per la simulazione. Utilizza come modelli
di riferimento la popolazione virtuale VIP 3.0 [42], composta da modelli di ogni tipo
(donne e uomini medi, bambini, obesi, ecc.) Questi modelli di riferimento sono stati
costruiti a partire da immagini mediche.
La soluzione che utilizza opere anatomiche consiste nel modellizzare alla mano
l’insieme della geometria attraverso software di modellizzazione 3D come Blender
[32] o di scultura 3D come ZBrush [31].
Per esempio si può prendere come esempio lo Zygote [43], modello di riferimento
completo che propone un modello femminile e maschile (vedere figura 3.10a). Il
modello Adrienne [44], proposto dall’azienda Ziva Dynamics per la realizzazione
di animazioni foto-realistiche nel settore del cinema (vedere figura 3.10b), contiene
tutte le strutture anatomiche necessarie per definire la forma e il movimento del
personaggio: sistema scheletrico, muscolare, pelle, tessuti connettivi. Per creare la
geometria dell’anatomia interna gli autori si basano su dei dati MRI come standard
di riferimento. Per quanto riguarda la superficie della pelle e della sua texture,
utilizzano un sistema di cattura. Un sistema di allineamento è utilizzato per far
combaciare l’anatomia interna con la struttura della pelle esterna.
(a) (b)
Figura 3.10: Modellizzazione di modelli anatomici alla mano. (a) Modello Zygote
[43]. (b) Modello Adrienne [44].
3.2.2 Tipi di dati e livello di dettaglio
Nella sezione 2.2, si è discusso dei diversi tipi di supporto per le conoscenze anatomi-
che. Si è potuto vedere che i tipi di dati presentati sono dipendenti dalle conoscenze
che si vuole comunicare.
38
3 – Anatomia: conoscenze anatomiche e modelli 3D
Per definire il formato ottimale dei dati anatomici, si sono determinati due punti
critici: la postura e l’orientamento del corpo in funzione del punto di visto dell’osser-
vatore ma anche la postura e l’orientamento dei segmenti che compongono il corpo
in funzione della posizione di riferimento, descritta in sezione 3.1.
Nel caso di una visualizzazione statica, un modello di riferimento 2D è auspi-
cabile. Per limitare la complessità, è sufficiente limitare il numero di posture e di
orientamenti del corpo e dei segmenti. Nel caso di questo lavoro, ci si propone di
proporre all’utilizzatore una visualizzazione anatomica in movimento che è portata
a cambiare postura e orientamento tanto quanto il corpo ne permette. Si è quindi
scelto di utilizzare un modello anatomico di riferimento in 3D.
In funzione dell’utilizzazione che se ne si vuole fare, è possibile rappresentare
l’anatomia secondo diversi criteri di qualità dal punto di vista della forma e della
resa delle geometrie:
• l’esattezza nella forma fa riferimento al modo di rappresentare un ogget-
to permettendo ad altri di poterlo poi riconoscere e identificare. Il livello di
esattezza può essere più importante in alcune zone di interesse (ad es: intorno
alle articolazioni). Rispetto alla forma, si possono notare qualche elementi im-
portanti: curve al limite, volumi, buchi, punte e punti di contatto tra oggetti.
L’esattezza nella forma può impattare i seguenti criteri: livello di dettaglio,
risoluzione geometrica e complessità topologica.
• il livello di dettaglio è più o meno importante in funzione dell’applicazione
che si vuole fare. Per esempio, se si vuole mostrare lo scheletro completo, non
è necessario visualizzare i pori delle ossa. Tuttavia, nel caso di un primo piano
su un singolo osso questi dettagli potrebbero essere interessanti. In alcune
alcune applicazioni, può essere necessario cambiare il livello di dettaglio in
funzione della distanza di un oggetto. Il livello di dettaglio può impattare i
seguenti criteri: risoluzione geometrica e complessità topologica.
• ad alta risoluzione, la mesh è voluminosa e sarà difficile utilizzarla per delle
applicazioni in tempo reale. Tuttavia, una tale risoluzione geometrica per-
mette di avere della finezza nella mesh e quindi ottenere dei degli interessanti.
La complessità topologica si riferisce alla consistenza della geometria di un
oggetto: presenza o meno di buchi nella geometria che non dovrebbero esiste-
re (artefatti). La risoluzione geometrica e la complessità topologica possono
impattare i seguenti criteri: esattezza della forma e livello di dettaglio.
• il realismo e il contesto visivo fanno riferimento all’oggetto rispetto quelli
che lo circondano e alla resa di questo. Si hanno per esempio i criteri di messa
in scala o di piazzamento nello spazio rispetto al contesto. La resa può esse-
re diversa in funzione dell’applicazione alla quale l’oggetto è destinato. Per
39
3 – Anatomia: conoscenze anatomiche e modelli 3D
esempio, si utilizzerà una rappresentazione schematica per spiegare un mecca-
nismo, si darà risalto ad alcuni oggetti colorandoli in maniera non realistica
per rappresentare una nozione pedagogiche e si utilizzerà un oggetto texturato
con una gestione delle ombre per rendere l’oggetto foto-realistico.
(a) (b) (c)
Figura 3.11: Diversi criteri di astrazione per il sistema scheletrico. (a) Vi-
sualizzazione dei volumi, attraverso il mooc FOVEA [45]. (b) Il modello di
riferimento utilizzato. (c) Schema descrittivo dei tessuti connettivi del bacino
(http://www.corpshumain.ca).
Ogni rappresentazione è adattata alla visualizzazione o all’apprendimento di no-
zioni diverse. La rappresentazione scelta è quindi funzione delle informazioni che si
vuole trasmettere. Si può vedere questo concetto messo in atto in figura 3.11 che rap-
presenta diversi livelli di astrazione per il sistema scheletrico. La rappresentazione
schematica proposta in figura 3.11a da [45, 46] permette una visualizzazione globale
delle forme e delle loro orientazioni, e quindi offre una migliore comprensione dei
volumi. La visualizzazione realistica semplificata proposta in figura 3.11b è quella
che si è scelto di adottare poiché mostra sufficientemente dettagli per capire punte
e buchi delle mesh. Nel frattempo rimane sufficientemente semplice per essere facil-
mente manipolabile sempre rimanendo sufficientemente precisa per lo studio delle
forme delle strutture anatomiche e della loro morfologia. La figura 3.11c propone
una resa foto-realistica dove si può osservare il lato rugoso dell’osso dovuto alle sue
asperità.
Ci si concentra ora sui diversi livelli di astrazione possibili per il sistema muscola-
re (vedere figura 3.12). La rappresentazione dei muscoli attraverso le linee di azione
(muscoli 1D) (presentato in figura 3.12a) permette una visualizzazione dei muscoli
superficiali e dei muscoli profondi insieme alle loro posizioni di inserzione sullo sche-
letro. I muscoli semplificati proposti da Maya Muscle [47, 48] (vedere figura 3.12b),
che permettono la visualizzazione dei volumi muscolari, sono utilizzati per ricreare le
deformazioni muscolari e applicarle alla superficie della pelle. Le figure 3.12c e 3.12d
40
3 – Anatomia: conoscenze anatomiche e modelli 3D
forniscono una visualizzazione un po’ più realistica sottolineando le fibre muscolari
o ancora permettendo la visualizzazione delle diverse parti del muscolo. Si è scelto
come per il sistema scheletrico di presentare i muscoli nella loro forma più realista
ma lasciando una topologia semplice (geometria liscia) per guadagnare velocità nel
ritorno visivo.
(a) (b) (c) (d)
Figura 3.12: Diversi criteri di astrazione per il sistema muscolare. (a) Rappre-
sentazione dei muscoli attraverso le linee di azione. (b) Muscoli Maya, dell’artista
Jonathan Chien su Behance. (c) Modello di riferimento utilizzato. (d) Modello
Zygote a cui sono assegnate delle texture.
3.2.3 Il modello anatomico di riferimento utilizzato
Ottenere un modello anatomico completo di riferimento è un compito difficile. Si è
parlato nella sezione 3.2.1 di un insieme di modelli esistenti. Per il modello utilizza-
to in questo progetto, si è scelto l’utilizzo di Zygote [43], un modello di riferimento
completo modellizzato da degli artisti. È composto da un modello di sesso maschile
e da uno di sesso femminile. Dal punto di vista anatomico, esiste un insieme di
differenze tra l’uomo e la donna, soprattutto differenze a livello delle strutture ana-
tomiche, che influenzano le proporzioni globali delle parti del corpo. Per semplificare
il lavoro, è stato scelto di fare un’astrazione da queste diversità tra i due modelli,
andando a lavorare su un modello anatomico unisex. Il modello anatomico utiliz-
zato è costituito da un sistema muscolo-scheletrico, da diversi organi, dal sistema
cardiovascolare e dalla pelle (vedere 3.13).
41
3 – Anatomia: conoscenze anatomiche e modelli 3D
(a) (b) (c) (d) (e)
Figura 3.13: Diversi strati anatomici del modello di riferimento utilizzato. (a)
Pelle. (b) Sistema muscolare. (c) Sistema scheletrico e articolare. (d) Organi. (e)
Sistema cardio-vascolare.
Tra i diversi criteri di qualità evocati in sezione 3.2.2, si è scelto di diminuire
la risoluzione geometrica per ottenere una mesh più leggera e quindi più facile a
utilizzare, permettendo una visualizzazione tempo reale degli strati anatomici del
corpo intero.
Numero di vertici
Zygote Modello utilizzato
Sistema scheletrico 326 012 86 315
Sistema muscolare 326 970 89 665
Sistema vascolare 459 047 51 801
Pelle 45 079 28 515
Organi 123 273 43 172
Tabella 3.1: Complessità geometrica del modello 3D utilizzato rispetto al Zygote
La tabella 3.1 fornisce qualche numero per conoscere l’ordine di grandezza del-
le mesh che costituiscono gli strati anatomici. Si può vedere che la diminuzione
della risoluzione delle mesh permette di dividere per 5 circa il numero di punti e
triangoli per il modello completo. Questi ordini di grandezza sono dipendenti dalla
complessità topologica: si è scelto di diminuire la risoluzione geometrica fino a che
42
3 – Anatomia: conoscenze anatomiche e modelli 3D
le modifiche eccessive nella complessità topologica non erano visibili ad occhio nu-
do. La topologia del sistema cardiovascolare è molto complessa e questo spiega la
semplificazione minimalista apportata alla sua risoluzione geometrica.
43
CATTURA E RESA
DEL MOVIMENTO
4
Capitolo
44
4 – Cattura e resa del movimento
Per la creazione di uno specchio anatomico interattivo, si vuole poter studiare e
visualizzare la dimensione dinamica dell’anatomia attraverso dei fenomeni anatomici
specifici come movimenti relativi tra due ossa unite in una stessa articolazione.
Questo capitolo inizia con una sezione che introduce come in computer grafica viene
definito il movimento e gli elementi necessari per riprodurlo. Nel seguito verranno
specificati i metodi che sono stati utilizzati, nel contesto del progetto AnatoMimo,
per trasmettere dinamicità al modello anatomico 3D.
4.1 Movimenti e deformazioni in computer grafi-
ca
In computer grafica, è possibile indurre il movimento in due modi:
• con una sequenza di oggetti: mostrare un oggetto diverso per ogni passo tem-
porale fornisce l’idea di movimento. Questo approccio è basato sull’idea di
ricostruire la mesh ad ogni passo di integrazione.
• con un solo oggetto: spostare o deformare un oggetto a ogni passo temporale
e seguendo uno schema ben preciso. Esistono due tipi di corpi: i corpi rigidi
come le ossa e i corpi molli come i muscoli. Nel caso di un corpo rigido,
uno stesso vettore di spostamento (6D: 3 traslazioni e 3 rotazioni) si applica a
tutto l’oggetto mentre nel caso di un corpo molle alcune sottoparti dell’oggetto
possono spostarsi le une rispetto alle altre.
Nel seguito del capitolo si continuerà unicamente con la trattazione dell’induzione del
movimento con un solo oggetto. In computer grafica, per definire un movimento,
sono essenziali tre elementi: la struttura di controllo, l’algoritmo di skinning e il
metodo per indurre il movimento.
4.1.1 Struttura di controllo
Per legare delle sottoparti di un oggetto o diversi oggetti tra di loro, sono stati
messi in atto delle strutture di controllo che permettono di definire dei percorsi di
movimento in maniera semplice e intuitiva. Esistono diversi tipi di struttura di
controllo tra le quali si possono citare:
• le scheletro di controllo, è la struttura più utilizzata in animazione 3D per ma-
nipolare degli animali o dei personaggi umanoidi. La sua struttura è costituita
da un insieme di sistemi di riferimento articolari (posizione e orientamento)
3D attaccati gli uni agli altri con un ordine gerarchico, come in robotica (ad
es: l’articolazione del gomito è figlia dell’articolazione della spalla). Per una
45
4 – Cattura e resa del movimento
(a) (b) (c) (d)
Figura 4.1: Diverse strutture di controllo del movimento. (a) Scheletro di ani-
mazione [49]. (b) Curve di deformazione. (c) Linee d’azione. (d) Gabbia di
controllo.
migliore visualizzazione della gerarchia, i legami tra i sistemi di riferimento
sono spesso rappresentati in maniera schematica con dei bastoncini. Si noti
che la complessità della struttura, come la quantità dei sotto-oggetti necessari,
è dipendente della precisione dei movimenti che si vuole poter ottenere. Per
esempio, la figura 4.1a rappresenta una struttura articolare che non permette
il piegamento delle dita. La struttura si utilizza andando ad applicare delle
rotazioni a livello dei sistemi di riferimento articolari e viene spesso definita
manualmente, riferimento dopo riferimento.
• la curva di controllo, o curva di deformazione, è una struttura che si sta sem-
pre più sviluppando. Si tratta di definire una curva in 3D (composta da un
insieme di maniglie di deformazioni). Il numero di maniglie è dipendente dal-
la precisione voluta nella deformazione. La figura 4.1b presenta questa curva
permettendo di deformare la schiena e la testa di un personaggio. La ridefini-
zione di questa curva e la preservazione di volume fanno in modo di indurre il
movimento.
La figura 4.1c raffigura un altro tipo di curva di controllo che viene chiamata
linea d’azione e rappresenta la linea che percorre il personaggio e definisce la
sua dinamica.
• la gabbia di controllo, o griglia di deformazione, è utilizzata per dare degli
effetti elastici ai personaggi applicando deformazioni volumetriche. Come mo-
strato in figura 4.1d, viene presentata sotto forma di una struttura topologica
semplice e deformabile. Più la struttura è complessa e più permetterà de-
formazioni dettagliate. Per controllare la struttura, basterà all’utilizzatore di
tirare su uno o più vertici di questa.
46
4 – Cattura e resa del movimento
4.1.2 Skinning
Con il termine skinning si definisce il metodo impiegato per associare le strutture
di controllo e le sottoparti di un oggetto insieme. L’idea è quella di definire come
le modifiche applicate alla struttura di controllo si ripercuoteranno sulla geometria
dell’oggetto. I primi metodi di skinning geometrico in tempo reale che sono stati
sviluppati sono dei metodi molto semplici, come il metodo molto conosciuto del «Li-
near Blend Skinning» (LBS) [50, 51] che associa a ciascuna sottoparte di un oggetto
da uno a quattro elementi della struttura di controllo in modo da poter anima-
re l’oggetto (vedere figura 4.2b). Tuttavia questa tecnica comporta degli artefatti
ben conosciuti come l’effetto carta di caramella (riduzione della mesh in un punto
quando la mesh si torce) e il crollo del gomito (perdita di volume a livello di una
articolazione).
L’approccio sviluppato da Kavan e colleghi [52], il «Dual Quaternion Skinning»
(DQS), permette grazie alla sua non linearità di evitare alcuni artefatti del LBS
(vedere figura 4.2c). In più questo approccio è facile da implementare ed è facile
passare da LBS a DQS.
I metodi di skinning pseudo-fisico si basano su delle proprietà fisiche della pelle
umana (materiale elastico) per ottenere delle deformazioni più realistiche. Questi
metodi danno dei risultati molto soddisfacenti ma impiegano spesso molto più tempo
di calcolo.
(a) (b) (c)
Figura 4.2: Diversi metodi di skinning geometrico. (a) Definizione di pesi dello
skinning rispetto alla struttura di controllo. (b) Metodo del linear blend skinning
(LBS). (c) Metodo del dual quaternion skinning (DQS).
Definizione dei pesi dello skinning
Si chiamano pesi dello skinning la ponderazione che definisce per ciascun punto
di una mesh, gli elementi della struttura di controllo che andranno a controllarlo
e in che misura (vedere figura 4.2a). Un punto può essere influenzato da uno o
47
4 – Cattura e resa del movimento
più elementi della struttura e per semplificare le ponderazioni, si associa spesso un
vertice della mesh ad un massimo di quattro elementi della struttura.
Queste influenze possono essere definite alla mano o automaticamente con diversi
algoritmi, molti dei quali si basano sulla distanza dei punti della mesh dalle strutture
di controllo. Per esempio, nel software di modellizzazione Blender, l’influenza di
ciascun controllore può essere definita automaticamente e viene presentata sotto
forma di una texture modificabile in una scala a colori: in rosso i punti che sono
totalmente influenzati e in blu quelli che non lo sono per nulla.
4.1.3 Induzione del movimento
Nel quadro del corpo umano, esistono due tipi di effettori motori che permettono
di coprire i modi di espressione e movimenti corporali: i corpi articolati e i corpi
deformabili.
Questi concetti, che inducono il movimento, utilizzano il tempo come unità di
misura.
• Si definisce «corpo articolato», l’insieme di più elementi di controllo (spesso
dei corpi rigidi 6D) in movimento, legati da delle articolazioni. Si chiama
«articolazione» il legame che limita il movimento relativo tra due segmenti del
corpo; i diversi tipi di articolazione sono presentati in sezione 3.1.2.
• Si definisce «corpo in movimento», un corpo che si sposta rispetto ad un
punto fisso dello spazio (spostamento assoluto) o rispetto ad un altro corpo
(spostamento relativo).
• Si definisce «corpo deformabile» un’entità anatomica che cambia forma in
funzione della postura del corpo umano: fenomeno dello scivolamento delle
entità (organi, muscoli, etc.) gli uni sugli altri.
A seconda del settore di interesse, i bisogni in termini di movimento non sono
gli stessi: per le applicazioni biomedicali si cerca di riprodurre e validare i fenomeni
anatomici specifici mentre nel settore del cinema si cerca piuttosto a modellizzare
l’effetto visivo del fenomeno, per ottenere una deformazione realistica della pelle. Ne
è il caso, per esempio, del fenomeno della contrazione muscolare, spesso utilizzata
per ottenere e migliorare le deformazioni della superficie della pelle.
4.2 Motion capture attraverso telecamere RGB-
D
Si presenterà qui più in dettaglio quello che riguarda il metodo della «cattura del
movimento», poiché utilizzato in questo progetto.
48
4 – Cattura e resa del movimento
Si chiama cattura del movimento1
una tecnica che permette di registrare le posi-
zioni e le rotazioni dei segmenti di un soggetto (ad es.: oggetto, animale, umano) nel
corso del tempo, per in seguito ritrascrivere questi movimenti in uno spazio virtuale.
Si differenzia generalmente la cattura dei movimenti del corpo intero dalla cattura
delle espressioni facciali. Ci si interessa qui unicamente della cattura dei movimenti
del corpo intero. Si distinguono due grandi tipi di sistema di cattura: i sistemi
pesanti con conseguenti marker che sono cari ma che offrono dati precisi e realistici
e i sistemi leggeri, senza marker.
Sistemi pesanti
Si qualificano come «sistemi pesanti», i sistemi di cattura che necessitano di molti
strumenti, spesso installati in modo permanente in una stanza. Questi sistemi per-
mettono di registrare dei movimenti in maniera molto precisa e dettagliata. Lo stesso
tipo di sistema, chiamato «performance capture», è utilizzato anche per catturare
le espressioni facciali degli attori (come in figura 4.3a).
(a) (b)
Figura 4.3: Cattura dei movimenti, sistemi pesanti. (a) Sistema di cattura del viso
- L’alba del pianeta delle scimmie. (b) Nestera e colleghi [53]
Questa tecnologia è occasionalmente utilizzata per degli studi biomedici, come
lo studio del movimento del piede durante un ciclo di cammino (vedere figura 4.3b),
realizzato da Nestera e colleghi [53].
Sistemi leggeri
D’altro canto, un prezzo abbordabile e la loro semplicità di installazione e di uti-
lizzo, hanno fatto crescere l’interesse dei sistemi di cattura senza marker nei settori
1
Cattura del movimento: motion capture o semplicemente mocap in inglese
49
4 – Cattura e resa del movimento
dei videogiochi, del cinema ma anche nella comunità biomedica. L’imporsi delle
telecamere RGB-D come la Kinect ha permesso lo sviluppo di nuovi strumenti nel
settore medico e sanitario.
Gli autori di [55] dichiarano che i dati ricavati dalla registrazione dei movimenti
grazie ad una Kinect, possono essere sufficienti per lo studio dei movimenti basici,
come l’ampiezza del passo durante il cammino ma sono molto lontani dai risultati
raggiunti con sensori di cattura pesanti.
4.2.1 Metodi di cattura dei movimenti
Il fatto che si voglia utilizzare delle tecnologie semplici e trasportabili, ci impone l’u-
tilizzo di sensori relativamente leggeri per catturare l’utilizzatore. La scelta quindi è
stata portata verso le telecamere RGB-D che forniscono informazioni di profondità,
che permettono di catturare semplicemente i movimenti di uno o più utilizzatori.
Attraverso lo studio delle applicazioni di allenamento sportivo e di fitness che uti-
lizzano telecamere RGB-D, si è determinato che il sensore Microsoft Kinect V2.0 è
quello che fornisce i migliori risultati in termini di cattura dei movimenti.
In sezione 2.3.2 si sono presentati diversi specchi interattivi e ora verranno mo-
strati quali sono i metodi utilizzati da ciascun progetto per indurre il movimento al
loro modello anatomico di riferimento. Nel quadro del «Magic Mirror», la cattura
di uno scheletro di animazione viene fatta attraverso l’aiuto di una libreria NITE.
Per migliorare il riposizionamento dei dati anatomici 3D, in una fase di inizializ-
zazione è chiesto agli utilizzatori di puntare sul loro proprio corpo cinque punti
anatomici specifici [54]. Il sistema andrà quindi a definire i vettori di traslazione
che dovrà applicare sulle articolazioni per applicare queste correzioni e quindi ot-
tenere un miglior posizionamento dell’anatomia. Nel progetto «Digital Mirror», si
tratta essenzialmente di un riposizionamento nello spazio del modello anatomico di
riferimento 3D a ogni step time. La tecnologia Microsoft Kinect è utilizzata per
deformare in maniera rigida i segmenti anatomici e quindi permettere una visualiz-
zazione di una postura simile a quella dell’utilizzatore. La cattura dei movimenti
proposto dal sistema «Anatomie Spiegel» è basato sulla tecnologia Microsoft Kinect
V2.0 che, combinata insieme al motore di gioco Unity [56], restituisce un’animazione
fluida e realistica.
La società israeliana PrimeSense, riacquistata da Apple Inc nel 2013, ha svilup-
pato la tecnologia Kinect: una telecamera RGB dotata di un sistema infrarossi che
permette la cattura in tempo reale di una carta di profondità 3D. A partire dalla
sua prima apparizione nel 2010, la tecnologia Kinect si è resa disponibile a tut-
ti. Diversi sensori sono apparsi sul mercato, tra i quali si possono citare il sensore
Xtion sviluppato da Asus [57] o anche il progetto Tango di Google [58], per uno
sviluppo di un tablet e di uno smartphone che integrano dei sensori di profondità
50
4 – Cattura e resa del movimento
infrarosso. Recentemente, Apple Inc ha rilasciato il sensore Structure [59], che per-
mette di scannerizzare una persona in 3D o proponendo delle appllicazioni in realità
aumentata.
Il sensore più conosciuto e il più comunemente utilizzato è il sensore Kinect di
Windows [60, 61], sviluppato insieme insieme a PrimeSense, che è disponibile in due
versioni ed è associato alla console di videogiochi Xbox.
La scelta del sensore influenza la qualità e il tipo di informazioni che si è in
grado di recepire. Ogni sensore è accompagnato da un kit di sviluppo che permette
l’accesso ai dati acquisisti e ad un numero più o meno importante di utili algoritmi.
Si è scelto di utilizzare il sensore Kinect V2.0 di Windows, che si andrà a presentare
nel dettaglio.
4.2.2 La Kinect V2.0
I componenti della Kinect
La Kinect è una telecamera RGB-D ed è composta da:
• una telecamera a colori RGB. L’immagine stabile a 30 Hz (15 Hz nel caso di
bassa luminosità) e di alta risoluzione (1920x1080 pixels) permette di creare
delle applicazioni interattive di grande qualità.
• un emettitore infrarosso indipendente da tipo di luminosità presente. Emette
un raggio infrarosso a 30 Hz.
• un sensore di profondità stabile a 30 Hz basato sulla tecnologia infrarosso.
Grazie a una miglior fedeltà di profondità (512x424 pixels), il sensore ottimizza
la visualizzazione 3D. I raggi infrarosso riflessi sono convertiti in informazioni
di profondità grazue alla misura delle distanze tra l’oggetto e il sensore.
• quattro microfoni dedicati alla cattura del suono che permettono la registra-
zione del contenuto audio e l’identificazione delle sorgenti sonore e la direzione
delle onde.
La figura 4.4 indica la posizione di questi diversi componenti su una Kinect.
Zona di cattura
Si chiama «zona di cattura», il parallelogramma nel quale la Kinect è capace di
catturare le informazioni di profondità. La figura 4.5 riassume quello che c’è da
sapere riguardo la zona di cattura della Kinect V2.0.
Si può vedere che la Kinect cattura informazioni a partire dai 0.5 m fino ai 4.5
m in termini di profondità, ma è capace di acquisire informazioni su un utilizzatore
51
4 – Cattura e resa del movimento
Figura 4.4: Funzionamento interno della Kinect V2.0 Microsoft
solamente in un range compreso tra gli 0.8m e i 3.5 m (rappresentato come “sweet
spot” in figura 4.5a) Si può anche vedere che l’angolo di visione del sensore di
profondità è di 60 gradi in verticale e di 70 gradi in orizzontale (vedere figura 4.5b).
(a) (b)
Figura 4.5: Zona di cattura della Kinect. Human Interface Guidelines - Kinect for
Windows.
I dati in uscita
L’uscita del sensore di profondità è rappresentata da un’immagine che, per ogni pixel,
fornisce un livello di grigio. Grazie agli strumenti del SDK Kinect attraverso un
passaggio dallo spazio immagine allo spazio telecamera, si è in grado di trasformare
ogni pixel dell’immagine in un punto dello spazio. L’insieme di questi punti permette
di definire una nuvola di punti che descrivono parzialmente la forma degli elementi
visibili nella zona di cattura.
Il software Kinect effettua una segmentazione della carta di profondità. A par-
tire da questa, la Kinect è capace di identificare e di catturare i movimenti di sei
utilizzatori in uno stesso istante (vedere figura 4.6a).
52
4 – Cattura e resa del movimento
Per ogni utilizzatore, la Kinect fornisce 25 sistemi di riferimenti, ognuno definito
da una posizione e un orientamento nello spazio. La figura 4.6b presenta, a titolo
indicativo, l’insieme dei sistemi di riferimento forniti dalla Kinect per un dato uti-
lizzatore e i loro nomi. L’origine del mondo è definito da un sistema di riferimento
attaccato all’emettitore infrarosso della Kinect, rappresentato in figura 4.6a.
(a) (b)
Figura 4.6: Sistema Kinect di cattura dell’utilizzatore (a) La Kinect può catturare
fino a sei utilizzatori a corpo intero. (b) Definisce 25 riferimenti articolari.
Per ogni utilizzatore, è associato un insieme di pixel della carta di profondità e
viene definito la silhouette dell’utilizzatore. Per definire la posizione e l’orientamen-
to dei sistemi di riferimento, la Kinect segmenta questa silhouette e poi traduce i
pixel ottenuti in posizioni e orientamenti nello spazio. La posizione di un’articola-
zione viene definite come un vettore di tre elementi: la coordinata x nello spazio,
la coordinata y nello spazio e la coordinata z nello spazio. Per quanto riguarda
l’orientamento delle articolazioni, questa viene fornita sotto forma di quaternioni
unitari.
In matematica, i quaternioni sono estensioni dei numeri complessi. Un quater-
nione è un oggetto formale del tipo:
H = a + bi + cj + dk
dove a, b, c, d sono numeri reali e i, j, k sono dei simboli che si comportano in modo
simile all’unità immaginaria dei numeri complessi. I quaternioni trovano un’im-
portante applicazione nella modellizzazione delle rotazioni nello spazio: per questo
motivo sono ampiamente usati nella fisica teorica (nella teoria della relatività e nella
meccanica quantistica) e in settori più applicativi, come la computer grafica 3D e la
53
4 – Cattura e resa del movimento
robotica. I quaternioni sono preferibilmente utilizzati perché forniscono una notazio-
ne matematica più conveniente per la rappresentazione di orientamenti e rotazioni
di oggetti in tre dimensioni. In confronto gli angoli di Eulero, presentano funzioni
più semplici da comporre ed evitano il problema del blocco cardanico2
. Confrontati
con le matrici di rotazione i quaternioni sono più stabili numericamente e forse più
efficienti. Un quaternione è detto unitario quando la sua norma ha valore unitario.
Esempi applicativi dell’utilizzo dei quaternioni vengono forniti nel seguito della
trattazione. I quaternioni ottenuti dalla segmentazione della silhouette dell’utiliz-
zatore sono quaternioni assoluti, nel senso che sono stati calcolati tutti rispetto
al centro di riferimento assoluto della telecamera, ovvero il centro del sensore di
profondità della Kinect. Quindi se si applicasse una trasformazione di rotazione
definita da un quaternione ad una mesh di un osso, questa mesh sarà messa nello
spazio in modo tale che la propria rotazione combaci con la rotazione della strut-
tura anatomica descritta dal quaternione. Nel caso invece in cui si volesse avere
un quaternione che definisce l’orientamento relativo di un’articolazione rispetto al-
l’articolazione genitore, lo si può ottenere moltiplicando il quaternione assoluto per
l’inverso del quaternione dell’articolazione genitore.
I quaternioni essendo entità astratte sono difficili da poter visualizzare. Per aiu-
tare la visualizzazione del concetto di orientamento si è pensato di costruire per
ognuno dei 25 quaternioni catturati dalla Kinect un sistema di riferimento il cui
orientamento possa seguire l’orientamento dei segmenti dell’utilizzatore. Diversa-
mente dalle situazioni precedenti non si ha più una mesh da orientare ma una terna
di versori. Si è quindi applicata la trasformazione di rotazione definita da un qua-
ternione sul versore (1,0,0) per definire l’asse x, sul versore (0,1,0) per definire l’asse
y e sul versore (0,0,1) per definire l’asse z. Si ottiene in questo modo una terna di
riferimento, che in campo aeronautico viene definita di beccheggio, rollio e imbarda-
ta (yaw, pitch and roll in inglese). I quaternioni estratti dalla Kinect sono tali per
cui dopo aver costruito la terna di riferimento:
• l’asse y punta verso l’articolazione figlia. Per esempio, l’asse y dell’articolazione
della spalla punterà in direzione dell’articolazione del gomito.
• l’asse z punta in profondità. Può puntare in direzione della Kinect o in
direzione inversa.
• l’asse x è perpendicolare agli altri due.
2
Blocco cardanico (gimbal lock): è un fenomeno problematico dei giroscopi causato dall’allinea-
mento di due assi rotanti verso la stessa direzione. Il blocco causa la perdita di uno dei tre gradi
di libertà, corrispondente all’asse bloccato.
54
4 – Cattura e resa del movimento
Dopo aver proceduto a questa serie di calcoli, attraverso l’interfaccia OpenGL (di
cui se ne parlerà più nel dettaglio in sezione 5.3.1) si è ottenuto un feedback visivo
dei movimenti dell’utilizzatore attraverso quello che si chiama un sticky model. In
Figura 4.7: Sticky model dell’utilizzatore.
corrispondenza della posizione di ogni articolazione viene disegnato un punto nero e a
partire da questo si disegna la terna di riferimento che ne rappresenta l’orientamento
(il segmento verde rappresenta l’asse y, quello rosso rappresenta l’asse x e il blu
rappresenta l’asse z). Attraverso dei segmenti neri che rappresentano i segmenti
anatomici, si uniscono i diversi punti in modo da ottenere un modello stilizzato
dell’utilizzatore. Poiché i valori delle posizioni e dei quaternioni variano nel corso
del tempo, sulla finestra OpenGL (di cui se n’è fatto uno screenshot presente in
figura 4.7) si vedrà il modello stilizzato muoversi come l’utilizzatore.
Condizioni ottimali di cattura della Kinect
La Kinect non necessita di condizioni di luminosità specifiche per catturare l’utiliz-
zatore. Evitando di dirigere sorgenti luminose verso il sensore video e privilegiando
55
4 – Cattura e resa del movimento
l’illuminamento naturale, l’immagine a colori ad alta risoluzione fornita dalla Kinect
diventa più utilizzabile.
Ci si è accorti che se il corpo dell’utilizzatore è riflesso, per esempio sulle pia-
strelle o in uno specchio, la Kinect può considerare il pavimento come facente parte
integrante della silhouette dell’utilizzatore. Questo può indurre a errori per esempio
nella lunghezza degli art inferiori nel caso del riflesso sulle piastrelle.
I raggi infrarossi permettono di poter ottenere un’informazione di profondità ma
non permette di visualizzare un oggetto che si trova dietro ad un altro e questo può
creare dei problemi di occultamento. L’occultamento più o meno importante di un
utilizzatore può danneggiare la cattura dello scheletro di animazione Kinect. Questo
occultamento può essere di diversa natura: l’utilizzatore può trovarsi in parte dietro
ad un ostacolo (fisso o mobile) oppure l’utilizzatore può trovarsi in una posizione in
cui nasconde una parte del suo corpo al sensore.
4.2.3 Kinect e lo scheletro di animazione
Si è visto nella sezione precedente che la Kinect offre la possibilità di catturare i
movimenti di sei utilizzatori e che per ciascuno restituisce uno scheletro di anima-
zione composto da 25 articolazioni. Si considerano queste 25 articolazioni come le
articolazioni principali del corpo umano. Malgrado il fatto che questo numero limi-
tato possa rischiare di limitare i movimenti possibili, si è scelto di mantenere questa
struttura semplificata per rappresentare il corpo dell’utilizzatore.
Per correggere il problema di occultamento di cui si è appena parlato, la Ki-
nect propone dei sistemi di riferimento che stima corretti. Una variabile di stato
è associata ad ogni articolazione e permette di sapere se la Kinect considera l’arti-
colazione acquisita correttamente, se è stata dedotta indirettamente a partire dalle
altre articolazioni o se l’articolazione non è stata catturata del tutto.
Come spiegato precedentemente, la silhouette dell’utilizzatore permette alla Ki-
nect di definire le articolazioni. Tuttavia questa silhouette può essere falsata da su-
perfici riflettenti, da oggetti sullo sfondo, da vestiti ampi o anche dalla capigliatura
dell’utilizzatore.
Orientamento del corpo dell’utilizzatore
Grazie a delle sequenze di movimenti e alla variabile di stato delle articolazioni, si è
potuto determinare gli orientamenti critici del corpo rispetto alla Kinect : rispetto
al piano frontale, finché il corpo non supera i 60 gradi (in positivo o negativo),
il risultato è accettabile. Si è ugualmente notato che più l’angolo è elevato più
l’ampiezza dei movimenti è limitata per garantire risultati accettabili. Si è anche
notato che un utilizzatore di schiena è considerato come di faccia per la Kinect e ciò è
56
4 – Cattura e resa del movimento
dovuto al problema di auto-occultamento. Per dei risultati migliori, si consiglia agli
utilizzatori di rimanere in un piano frontale rispetto al punto di vista della Kinect .
4.3 Struttura di controllo del modello
Il rumore nei dati forniti dalla Kinect è tale che impedisce una visualizzazione rea-
listica dei movimenti. Si è quindi scelto di creare un sistema di controllo del movi-
mento che permette di correggere gli errori in maniera significativa, utilizzando in
entrata i dati della Kinect .
A ogni step time, si recuperano i 25 sistemi di riferimento forniti dalla Kinect per
l’utilizzatore principale. Per livellare il rumore dei dati di monitoraggio del movi-
mento, si è applicato un filtro di Holt sulla posizione delle articolazioni. Si definisce
una struttura gerarchica tra le articolazioni e si applicano dei vincoli anatomici sugli
orientamenti e i limiti delle varie articolazioni.
4.3.1 Sistema gerarchico
Lo scheletro che rappresenta il sistema di controllo dell’intero modello anatomico
3D è un modello gerarchico, composto da 25 articolazioni, per permettere una corri-
spondenza con lo scheletro di animazione fornito dal SDK della Kinect. Si definisce
lo scheletro gerarchico come in robotica, in cui a partire da una base si diramano
i vari segmenti meccanici uniti tra loro da giunti meccanici fino ad arrivare all’end
effector. In questo caso si comincia col definire l’articolazione alla radice dello sche-
letro spine base (situata alla base della colonna vertebrale) e poi ci si dirama verso
le articolazioni alle estremità come hand tips, foot, head, passando dalle braccia,
gambe e collo. Ogni articolazione è costituita da una terna di riferimento, definita
nello spazio da un vettore posizione, che ne indica l’origine, e un quaternione, che
ne indica l’orientamento.
Il sistema di controllo gerarchico è il vero cuore dell’applicazione AnatoMimo,
in quanto permette di fare da ponte tra le informazioni in uscita dalla Kinect con il
modello anatomico digitale 3D, introducendo il concetto di dinamicità nello studio
dell’anatomia, obiettivo che si vuole raggiungere con questa tesi. Lo scheletro di
animazione ricavato in uscita dalla Kinect modifica la posizione e l’orientamento di
tutte le articolazioni del sistema di controllo gerarchico, che a sua volta deforma il
modello anatomico 3D, in modo tale che ci sia corrispondenza tra i layer anatomici
del modello e la posizione dell’utilizzatore.
Ad ogni intervallo di tempo, ogni articolazione del sistema di controllo gerar-
chico tenderà sempre verso la posizione e l’orientamento della sua controparte nello
scheletro di animazione fornito dalla Kinect. Questo è possibile grazie al fatto che
tra una coppia della stessa articolazione nei due modelli diversi sia presente una
57
4 – Cattura e resa del movimento
molla con una certa rigidezza. Se questa rigidezza è grande il sistema di controllo
gerarchico seguirà più velocemente lo scheletro di animazione Kinect mentre se la
rigidezza della molla è piccola il sistema di controllo gerarchico seguirà lentamente
lo scheletro di animazione Kinect. Lo scheletro di animazione fornito dalla Kinect,
muovendosi come l’utilizzatore, tirerà verso di sé il sistema di controllo gerarchico,
cercando per ogni articolazione di minimizzare la distanza della molla, ottenendo
quindi come risultato il combacio dei due modelli.
In figura 4.8 viene rappresentato il concetto appena descritto. Sullo sfondo si può
vedere lo scheletro di animazione Kinect, in cui le articolazioni sono rappresentate da
sfere rosse mentre in primo piano viene raffigurato il sistema di controllo del modello,
in cui le articolazioni sono rappresentate da terne di riferimento. Le molle che
collegano le articolazioni dei due scheletri sono stilizzate da linee nere. In figura 4.8 è
Figura 4.8: Sistema di controllo gerarchico.
anche presente il sistema scheletrico anatomico, da non confondere con i due modelli
descritti precedentemente (scheletro di animazione Kinect e sistema di controllo
gerarchico), che fa parte del modello anatomico digitale 3D. Il sistema scheletrico
anatomico è mappato sul sistema di controllo gerarchico, in modo tale da seguirne
58
4 – Cattura e resa del movimento
i movimenti. Come il sistema di controllo gerarchico deformi il modello anatomico
digitale 3D verrà spiegato in dettaglio nella sezione 4.4.
4.3.2 Correzioni delle articolazioni
Sistemi articolari
Osservando i dati in uscita dalla Kinect, si è osservato molto spesso che le articola-
zioni siano mal articolate, per esempio ruotando su degli assi che non sono anato-
micamente permessi (vedere sezione 3.1.2 sui tipi articolari) o ancora superando gli
angoli estremi che il corpo in media può effettuare.
Per correggere i comportamenti non anatomicamente corretti, dovuti a errori di
cattura, durante la creazione del sistema di controllo gerarchico sono state vincolate
le articolazioni limitando il numero di gradi di libertà in rotazione e imponendo
limiti articolari. Ogni articolazione permette di definire, per il segmento che si trova
a valle dell’articolazione, un range di movimenti effettuabili rispetto al segmento
a monte della stessa. Essendo le articolazioni del sistema di controllo gerarchico
rappresentate come una terna di riferimento, questo range di movimenti anatomica-
mente effettuabili può essere scomposto lungo i tre assi. Si assegnano così, per ogni
articolazione, una terna di angoli di Eulero anatomicamente corretti, in base alle
conoscenze anatomiche sui vari tipi di articolazione. Questi angoli di Eulero iden-
tificano quindi l’ampiezza massima e minima che ogni articolazione del sistema di
controllo gerarchico può compiere, anche se i dati ricevuti dalla Kinect porterebbero
il sistema di controllo gerarchico a superare questi limiti. Per esempio il gomito può
essere approssimato ad un giunto rotoidale (1 grado di libertà) mentre l’anca può
essere approssimata ad un giunto sferico (3 gradi di libertà).
La figura 4.9 illustra in rosso i dati grezzi della Kinect e in grigio il risultato
ottenuto dopo l’applicazione dei vincoli articolari, nel caso specifico del gomito.
4.3.3 Filtraggio di una serie di dati nel tempo
Esistono varie tecniche per filtrare una serie di dati nel tempo, che questa sia un
processo casuale oppure deterministico ma sporcato da rumore, come nella situazione
attuale. La sequenza di dati da filtrare viene spesso rappresentata con xt. L’uscita
dell’algoritmo del filtro viene indicata con st, che può essere considerata come la
miglior stima che il prossimo valore di x potrà avere. Verrà qui introdotta la teoria
di quattro dei filtri progettati e la scelta del filtro che apporta risulati migliori.
Il metodo più semplice per filtrare una serie di dati è calcolare una semplice
media mobile. Si usa una boxar rettangolare e quindi la statistica filtrata è la media
delle ultime k osservazioni: st = 1
k
k−1
n=0 xt−n
Un piccolo valore di k avrà un piccolo effetto di filtraggio ma sarà più reattivo a
59
4 – Cattura e resa del movimento
Figura 4.9: Correzione delle articolazioni tramite imposizione di limiti.
cambiamenti dei dati, mentre un k grande avrà un effetto di filtraggio maggiore ma
sarà meno reattivo ai cambiamenti. Uno degli svantaggi introdotti da questo filtro
è che non può essere utilizzato per i primi k − 1 campioni, introducendo inoltre un
ritardo di fase pari a metà della lunghezza della finestra.
Il secondo metodo implementato è stata la media ponderata. Per questo filtro
la prima cosa da fare è scegliere un set di fattori di peso tale per cui k
n=1 wn = 1 e
poi usare questi pesi per calcolare la statistica: st = k
n=1 wnxt+1−n
I pesi sono scelti in modo da dare più importanza ai campioni più recenti. Resta
il fatto che nonostante le varianti di calcolo introdotte rispetto alla media mobi-
le, anche questa media non riesce a dare istantaneamente un’idea del movimento
effettuato, portando a non buoni risultati.
Il filtraggio esponenziale è una tecnica per filtrare una serie di dati nel tempo
applicando un filtro passa-basso con funzioni a finestra esponenziale (o finestra di
Poisson), assegnando pesi decrescenti nel tempo. La formulazione più semplice è la
seguente: st = αxt + (1 − α)st−1
In poche parole, la statistica filtrata st è la media ponderata del campione attuale e
di quello precedente. Questa tecnica di filtraggio è semplice e produce una statistica
filtrata non appena sono disponibili due campioni. Valori di α vicino al valore
unitario hanno poco effetto di filtraggio e danno più peso ai cambiamenti recenti nei
dati mentre valori di α più vicini al valore nullo hanno un effetto filtrante maggiore
e danno meno reattività ai cambiamenti. Per scegliere α si è utilizzato il metodo dei
minimi quadrati. Il filtraggio esponenziale introduce un ritardo rispetto agli input
ed è equivalente ad un filtro IIR di primo ordine.
60
4 – Cattura e resa del movimento
Doppio filtro esponenziale di Holt
Il filtraggio esponenziale singolo non va bene se nella sequenza di dati c’è un trend.
Nel caso specifico di AnatoMimo questo trend è presente e rappresenta le vere po-
sizioni nello spazio delle 25 articolazioni, corrotte da rumore. In queste situazioni si
utilizza l’applicazione ricorsiva di due filtri esponenziali.
L’idea alla base del filtro doppio esponenziale è di introdurre un termine che
prenda in considerazione la possibilità di esistenza di un trend all’interno dei dati.
La miglior stima del trend viene indicata con bt. Nel seguito verrà introdotta la
formulazione di Holt del filtro doppio esponenziale, per t > 2:



st = αxt + (1 − α)(st−1 + bt−1)
bt = β(st − st−1) + (1 − β)bt−1
dove α è lo smoothing factor (compreso tra 0 e 1) e β è il trend smoothing factor
(sempre compreso tra 0 e 1). L’output dell’algoritmo è ora scritto come Ft+m =
st + mbt e rappresenta una stima del valore di x al tempo t + m, con m > 0.
Nella previsione di serie di assume che una serie nel tempo è la combinazione di
un pattern (trend) e un po’ di errori casuali. L’obiettivo è di separare il pattern
dall’errore. Il filtraggio esponenziale è un metodo per rivedere una predizione alla
luce di più recenti dati. Il filtraggio assegna quindi esponenzialmente pesi decrescenti
man mano che l’osservazione diventa passata. Nuove osservazioni hanno più peso
nel predire rispetto a osservazioni passate.
Il filtraggio doppio esponenziale si basa sull’idea che il movimento dell’utilizzatore
davanti alla Kinect può essere adeguatamente modellizzato da una semplice relazione
relazione lineare un cui intercetta e coefficente angolare della retta cambiano nel
tempo. Si è scelto quindi di utilizzare questo filtro in quanto sulla carta risulta
il migliore, più adatto per lo specifico scopo e restituisce risultati concretamente
migliori, che verranno subito presentati.
Muovendo la mano davanti al corpo in modo da effettuare un cerchio immagina-
rio, sono state acquisite le posizioni filtrate e non filtrate nello spazio della mano per
qualche secondo per poter costruire un grafico che permetta di evidenziare l’efficacia
del filtro implementato. Il grafico è presentato in figura 4.10. Dopo una serie di
prove, è stata trovata la giusta serie di parametri che permette di ottenere i migliori
risultati in termini di fluidità dei movimenti.
4.4 Skinning del modello
Come spiegato nell’introduzione di questa tesi, il vincolo di ottenere un’applicazio-
ne che sia tempo reale, o tempo interattivo, costringe l’adozione di una soluzione
che faccia parte di un contesto di animazione grafica per deformazione del modello
61
4 – Cattura e resa del movimento
−0.6 −0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3
−0.2
−0.1
0
0.1
0.2
0.3
x [m]
y[m]
Grezzo
Filtrato
Figura 4.10: Confronto fra dati Kinect grezzi e filtrati
piuttosto che utilizzare una soluzione di tipo biomeccanico. Si è fatto la scelta di
visualizzare il movimento del corpo intero. La sezione 3.1.3 fornisce la terminologia
del movimento: l’insieme di definizioni che definisce l’insieme di movimenti che il
corpo umano è capace di compiere.
Il sistema muscolo-scheletrico è una struttura articolare. Come spiegato in se-
zione 3.1.2, il corpo umano è composto da un’insieme di articolazioni definite in
funzione del loro grado di libertà e dell’ampiezza del movimento che riescono ad
esprimere. Per avvicinarsi il più possibile al fenomeno anatomico, si è scelto di de-
finire e utilizzare lo scheletro di animazione Kinect come struttura di controllo per
poter indurre i movimenti, come spiegato in sezione 4.3.1.
In sezione 4.1.2, si sono discussi i principali metodi di skinning, più o meno
automatici, che forniscono risultati più o meno soddisfacenti. Per questo progetto,
si è scelto il metodo «Linear Blend Skinning» poiché è una delle più semplici da
implementare. In più si è a conoscenza che il LBS è il metodo più utilizzato nel
settore dei giochi video, che necessita una buona efficacia in termini di velocità di
esecuzione.
Si è anche implementato il metodo «Dual Quaternion Skinning», che in teoria
dovrebbe risolvere alcuni problemi del LBS, ma in questa specifica applicazione non
62
4 – Cattura e resa del movimento
si sono riscontrati netti miglioramenti, anzi si sono osservati comportamenti anoma-
li. Questi sono dovuti al fatto che grazie alla natura non lineare dei quaternioni, il
DQS è un metodo che permette il preservamento del volume ma richiede una scelta
più accurata dei pesi per ogni vertice della mesh. Questa scelta più accurata può
essere ottenuta attraverso la tecnica del weight painting, presente in qualsiasi soft-
ware di modellizzazione (Blender ad esempio). Questa tecnica è molto efficace ma
richiede molto tempo ed accuratezza e osservando il risultato più che soddisfacente
del LBS, ottenuto attraverso il calcolo automatico dei pesi, si è optato per l’utilizzo
di quest’ultimo metodo.
Si è presentato fino ad ora il modello di riferimento anatomico utilizzato e il
sistema di controllo utilizzato. Si parlerà ora di come associare i due, con l’aiuto di
un metodo di skinning, per poter visualizzare il modello anatomico in movimento.
4.4.1 Algoritmo di Linear Blend Skinning
In sezione 4.4 si è spiegato la scelta dell’algoritmo di skinning. L’equazione 4.1 illu-
stra il metodo LBS, esprimendo la posizione di ogni punto P della mesh in funzione
della sua posizione al passo di integrazione precedente P0. La trasformazione di
un singolo punto P è definita come la somma 3
i=0 delle matrici di deformazione
M[index[i]] applicate su P0. Ognuna di queste matrici è funzione di uno dei 25
sistemi di riferimento che compongono il sistema di controllo, di indice index[i], e
ponderata attraverso rispettivi pesi w[i]. Nel caso di punti che sono influenzati da
meno di quattro sistemi di riferimento, le matrici sono completate da indici arbitrari
con una ponderazione nulla, in modo che non influenzino lo spostamento del punto.
La somma delle ponderazioni per ogni vertice deve sempre essere unitaria.
LBS : P =
3
i=0
M[index[i]] ∗ P0 ∗ w[i] (4.1)
Le influenze sul sistema cardiovascolare, sulla pelle e sul sistema muscolare sono
distribuite tra diverse articolazioni dello scheletro di controllo gerarchico mentre le
influenze sul sistema scheletrico e gli organi sono associati ad una sola articolazione.
In questo modo durante un movimento, le ossa e gli organi non si deformano ma
si spostano semplicemente seguente il movimento effettuato dall’utilizzatore. Nel
caso delle arterie, della pelle e dei muscoli, le mesh corrispondenti si deformeranno
per meglio adattarsi alla configurazione impartita dall’utilizzatore. Nella realtà le
ossa sono strutture rigide e quindi è corretto assumere che durante un movimento
queste si spostino ma non si deformino. Nel caso degli organi invece, questi sono
strutture deformabili e quindi inizialmente anche alle loro mesh sono state associate
più di un’articolazione ma questo provocava deformazioni innaturali. Si è scelto
allora di associare una sola articolazione permettendo lo spostamento ma non la
63
4 – Cattura e resa del movimento
deformazione, anche se la scelta corretta, ma che non è stata implementata per
mancanza di tempo, sarebbe stata quella di associare per ogni tessuto un modello
che racchiudesse le caratteristiche meccaniche del materiale.
In figura 4.11 viene illustrato il principio dello skinning, attraverso un esempio
di deformazione della mesh della pelle nel software di modellizzazione Blender [32].
Come si può notare in figura 4.11a, dopo aver caricato la mesh della pelle in Blen-
der, si è definito uno scheletro di controllo gerarchico identico e corrispondente al
sistema di controllo gerarchico definito in sezione 4.3.1. Successivamente sono stati
calcolati automaticamente per ogni vertice della mesh quali elementi del sistema di
controllo influiranno sul suo movimento e in che quantità, attraverso la definizione
dei pesi. Prendendo in considerazione l’elemento braccio sinistro del sistema di con-
trollo, questi pesi possono essere visualizzati attraverso una scala a colori: i vertici
colorati in blu sono quei vertici che non saranno per nulla influenzati dal movimento
del braccio sinistro, mentre i vertici rossi si sposteranno totalmente seguendo il mo-
vimento del braccio sinistro. Poiché rosso e blu rappresentano gli estremi di questa
scala, influenze intermedie saranno rappresentate da colori intermedi.
(a) (b)
Figura 4.11: Skinning del modello (a) Modello nella sua postura anatomica di
riferimento. (b) Modello deformato che segue il movimento dello scheletro di
controllo.
Il risultato dell’applicazione di tale metodo è visualizzato in figura 4.11b. Nel
caso in cui l’utilizzatore muova il braccio sinistro in alto, o come in questo caso
64
4 – Cattura e resa del movimento
replicando tale movimento in Blender, verrà modificata di conseguenza la posizione
nello spazio dello scheletro di controllo gerarchico che a sua volta influenzerà gli
spostamenti dei vari vertici della mesh pelle. I vertici marcati in rosso, peso elevato,
seguiranno lo spostamento del braccio, mentre quelli colorati in blu, peso nullo, non
varieranno la loro posizione. Si può notare che i vertici della mano sinistra anche se
colorati di blu si sono spostati. Questo è dovuto al fatto che lo scheletro di controllo
è stato costruito in maniera gerarchica e quindi movimenti di un elemento parente
di ripercuoteranno sugli elementi figli.
Per esportare i pesi calcolati su Blender nel software utilizzato per realizzare il
sistema AnatoMimo (SOFA, come verrà spiegato in seguito nel dettaglio), è stato
realizzato uno script nel linguaggio di programmazione Python. Tale script legge
in entrata un file di tipo Collada, con tutte le informazioni necessarie (indice del
vertice, quali sono i sistemi di riferimento che ne influenzano la posizione e in che
quantità), per trasformarlo in uscita in un formato leggibile da SOFA.
4.5 Conclusione e discussione
Questo capitolo introduce la struttura di controllo e il sistema di cattura di movi-
mento che si è messo in atto nel corso della tesi. Basato sull’idea di articolare un
modello anatomico utilizzando un sensore di movimenti leggero, si è presentato qui
lo scheletro di controllo gerarchico basato sulla tecnologia Kinect .
Lo studio di Pfister e colleghi [55] suggerisce che i dati forniti dalla Kinect non
permettono un’analisi di movimenti complessi ma attraverso l’applicazione dei vin-
coli anatomicamente realistici sulle articolazioni catturate, si spera di rispondere a
questa problematica, massimizzando il realismo dei movimenti.
Si è notato che durante movimenti rapidi, può essere visualizzato un piccolo
ritardo tra il movimento dell’utilizzatore e il movimento del modello, ma non risulta
disturbante per la comprensione del movimento anatomico.
Inizialmente si è fornito al sistema di controllo gerarchico sia la posizione che
l’orientamento di ogni articolazione. Tuttavia i quaternioni, che sono responsabili
dell’orientamento, pur essendo stati filtrati dal doppio filtro esponenziale di Holt,
risultano instabili e per niente affidabili in termini di robustezza. Due sono state
le idee per risolvere il problema. La prima, più semplice e immediata, è quella che
si è adottata: fornire al sistema di controllo gerarchico solamente le posizioni delle
articolazioni dell’utilizzatore, catturate dalla Kinect. Il risultato è nettamente mi-
gliore in termini di robustezza ma si perde leggermente in termini di realismo del
movimento. La seconda possibilità, ma che non è stata affrontata per mancanza di
tempo, consisterebbe nel fornire al sistema di controllo gerarchico non più i quater-
nioni estratti dalla Kinect ma dei quaternioni costruiti da un algoritmo, a partire
65
4 – Cattura e resa del movimento
dalle posizioni fornite dalla Kinect. Questo in teoria porterebbe ad aumentare il
realismo dei movimenti pur mantenendo la stessa robustezza della prima soluzione.
Miglioramenti del sistema
Lo sviluppo di un sistema articolare pseudo-fisico sembra essere la prossima tappa
per migliorare i risultati ottenuti. L’idea sarebbe di definire uno scheletro biomec-
canico (prendendo in conto gli assi di rotazione e i limiti articolari), deformato in
funzione dello scheletro di animazione Kinect . Questo permetterebbe di ottenere
spostamenti articolari più realistici e permetterebbe di gestire movimenti impossi-
bili a catturare con il sensore attuale come per esempio la curvatura della colonna
vertebrale durante una torsione verso l’avanti.
Attualmente la deformazione dei muscoli non permette la visualizzazione dell’ef-
fetto di contrazione e decontrazione. Una possibilità sarebbe di utilizzare simulazioni
biomeccaniche inserendo un modello biomeccanico di contrazione del muscolo per
rinforzare il realismo nella deformazione dei muscoli.
66
INTEGRAZIONE
DEL
SISTEMA
5
Capitolo
67
5 – Integrazione del sistema
5.1 Introduzione
Nel corso di questa tesi, si è sviluppato un nucleo operativo di «AnatoMimo» attra-
verso un sistema di cattura e di restituzione dei movimenti presentato nel capitolo
4).
In poche parole: si utilizza un sensore di profondità Kinect per catturare i mo-
vimenti di un utilizzatore in tempo reale. Si utilizzano queste informazioni per
animare un avatar 3D e sfruttarlo per l’apprendimento dell’anatomia in movimento.
Per la realizzazione di AnatoMimo, applicazione di tipo specchio interattivo, la
scelta della visualizzazione, dell’interfaccia e dell’interazione sono fondamentali.
5.1.1 Confronto tra gli specchi interattivi
Nella sezione 2.3 si è fornita una visione globale dell’applicazione delle nuove tec-
nologie nel settore medicale. Nel contesto delle nuove tecnologie, si sono presentati
tre sistemi di specchio interattivo simili all’AnatoMimo in sezione 2.3.2.
Gli specchi interattivi combinano un insieme di tecnologie all’interno di una stes-
sa applicazione e quindi esistono diversi criteri che permettono di fare un confronto.
La tabella 5.1 riassume tutti i criteri di qualità degli specchi interattivi presenti ad
oggi, permettendo di poter confrontare gli specchi interattivi tra loro, insieme alla
versione attuale di AnatoMimo. Esistono anche diversi altri criteri importanti di cui
non si è ancora trattato, tra i quali: l’interfaccia, la visualizzazione, le tecnologie
utilizzate e anche la sperimentazione del sistema.
68
5 – Integrazione del sistema
MagicMirrorDigitalMirrorAnatomieSpiegelAnatoMimo
Integrazione
Dominiodiapplicazioneapprendimentograndepubblicoartisticoapprendimento
MaterialeK.PrimeSenseMicrosoftKinectKinectV2.0KinectV2.0
Realtàaumentatasìnonono
Visualizzazione
Coloreerenderingbasilarespecificopseudo-realisticosemplice
Conoscenzespecifichetesto,immagininonobattitocardiaco
Modellodiriferimento
TipoTC-scan,MRIPET,raggiXmesh3Dmesh3D
Utilizzatorespecificosìnonono
Corpointerotroncosìsìsì
Sistemascheletricosìsìsìsì
Sistemamuscolaresìsìsìsì
Interfacciaeinterazione
Sceltadelsistemaanatomicononosìno
Sceltadelsesso(modello)nosìsìno
Sceltainfunzionedellaprofonditànonosìno
Sceltaconlemanisìnosìno
Catturadeimovimenti
Posizionamentodell’utilizzatoresìsìsìsì
Posturadell’utilizzatorenosìsìsì
Strutturadicontrollo5riferimenti20riferimenti25riferimenti25riferimenti
Correzionianatomichesìnonosì
Tabella 5.1: Confronto degli specchi interattivi presentati nel corso della tesi.
69
5 – Integrazione del sistema
5.1.2 Piano del capitolo
Nel seguito del capitolo, la sezione 5.2 fornirà più di dettagli tecnici riguardanti
l’integrazione dei metodi visti fin’ora. Si parlerà anche del materiale necessario alla
messa in opera di una versione demo di AnatoMimo e il suo funzionamento globale.
Si proporrà in sezione 5.4 di discutere sugli aspetti di percezione e d’interazione
con le conoscenze anatomiche.
Infine in sezione 5.6 si concluderà parlando dello sviluppo applicativo di Ana-
toMimo e si forniranno qualche prospettiva di miglioramento e di lavori futuri sul
tema di interazione con le conoscenze anatomiche.
5.2 Sperimentazione e integrazione
Il lavoro svolto durante il corso di questa tesi è una combinazione di approcci innova-
tivi per formare il nucleo funzionale del sistema AnatoMimo. La pipeline dettagliata
in figura 5.1 sintetizza il funzionamento interno di AnatoMimo.
Figura 5.1: Pipeline del sistema.
Le tre grandi fasi di AnatoMimo , che vengono rappresentate in figura 5.1 da un
rettangolo blu sono:
• fase 1: cattura e restituzione dei movimenti
70
5 – Integrazione del sistema
• fase 2: associazione dell’avatar 3D con la struttura di controllo attraverso
skinning
• fase 3: integrazione
In giallo vengono presentati i dati in entrata nel sistema: da una parte si hanno le
informazioni fornite dalla Kinect (scheletro di animazione) e dall’altra informazioni
geometriche sulle mesh del modello anatomico digitale 3D. I rettangoli verdi rappre-
sentano i blocchi del sistema che sono stati sviluppati o modificati, se già esistenti
precedentemente, nel corso dello sviluppo di AnatoMimo. Parte di questi blocchi
sono stati introdotti nel capitolo 4; quelli appartenenti alla tappa di integrazione,
verranno sviluppati nel corso di questa sezione.
Il sistema gira su un computer con processore Intel(R) Core(TM) i7, frequenza
4.00 GHz, carta grafica Nvidia GeForce GTX 960, memoria RAM di 16.0 GB. L’u-
tilizzo della Kinect V2.0 Windows vincola il fatto di dover utilizzare Windows 10 a
64 bit come sistema operativo.
Per gestire la Kinect , molti fanno la scelta di soluzioni software «prefabbricate»
come Unity3D [56], come nel caso del progetto «Anatomie Spiegel». Nell’idea a
lungo termine di poter aggiungere simulazioni biomediche o anche dei vincoli bio-
meccanici complessi e realistici nel sistema, si è optato per l’utilizzo di SOFA [62],
un framework1
interattivo di simulazione fisica sviluppato in C++ a INRIA. Inoltre
SOFA è uno strumento conosciuto in quanto è sviluppato nella squadra in cui viene
svolto il progetto AnatoMimo.
Per tutto quello che riguarda il lavoro sul modello anatomico 3D (ad es.: sche-
letro di animazione, messa in postura, decimazione della mesh, definizione dei pesi,
animazione del battito cardiaco, ecc.) si è utilizzato il software di modellizzazione
Blender [32].
5.2.1 SOFA
SOFA (Simulation Open Framework Architecture) è una libreria open-source svi-
luppata in C++, mirata principalmente alla simulazione medica computazionale [62].
SOFA scompone complessi simulatori in componenti sviluppati separatamente e or-
ganizzati in una struttura di dati chiamato grafo della scena. Ogni componente
racchiude uno degli aspetti di una simulazione, come i gradi di libertà, le forze e i
vincoli, le equazioni differenziali, gli algoritmi, i solutori, i rivelatori di collisione o i
1
Framework: termine della lingua inglese che può essere tradotto come intelaiatura o struttura,
in informatica e specificatamente nello sviluppo software, è un’architettura logica di supporto
(spesso un’implementazione logica di un particolare design pattern) su cui un software può essere
progettato e realizzato, spesso facilitandone lo sviluppo da parte del programmatore.
71
5 – Integrazione del sistema
dispositivi di interazione. Gli oggetti simulati possono essere rappresentati usando
diversi modelli, ognuno ottimizzato per un compito diverso come il calcolo di for-
ze interne, la rilevazione di collisioni, la resa visiva o tattile. Questi modelli sono
sincronizzati tra di loro durante la simulazione utilizzando il meccanismo del data
mapping.
Programmare simulazioni fisiche interattive di oggetti rigidi e deformabili neces-
sita di molteplici capacità come la modellizzazione geometrica, meccanica computa-
zionale, analisi numerica, rilevazione di collisione, rendering, interfaccia utilizzatore
e diversi feedback, come quello tattile. È anche una sfida da un punto di vista
ingegneristico, con le necessità di algoritmi computazionalmente efficienti, multith-
reading (vedere sezione 5.2.2), o lo sviluppo di applicazioni in architetture hardware
moderne come la GPU. Lo sviluppo di simulazioni mediche complesse è quindi diven-
tato un lavoro sempre più complesso, coinvolgendo sempre più domini di esperienza.
Lo scopo di SOFA è di indirizzare tutte queste questioni all’interno di un framework
altamente modulabile ed efficiente, che permetta ai ricercatori e agli sviluppatori di
concentrarsi sul proprio dominio di esperienza, riutilizzando i contributi forniti da
altri esperti.
SOFA introduce il concetto di una rappresentazione multi-modello basata su un
grafo di scena per costruire facilmente simulazioni composte da un numero arbitrario
di oggetti. Il gruppo di oggetti simulati e degli algoritmi utilizzati in una simulazione
(anche chiamata una scena) è descritto usando una struttura di dati gerarchica simile
ai grafi di scena usati nelle librarie grafiche. Gli oggetti simulati sono decomposti in
un insieme di componenti indipendenti, ognuno di essi descrivendo una caratteristica
del modello, come vettori di stato, massa, forze, vincoli, schema di integrazione e
processi di soluzione. Come risultato, passare da forze interne basate su molle
ad un approccio agli elementi finiti può essere fatto semplicemente sostituendo un
componente con un altro, lasciando tutto il resto (massa, modelli di collisione, passo
di integrazione, ...) invariato. Il grafo di scena è percorso ad ogni step time attraverso
l’aiuto di visitatori. I visitatori attraversano il grafo di scena e chiamano le funzioni
virtuali ad ogni componente trovato.
In aggiunta al primo livello di modularità, è possibile aggiungerne ancora uno,
scomponendo gli oggetti simulati in un set di modelli specializzati, ognuno ottimiz-
zato per un dato tipo di calcolo. Un oggetto fisico in SOFA è tipicamente descritto
usando tre modelli: un modello interno con i suoi indipendenti gradi di libertà
(DOFs), la massa e le leggi costitutive, un modello di collisione con la geometria di
contatto, e un modello visivo con la geometria dettagliata e parametri di rendering.
Ogni modello può essere progettato indipendentemente dagli altri, e sono possibili
più combinazioni complesse. Durante il tempo di esecuzione della simulazione, i mo-
delli sono sincronizzati tra loro usando un generico meccanismo chiamato mapping
per propagare forze e spostamenti. Implementazioni per CPU e GPU possono esse-
re trasparentemente combinati per sfruttare al massimo la potenza computazionale
72
5 – Integrazione del sistema
delle architetture hardware moderne.
Grazie a questa flessibile ma anche efficiente architettura, SOFA può’ essere
usato come banco di prova per confrontare modelli e algoritmi, o come una base
per lo sviluppo di simulatori complessi e altamente performanti. SOFA è stato
rilasciato per la prima volta nel 2007 [63]. Da allora, si è evoluto verso una libreria
globale e altamente performante usata da un numero crescente di università e aziende
commerciali.
In appendice A viene presentato una semplificazione del grafo della scena costrui-
to per realizzare AnatoMimo. Essendo la scena costituita da alcuni componenti che
si ripetono molte volte (ad es.: il caricamento di tutte le mesh, la definizione di tutte
le articolazioni per il sistema di controllo gerarchico, ecc.) questi vengono presentati
solo una volta per rendere l’idea generale del grafo di scena. Il grafo di scena è stato
realizzato utilizzando il linguaggio di programmazione XML.
In appendice B invece viene mostrato quello che rappresenta il cuore del com-
ponente realizzato durante il corso della tesi, per estrarre le informazioni in uscita
dalla Kinect e renderle utilizzabili da altri componenti di SOFA. Tale componente
è stato realizzato come plugin di SOFA, cioè come un programma non autonomo,
a sé stante che interagisce con SOFA per ampliarne o estenderne le funzionalità
originarie, principalmente per due motivi: per privatizzare il codice del plugin, in
quanto il codice sorgente di SOFA è open-source, e per non compromettere il codice
sorgente di quest’ultimo. In parole povere questo componente controlla se il senso-
re Kinect è presente, se è stato aperto correttamente allora acquisisce i frame del
sensore e controlla se nella zona di acquisizione imposta si trova un utilizzatore. In
caso negativo restituisce le posizioni di un utilizzatore generico in posizione ferma
mentre se viene percepito un utilizzatore viene eseguita un’analisi per catturare le
posizioni in tempo reale delle articolazioni del soggetto. Il tutto viene eseguito ad
ogni step time della simulazione.
5.2.2 Tempo reale e cadenza delle immagini
Si è spiegato in sezione 1.1 il contesto importante del tempo reale per questo lavoro.
Qualsiasi sia la tecnica di animazione utilizzata, esistono delle regole per quanto
riguarda la cadenza delle immagini in modo tale che ci sia l’illusione di un movimento
continuo. L’illusione può essere data a partire da 10 immagini al secondo (FPS2
) e
il cervello umano fa tutto il resto. Nel quadro dei film per la televisione, lo standard
è di 25, 30 o 50 immagini per secondo a seconda della zona geografica; per il cinema
invece, lo standard è fissato a 24 immagini al secondo; per i videogiochi, i fabbricanti
di console limitano a 30 immagini al secondo.
2
FPS: Frame Per Second
73
5 – Integrazione del sistema
Nella versione attuale di AnatoMimo, esistono due limiti critici che si applicano
sul criterio del tempo reale: il ciclo SOFA e le dimensioni, in termini di numeri di
punti e numeri di triangoli del modello di riferimento anatomico 3D utilizzato.
Per quanto riguarda il ciclo SOFA, si può notare come più una scena è complessa
in termini di gerarchia, più il tempo di calcolo è lungo. Questo è un problema che
è stato riscontrato e ciò è dovuto alla complessità dell’anatomia e quindi al numero
di entità anatomiche da visualizzare. Poco si può fare da questo punto di vista per
cercare di aumentare la velocità di esecuzione della simulazione e quindi guadagnare
in performance.
Si è parlato in sezione 3.2.3 della scelta fatta in termini di risoluzione geometrica.
Il fatto di aver delle mesh più leggere permetterà di poter passare dei dati più
leggeri e quindi guadagnare in performance. Si noti anche che tutti gli algoritmi che
permettono la gestione dello skinning sono stati sviluppati per la GPU attraverso a
degli shader che permettono un guadagno di tempo di calcolo.
Parallelizzazione con OpenMP
Come viene riassunto in tabella 3.1, dopo aver decimato le mesh del Zygote, sono
circa 300 000 i vertici che compongono gli strati anatomici (pelle, muscoli, scheletro,
arterie e organi) del modello anatomico 3D utilizzato. La formula 4.1 che descrive
il Linear Blending Skinning, viene utilizzata all’interno di un ciclo, che itera su
tutti i vertici delle mesh, per calcolare la nuova posizione dei 300 000 punti ad ogni
intervallo di integrazione. Questo passaggio fondamentale, aumenta di molto i tempi
di calcolo, andando a rallentare il sistema, compromettendo la fluidità dei gesti. Per
risolvere il problema si è pensato di utilizzare la libreria OpenMP per parallelizzare
il codice che calcola le posizioni dei vertici ad ogni istante di tempo.
OpenMP (Open Multiprocessing) è un API multipiattaforma per la creazione di
applicazioni parallele su sistemi a memoria condivisa. OpenMP è un’implementazio-
ne del concetto di multithreading3
ovvero di un metodo di parallelizzazione per cui
un master thread (una serie di istruzioni eseguite consecutivamente) crea un certo
numero di slave thread e un task (processo) è diviso tra i vari slave thread.
Nel caso specifico, suddividendo il codice che calcola lo skinning in tre thread, si
ha un guadagno di 8 FPS (Frame Per Second). Considerando che la Kinect gira ad
un massimo di 30 FPS, con la parallelizzazione del calcolo si è passati da 12 FPS a
20 FPS, ottenendo un notevole miglioramento in termini di reattività del modello
3
Thread: un thread di esecuzione, in informatica, è una suddivisione di un processo in più filoni o
sottoprocessi, che vengono eseguiti concorrentemente da un sistema di elaborazione monoprocessore
(multithreading) o multiprocessore.
74
5 – Integrazione del sistema
rispetto ai movimenti dell’utilizzatore. Rispetto ai 10 FPS che rappresentano il mi-
nimo accettabile, si è raggiunto un livello pari al doppio di quello minimo, ottenendo
quindi un’ottima prestazione.
5.2.3 Materiale, spazio di lavoro e mezzo di visualizzazione
Il materiale necessario al buon funzionamento dell’AnatoMimo sono: un computer
sul quale gira il software sviluppato, una Kinect per catturare l’utilizzatore e un
mezzo per la visualizzazione. Il display per uno specchio interattivo può essere fatto
su qualsiasi tipo di schermo ma generalmente viene fatto su un supporto abbastanza
grande per offrire una migliore visibilità. Se alcuni scelgono di utilizzare uno solo
grande schermo (come Magic Mirror) altri preferiscono una proiezione su un telo
(come Anatomie Spiegel). Nel caso di questo progetto si è scelto di costruire un
supporto in modo tale da poter disporre due televisioni in verticale una sopra l’altra
in modo tale da permettere la visualizzazione di una persona adulta in scala 1:1. Si
ottiene così un muro di televisioni alto 194 cm e largo 56 cm. Solamente a posteriori
ci si è resi conto di un problema: se si dispone il modello anatomico 3D utilizzato
in modo tale che occupi tutto lo schermo in altezza, i movimenti sul piano frontale,
come i movimenti delle braccia, non verranno visualizzati a schermo perché questo
non è abbastanza largo. La soluzione immediata è stata quella di ridurre l’altezza del
modello in modo tale che a schermo possano essere rappresentati anche movimenti
laterali. Una soluzione che risolverebbe definitivamente il problema, permettendo di
rappresentare il modello in scala 1:1 con l’utilizzatore, sarebbe di modificare il muro
di TV portandolo a 4 schermi affiancati tra di loro (come è stato fatto per Digital
Mirror).
Per quanto riguarda invece il supporto della Kinect, si sono provate diverse di-
sposizioni del sensore intorno al muro di TV. Si è provato a metterlo ai piedi del
supporto delle televisioni ma questo implica che il posizionamento delle strutture
anatomiche verrà osservato a video da un punto di vista, quello della Kinect, troppo
basso. Per esempio si è notato che la testa del modello era sempre presentata incli-
nata all’indietro e la visualizzazione risulta subito errata da parte dell’utilizzatore,
in quanto il punto di vista della Kinect dista molto dal punto di vista dell’utilizza-
tore, i suoi occhi. Si è deciso quindi di posizionare la Kinect più in alto, a livello
degli occhi di un generico utilizzatore, ad un’altezza di 150 cm, lateralmente alle due
televisioni, come si può vedere in figura 5.2a.
5.2.4 Funzionamento della demo
Si è deciso di voler fare una versione demo del sistema AnatoMimo, principalmente
per ricevere dei feedback utili per il miglioramento e per adempiere lo scopo per
cui questo sistema è stato progettato: rappresentare una delle attrazioni presenti
75
5 – Integrazione del sistema
(a) (b)
Figura 5.2: Setup del sistema. (a) Vista frontale del sistema. (b) Piantina del
sistema con le misure.
all’esposizione itinerante “De l’Homo Numericus au Citoyen Numérique”. Per la
demo, si è fatta la scelta di visualizzare un solo utilizzatore alla volta con lo scopo di
dare a ciascuno la possibilità di interagire come lo si vuole con il sistema e a lungo
termine seguire una lezione anatomica al suo proprio ritmo e al suo proprio livello.
Come è stato detto in sezione 4.2.2, la Kinect può catturare fino a sei utilizzatori
nello stesso tempo. Si vuole qui visualizzare unicamente un solo utilizzatore, e questo
pone il seguente problema: come definire l’utilizzatore principale e come conservarlo
durante tutta l’esperienza.
Sono state adottate diverse soluzioni, come la seguente in cui si sono definite due
regole:
• si considera come utilizzatore principale quello che si trova più vicino al sensore
Kinect in termini di profondità.
• si stima che la prova finisca quando l’utilizzatore esce dal campo di visione
della Kinect .
Si andrà al lancio di una nuova esperienza cominciando con il definire l’utilizzatore
principale. Per fare questo, si prendono tutti gli utilizzatori catturati, si prende
76
5 – Integrazione del sistema
la posizione dell’articolazione base, si classificano gli utilizzatori in funzione della
distanza dal sensore e quindi si utilizzano i dati delle posizioni delle articolazioni
solamente dell’utilizzatore più vicino alla Kinect. Per ogni utilizzatore la Kinect
invia ad ogni step time, una variabile che dice se l’utilizzatore è catturato oppure no.
Questo permetterà quindi di sapere a che momento l’utilizzatore è uscito dal campo
di visione della Kinect e quindi si potrà interrompere l’esperienza. Tuttavia questa
modalità risulta problematica nel contesto di un’esposizione come quella “De l’Homo
Numericus au Citoyen Numérique”. Oltre al fatto che imporrebbe la presenza di una
persona debita a far ripartire la demo per ogni nuovo utilizzatore, al rilancio della
simulazione questa impiega dai 30 ai 45 secondi per caricarsi e questo causerebbe un
forte rallentamento di afflusso alla demo. Inoltre, la scelta da parte della Kinect di
chi sia l’utilizzatore più vicino ad essa, potrebbe essere compromessa da persone che,
incuriosite, si avvicinano allo schermo per guardare meglio, “rubando” il controllo
del modello anatomico 3D al vero utilizzatore del sistema.
Queste considerazioni portano di fatto alla definizione di una zona di cattura
della Kinect ben precisa, rappresentata nel mondo reale da un tappeto rettango-
lare di dimensioni 150x120 cm disposto nello spazio come in figura 5.2b. Questo
rettangolo si trova nel sweet spot di cattura della Kinect, come spiegato in sezio-
ne 4.2.2, e permette al sensore di catturare un utilizzatore solo se questo si trova
all’interno del rettangolo, rendendo invisibile alla Kinect qualsiasi utilizzatore che
si trova al di fuori di questa zona. Lanciata la simulazione una prima volta, dopo
che il primo utilizzatore ha interagito con il modello anatomico 3D ed è uscito dal
rettangolo, il sistema, non vedendo più nessuno utilizzatore nella zona di cattura,
fornisce al modello posizioni di un utilizzatore generico in posizione ferma, pronto
ad aspettare nuove interazioni fornite da un nuovo utilizzatore, appena questo entra
nel rettangolo di cattura. Questa modalità è più adatta ad un contesto come quello
di un’esposizione, in quanto permette alla demo di girare in teoria all’infinito, garan-
tendo un’ottima robustezza sulla scelta dell’utilizzatore principale in un ambiente
affollato.
5.3 Visualizzazione
«Qual è la visualizzazione la più adatta al trasferimento delle conoscenze?» È la
domanda alla quale si cercherà di rispondere in questa sezione presentando e spie-
gando le diverse scelte che sono state fatte. King e colleghi concludono, [64], che
lo sviluppo adeguato dell’interfaccia e una visualizzazione adatta ai bisogni, sono
gli elementi chiave per rendere i sistemi virtualmente utilizzabili. Questi punti di-
pendono dalle conoscenze che si vuole visualizzare e dal contesto del lavoro. Inoltre
la percezione delle strutture anatomiche può essere influenzata dal punto di vista,
dall’orientamento e dalla scala dei dati visualizzati.
77
5 – Integrazione del sistema
Questa sezione comincerà con un’introduzione a OpenGL, lo strumento utilizzato
per realizzare il rendering del sistema, per poi parlare effettivamente delle scelte fatte
riguardanti la visualizzazione del modello anatomico 3D.
5.3.1 OpenGL
OpenGL (Open Graphics Library) [65] è una specifica che definisce una API (Ap-
plication Program Interface) per più linguaggi e per più piattaforme per scrivere
applicazioni che producono computer grafica 2D e 3D. OpenGL è quindi un’inter-
faccia a cui un’applicazione può avere accesso e permette di controllare i sottosistemi
grafici della macchina sulla quale l’applicazione sta girando. Prima di OpenGL, ogni
compagnia, che sviluppava un’applicazione grafica, doveva tipicamente scrivere del
codice riguardante la parte grafica per ogni sistema operativo e tenere anche in conto
del tipo di hardware grafico. Con OpenGL, un’applicazione può produrre gli stessi
risultati in qualsiasi sistema operativo usando qualsiasi adattatore grafico aderente
ad OpenGL.
OpenGL specifica una serie di “comandi” o funzioni eseguite immediatamente e
ognuno di questi dirige un’azione di disegno o causa effetti speciali. I comandi del
programma vengono presi da OpenGL e inviati agli hardware grafici sottostanti. In
computer graphic generalmente si hanno tante ripetizioni di compiti molto simili e
questi compiti sono indipendenti gli uni dagli altri. OpenGL può spezzare il progetto
e lavorare sui suoi elementi fondamentali in parallelo attraverso una combinazione
di pipeling e parallelismo. OpenGL porta con sé una grande quantità di capacità
incorporate che possono essere richiamate attraverso l’API. Questo include superfici
nascoste rimovibili, alpha blending (trasparenza), antialiasing, texture mapping,
operazioni con i pixel, trasformazioni visive e di modello.
Le GPU (graphics processing unit) oggigiorno sono molto flessibili e consistono
in un grande numero di piccoli processori programmabili chiamati shader core, che
fanno girare piccoli programmi chiamati shader. Ognuno di questi shader core pos-
siede una bassa produttività, eseguendo una singola istruzione del shader in uno o
più cicli; tuttavia ogni GPU può contenere dai 10 ai 1000 di questi core e insieme
possono eseguire una grande quantità di lavoro.
Il modello seguito da OpenGL è una pipeline. Il flusso di dati è in un senso
solo, con dati creati dai comandi chiamati dal programma, entrando dall’inizio della
pipeline e fluendo da uno stage all’altro fino a raggiungerne la fine. Lungo il percorso
blocchi shaders (che sono programmabili in quanto eseguono gli shaders che vengono
forniti dal programmatore) e funzioni fisse possono prendere diversi dati in input
a partire da buffer o texture, che sono strutture per immagazzinare informazioni
che saranno poi usate nella resa grafica (rendering). Alcuni passaggi nella pipeline
possono anche salvare dati in questi buffer o texture, permettendo all’applicazione
di leggere o salvare dati.
78
5 – Integrazione del sistema
L’unità fondamentale del rendering in OpenGL è conosciuta con il nome di primi-
tiva. OpenGL supporta tanti tipi di primitive, ma le tre fondamentali sono i punti,
le linee e i triangoli. Tutto ciò che viene restituito a video è un insieme di punti,
linee e triangoli posizionati e colorati correttamente. Le applicazioni normalmente
suddividono superfici complesse in un numero molto alto di triangoli e li invia a
OpenGL dove sono resi a video utilizzando un acceleratore hardware chiamato ra-
sterizzatore. Il rasterizzatore è un hardware che converte la rappresentazione 3D di
un triangolo in una serie di pixel che vengono disegnati su uno schermo, passando
da una rappresentazione vettoriale ad un gran numero indipendente di pixel.
Si è voluto introdurre brevemente OpenGL perché è risultato fondamentale ed è
stato usato varie volte nel corso della tesi.
5.3.2 Rendering del modello
Il rendering è un termine di lingua inglese che, in tempi relativamente recenti, ha
assunto un valore essenzialmente riferito all’ambito della computer grafica, dove
identifica il processo di “resa” ovvero di generazione di un’immagine 2D a partire da
una descrizione matematica di una scena tridimensionale interpretata da algoritmi
che definiscono il colore di ogni punto dell’immagine digitale. In parole povere
è un processo in computer grafica che converte modelli 3D in immagini 2D con
effetti 3D foto-realistici. È uno dei temi più importanti della grafica computerizzata
tridimensionale e in pratica è sempre in relazione con tutti gli altri. Nell’ambito
del processo di generazione grafica è l’ultimo importante stadio e fornisce l’aspetto
finale al modello e all’animazione.
Nel caso specifico di AnatoMimo, il rendering del modello anatomico 3D consi-
ste nel fornire effetti 3D foto-realistici all’immagine del modello, deformato come la
sagoma dell’utilizzatore, che verrà visualizzato sul muro di TV. Per fare questo sono
stati introdotti modelli di riflessione o di scattering della luce, utilizzando e modi-
ficando alcuni shaders già esistenti in SOFA, per descrivere l’apparenza realistica
delle superfici delle varie mesh.
Come si può vedere in figura 5.3, la resa della visualizzazione viene divisa in
cinque sottoparti, tanti quanti sono i layers che compongono il sistema AnatoMimo.
Per quanto riguarda la pelle, si è deciso di non visualizzare il colore roseo di tale
tessuto ma di lasciare trasparente con un contorno bianco. Contorno che sarà sempre
presente in tutte le altre visualizzazioni, per fornire un’idea di dove sono situate le
varie strutture e con che profondità rispetto allo strato superficiale. Per quanto
riguarda il sistema muscolare e il sistema vascolare si è deciso di impostare una
colorazione uniforme, simile a quella rappresentativa del tessuto in letteratura. Infine
per i vari organi e il sistema scheletrico si è realizzato un rendering il piu possibile
realistico, attraverso l’utilizzo delle varie texture. Pelle esterna contorno sempre
79
5 – Integrazione del sistema
Figura 5.3: Layers del modello utilizzato.
visibile , antialiasing Layer presenti foto 4 strati, pelle contorno, muscoli e vasi
sanguigni colori uniformi
5.4 Interfaccia e interazione
Per migliorare l’esperienza di utilizzo di AnatoMimo, si è sviluppata un’interfaccia
utente e si è aggiunto un’ulteriore livello di interazione tra l’utilizzatore e il modello
anatomico 3D.
5.4.1 Interfaccia di AnatoMimo
La scelta dell’interfaccia utilizzatore è cruciale per sfruttare al massimo tutte le
funzionalità e ugualmente ridurre la frustrazione che l’utilizzatore potrebbe risentire
nel caso di un’interfaccia non ergonomica. Nel caso di AnatoMimo, si è scelto
di costruire un’interfaccia molto semplice e intuitiva. Come si può vedere in alto a
sinistra del modello, in figura 5.4a, è presente una colonna composta da cinque icone,
ognuna delle quali rappresenta un layer del modello. La prima icona rappresenta
lo strato di pelle, la seconda identifica il sistema muscolare, la terza icona indica il
layer in cui è presente in primo piano il sistema arterioso e leggermente trasparenti
gli organi e il sistema scheletrico, la quarta icona rappresenta il layer degli organi e
le ossa sullo sfondo, e per concludere la quinta icona identifica il sistema scheletrico.
Come si spiegherà in sezione 5.4.2, l’utilizzatore potrà scegliere, passando da
uno strato ad un altro, quale tra i vari layer esistenti viene rappresentato a video.
Per aiutare l’utente a capire dove si posiziona il layer selezionato rispetto agli altri,
80
5 – Integrazione del sistema
viene colorata la sua icona corrispondente in verde, lasciando le altre colorate in
grigio. Cambiando layer visualizzato sul display, cambierà il colore dell’icona: l’icona
del nuovo layer si colorerà di verde mentre l’icona del layer precedente sfumerà
raggiungendo il colore grigio.
OpenGL è stato indispensabile per la creazione dell’interfaccia. Come è stato
detto OpenGL è utilizzato per realizzare applicazioni in computer grafica 2D e 3D.
Il modello anatomico è evidentemente in 3D ma grazie ad una classe di funzioni di
OpenGL, QPainter, è possibile aggiungere disegni 2D sovrapposti al rendering 3D
del modello.
(a) (b)
Figura 5.4: Interfaccia e interazione del sistema. (a) Interfaccia a menu di
AnatoMimo. (b) Wireless presenter che permette l’interazione con il modello.
5.4.2 Interazione con le conoscenze
Oltre al livello di interazione già descritto nel corso di questa tesi, secondo cui
l’utilizzatore modifica il posizionamento e l’orientamento dei segmenti del modello
anatomico 3D attraverso i movimenti del suo corpo nello spazio, esiste un altro livello
di interazione tra AnatoMimo e l’utente posto di fronte al sistema. Nel settore degli
specchi interattivi questo secondo livello di interazione è messo in gioco nel sistema
attraverso:
81
5 – Integrazione del sistema
• una scelta in funzione della profondità: si tratta di cambiare il contenuto
visibile in funzione della posizione dell’utilizzatore rispetto alla Kinect . Nel
caso del progetto «Anatomie Spiegel» [30], si tratta di cambiare i sistemi
anatomici visibili e le annotazioni associate.
• una scelta con le mani: si tratta di accedere a delle opzioni attraverso la posi-
zione delle mani o anche i movimenti delle braccia. Il «Magic Mirror» [28] pro-
pone di cambiare lo strato anatomico visibile in funzione del posizionamento
in altezza della mano.
Anche nel contesto del progetto AnatoMimo, si è deciso che questo secondo livello
di interazione venga raggiunto lasciando la libertà all’utente di scegliere quale layer
venga rappresentato a video. L’utilizzatore potrà scegliere tra uno dei cinque layer
possibili attraverso l’utilizzo di un wireless presenter, rappresentato in figura 5.4b.
Partendo dallo strato più esterno (la pelle), schiacciando sul pulsante “avanti” si
potrà scendere al tessuto muscolare e se si schiaccerà ancora lo stesso pulsante si ac-
cederà al sistema vascolare. Ancora altri due click sul pulsante “avanti” permettono
di raggiungere gli organi e in ultimo lo scheletro. Ovviamente cliccando sul pulsante
“indietro” si potrà risalire e tornare in superficie. Questa idea di navigazione all’in-
terno dei diversi strati anatomici è stata presa in prestito dagli atlanti anatomici
interattivi, presentati in sezione 2.2.4.
Ogni volta che un pulsante del wireless presenter viene cliccato, la transizione
tra lo strato anatomico attuale e quello scelto avviene attraverso una dissolvenza.
Ogni transizione, che dura un secondo circa, è stata realizzata modificando il livello
di trasparenza4
della mesh in questione nel tempo. Se si vuol far scomparire lo
strato della pelle e nel frattempo far comparire i muscoli, il livello di trasparenza
deve diminuire linearmente nel caso della pelle fino a che non scompaia totalmente
mentre nello stesso istante il livello di trasparenza dei muscoli deve aumentare fino
a che non siano totalmente visibili.
5.5 Animazione del battito cardiaco
Per rendere più realistica la visualizzazione dello strato interno del corpo umano, si è
deciso di arricchire la visualizzazione del modello del cuore attraverso l’introduzione
di un’animazione del battito cardiaco. Inoltre tale battito cardiaco risulta essere
funzione dell’attività motoria dell’utilizzatore durante la durata della simulazione.
4
Livello di trasparenza: spesso indicato con alpha, rappresenta un intervallo di valori da zero
ad uno, in cui lo zero rappresenta la trasparenza completa e uno identifica l’oggetto associato
completamente visibile.
82
5 – Integrazione del sistema
5.5.1 Animazione
L’animazione del battito cardiaco è stata eseguita nel software di modellizzazione
Blender. Una volta caricata la mesh del cuore a riposo all’interno del programma,
attraverso diverse funzioni, è possibile deformare i vertici del cuore in modo tale da
ottenere una sequenza di mesh, ognuna delle quali rappresenta un istante del ciclo
cardiaco. La contrazione del muscolo cardiaco è stata effettuata a mano, cercando
di imitare al meglio i movimenti di diastole e sistole. Tale animazione non ha quindi
nessuna pretesa di rappresentare fisiologicamente il battito cardiaco ma è molto utile
in quanto aggiunge dinamismo all’esperienza di utilizzo di AnatoMimo. Inoltre nella
visualizzazione degli organi, il posto riservato al cuore è molto limitato, racchiuso
dai due polmoni, e quindi movimenti dettagliati come quelli fisiologicamente corretti
non sarebbero apprezzabili.
Per integrare l’animazione all’interno della simulazione, si è caricata la mesh
del cuore a riposo, come per ogni altra mesh del modello. Ad ogni step time della
simulazione però, le posizioni dei vertici del cuore vengono aggiornate, andando a
leggerle da un file esterno, che contiene tutte le informazioni racchiuse dalla sequen-
za di mesh creata in precedenza. Si ottiene cosi l’effetto di contrazione. Le mesh
però non sono state salvate in modo tanto fitto quanto lo è il passo di integrazione
della simulazione (t = 0.02). Quindi durante un passo di integrazione della simula-
zione, che non coincide con gli intervalli di acquisizione delle mesh, ma risulta essere
intermedio tra due acquisizioni, vengono interpolati le nuove posizioni a partire da
quelle delle due mesh esistenti adiacenti.
5.5.2 Calcolo attività motoria
Nel corpo umano, la frequenza del battito cardiaco è funzione principalmente del-
l’attività fisica, motoria dell’uomo. All’interno di AnatoMimo, si vorrebbe che la
frequenza cardiaca del modello del cuore possa risultare proporzionale alla quanti-
tà del movimento effettuato dall’utilizzatore. Per fare questo è necessario di una
variabile che, tenendo in considerazione i movimenti dell’utilizzatore, permetta di
decidere la frequenza cardiaca.
Inizialmente si è incominciati a lavorare con la varianza delle posizioni delle
articolazioni all’interno di un determinato intervallo di tempo. Se questa varian-
za risultava essere bassa, significava che l’utilizzatore non si era mosso molto. Al
contrario, se la varianza risultava essere alta allora l’utilizzatore si era mosso anima-
tamente, durante il periodo di osservazione. Tuttavia questa implementazione ha
un limite: riesce a determinare se l’utilizzatore si è mosso solo in un intervallo di
tempo limitato.
Volendo poter osservare movimenti rapidi, che bruscamente alzerebbero la fre-
quenza cardiaca, e movimenti lenti ma ripetuti nel tempo, che alzerebbe lentamente
83
5 – Integrazione del sistema
la frequenza cardiaca, si è pensato di utilizzare come variabile fisica, per discriminare
il movimento dell’utilizzatore, l’energia cinetica. In realtà si utilizza una grandezza
proporzionale all’energia cinetica definita come E = 3
i=0 v2
i , con vi la velocità del-
la i-esima articolazione. Tale grandezza risulta essere proporzionale in quanto nel
calcolo non subentra la massa, poiché nel sistema le articolazioni non presentano
massa. Ad ogni step time della simulazione, si aggiungono le nuove velocità ma
nello stesso tempo si decrementa di un coefficiente scelto il valore appena calcolato
in modo tale che la frequenza possa tornare al minimo nel caso in cui l’utilizzatore
non si muova per un lungo periodo.
Se viene effettuato un movimento brusco, come il picco più alto del grafico in
figura 5.5, le velocità dei segmenti interessati saranno elevate e quindi E si alze-
rà di molto. Se invece vengono effettuati dei movimenti semplici ma ripetuti nel
tempo, come nei primi picchi a sinistra in figura 5.5, le velocità dei segmenti inte-
ressati saranno basse ma prolungate nel tempo e quindi E aumenterà leggermente
nel tempo.
0 5 10 15 20 25 30
0
0.5
1
1.5
2
·104
t [s]
E[J]
Figura 5.5: Grandezza energetica per identificare la quantità di moto
Si è quindi definita una corrispondenza tra il valore della frequenza cardiaca,
ovvero la velocità con cui vengono aggiornati le posizioni dei vertici della mesh del
84
5 – Integrazione del sistema
cuore, con il valore di E attraverso una tabella.
5.6 Conclusione e discussione
Questo capitolo introduce diversi aspetti della creazione del nucleo dell’AnatoMi-
mo tra i quali l’integrazione delle tecnologie, il funzionamento di una dimostrazione
dell’AnatoMimo, la visualizzazione, l’interfaccia e l’interazione. In un primo mo-
mento, si è presentato anche un riassunto dei criteri di confronto dei diversi specchi
interattivi con l’AnatoMimo in sezione 5.1.1.
Altri aspetti che sono stati trattati e che vengono qui brevemente citati sono:
• inversione degli organi, in quanto, diversamente da una rappresentazione clas-
sica anatomica, in cui la parte destra del corpo rappresenta il lato sinistro, in
uno specchio tutto quello che è a destra dell’utilizzatore deve trovarsi a destra
nello specchio. Per questa ragione, si sono invertiti gli organi, permettendo al
fegato per esempio di trovarsi nel modello nella parte destra. Solo gli organi
sono stati invertiti in quanto per simmetria tutti gli altri elementi del modello
risultano essere uguali nella parte sinistra e destra.
• immagine Kinect come sfondo. Si è tentato di sovrapporre il modello ana-
tomico 3D all’immagine a colori restituita dalla Kinect . Tuttavia il fatto di
vedere dietro al modello l’immagine dell’utilizzatore, mette alla luce diversi
errori di posizionamento degli elementi del modello, che senza l’immagine di
riferimento passerebbero inosservati. Tuttavia per lo scopo di embodiment su
cui questo progetto si basa, è sufficiente che il modello si muova dopo che l’u-
tilizzatore abbia compiuto lo stesso movimento per permettere la facilitazione
dell’apprendimento dell’anatomia, senza che la propria immagine sia presente
dietro.
Per chiudere, si può dire che si é ideato un dispositivo che permette in maniera
innovativa di visualizzare e esplorare in maniera interattiva, le strutture anatomiche
interne del corpo normalmente invisibili ad occhio nudo. Per validare questo lavoro
nel quadro dell’apprendimento «Somatic Learning» si é pensato che sarebbe possibile
nei lavori futuri mettere in atto uno studio utilizzatore con degli studenti in medicina
o degli studenti in sport.
85
CONCLUSIONE
6
Capitolo
86
6 – Conclusione
In questo capitolo, si ritornerà sull’insieme dei lavori svolti durante questa tesi.
Inizialmente in sezione 6.1 si presenterà un rapido richiamo dei diversi contributi.
In seguito in sezione 6.2 verranno presentate qualche prospettiva per seguire questo
lavoro di ricerca. Infine, si parlerà in sezione 6.3 dei domini di applicazione per
l’AnatoMimo.
6.1 Richiamo dei contributi
L’idea principale dietro al progetto AnatoMimo è animare un modello anatomico
mimando i movimenti di un utilizzatore. Si parla quindi di un’applicazione in tempo
reale di tipo «specchio interattivo». Due sfide principali sono state rilevate.
6.1.1 Cattura e seguito dei movimenti
Questa sfida consiste nella cattura realistica e in tempo reale dei movimenti del-
l’utilizzatore con lo scopo di riprodurre lo stesso comportamento delle strutture
anatomiche dell’utilizzatore in un modello anatomico digitale, a partire da dati Ki-
nect, spesso parziali e rumorosi. Si è voluto intraprendere questo percorso per poter
permettere di studiare l’anatomia in movimento a partire da sensori leggeri, con
l’idea che l’intero sistema possa essere installato e utilizzato al di fuori di una sala
specializzata.
Si è presentato nel capitolo 4 la struttura di controllo gerarchica utilizzata, basata
sulle conoscenze anatomiche (assi di rotazione e limiti articolari). Il sistema di
cattura in tempo reale utilizzato si distingue grazie a:
• dei movimenti realistici: con l’utilizzo delle conoscenze anatomiche per la
correzione dei dati in entrata.
• dei movimenti fluidi e robusti: con l’applicazione di un filtro sui dati grezzi
• dei movimenti coerenti: grazie alla soppressione di una parte degli artefatti
con le correzioni articolari e l’applicazione di un filtro
Si è notato che per il sistema di cattura sviluppato il punto più critico risulta la
gestione dei dati occultati: dovuti all’orientamento del corpo rispetto al punto di
vista della telecamera o anche dovuto all’auto-occultamento. Si pensa che l’utilizzo
di un modello biomeccanico, anche parziale, potrebbe correggere una buona parte
degli artefatti dovuti ad occultamento e quindi aiutare i risultati ottenuti.
87
6 – Conclusione
6.1.2 Integrazione, visualizzazione e sperimentazione
Esistono diversi specchi interattivi che permettono di visualizzare e interagire con
un contenuto anatomico (vedere sezione 2.3.2), ognuno aventi i suoi punti forti e
punti deboli in funzione degli scopi che gli autori si sono prefissati.
La sfida, accettando questo progetto, riguarda la realizzazione di un nucleo ope-
razionale di AnatoMimo che permette la visualizzazione e l’interazione con del con-
tenuto anatomico. Ci si è interessati particolarmente ad una visualizzazione corpo
intero in tempo reale del sistema muscolo-scheletrico per spiegare il funzionamento
articolare del corpo. Componenti come il sistema vascolare e gli organi, tra cui il
cuore che batte, aumenta la percezione di realismo da parte dell’utilizzatore. Per
incrementare ulteriormente il realismo nel sistema muscolare e nel sistema vascola-
re, si è pensato di aggiungere in un futuro le texture corrispondenti, sostituendo la
colorazione uniforme realizzata in questa versione.
6.2 Prospettive
Nella sezione precedente si sono riassunte i diversi contributi sviluppati nella tesi e
anche le piste da seguire per miglioramenti a breve termine. Si espongono qui le
prospettive da applicare sul lungo termine.
Cattura
Il lavoro presentato nel capitolo 4 permette di catturare i movimenti dell’utilizzatore.
Un seguito logico di questo lavoro sarebbe quello di fare un riconoscimento dei
movimenti per permettere di visualizzare del contenuto legato direttamente con il
movimento in modo automatico.
Si è parlato più volte dell’aspetto critico della cattura del movimento. Un approc-
cio multi-sensore o l’utilizzo di un sensore più performante sembra essere una pos-
sibile strada da seguire. Questo permetterebbe di ottenere una cattura più precisa
rendendo possibile il settore della rieducazione o dell’apprendimento di un gesto.
Interfaccia e interazione
Ad oggi non sono state sviluppate interfacce complesse che permettono l’interazione
con il contenuto. Uno studio spinto dell’interfaccia sembra essere essenziale per
determinare la sua ergonomia e permettere la scelta del miglior modo per interagire
con il contenuto (in funzione della profondità oppure utilizzando le mani).
88
6 – Conclusione
Conclusione
L’AnatoMimo, strumento sviluppato nel corso di questa tesi, è attualmente in uno
stadio sperimentale. La pertinenza dello strumento nel quadro dell’autoappren-
dimento di conoscenze anatomiche complesse e dinamiche rimane da validare. Si
spera in un futuro prossimo di poter costruire e validare uno strumento completo,
attraverso l’aiuto di studenti e insegnanti di anatomia umana.
Come si è appena visto, può ancora essere migliorato: a livello della cattura dei
movimenti, dell’interfaccia, dell’interazione e della visualizzazione delle conoscenze.
Questo strumento permette già di aprire una riflessione sul suo utilizzo in diversi
domini, come nel quadro della formazione in anatomia. Si parlerà di questo nella
sezione successiva.
6.3 Settori di applicazione di questo lavoro
6.3.1 Settore medico e paramedico
L’ipotesi secondo la quale l’apprendimento sarebbe facilitato da un’esperienza corpo-
rale rientra nella nozione di incarnazione o «embodiment». Questo concetto derivan-
te dalla psicologia cognitiva fa riferimento ai processi cognitivi basati sulle esperienze
sensoriali e sulle posture corporali.
Questo lavoro potrebbe contribuire a nuove tecnologie pedagogiche di insegna-
mento della medicina.
6.3.2 Apertura ad altri domini
Questo strumento è stato inizialmente creato per delle applicazioni nel dominio
medico e paramedico. Si è tuttavia notato nel corso del suo sviluppo, che AnatoMimo
abbia un enorme potenziale da offrire in altri settori. Si può citare l’applicazione nel
dominio del grande pubblico attraverso musei ed esposizioni, come il sistema Mir’Os
[66] che permette a qualsiasi persona di scoprire in maniera ludica l’anatomia in
movimento e le nozioni anatomiche associate. Seguendo questo esempio, si è deciso
di creare una versione demo del sistema in modo che possa diventare una delle
attrazioni presenti nell’esposizione itinerante “De l’Homo Numericus au Citoyen
Numérique”.
89
6 – Conclusione
Nel corso dello sviluppo del progetto, si sono instaurati molti confronti con col-
leghi, relatori, professionisti in visita al laboratorio di ricerca, in cui si è sviluppato
il progetto. Molte di queste persone hanno provato la versione demo di AnatoMimo
e hanno lasciato diversi feedback che possono essere sintetizzati da queste due frasi:
• AnatoMimo è uno dei miglior modi per instaurare curiosità in un pubblico non
esperto e ispirarlo a imparare di più sul proprio corpo.
• AnatoMimo è un bell’esempio su come la tecnologia moderna può portare una
nuova prospettiva in una disciplina tradizionale come l’anatomia umana.
90
Appendici
92
Appendice A
Grafo della scena
<?xml version="1.0" ?>
<Node dt="0.02" gravity="0 0 0" name="root" animate="true">
<VisualStyle name="visualStyle1" displayFlags="showVisual hideBehaviorModels"/>
<ViewerSetting resolution="800 600" cameraMode="Perspective"/>
<RequiredPlugin pluginName="Plugin_Kinect" />
<EulerImplicit name="cg odesolver" printLog="false" vdamping="5" />
<CGLinearSolver iterations="10" name="linear solver" threshold="1e-7" tolerance="1e-7" />
<Node name="InputMesh">
<!-- Bones -->
<MeshObjLoader name="spine" filename="data/mesh/spine.obj" scale="0.025"/>
...
<!-- Organs -->
<MeshObjLoader name="intestine" filename="data/mesh/intestine.obj" scale="0.025"/>
...
<!-- Tissues -->
<MeshObjLoader name="skin" filename="data/mesh/skin.obj" scale="0.025"/>
...
</Node>
<Node name="SpineBase" >
<GenerateRigidMass name="rigidEngine" template="Rigid" density="1"
position="@InputMesh/spine_base.position" triangles="@InputMesh/spine_base.triangles"
quads="@InputMesh/spine_base.quads" />
<TransformEngine name="pivot" input_position="@rigidEngine.centerToOrigin"
translation="0.0 0.0 0.018" />
</Node>
...
<Node name="Muscles" >
<GenerateRigidMass name="rigidEngine" template="Rigid" density="1"
position="@InputMesh/muscles.position" triangles="@InputMesh/muscles.triangles"
quads="@InputMesh/muscles.quads" />
<TransformEngine name="pivot" input_position="@rigidEngine.centerToOrigin"
translation="-0.005 -0.035 0.03" />
</Node>
<!-- Kinect interaction-->
<KinectExtractor name="kinect" captureZone="1.5 2.2 -0.5 0.5"/>
<MechanicalObject template="Rigid" name="trackedDOFs" showObjectScale="0.001"
position="@kinect.bodyJoints" />
<Node name="articulation">
<MechanicalObject name="Articulations" template="Vec1d" position="0 ... 0 " />
<!-- Constraints articulations -->
93
A – Grafo della scena
<MechanicalStateFilter name="filter" template="Vec1d"
indices="27 29" range="30 -150 0 -90"/>
<Node name="Physic">
<MechanicalObject template="Rigid" name="DOFs" showObjectScale="0.001" position="
0 0 0 0 0 0 1
...
0 0 0 0 0 0 1" />
<Node name="points3D">
<MechanicalObject template="Vec3d" name="DOFs_3D" />
<IdentityMapping name="IdMapping" template="Rigid3d,Vec3d" input="@../DOFs"
output="@DOFs_3D" />
<RestShapeSpringsForceField template="Vec3d" name="ControlSprings"
stiffness="500000" external_rest_shape="../../../points3D/trackedDOFs_3D"
points="1 2 3 4 5 6 9 10 11 12 13 14 15 16 17 18 19 20"
external_points="0 1 1 20 20 3 4 8 5 9 12 16 13 17 15 19 6 10" />
</Node>
<UniformMass template="Rigid" name="mass" mass="1 1 [1 0 0,0 1 0,0 0 1]"
showAxisSizeFactor="0.075" />
<ArticulatedSystemMapping input1="@../Articulations" output="@DOFs"
isMechanical="true" />
<Node name="Skeleton">
<VisualStyle name="SkeletonVisualStyle" displayFlags="showVisual" />
<Node name="SpineBase">
<Node name="VisualModel">
<include href="data/Shading_bone.xml"
Visual__scale="0.025"
Visual__filename="@InputMesh/spine_base.filename"
Visual__translation="@../../../../../SpineBase/pivot.output_position"
DiffuseMap__textureFilename="data/texture/skeleton_legs.png"
/>
<RigidMapping template="Rigid3d,ExtVec3f" index="1" input="@../../../DOFs"
output="@Visual" />
</Node>
</Node>
...
<Node name="Muscles">
<Node name="VisualModel">
<OglModel name="Visual" src="@../../../../../InputMesh/muscles"
translation="@../../../../../Muscles/pivot.output_position"
tags="muscles" color="0.9 0.4 0.2" />
<include href="data/
SkinningMapping_MuscoliPesiCopiati_Ancheinblendermanoinsofa.xml" />
</Node>
</Node>
</Node>
</Node>
<ArticulatedHierarchyContainer />
<Node name="articulationCenters">
<Node name="SpineBaseArticulation">
<ArticulationCenter parentIndex="0" childIndex="1"
posOnParent="0 0 0" posOnChild="0 0 0" articulationProcess="0" />
<Node name="articulations">
<Articulation translation="true" rotation="false" rotationAxis="1 0 0"
articulationIndex="0" />
<Articulation translation="true" rotation="false" rotationAxis="0 1 0"
articulationIndex="1" />
<Articulation translation="true" rotation="false" rotationAxis="0 0 1"
articulationIndex="2" />
<Articulation translation="false" rotation="true" rotationAxis="1 0 0"
articulationIndex="3" />
<Articulation translation="false" rotation="true" rotationAxis="0 1 0"
94
A – Grafo della scena
articulationIndex="4" />
<Articulation translation="false" rotation="true" rotationAxis="0 0 1"
articulationIndex="5" />
</Node>
</Node>
...
<Node name="LeftFootArticulation">
<ArticulationCenter parentIndex="16" childIndex="18" posOnParent="-0.5 -0.4 0.5"
posOnChild="0.0 0.0 0.0" articulationProcess="0" />
<Node name="articulations">
<Articulation translation="false" rotation="false" rotationAxis="1 0 0"
articulationIndex="54" />
<Articulation translation="false" rotation="false" rotationAxis="0 1 0"
articulationIndex="55" />
<Articulation translation="false" rotation="false" rotationAxis="0 0 1"
articulationIndex="56" />
</Node>
</Node>
</Node>
</Node>
<VisualManagerPass name="contourPass" outputName="contourPass" tags="skin" listening="1"
renderToScreen="0" factor="10" />
<VisualManagerPass name="backgroundPass" outputName="backgroundPass" tags="Background"
listening="1" renderToScreen="0" factor="3" />
<VisualManagerPass name="bonesPass" outputName="bonesPass" tags="bones" listening="1"
renderToScreen="0" factor="3" />
<VisualManagerPass name="organsPass" outputName="organsPass" tags="organs" listening="1"
renderToScreen="0" factor="3" />
<VisualManagerPass name="musclePass" outputName="musclePass" tags="muscles" listening="1"
renderToScreen="0" factor="3" />
<VisualManagerPass name="arteryPass" outputName="arteryPass" tags="vessels" listening="1"
renderToScreen="0" factor="3" />
<OglShader tags="Final" name="shader" vertFilename="data/shader/compose.vert"
fragFilename="data/shader/compose.frag" />
<OglFloatVariable tags="Final" name="organsCoeff" value="0.7" />
<OglFloatVariable tags="Final" name="bonesCoeff" value="0.3" />
<OglFloatVariable tags="Final" name="arteryCoeff" value="0.3" />
<OglFloatVariable tags="Final" name="musclesCoeff" value="0.3" />
<VisualManagerSecondaryPass name="secondaryPass" listening="1" renderToScreen="1"
input_tags="muscles vessels organs bones Background skin" shader="@shader" />
<ZygoteBodyDisplayController name="zygoteController" />
</Node>
</Node>
95
Appendice B
Plugin Kinect
#ifndef SOFA_COMPONENT_ENGINE_KINECTEXTRACTOR_INL
#define SOFA_COMPONENT_ENGINE_KINECTEXTRACTOR_INL
#if !defined(__GNUC__) || (__GNUC__ > 3 || (_GNUC__ == 3 && __GNUC_MINOR__ > 3))
#pragma once
#endif
#include "KinectExtractor.h"
#include <sofa/helper/gl/template.h>
#include <iostream>
#include <sofa/core/objectmodel/Event.h>
#include <sofa/simulation/common/AnimateBeginEvent.h>
#include <sofa/helper/system/thread/CTime.h>
#include <sofa/helper/AdvancedTimer.h>
namespace sofa
{
namespace component
{
KinectExtractor::kinectExtractor()
: m_bodyJoints(initData(&m_bodyJoints, "bodyJoints", "list of all 25 body
joints positions and orientations")),
m_capture_zone(initData(&m_capture_zone, "captureZone", "Define a rectangle
to be Kinect’s capture zone (the order of the given parameters is:
minZ maxZ minX maxX)"))
{
f_listening.setValue(TRUE);
}
void KinectExtractor::init()
{
activeBodyIndex = 0;
openKinectSensor();
addOutput(&m_bodyJoints);
setDirtyValue();
filterPos.Init(smoothing, correction, prediction, jitterRadius, maxDeviationRadius);
filterQuat.Init(smoothing, correction, prediction, jitterRadius, maxDeviationRadius);
initPosition();
}
void KinectExtractor::update()
{
processKinectInfo();
96
B – Plugin Kinect
}
void KinectExtractor::handleEvent(core::objectmodel::Event *event)
{
if (sofa::simulation::AnimateBeginEvent::checkEventType(event))
this->update();
}
template<class Interface>
static inline void KinectExtractor::safeRelease(Interface *&interfaceToRelease)
{
if (interfaceToRelease != nullptr)
{
interfaceToRelease->Release();
interfaceToRelease = nullptr;
}
}
void KinectExtractor::openKinectSensor()
{
HRESULT hr = GetDefaultKinectSensor(&sensor);
//If the function succeeds, open the sensor
if (SUCCEEDED(hr)) {
hr = sensor->Open();
if (SUCCEEDED(hr))
{
//Get a body frame source from which we can get our body frame reader
IBodyFrameSource *bodyFrameSource = nullptr;
hr = sensor->get_BodyFrameSource(&bodyFrameSource);
if (SUCCEEDED(hr))
{
hr = bodyFrameSource->OpenReader(&bodyFrameReader);
std::cout << "Success opening kinect" << std::endl;
}
//We’re done with bodyFrameSource, so we’ll release it
safeRelease(bodyFrameSource);
}
}
if (sensor == nullptr || FAILED(hr))
{
std::cerr << "Cannot find any sensors.n";
//return E_FAIL;
}
}
void KinectExtractor::processKinectInfo()
{
while (bodyFrameReader != nullptr)
{
IBodyFrame *bodyFrame = nullptr;
HRESULT hr = bodyFrameReader->AcquireLatestFrame(&bodyFrame);
if (SUCCEEDED(hr)) {
IBody *bodies[BODY_COUNT] = { 0 };
hr = bodyFrame->GetAndRefreshBodyData(_countof(bodies), bodies);
for (int i = 0; i < _countof(bodies); i++)
{
IBody *body = bodies[i];
BOOLEAN isTracked = false;
body->get_IsTracked(&isTracked);
if (FAILED(hr) || isTracked == false)
97
B – Plugin Kinect
continue;
{
Joint joints[JointType_Count];
body->GetJoints(_countof(joints), joints);
if (joints[0].Position.Z<m_capture_zone.getValue()[1] &&
joints[0].Position.Z>m_capture_zone.getValue()[0] &&
joints[0].Position.X>m_capture_zone.getValue()[2] &&
joints[0].Position.X<m_capture_zone.getValue()[3])
activeBodyIndex = i;
}
}
if (SUCCEEDED(hr)) {
processBodies(bodies, activeBodyIndex);
//After body processing’s done,we’re done with our bodies so release them.
for (unsigned int bodyIndex = 0;bodyIndex < _countof(bodies);bodyIndex++)
safeRelease(bodies[bodyIndex]);
safeRelease(bodyFrame);
return;
}
}
else if (sensor) {
BOOLEAN isSensorAvailable = false;
hr = sensor->get_IsAvailable(&isSensorAvailable);
if (SUCCEEDED(hr) && isSensorAvailable == false)
{
std::cout << "No available sensor is found.n";
helper::WriteAccessor<Data<VecRigid> > out = m_bodyJoints;
out.resize(0);
for (int a = 0; a < JointType_Count; a++)
{
const sofa::defaulttype::Quat quat(0, 0, 0, 1);
sofa::defaulttype::Vec3d pos;
pos[0] = initial_rigid[a].position.X;
pos[1] = initial_rigid[a].position.Y;
pos[2] = initial_rigid[a].position.Z;
Rigid oneJoint(pos, quat);
out.push_back(oneJoint);
}
}
}
else
std::cerr << "Trouble reading the body frame.n";
}
}
void KinectExtractor::processBodies(IBody **bodies, int activeBodyIndex)
{
sofa::helper::AdvancedTimer::stepBegin("KinectProcess");
IBody *body = bodies[activeBodyIndex];
//Get the tracking status for the body, if it’s not tracked we’ll skip it
BOOLEAN isTracked = false;
HRESULT hr = body->get_IsTracked(&isTracked);
if (FAILED(hr) || isTracked == false) {
helper::WriteAccessor<Data<VecRigid> > out = m_bodyJoints;
out.resize(0);
for (int a = 0; a < JointType_Count; a++)
{
const sofa::defaulttype::Quat quat(0, 0, 0, 1);
sofa::defaulttype::Vec3d pos;
pos[0] = initial_rigid[a].position.X;
98
B – Plugin Kinect
pos[1] = initial_rigid[a].position.Y;
pos[2] = initial_rigid[a].position.Z;
Rigid oneJoint(pos, quat);
out.push_back(oneJoint);
}
return;
}
//If we’re here the body is tracked so get the joint properties for this skeleton
Joint joints[JointType_Count];
hr = body->GetJoints(_countof(joints), joints);
JointOrientation jointsOrientation[JointType_Count];
hr = body->GetJointOrientations(_countof(jointsOrientation), jointsOrientation);
if (SUCCEEDED(hr)) {
helper::WriteAccessor<Data<VecRigid> > out = m_bodyJoints;
out.resize(0);
filterPos.UpdateFilter(joints);
const CameraSpacePoint* newPos = filterPos.GetFilteredJoints();
if (joints[0].Position.Z<m_capture_zone.getValue()[1] &&
joints[0].Position.Z>m_capture_zone.getValue()[0] &&
joints[0].Position.X>m_capture_zone.getValue()[2] &&
joints[0].Position.X<m_capture_zone.getValue()[3])
{
for (int a = 0; a < JointType_Count; a++)
{
sofa::defaulttype::Vec3d pos(newPos[a].X, newPos[a].Y, newPos[a].Z);
Rigid oneJoint(pos, rigid[a].orientation);
out.push_back(oneJoint);
}
}
else
{
for (int a = 0; a < JointType_Count; a++)
{
const sofa::defaulttype::Quat quat(0, 0, 0, 1);
sofa::defaulttype::Vec3d pos;
pos[0] = initial_rigid[a].position.X;
pos[1] = initial_rigid[a].position.Y;
pos[2] = initial_rigid[a].position.Z;
Rigid oneJoint(pos, quat);
out.push_back(oneJoint);
}
}
}
sofa::helper::AdvancedTimer::stepEnd("KinectProcess");
}
void KinectExtractor::initPosition()
{
initial_rigid[0].position={(float)-0.0843352, (float)-0.058137, (float)0.0795146};
...
initial_rigid[24].position={(float)0.310567, (float)-0.15552, (float)0.0526308};
}
} // namespace component
} // namespace sofa
#endif
99
Bibliografia
[1] LUSK, M. M., AND ATKINSON, R. K. Animated pedagogical agents : Does
their degree of embodiment impact learning from static or animated worked
examples? Applied cognitive psychology 21, 6 (2007), 747–764.
[2] AYMERIC, G., STÉPHANE, C., CHRISTOPHE, B., PATRICE, T., AND
CHRISTIAN, C. Relationship between spatial abilities, mental rotation and
functional anatomy learning.
[3] REBECCA S., L., ANN C., Z., CARLA A., R., AND TODD M., H. Effect
of visual– spatial ability on medical students performance in a gross anatomy
course.
[4] SANDRA, B., ROSITA, H., ROBERT, H., AND GERTRAUD, G. Improving
spatial abilities with a 3d immersive environment. a pilot study.
[5] KAMPHUIS, C., BARSOM, E., SCHIJVEN, M., AND CHRISTOPH, N. Aug-
mented reality in medical education? Perspectives on medical education 3, 4
(2014), 300–311.
[6] FREILER, T. J. Learning through the body.
[7] COHEN, B. B. http ://www.experientialanatomy.org.
[8] BUZAN, T., AND BUZAN, B. How to mind map. Thorsons London, 2002.
[9] ANATOMAGE, 2012. http ://medical.anatomage.com/.
[10] KAMINA, P. Anatomie clinique. Maloine, France, 2009.
[11] CORPORATION, I., 1999. http ://www.innerbody.com/.
[12] BIODIGITAL, 2014. https ://www.biodigital.com/.
[13] ZYGOTEBODY, 2014. https ://zygotebody.com/.
[14] ZOOLOGICO LA SPECOLA, M., MARTA, P., AND GEORGES, D.-H. Ency-
clopaedia anatomica. Collection complète des cires anatomiques. Taschen GmbH,
2003.
[15] PRINTING (CJP), C. http ://www.materialise.fr/impression-3D/cjp.
[16] 3DSYSTEMS, 2013. http ://www.3dsystems.com/.
[17] J. B. ANTOINE, M., AND MAX A., V. A survey of medical image registration,
March 1998.
[18] GRABER, M. A., WYATT, C., KASPAREK, L., AND XU, Y. Does simula-
tor training for medical students change patient opinions and attitudes toward
100
Bibliografia
medical student procedures in the emergency department ? MICCAI 12 (2005),
635–639.
[19] KNEEBONE, R. Evaluating clinical simulations for learning procedural skills
: a theorybased approach. Academic medicine : journal of the Association of
American Medical Colleges 80 (2005), 549–553.
[20] COTIN, S., DELINGETTE, H., AND AYACHE, N. Real-time elastic deforma-
tions of soft tissues for surgery simulation. IEEE Transactions on Visualization
and Computer Graphics 5, 1 (Jan. 1999), 62–73.
[21] AYMERIC, G., STÉPHANE, C., CHRISTOPHE, B., PATRICE, T., AND
CHRISTIAN, C. Relationship between spatial abilities, mental rotation and
functional anatomy learning.
[22] KAMPHUIS, C., BARSOM, E., SCHIJVEN, M., AND CHRISTOPH, N. Aug-
mented reality in medical education? Perspectives on medical education 3, 4
(2014), 300–311.
[23] NAVAB, N., BLUM, T., WANG, L., OKUR, A., AND WENDLER, T. First
deployments of augmented reality in operating rooms. IEEE Computer 45, 7
(2012), 48–55.
[24] MICROSOFT. HoloAnatomy, 2016. http://www.digitaltrends.com/virtual-
reality/hololens-holoanatomy-award-jackson-hole-science-media-awards/.
[25] MIRRACLE, 2011-2013. http ://campar.in.tum.de/files/mirracle/.
[26] MENG, M., FALLAVOLLITA, P., BLUM, T., ECK, U., SANDOR, C., WEI-
DERT, S., WASCHKE, J., AND NAVAB, N. Kinect for interactive ar anatomy
learning. In Mixed and Augmented Reality (ISMAR), 2013 IEEE International
Symposium on (2013), IEEE, pp. 277–278.
[27] MA, M., FALLAVOLLITA, P., SEELBACH, I., VON DER HEIDE, A. M.,
EULER, E., WASCHKE, J., AND NAVAB, N. Personalized augmented reality
for anatomy education. In Clinical Anatomy (May 2016), vol. 29, pp. 446–453.
[28] BLUM, T., KLEEBERGER, V., BICHLMEIER, C., AND NAVAB, N. mirracle
: An augmented reality magic mirror system for anatomy education. In Virtual
Reality Short Papers and Posters (VRW), 2012 IEEE (2012), IEEE, pp. 115–116.
[29] MAITRE, X. Newscientist : Digital mirror reveals what lies under your skin,
April 2014.
[30] BORNER, A., AND KIRSCH, S. Anatomie spiegel. http
://www.qwertzus.com/anatomie-spiegel/, February 2015.
[31] PIXOLOGIC. Zbrush, 2015. https ://pixologic.com/.
[32] FOUNDATION, B., 2002-2016. https ://www.blender.org/.
[33] ICT. Light stage 6, 2006. https://www.fxguide.com/featured/light_stage_6/.
[34] DEBEVEC, P., HAWKINS, T., TCHOU, C., DUIKER, H.-P., SAROKIN, W.,
AND SAGAR, M. Acquiring the reflectance field of a human face. In Proceedings
101
Bibliografia
of the 27th Annual Conference on Computer Graphics and Interactive Techni-
ques (New York, NY, USA, 2000), SIGGRAPH ’00, ACM Press/Addison-Wesley
Publishing Co., pp. 145–156.
[35] ANGUELOV, D., SRINIVASAN, P., KOLLER, D., THRUN, S., RODGERS,
J., AND DAVIS, J. Scape : Shape completion and animation of people. ACM
Trans. Graph. 24, 3 (July 2005), 408–416.
[36] BOUAZIZ, S., AND PAULY, M. Dynamic 2d/3d registration for the kinect. In
ACM SIGGRAPH 2013 Courses (New York, NY, USA, 2013), SIGGRAPH ’13,
ACM, pp. 21 :1–21 :14.
[37] BOGO, F., ROMERO, J., LOPER, M., AND BLACK, M. J. FAUST : Dataset
and evaluation for 3D mesh registration. In Proceedings IEEE Conf. on Computer
Vision and Pattern Recognition (CVPR) (Columbus, Ohio, USA, jun 2014), pp.
3794 –3801.
[38] OF MEDICINE, C. N. L. The visible human project, 2014. https
://www.nlm.nih.gov/research/visible/.
[39] HÖHNE, K. H. Voxel-man 3d navigator, 1985.
http://www.voxel-man.com/gallery/ visible_human/inner_organs/.
[40] ZACHOW, S., ZILSKE, M., AND HEGE, H.-C. 3D reconstruction of individual
anatomy from medical image data : Segmentation and geometry processing. ZIB,
2007.
[41] ZURICH MED TECH. Sim4life, 2010. http://www.zurichmedtech.com/.
[42] ANDREAS, C., WOLFGANG, K., ECKHART G., H., KATHARINA, H.,
MARCEL, Z., ESRA, N., WOLFGANG, R., ROLF, J., WERNER, B., JI, C.,
BERTHOLD, K., PETER, S., HANS-PETER, H., JIANXIANG, S., MICHAEL,
O., DOMINIK, S., ANTHONY, K., JOSHUA W., G., AND NIELS, K. The vir-
tual family–development of surface-based anatomical models of two adults and
two children for dosimetric simulations. vol. 55, p. N23–N38.
[43] COMPANY, T. Z., 2010. https ://www.zygote.com/.
[44] JACOBS, J., BARBIC, J., EDWARDS, E., DORAN, C., AND VAN STRA-
TEN, A. How to build a human : Practical physics-based character animation.
In Proceedings of the 2016 Symposium on Digital Production (New York, NY,
USA, 2016), DigiPro ’16, ACM, pp. 7–9.
[45] UNIVERSITÉ CLAUDE BERNARD, L. ., 2012. http ://anatomie3d.univ-
lyon1.fr/.
[46] THIRIET, P., AND RASTELLO, O., 2013. https ://www.youtube.com/watch
?v=KsYt96PWOOk.
[47] MAYA. A. Maya muscle plugin, 2011. http://download.autodesk.com/us/
support/files/muscle.pdf.
[48] AUTODESK. Maya, 1998-2016. http://www.autodesk.fr/products/maya/
overview.
102
Bibliografia
[49] LIU, L., YIN, K., WANG, B., AND GUO, B. Simulation and control of skeleton-
driven soft body characters. ACM Trans. Graph. 32, 6 (Nov. 2013), 215 :1–215
:8.
[50] LANDER, J. Skin them bones : Game programming for the web
generation.Game Developer Magazine, May 1998.
[51] LANDER, J. Over my dead, polygonal body. Game Developer Magazine,
October 1999.
[52] KAVAN, L., COLLINS, S., ŽÁRA, J., AND O’SULLIVAN, C. Skinning with
dual quaternions. In Proceedings of the 2007 Symposium on Interactive 3D
Graphics and Games (New York, NY, USA, 2007), I3D ’07, ACM, pp. 39–46.
[53] C., N., R.K., J., A., L., D., H., A., L., A., A., P., L., A., S., AND P., W. Foot
kinematics during walking measured using bone and surface mounted markers.
3412– 3423.
[54] MENG, M., FALLAVOLLITA, P., BLUM, T., ECK, U., SANDOR, C., WEI-
DERT, S., WASCHKE, J., AND NAVAB, N. Kinect for interactive ar anatomy
learning. In Mixed and Augmented Reality (ISMAR), 2013 IEEE International
Symposium on (2013), IEEE, pp. 277–278.
[55] PFISTER, A., WEST, A. M., BRONNER, S., AND NOAH, J. A. Comparative
abilities of microsoft kinect and vicon 3d motion capture for gait analysis. Journal
of medical engineering and technology 38, 5 (2014), 274–280.
[56] UNITY3D, 2016. https ://unity3d.com/.
[57] ASUS. Xtion pro live.
[58] GOOGLE. Tango : see more of your world.
[59] INC, A. Structure.
[60] MICROSOFT. Kinect for windows sdk 2.0.
[61] MICROSOFT. Kinect for xbox one.
[62] SOFA. https://www.sofa-framework.org/
[63] F. Faure, C. Duriez, H. Delingette, J. Allard, Benjamin Gilles, et al.. SO-
FA: A Multi-Model Framework for Interactive Physical Simulation. Yohan Pa-
yan. Soft Tissue Biomechanical Modeling for Computer Assisted Surgery, 11,
Springer, pp.283-321, 2012, Studies in Mechanobiology, Tissue Engineering and
Biomaterials
[64] KING, A. P., EDWARDS, P. J., JR., C. R. M., DE CUNHA, D. A., GASTON,
R. P., CLARKSON, M. J., HILL, D. L. G., HAWKES, D. J., FENLON, M.
R., STRONG, A. J., COX, T. C. S., AND GLEESON, M. J. Stereo augmented
reality in the surgical microscope. Presence 9, 4 (2000), 360–368.
[65] OPENGL SUPERBIBLE. http://www.openglsuperbible.com/
[66] DAUPHINOIS, M. Exposition confidences d’outre-tombe, squelettes en que-
stion. http ://lacasemate.fr/visiter/hors-les-murs/confidences-doutre-tombe/.
103

a4_centrata

  • 1.
    POLITECNICO DI TORINO IFacoltà di Ingegneria Corso di Laurea in Ingegneria Biomedica Tesi di Laurea Magistrale AnatoMimo: uno specchio interattivo. Applicazione all’apprendimento dell’anatomia. Relatore: Prof. Filippo Molinari Correlatore: Dr. Stéphane Cotin Candidato: Thomas Massari Dicembre 2016
  • 3.
    Sommario La complessità dell’anatomiane rende l’apprendimento un compito difficile. Nel corso degli anni, diversi supporti di conoscenza hanno visto la luce con lo scopo di rappresentare e strutturare l’anatomia: dai disegni su lavagna, ai libri di anatomia, passando per la tappa fondamentale della dissezione e dei lavori pratici sui modelli plastici in 3D. È peraltro difficile imparare la dimensione dinamica dell’anatomia attraverso gli strumenti di apprendimento tradizionali, nozione che è tuttavia es- senziale alla formazione dei medici. Per facilitare questo compito, si propone un sistema basato sul concetto di «embodiment», un concetto secondo il quale il nostro sistema motore influenza la nostra cognizione. Attraverso questo lavoro di tesi, si vuole proporre un sistema originale, innovativo e interattivo per l’apprendimento dell’anatomia chiamato «AnatoMimo». L’idea è quella di creare un’applicazione in tempo reale di un modello anatomico digitale 3D (pelle, scheletro, muscoli, organi, apparato vascolare) che viene animato mimando i movimenti dell’utilizzatore. Si utilizza la Kinect come sensore di movimento. La prima sfida consiste nella cattura realistica e in tempo reale dei movimenti dell’utilizzatore. Riprodurre il comportamento di strutture anatomiche è un com- pito complesso a causa delle informazioni ricavate dalla Kinect, spesso parziali e molto rumorose. Si propone l’uso di regole anatomiche riguardanti le articolazioni del corpo (asse di rotazione e limiti articolari) per vincolare i movimenti estratti dalla Kinect e ottenere movimenti realistici. Per ottenere dei movimenti fluidi, si è deciso di utilizzare il filtro doppio esponenziale di Holt. La seconda sfida riguarda l’importante compito di ritorno visivo e di interazione. Durante questo lavoro, ci si è particolarmente interessati alla resa del corpo completo per visualizzare il funzio- namento generale del corpo umano e delle sue diverse articolazioni. Per rispettare il vincolo di tempo reale, quello che si propone qui è più dell’animazione grafica at- traverso deformazione del modello piuttosto che della biomeccanica attraverso una simulazione completa dei movimenti. I diversi elementi sono stati integrati in un sistema operazionale presentato in dettaglio nella seguente tesi. La presentazione di questo lavoro sotto forma di ver- sione demo verrà effettuata all’interno di una mostra itinerante in Francia nel 2017, chiamata “De l’Homo Numericus au Citoyen Numérique”. iii
  • 4.
  • 5.
    Indice Sommario iii Ringraziamenti iv 1Introduzione 1 1.1 Contestualizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.1 Il progetto AnatoMimo . . . . . . . . . . . . . . . . . . . . . . 2 1.1.2 Il gruppo Mimesis . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Obiettivi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Pianificazione dell’elaborato . . . . . . . . . . . . . . . . . . . . . . . 5 2 Stato dell’arte 6 2.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.1 Utilizzo delle conoscenze anatomiche al di fuori del settore medicale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Storia dei supporti di conoscenza anatomica . . . . . . . . . . . . . . 9 2.2.1 Visualizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.2 Il corpo come supporto . . . . . . . . . . . . . . . . . . . . . . 10 2.2.3 Rappresentazioni iconografiche . . . . . . . . . . . . . . . . . . 12 2.2.4 Atlanti anatomici . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.5 Rappresentazioni in volumi . . . . . . . . . . . . . . . . . . . 15 2.2.6 Rappresentazioni digitali . . . . . . . . . . . . . . . . . . . . . 17 2.2.7 Conclusione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3 Le nuove tecnologie al servizio del settore medico . . . . . . . . . . . 20 2.3.1 Realtà aumentata . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3.2 Lo specchio interattivo . . . . . . . . . . . . . . . . . . . . . . 21 2.4 Conclusione e discussione . . . . . . . . . . . . . . . . . . . . . . . . . 24 3 Anatomia: conoscenze anatomiche e modelli 3D 25 3.1 Anatomia umana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.1.1 Terminologia anatomica . . . . . . . . . . . . . . . . . . . . . 26 v
  • 6.
    3.1.2 Strutture anatomiche. . . . . . . . . . . . . . . . . . . . . . . 29 3.1.3 Terminologia di movimento . . . . . . . . . . . . . . . . . . . 32 3.2 Rappresentazione anatomica . . . . . . . . . . . . . . . . . . . . . . . 33 3.2.1 Modelli anatomici di riferimento . . . . . . . . . . . . . . . . . 34 3.2.2 Tipi di dati e livello di dettaglio . . . . . . . . . . . . . . . . . 38 3.2.3 Il modello anatomico di riferimento utilizzato . . . . . . . . . 41 4 Cattura e resa del movimento 44 4.1 Movimenti e deformazioni in computer grafica . . . . . . . . . . . . . 45 4.1.1 Struttura di controllo . . . . . . . . . . . . . . . . . . . . . . . 45 4.1.2 Skinning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.1.3 Induzione del movimento . . . . . . . . . . . . . . . . . . . . . 48 4.2 Motion capture attraverso telecamere RGB-D . . . . . . . . . . . . . 48 4.2.1 Metodi di cattura dei movimenti . . . . . . . . . . . . . . . . 50 4.2.2 La Kinect V2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.2.3 Kinect e lo scheletro di animazione . . . . . . . . . . . . . . . 56 4.3 Struttura di controllo del modello . . . . . . . . . . . . . . . . . . . . 57 4.3.1 Sistema gerarchico . . . . . . . . . . . . . . . . . . . . . . . . 57 4.3.2 Correzioni delle articolazioni . . . . . . . . . . . . . . . . . . . 59 4.3.3 Filtraggio di una serie di dati nel tempo . . . . . . . . . . . . 59 4.4 Skinning del modello . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.4.1 Algoritmo di Linear Blend Skinning . . . . . . . . . . . . . . . 63 4.5 Conclusione e discussione . . . . . . . . . . . . . . . . . . . . . . . . . 65 5 Integrazione del sistema 67 5.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5.1.1 Confronto tra gli specchi interattivi . . . . . . . . . . . . . . . 68 5.1.2 Piano del capitolo . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.2 Sperimentazione e integrazione . . . . . . . . . . . . . . . . . . . . . . 70 5.2.1 SOFA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.2.2 Tempo reale e cadenza delle immagini . . . . . . . . . . . . . 73 5.2.3 Materiale, spazio di lavoro e mezzo di visualizzazione . . . . . 75 5.2.4 Funzionamento della demo . . . . . . . . . . . . . . . . . . . . 75 5.3 Visualizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.3.1 OpenGL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.3.2 Rendering del modello . . . . . . . . . . . . . . . . . . . . . . 79 5.4 Interfaccia e interazione . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.4.1 Interfaccia di AnatoMimo . . . . . . . . . . . . . . . . . . . . 80 5.4.2 Interazione con le conoscenze . . . . . . . . . . . . . . . . . . 81 5.5 Animazione del battito cardiaco . . . . . . . . . . . . . . . . . . . . . 82 5.5.1 Animazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 vi
  • 7.
    5.5.2 Calcolo attivitàmotoria . . . . . . . . . . . . . . . . . . . . . 83 5.6 Conclusione e discussione . . . . . . . . . . . . . . . . . . . . . . . . . 85 6 Conclusione 86 6.1 Richiamo dei contributi . . . . . . . . . . . . . . . . . . . . . . . . . . 87 6.1.1 Cattura e seguito dei movimenti . . . . . . . . . . . . . . . . . 87 6.1.2 Integrazione, visualizzazione e sperimentazione . . . . . . . . . 88 6.2 Prospettive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 6.3 Settori di applicazione di questo lavoro . . . . . . . . . . . . . . . . . 89 6.3.1 Settore medico e paramedico . . . . . . . . . . . . . . . . . . . 89 6.3.2 Apertura ad altri domini . . . . . . . . . . . . . . . . . . . . . 89 Appendici 92 A Grafo della scena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 B Plugin Kinect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Bibliografia 100 vii
  • 8.
    Elenco delle figure 2.1Elementi anatomici nei musei. . . . . . . . . . . . . . . . . . . . . . . 8 2.2 Elementi anatomici nel cinema . . . . . . . . . . . . . . . . . . . . . . 9 2.3 La dissezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4 La conservazione dei corpi . . . . . . . . . . . . . . . . . . . . . . . . 12 2.5 Le iconografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.6 Disegni sulla lavagna . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.7 Atlanti nel web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.8 Le statue di cera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.9 Manichino anatomico industriale. . . . . . . . . . . . . . . . . . . . . 16 2.10 Diversi tipi di immagini mediche . . . . . . . . . . . . . . . . . . . . . 18 2.11 Realtà aumentata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.12 Magic Mirror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.13 Digital Mirror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.14 Anatomie Spiegel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.1 Riferimenti anatomici . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.2 Principali direzioni anatomiche . . . . . . . . . . . . . . . . . . . . . 28 3.3 Sistema muscolo scheletrico . . . . . . . . . . . . . . . . . . . . . . . 29 3.4 Diversi tipi di articolazione . . . . . . . . . . . . . . . . . . . . . . . . 31 3.5 Diversi tipi di movimenti (parte 1) . . . . . . . . . . . . . . . . . . . 32 3.6 Diversi tipi di movimenti (parte 2) . . . . . . . . . . . . . . . . . . . 34 3.7 Esempi di mesh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.8 Scanner della pelle di un utilizzatore . . . . . . . . . . . . . . . . . . 36 3.9 Database di mesh della pelle . . . . . . . . . . . . . . . . . . . . . . . 37 3.10 Modellizzazione di modelli anatomici alla mano . . . . . . . . . . . . 38 3.11 Diversi criteri di astrazione per lo scheletro . . . . . . . . . . . . . . . 40 3.12 Diversi criteri di astrazione per il sistema muscolare . . . . . . . . . . 41 3.13 Diversi strati anatomici del modello di riferimento utilizzato . . . . . 42 4.1 Diverse strutture di controllo del movimento . . . . . . . . . . . . . . 46 4.2 Diversi metodi di skinning . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3 Cattura dei movimenti, sistemi pesanti . . . . . . . . . . . . . . . . . 49 viii
  • 9.
    4.4 Funzionamento internodella Kinect V2.0 Microsoft . . . . . . . . . . 52 4.5 Zona di cattura della Kinect . . . . . . . . . . . . . . . . . . . . . . 52 4.6 Sistema Kinect di cattura dell’utilizzatore . . . . . . . . . . . . . . . 53 4.7 Sticky model dell’utilizzatore . . . . . . . . . . . . . . . . . . . . . . . 55 4.8 Sistema di controllo gerarchico . . . . . . . . . . . . . . . . . . . . . . 58 4.9 Correzione delle articolazioni tramite imposizione di limiti . . . . . . 60 4.10 Confronto fra dati Kinect grezzi e filtrati . . . . . . . . . . . . . . . . 62 4.11 Skinning del modello . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.1 Pipeline del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 5.2 Setup del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.3 Layers del modello utilizzato . . . . . . . . . . . . . . . . . . . . . . . 80 5.4 Interfaccia e interazione del sistema . . . . . . . . . . . . . . . . . . . 81 5.5 Grandezza energetica per identificare la quantità di moto . . . . . . . 84 ix
  • 10.
    Elenco delle tabelle 3.1Complessità geometrica del modello 3D . . . . . . . . . . . . . . . . . 42 5.1 Confronto degli specchi interattivi . . . . . . . . . . . . . . . . . . . . 69 x
  • 12.
  • 13.
    1 – Introduzione 1.1Contestualizzazione L’anatomia è composta da conoscenze complesse, numerose, strutturate, statiche e dinamiche. Capire come l’anatomia funziona e comprendere la sua cinematica è importante per gli studi medici, sportivi ma anche per l’educazione in generale. Nel corso degli anni, diversi supporti di conoscenza hanno visto la luce con lo scopo di rappresentare e strutturare l’anatomia: dai disegni su lavagna, ai libri di anatomia, passando per la tappa fondamentale della dissezione e dei lavori prati- ci sui modelli plastici in 3D. È peraltro difficile imparare la dimensione dinamica dell’anatomia attraverso gli strumenti di apprendimento tradizionali, nozione che è tuttavia essenziale alla formazione dei medici. Per colmare questa mancanza, l’obiettivo che ci si è proposti è quello di sviluppare un sistema tempo reale che permetta di visualizzare il corpo in azione, chiamato «AnatoMimo». 1.1.1 Il progetto AnatoMimo Attraverso AnatoMimo, un qualsiasi utilizzatore, muovendo il proprio corpo, potrà osservare attraverso una resa di immagini e tecniche di interazione adeguate il fun- zionamento dei diversi elementi anatomici messi in gioco all’interno di un’azione di movimento. L’idea consiste nell’animare un modello anatomico 3D (pelle, scheletro, muscoli, organi e sistema vascolare) mimando i movimenti di un utiliz- zatore. Si parla qui di un’applicazione in tempo reale di tipo «specchio interattivo». Supponendo che l’esperienza corporea, nel senso di utilizzare il proprio corpo, possa aiutare chiunque voglia imparare, specialmente uno studente di medicina, nel processo di apprendimento, di comprensione e di memorizzazione [1], si propone d’innovare il campo dei metodi di apprendimento dell’anatomia. Il lavoro svolto è basato su due ipotesi: • La visualizzazione spaziale è fondamentale per la comprensione e l’apprendi- mento di forme 3D articolate complesse [2, 3]. Le tecniche interattive basate sulla visualizzazione spaziale, possono fortemente facilitare la comprensione, la memorizzazione e l’apprendimento del contenuto dinamico complesso [4, 5]. • Il «Somatic Learning» fa riferimento all’idea di apprendere attraverso l’eserci- zio corporeo specificamente elaborato per mettere in collegamento la coscienza e la sensazione dei movimenti: il nostro sistema motore influenza la nostra cognizione [6, 7]. Si parla qui di incorporamento o «embodiment». 2
  • 14.
    1 – Introduzione Attraversoquesto lavoro di tesi, si propone quindi un sistema originale e inno- vativo per l’apprendimento dell’anatomia basato sull’ipotesi che l’interattività offre una migliore connessione tra il corpo dell’utilizzatore e le conoscenze anatomiche pertinenti. 1.1.2 Il gruppo Mimesis Il progetto di sviluppo di questa idea è stato affidato alla squadra Mimesis, di cui ho fatto parte durante uno stage di otto mesi. Mimesis è un gruppo di ricerca dinamico, avente sede a Strasbourg, che fa parte di INRIA. L’Istituto Nazionale per la Ricerca nell’Informatica e nell’Automazione è un isti- tuto nazionale francese per la ricerca focalizzato sull’informatica, la teoria dell’au- tomazione e la matematica applicata. INRIA compie lavori di ricerca sia nell’infor- matica teorica che applicata e in questo processo ha realizzato numerosi programmi tra i quali SOFA (Simulation Open Framework Architecture), che verrà in seguito introdotto più nel dettaglio perché ampiamente utilizzato nel corso di questa tesi. Mimesis lavora su simulazioni mediche in tempo reale, sviluppando tecnologie innovative per l’addestramento, l’assistenza e la guida dei medici. 1.2 Obiettivi Come si è già precedentemente accennato, la messa in opera di un tale approccio passa attraverso la risoluzione di un certo numero di problemi sia tecnici che scien- tifici più o meno padroneggiati nello stato dell’arte. I vincoli che si sono imposti sono i seguenti: il tutto deve essere fatto in tempo reale o in modo interattivo (sin- cronizzato all’azione o immediatamente in seguito alla fine dell’azione); i sensori che permettono la cattura del movimento devono poter essere sufficientemente semplici (ad es.: Kinect, ecc.) per un utilizzo di tipo «grande pubblico». Per quanto riguarda la problematica del tempo reale, quello che si propone qui è più dell’animazione grafica attraverso deformazione del modello piuttosto che della biomeccanica attraverso una simulazione completa dei movimenti. Conoscenze e organizzazione L’anatomia costituisce una risorsa di conoscenze complesse ed estese dove una mol- titudine di dati convivono. L’organizzazione e la strutturazione di tali conoscenze ma anche il loro utilizzo interattivo in tempo reale costituisce una sfida scientifica. Si presenta in questa tesi un approccio innovativo che associa una base di cono- scenze simboliche a una rappresentazione geometrica dell’anatomia, permettendo di ricercare delle informazioni complesse in maniera intuitiva. 3
  • 15.
    1 – Introduzione Nelseguito della tesi, verrà utilizzato l’appellativo «modello portatore di cono- scenze anatomiche» o «modello anatomico di riferimento» un insieme di dati 3D, spesso strutturati secondo un lessico anatomico specifico. In questo caso, è costituito da una mesh di pelle superficiale e da mesh rappresentanti le strutture anatomiche interne (scheletro, organi, ecc.). Cattura tempo reale dei movimenti dell’utilizzatore Nel contesto di AnatoMimo, la semplicità della percezione ha potenzialmente un for- te impatto nell’utilizzabilità globale di AnatoMimo nel contesto dell’apprendimento. Si tratta di permettere la diffusione di questo tipo di sistema al di fuori di una sa- la specializzata dotata di un equipaggiamento di sensori costosi. I sensori semplici sono quindi privilegiati: telecamera di un tablet o di un smartphone, accelerometri, Kinect, ecc. L’idea di questo lavoro è quello di poter visualizzare dei fenomeni anatomici specifici durante il movimento e in tempo reale. La natura delle informazioni in entrata al sistema, potenzialmente abbastanza povera, e il vincolo del tempo reale o quanto meno del tempo interattivo pongono delle vere sfide scientifiche e tecniche. Riprodurre il comportamento delle strutture anatomiche è un compito comples- so ma inevitabile per questo sistema. Conoscenze che permettono di riconoscere, interpretare e utilizzare i movimenti catturati sono utilizzate con lo scopo di definire delle regole anatomiche riguardanti le articolazioni del corpo (asse di rotazione e limiti articolari) per ottenere dei movimenti fluidi e anatomicamente corretti. Integrazione e interazioni Il compito di ritorno visivo e di interazione, dove il corpo dell’utilizzatore serve alla cattura dell’azione, sono molto importanti in questo progetto. Si introduce un approccio innovativo utilizzando sia la cattura tempo reale dei movimenti che un modello anatomico di riferimento organizzato, per la realizzazione di un nodo operazionale di AnatoMimo. Lo scopo è di concepire delle tecniche interattive nel contesto dell’autoappren- dimento di conoscenze anatomiche complesse e dinamiche. AnatoMimo è basato su un certo numero di componenti funzionali che si articolano gli uni sugli altri in un sistema operazionale, presentato in dettaglio in questa tesi. Anche se i metodi di cattura, di simulazione, di resa visiva e interazione sono delle tecniche già studiate, l’integrazione del tutto costituisce in sé una vera sfida scientifica. La pertinenza dello strumento di apprendimento proposto deve essere validata. Per adempiere questo scopo, si è pensato di presentare questo lavoro sotto forma di dimostrazione durante una mostra itinerante in Francia nel 2017, che si chiama 4
  • 16.
    1 – Introduzione “Del’Homo Numericus au Citoyen Numérique” (dall’Homo Numericus al cittadino numerico). 1.3 Pianificazione dell’elaborato Il seguito dell’elaborato di tesi è organizzato come segue: • Il capitolo 2 propone una panoramica dei principali domini che utilizzano l’a- natomia, seguita da un trascorso storico dei supporti d’apprendimento dell’a- natomia, campo a cui si è particolarmente interessati. In seguito si discuterà sull’apporto delle nuove tecnologie per l’apprendimento e in particolare sulla tipologia di specchio interattivo. • Il capitolo 3 spiega il modo migliore per descrivere l’anatomia e il movimento. Si presenterà il modello anatomico di riferimento attraverso le varie scelte fatte. • Il capitolo 4 presenta, attraverso diverse tecnologie più o meno pesanti, i meto- di di cattura del movimento. Si presenterà la tecnologia qui utilizzata (Kinect Windows V2.0) e le principali tecnologie concorrenti. Verrà anche esposto nei dettagli il metodo usato per ottenere dei movimenti anatomicamente corret- ti, insieme al metodo con il quale il movimento dell’utilizzatore influisce sulla modifica e deformazione del modello anatomico di riferimento. • Il capitolo 5 spiega i processi di integrazione dei diversi contributi nel sistema funzionale di AnatoMimo, insieme alle scelte fatte in termini di visualizzazione, di interfaccia e di interazione con il contenuto anatomico. • Il capitolo 6 infine conclude questa tesi, fornendo una visione generale e discu- tendo delle prospettive future. 5
  • 17.
  • 18.
    2 – Statodell’arte 2.1 Introduzione L’anatomia è composta da conoscenze statiche e dinamiche del corpo, che sono uti- li in diversi campi: dal campo pedagogico (ad es.: musei, esposizioni), al campo artistico e della moda, al campo dell’animazione e degli effetti speciali, e tanti al- tri. Certamente le conoscenze anatomiche sono essenziali per il settore medico e paramedico, come anche per la simulazione medicale. La visualizzazione anatomica è stata per tanto tempo riservata alla creazione di un modello mentale del corpo umano con l’intento di migliorare le cure mediche. I medici hanno bisogno di questa rappresentazione per trasferirla sui loro pazienti e quindi applicare le loro conoscenze caso per caso: in funzione del paziente, dell’ope- razione da effettuare, ecc. Si è scelto di presentare qui un trascorso dei diversi settori che attingono alle conoscenze anatomiche, pur non essendo direttamente legati al settore medico e paramedico. 2.1.1 Utilizzo delle conoscenze anatomiche al di fuori del settore medicale Settore grande pubblico: musei ed esposizioni Con lo scopo di comunicare e istruire il grande pubblico, un gran numero di musei presentano degli allestimenti anatomici sotto diverse forme. Ecco qualche esempio rappresentativo. La galleria di anatomia comparata di Parigi presenta uno vicino all’altro un insieme di scheletri di vertebre di diverse specie. Fornisce un’idea generale della statura e della forma dei diversi animali, e permette il confronto tanto sulla struttura generale dello scheletrico quanto sulla forma delle ossa in maniera individuale. Dopo quattro anni di lavoro intensivo, il museo di Toulose espone, in una postura dinamica, 75 scheletri di specie diverse mettendoli come se si potessero scoprirli nel loro ambiente naturale (vedere figura 2.1a). Gli obiettivi di questo muro sono di presentare le diversità morfologiche e comportamentali degli animali. All’interno delle gallerie del Vaticano, la sala dedicata alla storia egizia presenta una mummia a cui sporgono i piedi, le mani e la testa in buono stato (vedere figura 2.1d). Questo allestimento anatomico mostra come i riti culturali e religiosi influissero sull’aldilà ai tempi dei faraoni. L’allestimento anatomico presentato in figura 2.1b permette la visione dettagliata e lo studio del sistema respiratorio mentre la figura 2.1c rappresenta uno stampo delle arterie di una mano adulta eseguita da Gunther von Hagens con dell’acido corrosivo. 7
  • 19.
    2 – Statodell’arte (a) (b) (c) (d) Figura 2.1: Presentazione degli elementi anatomici nei musei, per il grande pub- blico. (a) Muro dei 75 scheletri del museo di Tolosa. (b) Istituto di anatomia - Università di Berna. (c) Gunther von Hagens, stampo delle arterie di una mano adulta. (d) Mummia egizia - musei vaticani. Settore del cinema e degli effetti speciali Nel settore del cinema e degli effetti speciali, le conoscenze anatomiche sono essen- zialmente integrate nel processo di creazione di effetti speciali, soprattutto con lo scopo di aggiungere realismo alle deformazioni della pelle dei personaggi virtuali. Molti film d’animazione della DreamWorks usano un’anatomia interna sempli- ficata per ottenere delle deformazioni della pelle e delle deformazioni facciali reali- stiche. Per il modello di Fiona presentato in figura 2.2a, un sistema composto da 90 muscoli e da uno scheletro semplificato è stato utilizzato. Sono essenzialmente rappresentati i comportamenti dei muscoli e le zone adipose grazie all’utilizzo di una semplice simulazione. Ad un livello più realistico, si può presentare il sistema di simulazione dei tessuti molli sviluppato da Weta Digital e utilizzato per i film come «Avatar» (vedere figura 8
  • 20.
    2 – Statodell’arte 2.2b) o «Il signore degli Anelli». Basato su dati ottenuti da MRI di vere persone, il sistema permette la visualizzazione di deformazioni dovute alle ossa, ai muscoli, ai depositi di grasso o anche ai tendini. Alcuni film utilizzano questo genere di sistema per animare gli animali. In figura 2.2c si può vedere il modello utilizzato per rappresentare la tigre in «La vita di Pi», costituito da uno strato superficiale di pelle, da uno scheletro minimalista e da zone simulate (in verde) che rappresentano i tessuti molli (muscoli, organi, ecc.). (a) (b) (c) Figura 2.2: Utilizzo dell’anatomia per il cinema e gli effetti speciali. (a) Shrek - DreamWorks 2001. (b) Avatar - Weta Digital 2009. (d) La vita di Pi - 2012. 2.2 Storia dei supporti di conoscenza anatomica Dopo aver rapidamente fatto un trascorso dei settori non direttamente legati alla medicina ma che si basano comunque su conoscenze anatomiche, si vorrebbe ora fare uno stato dell’arte dei supporti di conoscenza anatomica esistenti, spiegare il loro contesto di utilizzo e la loro evoluzione verso gli strumenti che si usano oggigiorno. Nel seguito di questa sezione, si richiameranno brevemente le nozioni di «visualiz- zazione». Si vedranno in seguito i diversi tipi di supporto di conoscenza: dall’utilizzo del corpo, passando per le rappresentazioni iconografiche, gli atlanti anatomici, le rappresentazioni in volume fino ad arrivare alle rappresentazioni virtuali. 2.2.1 Visualizzazione Il termine «visualizzazione scientifica» o semplicemente «visualizzazione» si riferisce all’idea di una rappresentazione grafica organizzata che permette di spiegare grafi- camente un concetto o dei dati sperimentali in maniera semplice e intuitiva ad un grande pubblico. Si può prendere come esempio l’utilizzo di grafici per conosce- re le tendenze dei mercati finanziari o l’utilizzo di mappe mentali [8] per aiutare nell’apprendimento di nozioni. 9
  • 21.
    2 – Statodell’arte Lo scopo iniziale della creazione di diversi mezzi di visualizzazione per il corpo umano è di documentare le scoperte scientifiche per poterle trasmettere e conser- vare. Diversi mezzi sono stati utilizzati per visualizzare l’anatomia, ciascuno di essi permettendo di veicolare delle conoscenze e degli approcci diversi, che verranno presentati nel seguito di questa sezione. 2.2.2 Il corpo come supporto Dissezione Si definisce dissezione l’azione di analizzare un corpo, umano o animale, andando a separare minuziosamente le strutture che lo compongono. Il termine dissezione definisce diverse procedure in funzione dell’obiettivo di ricerca: la dissezione pedago- gica1 , la vivisezione2 e l’autopsia3 . Le prime dissezioni fatte sono state le vivisezioni effettuate da medici greci durante la dinastia tolemaica (dal 305 a.C. al 30 a.C.) sui condannati a morte. Dopo l’acquisizione di popolarità nel XIII secolo grazie alla medicina legale, le pratiche di dissezione si sono evolute fino ad oggigiorno in virtù dell’avanzamento tecnologico ma anche per ragioni etiche. Per esempio, sarebbe inconcepibile fare delle vivisezioni su soggetti umani in quest’epoca. Quello a cui si è interessati qui è la dissezione pedagogica. La figura 2.3a mostra il dipinto a olio su tela di Rembrandt realizzato nel 1632 e intitolato “Lezione di anatomia del dottor Tulp”. Questo dipinto venne commissio- nato da una gilda di medici e rappresenta una lezione di anatomia della mano e sui movimenti delle dita. La dissezione pedagogica è effettuata per due scopi: studiare nel dettaglio l’a- natomia e imparare gesti chirurgici. Per delle motivazioni diverse (sociali, etiche, religiose ecc.) la scienza è in costante mancanza di corpi. Ai giorni nostri, i corpi dati alla scienza sono un dono molto raro, una decisione difficile da prendere e che solo pochissime persone la fanno. In più, questi corpi non possono che essere esami- nati una sola volta, e presentano poca variabilità (si tratta spesso di corpi di persone anziane). Questi fattori rendono questa tecnica accessibile unicamente a pochi in- dividui ed è per questo che nuovi strumenti, come la dissezione virtuale, rischiano 1 Dissezione pedagogica: sia per imparare e osservare le strutture anatomiche che per apprendere le procedure mediche 2 Vivisezione: dissezione effettuata su un corpo ancora vivo, spesso con lo scopo di mostrare azioni fisiologiche o patologiche 3 Autopsia: o esame «post mortem», è l’esame medico dei cadaveri, spesso legato alla medicina legale 10
  • 22.
    2 – Statodell’arte (a) (b) Figura 2.3: La dissezione come supporto per l’apprendimento. (a) Lezione di anatomia del dottor Tulp, Rembrandt - 1632. (b) Anatomage - 2012. di occupare un posto sempre più importante per l’apprendimento dell’anatomia tra gli studenti. Si può citare per esempio la tavola di dissezione virtuale Anatomage [9] (vedere figura 2.3b): un tavolo a misura d’uomo che permette di interagire con un modello anatomico 3D corredato da annotazioni. Utilizzando uno scalpello virtuale e dei piani di taglio, questo tavolo permette d’isolare le strutture anatomiche e di navi- gare tra gli strati anatomici più o meno profondi. Il modello utilizzato può essere cambiato in funzione dei bisogni pedagogici (ad es.: modello femminile, maschile, patologico, ecc.). Il mondo virtuale permette l’utilizzo di un modello all’infinito e permette di poter essere confrontato con vari casi alcuni anche molto rari. Conservazione del corpo Con lo scopo di fissare e conservare il corpo per preservarlo per le generazioni future, sono state inventate delle tecniche come la fissazione in formalina o la plastinazione. Si trovano ancora in alcune esposizioni di anatomia dei corpi o parti di corpi umani (come gli organi) conservati nella formalina. Questa tecnica consiste nell’im- mergere il materiale anatomico in un grande volume di liquido di fissazione. La durata della fissazione varia in funzione della grandezza del campione e sfortunata- mente i colori del materiale anatomico si sbiadiscono man mano che il tempo passa. La tecnica di plastinazione è stata introdotta da Gunther von Hagens nel 1977, anatomista tedesco ed autore delle mostre intitolate “Body Worlds” (vedere figura 2.4a. Questa tecnica mira a conservare i tessuti biologici sostituendo i diversi liquidi organici con del silicone. Al contrario della conservazione in formalina, la plastina- zione fissa in modo solido le strutture anatomiche, il che impedisce di poter eseguire 11
  • 23.
    2 – Statodell’arte (a) (b) Figura 2.4: La conservazione dei corpi. (a) Exposition Body Worlds. (b) Human Body Exhibition. in seguito una dissezione o manipolazione indispensabile per l’apprendimento dei gesti chirurgici. Un’altra mostra di dissezioni di corpi umani plastinati, simile alle Body Worlds, è “Body: the exhibition” (vedere figura 2.4b). 2.2.3 Rappresentazioni iconografiche L’illustrazione: tra arte e scienza Nell’ottica di preservare le conoscenze acquisite durante le dissezioni e poterle tra- smettere alle generazioni future, sono cominciate a venire alla luce delle rappresenta- zioni 2D già a partire dal 1492 con il trattato medico medievale chiamato Fasciculus medicinae, eseguito con la tecnica della xilografia (incisione su legno). Grazie a queste illustrazioni molto dettagliate e corredate da annotazioni, Leo- nardo da Vinci (1452-1519) ha fatto molto avanzare la conoscenza nel dominio del- l’anatomia introducendo la sua visione realistica e precisa. Queste illustrazioni ana- tomiche mostrano in maniera oggettiva il funzionamento meccanico e la topologia dell’anatomia. La figura 2.5a presenta due disegni a matita e ad inchiostro realiz- zati da Leonardo da Vinci. Si è ugualmente cimentato nella rappresentazione del cuore, del sistema vascolare, del movimento dell’occhio, di organi interni e del loro funzionamento. Le illustrazioni anatomiche di Andrea Vesalio (1514-1564) sono diventate di rife- rimento per molte generazioni di medici o operatori sanitari. Il suo lavoro dettagliato e completo, basato su ricerche fatte a partire da dissezioni, lo pone come riferimento in termini di anatomia descrittiva. La figura 2.5b rappresenta una pagina delle sua opera in sette volumi pubblicata nel 1543 e intitolata De Corporis Fabrica. Andrea 12
  • 24.
    2 – Statodell’arte (a) (b) Figura 2.5: Le iconografie come supporto di apprendimento. (a) Illustrazioni di Leonardo da Vinci. (b) Illustrazioni di Andrea Vesalio. Vesalio, insieme a Da Vinci, fu uno dei primi a rappresentare gli écorché anatomici4 in posizioni naturali in rapporto al contesto artistico e sociale del Rinascimento. Le presentazioni per strati successivi permette di fare il legame in maniera semplice tra lo strato superficiale della pelle e gli strati più profondi. Ai giorni nostri, degli schemi descrittivi fatti con il gesso sulla lavagna sono ancora spesso utilizzati durante i corsi di anatomia per insegnare i concetti agli studenti. Si possono citare gli schemi di Chuan-Bin-Chung (vedere le figure 2.6). Figura 2.6: Le iconografie temporali fatte con il gesso sulla lavagna come supporto di apprendimento. Illustrazioni di Chuan-Bin-Chung. 4 écorché anatomici: disegno, dipinto o scultura che mostra la muscolatura di un individuo privo del rivestimento della pelle. 13
  • 25.
    2 – Statodell’arte 2.2.4 Atlanti anatomici Il termine atlante anatomico fa riferimento, in primo luogo, alle opere che presentano degli strati successivi del corpo o di una struttura anatomica specifica complessa, per aiutare a comprenderne la forma ed a posizionarla rispetto al resto del corpo o ad altre strutture anatomiche. Spesso le pagine sono intercalate da lucidi in cui sono presenti delle annotazioni per aiutare ad identificare le strutture. Si trovano ugualmente degli atlanti statistici di un segmento del corpo o di un or- gano in particolare che descrivono le differenze trovate tra i vari corpi e la percentuale di apparizione di queste differenze. Nel corso degli anni sono stati sviluppati degli atlanti anatomici di assoluto rife- rimento, come per esempio i libri di anatomia clinica di Pierre Kamina [10]. Questi atlanti, come le illustrazioni, per natura essendo stampati, mancano di interattività. Atlanti anatomici interattivi: web semantico Grazie all’acquisizione di popolarità del web semantico - standardizzazione dei pro- tocolli di condivisione, di lettura e di scambio d’informazioni strutturate - e allo sviluppo della tecnologia WebGL, che permette la visualizzazione in tempo reale di un modello anatomico 3D nella maggior parte dei browser, sempre più atlanti anatomici interattivi sono disponibili in rete. (a) (b) Figura 2.7: Atlanti anatomici interattivi. (a) BioDigitalHuman - 2016. (b) ZygoteBody - 2014. Si presentano in figura 2.7 un insieme di atlanti anatomici interattivi che per- mettono di navigare negli strati anatomici in modo semplice e ergonomico. Spesso, una barra di ricerca è proposta per aiutare l’utilizzatore nella navigazione grazie alla 14
  • 26.
    2 – Statodell’arte creazione di un lessico anatomico. Il RDF5 è il formato di base utilizzato per creare e organizzare i lessici anatomici. Nel 1999, nasce uno dei primi atlanti interattivi con il nome di InnerBODY [11], basato su una rappresentazione 2D del corpo sul piano frontale. È possibile navigare all’interno del modello scegliendo di visualizzare uno specifico sistema (ad es.: sistema circolatorio, sistema muscolare, sistema scheletrico, ecc.) o selezionando un segmento anatomico (ad es.: tronco, bacino, arti inferiori, ecc.) o ancora un’entità anatomica (ad es.: cuore, vena cava, ecc.). Una rappresentazione 3D del corpo completo è stata poi aggiunta per permettere all’utilizzatore di girare intorno al modello anatomico nello spazio. La figura 2.7a rappresenta un progetto di atlante anatomico, basato su una rappresentazione 3D del corpo intero, che funziona sfruttando la tecnologia Bio- DigitalHuman [12], da cui deriva il suo nome. Rispetto agli altri atlanti classici, quest’ultimo permette di poter selezionare delle strutture di interesse corredate da annotazioni e supporti per domande di apprendimento. È ugualmente possibile visualizzare dei video e delle simulazioni preregistrate mettendo in risalto dei com- portamenti fisiologici (ad es: il battito cardiaco) o delle azioni chirurgiche (ad es: chirurgia del labbro e del palato). Il ZygoteBody [13], presentato in figura figura 2.7b, propone lo stesso tipo di servizi che il BioDigitalHuman. Si noti che, anatomicamente parlando, tutti gli atlanti sono un po’ sbagliati: sono incompleti e presentano degli errori difficili da trovare per i non esperti. 2.2.5 Rappresentazioni in volumi Ceroplastica: le statue di cera anatomiche Le statue di cera anatomiche dell’intero corpo o di un segmento specifico, apparse nel XVIII secolo, sono una forma di documentazione in volume che permette di presentare in maniera realistica i risultati delle dissezioni. Gaetano Giulio Zumbo (1656-1701) fu il primo modellista a utilizzare la cera per creare dei modelli anatomici (vedere figura 2.8a). Uno studio fu creato a Firenze nell’edificio del museo La specola [14] con l’idea di creare numerose opere e inviarle nei grandi centri anatomici europei. La creazione di tali modelli era lunga, costosa e per un’elevata precisione e qualità di un solo modello potevano essere necessarie la realizzazione di centinaia di cadaveri come riferimento. La cera colorata, nonostante la sensibilità ai cambiamenti di temperatura, permette di conservare a lungo termine delle informazioni molto precise ma non permette un’esplorazione interattiva come la dissezione. 5 RDF: Resource Description Framework 15
  • 27.
    2 – Statodell’arte (a) (b) Figura 2.8: Le statue di cera come supporto per l’apprendimento. (a) Dettaglio di una statua di cera di Gaetano Zumbo. (b) Venere anatomica di Clemente Susini. Clemente Susini (1754-1814) ha contribuito in questo settore creando dei modelli nella categoria «Veneri anatomiche» (vedere figura 2.8b): statue di cera di donne, a grandezza naturale, le cui costruzioni erano spesso basate sulle illustrazioni come quelle di Vesalio. Per aumentare il realismo, spesso erano utilizzati dei veri capelli e degli occhi di vetro. Queste statue di cera sono state create con lo scopo di demistificare la dissezione tra il grande pubblico. Stampa 3D Ai giorni nostri i manichini anatomici sono pro- Figura 2.9: Manichino anatomico industriale. dotti essenzialmente in plastica e se ne possono tro- vare di industriali, di cui un esempio può essere tro- vato in figura 2.9, o di modelli in serie limitata. La comparsa della stampa 3D ha permesso la per- sonalizzazione dei modelli su un dato individuo per aiutare la pianificazione e l’allenamento preoperato- rio. Per esempio, vengono fatte delle stampe 3D con la tecnologia ColorJet printing (CJP) [15]: a partire da dati MRI un modello 3D unico nel suo genere viene stampato. Questi modelli sono sta- ti presentati durante i CES 2016 da 3D Systems [16]. 16
  • 28.
    2 – Statodell’arte 2.2.6 Rappresentazioni digitali L’utilizzo dello schermo come tramite (ad es: smartphone, tablet, computer) ci riporta verso delle rappresentazioni piane. Malgrado questo, nel quadro numeri- co, le rappresentazioni virtuali permettono l’interazione con l’anatomia, come la condivisione e il riutilizzo all’infinito di uno stesso modello. Imaging biomedico Si chiama imaging biomedico l’insieme dei mezzi di acquisizione e di resa di immagini del corpo umano. Queste tecnologie hanno rivoluzionato la medicina e premetto- no di visualizzare bene sia l’anatomia che alcuni fenomeni fisiologici o metabolici. Esistono una moltitudine di tipi di immagini mediche, basate su diversi fenomeni fisici, ciascuna permettendo la visualizzazione di dati ben precisi. Alcuni tra i tipi più conosciuti sono: • Imaging a risonanza magnetica (MRI), utilizza i campi magnetici per otte- nere dei tagli virtuali del corpo umano secondo i tre piani principali. Permette una buona visualizzazione dei tessuti molli infatti viene spesso utilizzata per studiare il cervello, le articolazioni e i tessuti circostanti, ecc. Questo tipo di dati sono spesso alterati dalla presenza di artefatti dovuti ai movimenti del paziente durante la cattura delle immagini perché la durata di acquisizione di questo tipo di dati è molto lunga. La precisione è funzione del tempo impie- gato per cattura ciascuna fetta anatomica e nel migliore dei casi la distanza tra due strati può scendere al di sotto del millimetro. • Tomografia computerizzata (TC), misura la percentuale di assorbimento dei vari tessuti al passaggio di raggi X, per ottenere delle fette che possono essere studiate in tutti i piani dello spazio come nelle immagini tridimensio- nali. Permette la visualizzazione di strutture anatomiche rigide come le ossa. Attraverso vari mezzi di contrasto, si può ottenere la visualizzazione di vasi sanguigni, apparato digestivo, dischi intervertebrali, ecc. Questa tecnologia è molto rapida (un ampio volume del corpo umano può essere catturato in ma- niera molto precisa in qualche secondo) e le immagini ottenute appartengono a strati distanti tra di loro anche inferiore al millimetro. • Tomografia a emissione di positroni (PET), utilizza dei radiofarmaci per osservare l’organismo a livello cellulare: si parla qui di imaging funzionale e non più morfologico. Permette di misurare nelle tre dimensioni l’attività metabolica o molecolare di un organo specifico o di un tessuto specifico come quello cancerogeno. Come per la MRI, anche la PET è molto lunga e richiede al paziente di rimanere immobile il più a lungo possibile. 17
  • 29.
    2 – Statodell’arte • Ecografia, una delle uniche tecniche di imaging biomedico in tempo reale, sfrutta gli ultrasuoni. È spesso usata per osservare i battiti del cuore o durante la gravidanza per verificare il buono stato di salute del feto. In funzione della frequenza, l’immagine può essere più o meno precisa, e presentare delle strutture più o meno profonde. (a) (b) (c) (d) Figura 2.10: Diversi tipi di immagini mediche. (a) MRI. (b) TC. (c) PET. (d) Ecografia. Strumenti per l’imaging medico Come si è appena detto, esistono una moltitudine di tipi di immagini cliniche, cia- scun tipo avente un formato diverso dalle altre. Non è quindi inusuale, per uno stesso paziente, utilizzare diversi protocolli di imaging medico. Maintz e colleghi [17] propongono un riassunto dei diversi metodi che permettono di allineare tra di loro immagini mediche di diversi formati, o anche metodi per allineare immagini mediche pre-operatorie e post-operatorie. Con lo scopo di rendere migliore la visualizzazione e la comprensione dei dati, molti approcci propongono di generare delle immagini volumetriche a partire da immagini mediche. Utilizzo delle immagini mediche Ai giorni nostri, la resa e la visualizzazione volumetrica di immagini mediche, sono diventate indispensabili per aiutare i clinici nella loro diagnosi e studi preoperatori. Queste rappresentazioni volumetriche permettono anche ai clinici di conoscere lo stato di un paziente senza dover far ricorso ad un’operazione. Tra le applicazioni dell’imaging medico, la diagnosi per pianificazione e la guida di un gesto chirurgico sono tra le più importanti. Anche la simulazione medica- le è ugualmente fondamentale per l’apprendimento del comportamento dei tessuti. Si tratta di simulare in maniera molto realistica il funzionamento o il comporta- mento di una parte del corpo umano. L’efficacia della simulazione come supporto di apprendimento è stata validata nel settore medico attraverso numerosi studi [18, 19]. 18
  • 30.
    2 – Statodell’arte La simulazione medicale può ugualmente aiutare l’apprendimento dei gesti da eseguire durante l’operazione chirurgica senza introdurre rischi per un paziente. Le simulazioni spesso in tempo reale, possono essere molto diversificate: simulazione di vasi sanguigni, di fegato [20], etc. 2.2.7 Conclusione L’apprendimento dell’anatomia implica la comprensione di strutture anatomiche, il loro funzionamento fisiologico e il loro movimento. Queste conoscenze sono indi- spensabili a diversi gradi di complessità e precisione per l’educazione generale, per gli studi sportivi e gli studi i medicina. Come visto precedentemente, i supporti di conoscenze anatomiche che permet- tono la condivione e la diffusione del sapere, sono molto numerosi: dall’utilizzo del corpo all’imaging medicale, passando per le rappresentazioni iconografiche, gli atlan- ti anatomici e le rappresentazioni in volume. Si è anche parlato ugualmente dei loro sviluppi attuali. Si può osservare in tutti i supporti alcune funzioni fondamentali: • contesto: le strutture studiate sono sempre poste nel loro contesto anatomico per una migliore cartografia della conoscenza. • espressione del vivente: le strutture studiate sono sempre illustrate, non come delle strutture fisiche inerti ma come delle strutture vive, con lo scopo di esprimerne il funzionamento e la dinamica. • approccio artistico: le strutture studiate sono corredate da annotazioni o colorate in modo per meglio visualizzarle e cosi assimilarle meglio. Una difficoltà importante che continua a permanere viene dal fatto che risulta difficile illustrare e spiegare l’anatomia in movimento, conoscenza essenziale alla formazione dei medici, a partire da mezzi statici [21]. Con l’avanzare della tecnologia è diventato comune l’uso di smartphone, tablet e computer. Un grande sforzo è stato fatto per trovare dei metodi innovativi che permettano di creare, visualizzare e animare un contenuto di alta qualità per aiutare l’apprendimento. Questi metodi innovativi sfruttano la personalizzazione del con- tenuto, l’interazione, il movimento del contenuto e l’apprendimento intuitivo. Nel- la sezione seguente si presenteranno i progressi tecnologici raggiunti per facilitare l’apprendimento delle nozioni anatomiche e medicali. 19
  • 31.
    2 – Statodell’arte 2.3 Le nuove tecnologie al servizio del settore me- dico La capacità dei chirurghi a creare un modello mentale che mescola le immagini del singolo paziente con le conoscenze anatomiche generali, fa parte del loro saper fare. Per aiutare i medici nella fase di apprendimento e nello studio di casi complessi, sono stati proposti nuovi approcci basati su nuove tecnologie che permettono, per esem- pio, una comprensione dell’anatomia prendendo in conto fenomeni dinamici legati alla produzione di un movimento. Le nuove tecnologie sono basate essenzialmente sui progressi in trattamento di immagini, informatica grafica, visione artificiale e sviluppo di nuovi sensori. 2.3.1 Realtà aumentata Il termine «realtà aumentata» ingloba tutte le interfacce in cui è presente una so- vrapposizione di dati virtuali su degli oggetti reali. Queste interfacce combinano metodi di interazione, di visualizzazione e permettono di inserire delle informazioni in un contesto esterno, utilizzando spesso una scala realistica, per esempio inserendo una struttura anatomica sopra il corpo dell’utilizzatore. Grazie all’avvento della realtà aumentata, un buon numero di applicazioni hanno visto la luce nel settore medico, anche nella visualizzazione e l’apprendimento di conoscenze anatomiche: ci interesseremo solo di queste ultime. Le applicazioni in realtà aumentata nel dominio medico possono essere suddivise in due categorie: le applicazioni pedagogiche (imparare grazie all’interazione) [22] e le applicazioni di aiuto alle procedure mediche [23]. Esistono diversi tipi di interfacce per le applicazioni in realtà aumentata: occhiali per realtà aumentata, proiezione su- gli oggetti, sensori di profondità con schermo, ecc. In figura 2.11 vengono presentate alcune interfacce di realtà aumentata. Gli occhiali «HoloLens» (vedere figura 2.11a), commercializzati da Microsoft, permettono la visualizzazione del contenuto anatomico e potranno diventare in fu- turo supporto per le lezioni in classe. Gli occhiali permettono di girare intorno ad un oggetto virtuale e interagire con quest’ultimo. Con lo scopo di presentare il potenziale di questa tecnologia, Microsoft ha sviluppato un’applicazione chiamata «HoloAnatomy» [24]. Il Virtual-Tee (vedere figura 2.11b) e i sistemi di libri aumentati (vedere figura 2.11c) sono basati su una tecnologia di riconoscimento di forme. Con l’aiuto di un’applicazione su un device portabile (smartphone o tablet), l’utilizzatore può avere accesso ad un contenuto virtuale specifico posizionato nell’ambiente reale. 20
  • 32.
    2 – Statodell’arte (a) (b) (c) Figura 2.11: Realtà aumentata al servizio del settore medico. (a) HoloAnatomy che utilizza le HoloLens. (b) Virtual-Tee. (c) Libro aumentato 4D. Nella sezione seguente si presenterà in maniera più precisa i sistemi che utilizzano dei sensori di profondità per seguire l’utilizzatore, interfaccia che si vuole mettere in atto nell’AnatoMimo. 2.3.2 Lo specchio interattivo Si chiama «specchio interattivo» uno schermo davanti al quale l’utilizzatore potrà vedere e interagire con del contenuto virtuale anatomico spesso sovrapposto sulla sua propria immagine. I criteri di qualità per questo tipo di sistema sono l’interattività e l’integrazione dei dati. L’interattività viene definita grazie ad un’applicazione tempo reale e grazie al monitoraggio (più o meno complesso) dell’utilizzatore: i dati sono spesso legati ad una zona specifica dell’utilizzatore. L’integrazione si definisce attraverso il ri- dimensionamento dei dati ad una scala adatta e attraverso l’inserimento di questi nell’immagine dell’utilizzatore. Gli specchi interattivi sono spesso utilizzati in diversi settori (moda, trucco) ma nel caso di applicazioni anatomiche lo specchio rileva i diversi strati anatomici interni ad un utilizzatore e gli fornisce l’impressione di potere vedere all’interno del suo proprio corpo. Si presenta nel seguito, un insieme di specchi interattivi che sono apparsi in questi ultimi anni. Magic Mirror Dopo diversi anni di ricerca nello sviluppo di strumenti in realtà aumentata per la chirurgia mini-invasiva, il team Mirracle [25], sotto la direzione del professor Nassir Navab, ha cominciato nel 2011 un progetto di specchio magico per visualizzare e interagire con dei dati anatomici. Il «Magic Mirror» [26, 27, 28] è un sistema interattivo che permette la visualizzazione delle conoscenze anatomiche in tempo 21
  • 33.
    2 – Statodell’arte Figura 2.12: Magic Mirror sviluppato dal gruppo Mirracle (2011-2014) reale e basato sul riconoscimento dei movimenti del braccio per navigare tra i vari strati anatomici. Una Kinect PrimeSense è stata utilizzata, insieme alle librerie OpenNi e NITE, per stimare la postura dell’utilizzatore. La figura 2.12 fornisce un esempio di feedback visivo che si può ottenere con questo sistema. Può essere presentato su uno semplice schermo o anche su un muro di schermi, in funzione dei bisogni della dimostrazione. Per avere in qualsiasi momento un effetto di sovrapposizione dell’anatomia sull’utilizzatore, un sistema di posizionamento dei dati viene applicato. Per gestire l’integrazione dei dati anatomici sull’immagine dell’utilizzatore, i dati vengono cerchiati in giallo. Digital Mirror Figura 2.13: Digital Mirror - Museo delle Arti e dei Mestieri a Parigi - 2014 L’allestimento 3D intitolato «Digital Mirror» [29] presentato al Musée des arts et métiers di Parigi da Maître e collaboratori è stato creato con lo scopo di visualizzare in tempo reale l’interno del proprio corpo: scheletro e organi. La visualizzazione si fa con l’aiuto di un’immagine composita del corpo interno creata a partire da diverse immagini mediche: PET, raggi X e MRI. Un modello femminile e un modello maschile sono creati e si alternano grazie ad un algoritmo di determinazione del sesso dell’utilizzatore. 22
  • 34.
    2 – Statodell’arte La figura 2.13 fornisce un esempio di questa dimostrazione. Il feedback visivo si effettua su un insieme di otto schermi di circa 1.65m di altezza ciascuno. L’utiliz- zo di un sensore Microsoft Kinect permette di catturare i movimenti dei segmenti anatomici e quindi deformare rigidamente l’immagine, in sincronia con il corpo del- l’utilizzatore per ottenere una visualizzazione simile in termini di postura. Questo lavoro è stato presentato a Toronto a CHI6 2014. Anatomie Spiegel Figura 2.14: Anatomie Spiegel - http://anatomiespiegel.de - 2015 Presentato al congresso annuale della GMA7 nel 2015 a Leipzig, il progetto «Ana- tomie Spiegel» [30] è stato sviluppato da due studenti, Simon Kirsch e Alexander Borner, supervisionati dal professor Bernd Hanisch. Il sitema «Anatomie Spiegel» permette la visualizzazione di un modello anatomi- co virtuale corpo completo (sistema muscolare, organi, sistema scheletrico, sistema circolatorio). La geometria è modellizzata attraverso l’uso dello strumento di scul- tura 3D ZBrush [31]. Per validare la modellizzazione, gli studenti hanno utilizzato le opere dell’Istituto d’anatomia dell’Università Martin Luther ad Halle. Un modello per ogni sesso è stato presentato e può essere modificato in funzione della scelta dell’utilizzatore. Inoltre i modelli sono corredati da annotazioni. La figura 2.14 mostra un esempio di questa dimostrazione. Il feedback visivo tempo reale viene effettuato su uno schermo le cui dimensioni possono evolvere in funzione delle necessità. L’utilizzo di uno scheletro di animazione dato dal sensore Microsoft Kinect V2.0 permette l’animazione e l’impostazione della postura dell’uti- lizzatore. La profondità (spostamento dell’utilizzatore lungo l’asse sagittale) è anche 6 CHI: Computer-Human Interaction conference 7 GMA: società tedesca di formazione medica 23
  • 35.
    2 – Statodell’arte utilizzata per far comparire e sparire delle strutture anatomiche e quindi navigare intuitivamente all’interno delle conoscenze anatomiche. Sintesi Questa lista è esaustiva al momento della stesura della tesi e ricapitola i principali sistemi che esistono sotto il termine di specchio anatomico interattivo. Si può notare che la più parte di questi sistemi sono basati su dei sistemi di cattura del movimento leggeri (vedere sezione 4.2). Questi sistemi sono spesso rilasciati insieme a un kit di sviluppo, o SDK 8 , che garantisce un semplice accesso alle uscite del sensore. Gli algoritmi e i tipi di dati che vengono forniti dipendono dal tipo di SDK ed è sempre fornito un accesso sia alla mappa di profondità che a quella a colori. 2.4 Conclusione e discussione In un primo tempo, questo capitolo introduce i diversi domini che utilizzano le conoscenze anatomiche (vedere sezione 2.1.1). Si centra il contesto parlando dei diversi supporti di conoscenza anatomica (vedere sezione 2.2) e facendo un breve giro d’orizzonte sulle nuove tecnologie al servizio del settore medicale (vedere se- zione 2.3). Si sono quindi introdotti, in sezione 2.3.2, i sistemi di tipo «specchio interattivo» utilizzati nell’ambito del medicale, simili al sistema AnatoMimo che si vuole sviluppare. 8 SDK: Software Development Kit 24
  • 36.
    ANATOMIA: CONOSCENZE ANATOMICHE EMODELLI 3D 3 Capitolo 25
  • 37.
    3 – Anatomia:conoscenze anatomiche e modelli 3D 3.1 Anatomia umana Nel corso degli anni, sono venuti alla luce una grande quantità di studi sul corpo umano. Alcuni trattando il corpo nel suo insieme attraverso delle conoscenze generali e altri più specifici, trattando di una sola regione del corpo o di una patologia. Ci si interessa in questo caso allo studio del morfotipo: studio e descrizione del corpo a partire dalla sua apparenza esteriore (anatomia delle forme esterne). 3.1.1 Terminologia anatomica Per assicurare una buona comprensione delle descrizioni anatomiche da parte di tutti gli interessati al settore e per convenzione, è stata pubblicata una standardizzazione della terminologia utilizzata in anatomia e fisiologia umana, per la prima volta nel 1998 dalla Federazione Internazionale delle Associazioni degli Anatomisti (IFAA). Il sistema di riferimento anatomico definisce, a partire da una postura anatomica di riferimento1 , diverse posizioni e direzioni nello spazio. Queste dichiarazioni per- mettono di esprimere la posizione e l’orientamento di elementi anatomici rispetto allo spazio del corpo stesso e quindi astrarre il punto di vista dell’osservatore. Questa postura anatomica di riferimento (vedere figura 3.1a) viene descritta nel seguente modo: il soggetto si trova in una postura eretta, i gomiti accostati ai fianchi, i palmi delle mani rivolti all’osservatore, i piedi avvicinati, leggermente divaricati in punta. Per eseguire un’analisi descrittiva di una postura o di un movimento del corpo nella sua totalità, sono stati definiti 3 piani (vedere figura 3.1b) passanti per il centro di gravità del corpo umano e perpendicolari tra loro: • il piano sagittale passa per la linea mediana del corpo e divide in due parti simmetriche: la parte destra e quella sinistra. È in questo piano che si studiano i movimenti come il cammino o la corsa. • il piano frontale divide il corpo in una parte anteriore e una parte posteriore. È in questo piano che si studiano i movimenti come le rotazioni interne o esterne della caviglia. • il piano trasversale divide il corpo in due parti: superiore e inferiore. È in questo piano che si può studiare per esempio la torsione delle spalle rispetto alle anche. Sono ugualmente definiti tre assi (vedere figura 3.1c), rette che rappresentano una direzione o intorno alle quali avviene una rotazione, ciascuno dei quali si situa all’intersezione tra due piani: 1 Nota: a non confondere con la postura di riferimento fisiologico che differisce leggermente 26
  • 38.
    3 – Anatomia:conoscenze anatomiche e modelli 3D • l’asse trasversale è situato all’intersezione del piano frontale con quello trasversale ed è perpendicolare al piano sagittale. • l’asse antero-posteriore è situato all’intersezione del piano sagittale con quello trasversale ed è perpendicolare al piano frontale. • l’asse longitudinale è situato all’intersezione del piano frontale con quello sagittale ed è perpendicolare al piano trasversale. (a) (b) (c) Figura 3.1: Riferimenti anatomici. (a) Postura anatomica di riferimento. (b) Tre piani anatomici: il piano sagittale (in verde), il piano frontale (in rosso) e il piano trasversale (in blu). (c) Tre assi anatomici principali: l’asse trasversale (in rosso), l’asse antero-posteriore (in blu) e l’asse longitudinale (in verde). La profondità anatomica permette di definire una posizione relativa di una strut- tura in esame rispetto alla superficie esterna della pelle. Il termine superficiale in- dica le strutture vicine alla superficie del corpo (ad es.: la pelle è superficiale rispetto ai muscoli). Al contrario, il termine profondo indica le strutture lontani dalla su- perficie. La traslazione di un piano rispetto al proprio asse permette un percorso di strato in strato del corpo: da quello più superficiale al piano più profondo. Per una descrizione più specifica, il corpo umano può essere scomposto in un insieme di segmenti: testa, collo, tronco, arti superiori (braccio, avambraccio e mano) e arti inferiori (coscia, gamba e piede). Questi segmenti sono uniti gli uni agli altri attraverso le principali articolazioni del corpo umano. Si può quindi migliorare la descrizione anatomica attraverso termini di direzione e orientamento come i seguenti: 27
  • 39.
    3 – Anatomia:conoscenze anatomiche e modelli 3D anteriore e posteriore, inferiore e superiore, medio e laterale e infine prossimale e distale. (a) (b) (c) (d) Figura 3.2: Principali direzioni anatomiche. (a) Anteriore e posteriore. (b) Superiore e inferiore. (c) Mediale e laterale. (d) Prossimale e distale. • Si considera come anteriore (vedere figura 3.2a) qualsiasi struttura situata davanti rispetto ad un’altra in relazione all’asse sagittale (ad es.: gli occhi sono anteriori rispetto al cervello); mentre si dice che una struttura è posteriore se questa si trova dietro ad un’altra seguendo l’asse sagittale (ad es.: i reni sono posteriori rispetto al fegato). • Si considera come superiore (vedere figura 3.2b) qualsiasi struttura situata sopra rispetto ad un’altra in relazione all’asse longitudinale (ad es.: il cuore è superiore rispetto allo stomaco); mentre si dice che una struttura è inferiore se questa si trova sotto ad un’altra seguendo l’asse longitudinale (ad es.: il polpaccio è inferiore rispetto alla coscia). • Si considera come mediale (vedere figura 3.2c) qualsiasi struttura situata vicino rispetto all’asse longitudinale del corpo (ad es.: gli occhi sono mediali rispetto alle orecchie); mentre si dice che una struttura è laterale se questa si trova lontana ad un’altra rispetto all’asse longitudinale (ad es.: gli occhi sono laterali rispetto al naso). 28
  • 40.
    3 – Anatomia:conoscenze anatomiche e modelli 3D • Si considera come prossimale (vedere figura 3.2d) qualsiasi struttura situata vicino rispetto al centro di gravità del corpo (baricentro) in termini di artico- lazioni (ad es.: il gomito è prossimale rispetto al polso); mentre si dice che una struttura è distale se questa si trova lontana dal centro di gravità del corpo in termini di articolazioni (ad es.: le caviglie sono distali rispetto alle ginocchia). 3.1.2 Strutture anatomiche Il corpo umano è composto da un insieme di strutture anatomiche, ciascuna delle quali avente una funzione ben precisa. Per esempio il sistema cardiovascolare è un sistema circolatorio a circuito chiuso che assicura il trasporto di sangue dal cuore verso le estremità e i vari organi. Il sistema respiratorio permette lo scambio di gas tra il corpo e l’ambiente esterno. Il sistema nervoso permette una comunicazione rapida tra le diverse parti del corpo attraverso una trasmissione di un potenziale elettrico. Il lavoro svolto in questa tesi si basa sull’anatomia in movimento e in primo luogo ci si concentrerà sull’apparato muscolo-scheletrico, chiamato anche apparato locomotore e composto dal sistema scheletrico, articolare e muscolare (vedere figura 3.3). (a) (b) (c) Figura 3.3: Apparato locomotore o sistema muscolo scheletrico. (a) Sistema scheletrico. (b) Sistema articolare. (c) Sistema muscolare. 29
  • 41.
    3 – Anatomia:conoscenze anatomiche e modelli 3D Il sistema scheletrico Lo scheletro è una struttura solida che sostiene il corpo e protegge gli organi interni ma anche mobile, giocando un ruolo importante nella mobilità del corpo. All’età adulta, lo scheletro è composto da 206 ossa in media, nella più parte costituiscono mani e piedi. Ogni osso ha una forma propria e che è stata modellizzata nel corso dei secoli dalla sua funzione e dal suo posizionamento nel corpo. A seguito di una classificazione morfologica delle ossa, esistono quattro grandi tipi di ossa: • le ossa corte presentano dimensioni nelle tre direzioni pressocché uguali (ad es.: le ossa del carpo che costituiscono il polso). • le ossa piatte presentano due dimensioni predominanti sulla terza (ad es.: la scapola). • le ossa lunghe presentano una dimensione predominante sulle altre due (ad es.: il femore). • le ossa irregolari sono tutte le ossa che non rientrano nelle categorie prece- denti, come la mandibola o le vertebre. Il sistema articolare Le zone di contatto tra due ossa o tra un osso e della cartilagine sono chiamate articolazioni. Nel corpo umano sono presenti circa 360 articolazioni: 86 per il cranio, 6 per la laringe, 66 per la gabbia toracica, 76 per la colonna vertebrale e il bacino, 64 per gli arti superiori e 62 per gli arti inferiori. Ci si interesserà unicamente alle articolazioni tra due ossa. Queste articolazioni sono più o meno mobili in funzione della loro forma e struttura anatomica circostante. Le articolazioni sono costituite da osso e da tessuto connettivo che permette la stabilizzazione dell’articolazione e moderano passivamente le forze trasmesse da una struttura all’altra. In base al movimento che riescono ad esprimere, le articolazioni si suddividono in sinartrosi (superfici articolari immobili), anfiartrosi (articolazioni semi-mobili) e diartrosi (articolazioni che permettono ampi movimenti). Le diartrosi sono quelle di interesse e si possono suddividere a loro volta in cinque forme: • la trocleoartrosi consente movimenti di flessione ed estensione attraverso una rotazione attorno ad un asse (1 g.d.l.); il suo equivalente meccanico è rappresentato da un giunto rotoidale ed è presente nelle articolazioni di gomito, ginocchio, caviglia e interfalangee. • la trocoide consente movimenti di pronazione e supinazione attraverso una rotazione attorno ad un asse (1 g.d.l.); il suo equivalente meccanico è rappre- sentato da un giunto rotoidale ed è presente nell’accoppiamento tra capitello del radio e ulna. 30
  • 42.
    3 – Anatomia:conoscenze anatomiche e modelli 3D • l’articolazione a sella consente movimenti di flessione, estensione, abduzio- ne e adduzione attraverso un movimento angolare (2 g.d.l.); il suo equiva- lente meccanico è rappresentato da un giunto cardanico ed è presente negli accoppiamenti di carpo-metacarpo del pollice e sterno-clavicola. • la condiloartrosi consente movimenti di flessione, estensione, abduzione e adduzione attraverso un movimento angolare (2 g.d.l.); il suo equivalente mec- canico è rappresentato da un giunto cardanico ed è presente nell’accoppiamento radio-carpo. • l’enartrosi consente movimenti di flessione, estensione, abduzione, adduzione e rotazione attraverso un movimento angolare più una rotazione (3 g.d.l.); il suo equivalente meccanico è rappresentato da un giunto sferico ed è presente nell’articolazione dell’anca e nell’accoppiamento scapola-omero. Figura 3.4: I diversi tipi di articolazione nel corpo umano: 1. Trocleoartrosi, 2. Trocoide, 3. Enartrosi, 4. Condiloartrosi, 5. Articolazione a sella Il sistema muscolare Il muscolo, o tessuto muscolare, è un tessuto attivo che permette, attraverso la sua contrazione, il movimento e il mantenimento della postura. In funzione della loro fisiologia, si possono distinguere tre grandi gruppi di muscoli: • I muscoli scheletrici che permettono il movimento vero e proprio 31
  • 43.
    3 – Anatomia:conoscenze anatomiche e modelli 3D • I muscoli lisci che ricoprono generalmente gli organi interni • Il muscolo cardiaco, caso particolare di muscolo scheletrico Il sistema muscolare, composto da circa 600 muscoli, è l’insieme dei muscoli scheletrici. Per il seguito di questo documento, quando si parlerà di muscoli si intenderà muscoli scheletrici, non avendo utilizzato gli altri tipi di muscoli nel corso del lavoro. Un muscolo scheletrico è diviso in tre parti: il tendine di origine attaccato al- l’osso fisso, il centro costituito da fibre muscolari e il tendine d’inserzione attaccato all’osso mobile. Sulla superficie dell’osso si possono distinguere dei piccoli solchi che permettono l’attacamento dei muscoli. 3.1.3 Terminologia di movimento Nel seguito della tesi, ci si interesserà particolarmente dei corpi in movimento. Nella parte del sistema articolare della sezione 3.1.2, si è parlato dei diversi tipi di arti- colazioni nel corpo umano. Una terminologia specifica è stata messa in pratica per descrivere i movimenti di queste articolazioni e le figure 3.5 e 3.6 illustrano l’insieme di questi movimenti. Figura 3.5: I diversi tipi di movimenti nel corpo umano: 1. Flessione, 2. Esten- sione, 3. Abduzione, 4. Adduzione, 5. Circonduzione, 6. Rotazione, 7. Rotazione esterna, 8. Rotazione interna. La flessione permette di piegare un segmento del corpo su un altro attraver- so la diminuzione dell’angolo a livello dell’articolazione tra i due segmenti presi in considerazione. Si prenderà come esempio la flessione del ginocchio che consiste nella dimuzione dell’angolo formato tra la coscia e la gamba. L’estensione permet- te a due segmenti consecutivi di essere uno il prolungamento dell’altro attraverso 32
  • 44.
    3 – Anatomia:conoscenze anatomiche e modelli 3D l’allungamento dell’angolo a livello dell’articolazione. Si prenderà come esempio l’e- stensione del gomito che consiste nell’aumento dell’angolo formato tra il braccio e l’avambraccio, che ha come effetto l’allineamento dell’ulna e dell’omero. In funzione dell’articolazione, è possibile che i termini siano invertiti: per esempio nell’estensione e flessione della spalla si parlerà di antepulsione e retropulsione. Guardando il corpo nel piano frontale, si definisce con abduzione il movimento di rotazione laterale quando i segmenti si allontanano dall’asse longitudinale. Si può prendere come esempio l’abduzione del braccio. Al contrario, l’adduzione corrisponde al movimento di rotazione laterale che permette il riavvicinamento dei segmenti verso l’asse longitudinale. Si può prendere come esempio l’adduzione del braccio. La circonduzione è il movimento che permette all’estremità distale di un seg- mento di descrivere un cerchio, combinando flessione/estensione e abduzione/addu- zione dell’articolazione. Le articolazioni che permettono la circonduzione sono di tipo sferico come l’articolazione della spalla o dell’anca. Si parla di rotazione di un segmento anatomico quando questo gira intorno al suo asse longitudinale. Quest’asse longitudinale attraversa il segmento da un capo all’altro per collegare le due estremità del segmento. La rotazione esterna defini- sce la rotazione secondo la quale l’osso si allontana della linea mediale del corpo. Si può prendere come esempio la rotazione esterna dell’anca . Al contrario, la rota- zione interna definisce la rotazione attraverso la quale l’osso si avvicina alla linea mediale del corpo. Si può prendere come esempio la rotazione interna dell’anca. Nel caso dell’articolazione della caviglia, il termine eversione è utilizzato per parlare della rotazione esterna e il termine inversione è utilizzato per definire la rotazione interna. Il termine pronosupinazione identifica il movimento di rotazione di un seg- mento del corpo rispetto ad un altro. Per l’avambraccio, si parla di pronazione quando si effettua una rotazione interna e una supinazione quando si effettua una rotazione esterna. L’esempio classico è quello dell’avambraccio infatti il movimento relativo tra il radio e l’ulna permette la pronazione e la supinazione della mano. 3.2 Rappresentazione anatomica Nel contesto del progetto AnatoMimo, la possibilità di poter interagire attivamente e illimitatamente con il modello portatore di conoscenze anatomiche impone l’utilizzo di un modello anatomico digitale. I progressi dell’informatica sia a livello dei concetti che della loro messa in opera hanno suscitato lo sviluppo di numerose applicazioni destinate ai ricercatori, medici o al grande pubblico. 33
  • 45.
    3 – Anatomia:conoscenze anatomiche e modelli 3D Figura 3.6: I diversi tipi di movimenti nel corpo umano: 1. Inversione, 2. Eversione, 3. Pronazione, 4. Supinazione. In questa sezione verranno approfonditi i concetti di modello anatomico digitale, le sue possibili rappresentazioni e quale tra queste è stata scelta nel corso dello svolgimento della tesi. 3.2.1 Modelli anatomici di riferimento A seconda del settore e dello scopo ricercato, le necessità in termini di modello anatomico di riferimento possono essere molto diverse: alcuni hanno bisogno di uno strato superficiale di pelle e altri hanno bisogno anche dell’anatomia interna. Dopo aver introdotto brevemente il concetto di «mesh», si presenteranno in seguito i diversi modelli di riferimento corrispondenti a queste due necessità. Mesh Una mesh poligonale, anche detta maglia poligonale, è la discretizzazione spa- ziale di un corpo continuo, o anche, una modellizzazione geometrica di un dominio attraverso elementi finiti. L’obiettivo di realizzare una mesh è quello di procedere ad una semplificazione di un sistema attraverso un modello che rappresenta tale sistema ed eventualmente l’ambiente esterno, nell’ottica di simulazioni di calcolo o di rappresentazioni grafiche. Una mesh è definita dal suo sistema di riferimento, dai vertici che la costituiscono (caratterizzati da coordinate) e da un politopo2 che 2 Politopo d-dimensionale: è l’analogo di un poligono nel piano (d=2) e di un poliedro nello spazio (d=3) 34
  • 46.
    3 – Anatomia:conoscenze anatomiche e modelli 3D attraverso i suoi spigoli unisce n diversi vertici. Una mesh può essere caratterizza- ta dalla sua dimensione (tipicamente 2D o 3D), dal suo volume, dalla sua finezza (superficie o volume medio dei poligoni che compongono la mesh), la geometria dei politopi (triangoli, parallelogrammi, rettangoli, quadrati per i poligoni in 2D e te- traedri, prismi, parallelepipedi, cubi per i poliedri in 3D) e il grado dell’elemento (grado del polinomio che viene utilizzato per descrivere gli spigoli degli elementi; nel caso di elementi finiti, rappresenta anche il grado dei polinomi di interpolazione). Nel caso in cui i politopi abbiano spigoli rettilinei e facce piane, si parla di mesh «lineari», mentre si chiamano mesh «quadratiche» nel caso in cui gli spigoli siano curve (definite da tre punti: i due estremi e il punto medio). Le mesh quadratiche permettono di descrivere più fedelmente la frontiera dell’oggetto ma si aumenta il numero di vertici necessari. Si parla di mesh «cubiche», nel caso in cui gli spigoli siano costituiti da tre segmenti. Si può vedere in figura 3.7a un esempio che riassume questi concetti. La discretizzazione del dominio attraverso geometrie primitive definisce la forma di un oggetto poliedrico in computer grafica e nell’analisi agli elementi finiti, appros- simando cosi il comportamento del solido con quello dei poliedri che lo compongono. Nel contesto di AnatoMimo, le mesh, che sono state utilizzate, hanno unicamente lo scopo di fungere da rappresentazioni grafiche digitali dei vari tessuti umani. Non sono state eseguite analisi agli elementi finiti per dedurre il comportamento degli elementi in gioco. In figura 3.7b viene rappresentato un cuore in modalità wireframe, ovvero un tipo di visualizzazione che evidenzia solo gli spigoli di un solido, rendendo trasparente tutto il resto. (a) (b) Figura 3.7: Esempi di mesh. (a) Diversi tipi di elementi che compongono le mesh. (b) Mesh di un cuore in wireframe. 35
  • 47.
    3 – Anatomia:conoscenze anatomiche e modelli 3D Strato superficiale di pelle Esistono diversi metodi per ottenere una superficie esterna di pelle: creazione di mesh alla mano o per generazione automatica. Per la creazione alla mano, dei sof- ware di modellizzazione 3D (tra i quali Blender [32]) o di scultura (tra i quali ZBrush [31]) sono utilizzati. Per la generazione automatica si tratta spesso di scannerizzare una persona e ricostruire la sua pelle a partire da i dati recuperati (pelle parziale, nuvola di punti, ecc.) Esistono diversi sistemi, più o meno pesanti, per scannerizzare la pelle di un utilizzatore. Ciascun tipo di sistema di acquisizione fornisce dei risultati più o meno realistici, spesso in funzione del numero e della qualità dei sensori di acquisizione. (a) (b) Figura 3.8: Scanner di un utilizzatore: pelle user-specific. (a) Light Stage 6 [33]. (b) Scanner a partire di un sensore leggero. In figura 3.8a viene presentato il sistema Light Stage 6 [33], composto da teleca- mere ad alta risoluzione e un insieme di sorgenti luminose che permettono la cattura di un utilizzatore (corpo intero o semplicemente solo il viso) sotto diverse condizioni di illuminamento. Questo permette di creare un campo d’illuminamento della pelle che renderà possibile ottenere una texture3 della pelle fotorealistica [34]. La figura 3.8b presenta una soluzione per scannerizzare il corpo di un utilizzatore attraverso l’uso di un sensore di profondità. Quattro nuvole di punti parziali (posi- zioni 3D e colori) sono catturati e poi assemblati per generare una mesh texturata del corpo intero dell’utilizzatore. Per ottenere delle mesh più generiche, sono nati degli approcci con delle basi di dati. Questi permettono, a partire da un gran numero di mesh, di generare dei modelli statistici, basati su delle misure antropomorfiche indotte. 3 Texture: un’immagine bidimensionale che viene riprodotta su una o più facce di un modello poligonale tridimensionale 36
  • 48.
    3 – Anatomia:conoscenze anatomiche e modelli 3D Nasce nel 2005 SCAPE [35], una delle prime basi di dati ma anche la più utilizzata (vedere figura 3.9a). Raggruppa due set di dati: il primo è composto da 37 mesh di persone diverse in posizioni simili; il secondo è composto da 70 mesh di una stessa persona in diverse posizioni. La cattura della mesh si esegue grazie a 50-60 marker e uno scanner Cyberware WBX corpo intero che cattura simultaneamente quattro nuvole di punti parziali. La base di dati Dyna [36] è un’estensione di SCAPE e permette la deformazione del corpo intero basandosi non più su delle posizioni statiche ma su dei dati dinamici, prendendo in considerazione la deformazione dei tessuti molli sottostanti alla pelle. Si può anche citare la base di dati FAUST [37], composta da 300 mesh di 10 persone in posizioni molto diverse (vedere figura 3.9b). Un approccio multi camera è stato utilizzato per catturare la geometria. (a) (b) Figura 3.9: Database di dati composti da un insieme di mesh della superficie della pelle. (a) Database SCAPE [35]. (b) Database FAUST Anatomia interna Esistono diversi modi per ottenere un modello di riferimento dell’anatomia inter- na: utilizzando direttamente il corpo (con preparati istologici), utilizzando delle immagini mediche o utilizzando delle opere anatomiche (illustrazioni, foto). Si chiama preparato istologico una porzione di tessuto animale o vegetale adatta ad essere analizzata tramite microscopio ottico o elettronico. Dopo il taglio, le strisce sottilissime vengono colorate e fissate con della resina o della formalina per evitare la decomposizione. Si può citare la costruzione e la messa in opera di «Visible Human Project» [38] negli Stati Uniti, il progetto di atlante radiologico «VOXEL MAN 3D Navigator» [39] e il progetto coreano «Visible Korean Human». Alcuni metodi sfruttano le immagini mediche per ricostruire dei corpi completi o dei sistemi specifici [40]. Si tratta spesso, in un primo momento, di segmentare le immagini mediche per separare le strutture anatomiche le une dalle altre e quindi ottenere il contorno delle strutture. Questo settore è molto vasto in termini di metodi ma il fatto di segmentare automaticamente immagini mediche risulta ancora molto difficile. 37
  • 49.
    3 – Anatomia:conoscenze anatomiche e modelli 3D Sim4Life [41] è un insieme di strumenti per la simulazione. Utilizza come modelli di riferimento la popolazione virtuale VIP 3.0 [42], composta da modelli di ogni tipo (donne e uomini medi, bambini, obesi, ecc.) Questi modelli di riferimento sono stati costruiti a partire da immagini mediche. La soluzione che utilizza opere anatomiche consiste nel modellizzare alla mano l’insieme della geometria attraverso software di modellizzazione 3D come Blender [32] o di scultura 3D come ZBrush [31]. Per esempio si può prendere come esempio lo Zygote [43], modello di riferimento completo che propone un modello femminile e maschile (vedere figura 3.10a). Il modello Adrienne [44], proposto dall’azienda Ziva Dynamics per la realizzazione di animazioni foto-realistiche nel settore del cinema (vedere figura 3.10b), contiene tutte le strutture anatomiche necessarie per definire la forma e il movimento del personaggio: sistema scheletrico, muscolare, pelle, tessuti connettivi. Per creare la geometria dell’anatomia interna gli autori si basano su dei dati MRI come standard di riferimento. Per quanto riguarda la superficie della pelle e della sua texture, utilizzano un sistema di cattura. Un sistema di allineamento è utilizzato per far combaciare l’anatomia interna con la struttura della pelle esterna. (a) (b) Figura 3.10: Modellizzazione di modelli anatomici alla mano. (a) Modello Zygote [43]. (b) Modello Adrienne [44]. 3.2.2 Tipi di dati e livello di dettaglio Nella sezione 2.2, si è discusso dei diversi tipi di supporto per le conoscenze anatomi- che. Si è potuto vedere che i tipi di dati presentati sono dipendenti dalle conoscenze che si vuole comunicare. 38
  • 50.
    3 – Anatomia:conoscenze anatomiche e modelli 3D Per definire il formato ottimale dei dati anatomici, si sono determinati due punti critici: la postura e l’orientamento del corpo in funzione del punto di visto dell’osser- vatore ma anche la postura e l’orientamento dei segmenti che compongono il corpo in funzione della posizione di riferimento, descritta in sezione 3.1. Nel caso di una visualizzazione statica, un modello di riferimento 2D è auspi- cabile. Per limitare la complessità, è sufficiente limitare il numero di posture e di orientamenti del corpo e dei segmenti. Nel caso di questo lavoro, ci si propone di proporre all’utilizzatore una visualizzazione anatomica in movimento che è portata a cambiare postura e orientamento tanto quanto il corpo ne permette. Si è quindi scelto di utilizzare un modello anatomico di riferimento in 3D. In funzione dell’utilizzazione che se ne si vuole fare, è possibile rappresentare l’anatomia secondo diversi criteri di qualità dal punto di vista della forma e della resa delle geometrie: • l’esattezza nella forma fa riferimento al modo di rappresentare un ogget- to permettendo ad altri di poterlo poi riconoscere e identificare. Il livello di esattezza può essere più importante in alcune zone di interesse (ad es: intorno alle articolazioni). Rispetto alla forma, si possono notare qualche elementi im- portanti: curve al limite, volumi, buchi, punte e punti di contatto tra oggetti. L’esattezza nella forma può impattare i seguenti criteri: livello di dettaglio, risoluzione geometrica e complessità topologica. • il livello di dettaglio è più o meno importante in funzione dell’applicazione che si vuole fare. Per esempio, se si vuole mostrare lo scheletro completo, non è necessario visualizzare i pori delle ossa. Tuttavia, nel caso di un primo piano su un singolo osso questi dettagli potrebbero essere interessanti. In alcune alcune applicazioni, può essere necessario cambiare il livello di dettaglio in funzione della distanza di un oggetto. Il livello di dettaglio può impattare i seguenti criteri: risoluzione geometrica e complessità topologica. • ad alta risoluzione, la mesh è voluminosa e sarà difficile utilizzarla per delle applicazioni in tempo reale. Tuttavia, una tale risoluzione geometrica per- mette di avere della finezza nella mesh e quindi ottenere dei degli interessanti. La complessità topologica si riferisce alla consistenza della geometria di un oggetto: presenza o meno di buchi nella geometria che non dovrebbero esiste- re (artefatti). La risoluzione geometrica e la complessità topologica possono impattare i seguenti criteri: esattezza della forma e livello di dettaglio. • il realismo e il contesto visivo fanno riferimento all’oggetto rispetto quelli che lo circondano e alla resa di questo. Si hanno per esempio i criteri di messa in scala o di piazzamento nello spazio rispetto al contesto. La resa può esse- re diversa in funzione dell’applicazione alla quale l’oggetto è destinato. Per 39
  • 51.
    3 – Anatomia:conoscenze anatomiche e modelli 3D esempio, si utilizzerà una rappresentazione schematica per spiegare un mecca- nismo, si darà risalto ad alcuni oggetti colorandoli in maniera non realistica per rappresentare una nozione pedagogiche e si utilizzerà un oggetto texturato con una gestione delle ombre per rendere l’oggetto foto-realistico. (a) (b) (c) Figura 3.11: Diversi criteri di astrazione per il sistema scheletrico. (a) Vi- sualizzazione dei volumi, attraverso il mooc FOVEA [45]. (b) Il modello di riferimento utilizzato. (c) Schema descrittivo dei tessuti connettivi del bacino (http://www.corpshumain.ca). Ogni rappresentazione è adattata alla visualizzazione o all’apprendimento di no- zioni diverse. La rappresentazione scelta è quindi funzione delle informazioni che si vuole trasmettere. Si può vedere questo concetto messo in atto in figura 3.11 che rap- presenta diversi livelli di astrazione per il sistema scheletrico. La rappresentazione schematica proposta in figura 3.11a da [45, 46] permette una visualizzazione globale delle forme e delle loro orientazioni, e quindi offre una migliore comprensione dei volumi. La visualizzazione realistica semplificata proposta in figura 3.11b è quella che si è scelto di adottare poiché mostra sufficientemente dettagli per capire punte e buchi delle mesh. Nel frattempo rimane sufficientemente semplice per essere facil- mente manipolabile sempre rimanendo sufficientemente precisa per lo studio delle forme delle strutture anatomiche e della loro morfologia. La figura 3.11c propone una resa foto-realistica dove si può osservare il lato rugoso dell’osso dovuto alle sue asperità. Ci si concentra ora sui diversi livelli di astrazione possibili per il sistema muscola- re (vedere figura 3.12). La rappresentazione dei muscoli attraverso le linee di azione (muscoli 1D) (presentato in figura 3.12a) permette una visualizzazione dei muscoli superficiali e dei muscoli profondi insieme alle loro posizioni di inserzione sullo sche- letro. I muscoli semplificati proposti da Maya Muscle [47, 48] (vedere figura 3.12b), che permettono la visualizzazione dei volumi muscolari, sono utilizzati per ricreare le deformazioni muscolari e applicarle alla superficie della pelle. Le figure 3.12c e 3.12d 40
  • 52.
    3 – Anatomia:conoscenze anatomiche e modelli 3D forniscono una visualizzazione un po’ più realistica sottolineando le fibre muscolari o ancora permettendo la visualizzazione delle diverse parti del muscolo. Si è scelto come per il sistema scheletrico di presentare i muscoli nella loro forma più realista ma lasciando una topologia semplice (geometria liscia) per guadagnare velocità nel ritorno visivo. (a) (b) (c) (d) Figura 3.12: Diversi criteri di astrazione per il sistema muscolare. (a) Rappre- sentazione dei muscoli attraverso le linee di azione. (b) Muscoli Maya, dell’artista Jonathan Chien su Behance. (c) Modello di riferimento utilizzato. (d) Modello Zygote a cui sono assegnate delle texture. 3.2.3 Il modello anatomico di riferimento utilizzato Ottenere un modello anatomico completo di riferimento è un compito difficile. Si è parlato nella sezione 3.2.1 di un insieme di modelli esistenti. Per il modello utilizza- to in questo progetto, si è scelto l’utilizzo di Zygote [43], un modello di riferimento completo modellizzato da degli artisti. È composto da un modello di sesso maschile e da uno di sesso femminile. Dal punto di vista anatomico, esiste un insieme di differenze tra l’uomo e la donna, soprattutto differenze a livello delle strutture ana- tomiche, che influenzano le proporzioni globali delle parti del corpo. Per semplificare il lavoro, è stato scelto di fare un’astrazione da queste diversità tra i due modelli, andando a lavorare su un modello anatomico unisex. Il modello anatomico utiliz- zato è costituito da un sistema muscolo-scheletrico, da diversi organi, dal sistema cardiovascolare e dalla pelle (vedere 3.13). 41
  • 53.
    3 – Anatomia:conoscenze anatomiche e modelli 3D (a) (b) (c) (d) (e) Figura 3.13: Diversi strati anatomici del modello di riferimento utilizzato. (a) Pelle. (b) Sistema muscolare. (c) Sistema scheletrico e articolare. (d) Organi. (e) Sistema cardio-vascolare. Tra i diversi criteri di qualità evocati in sezione 3.2.2, si è scelto di diminuire la risoluzione geometrica per ottenere una mesh più leggera e quindi più facile a utilizzare, permettendo una visualizzazione tempo reale degli strati anatomici del corpo intero. Numero di vertici Zygote Modello utilizzato Sistema scheletrico 326 012 86 315 Sistema muscolare 326 970 89 665 Sistema vascolare 459 047 51 801 Pelle 45 079 28 515 Organi 123 273 43 172 Tabella 3.1: Complessità geometrica del modello 3D utilizzato rispetto al Zygote La tabella 3.1 fornisce qualche numero per conoscere l’ordine di grandezza del- le mesh che costituiscono gli strati anatomici. Si può vedere che la diminuzione della risoluzione delle mesh permette di dividere per 5 circa il numero di punti e triangoli per il modello completo. Questi ordini di grandezza sono dipendenti dalla complessità topologica: si è scelto di diminuire la risoluzione geometrica fino a che 42
  • 54.
    3 – Anatomia:conoscenze anatomiche e modelli 3D le modifiche eccessive nella complessità topologica non erano visibili ad occhio nu- do. La topologia del sistema cardiovascolare è molto complessa e questo spiega la semplificazione minimalista apportata alla sua risoluzione geometrica. 43
  • 55.
    CATTURA E RESA DELMOVIMENTO 4 Capitolo 44
  • 56.
    4 – Catturae resa del movimento Per la creazione di uno specchio anatomico interattivo, si vuole poter studiare e visualizzare la dimensione dinamica dell’anatomia attraverso dei fenomeni anatomici specifici come movimenti relativi tra due ossa unite in una stessa articolazione. Questo capitolo inizia con una sezione che introduce come in computer grafica viene definito il movimento e gli elementi necessari per riprodurlo. Nel seguito verranno specificati i metodi che sono stati utilizzati, nel contesto del progetto AnatoMimo, per trasmettere dinamicità al modello anatomico 3D. 4.1 Movimenti e deformazioni in computer grafi- ca In computer grafica, è possibile indurre il movimento in due modi: • con una sequenza di oggetti: mostrare un oggetto diverso per ogni passo tem- porale fornisce l’idea di movimento. Questo approccio è basato sull’idea di ricostruire la mesh ad ogni passo di integrazione. • con un solo oggetto: spostare o deformare un oggetto a ogni passo temporale e seguendo uno schema ben preciso. Esistono due tipi di corpi: i corpi rigidi come le ossa e i corpi molli come i muscoli. Nel caso di un corpo rigido, uno stesso vettore di spostamento (6D: 3 traslazioni e 3 rotazioni) si applica a tutto l’oggetto mentre nel caso di un corpo molle alcune sottoparti dell’oggetto possono spostarsi le une rispetto alle altre. Nel seguito del capitolo si continuerà unicamente con la trattazione dell’induzione del movimento con un solo oggetto. In computer grafica, per definire un movimento, sono essenziali tre elementi: la struttura di controllo, l’algoritmo di skinning e il metodo per indurre il movimento. 4.1.1 Struttura di controllo Per legare delle sottoparti di un oggetto o diversi oggetti tra di loro, sono stati messi in atto delle strutture di controllo che permettono di definire dei percorsi di movimento in maniera semplice e intuitiva. Esistono diversi tipi di struttura di controllo tra le quali si possono citare: • le scheletro di controllo, è la struttura più utilizzata in animazione 3D per ma- nipolare degli animali o dei personaggi umanoidi. La sua struttura è costituita da un insieme di sistemi di riferimento articolari (posizione e orientamento) 3D attaccati gli uni agli altri con un ordine gerarchico, come in robotica (ad es: l’articolazione del gomito è figlia dell’articolazione della spalla). Per una 45
  • 57.
    4 – Catturae resa del movimento (a) (b) (c) (d) Figura 4.1: Diverse strutture di controllo del movimento. (a) Scheletro di ani- mazione [49]. (b) Curve di deformazione. (c) Linee d’azione. (d) Gabbia di controllo. migliore visualizzazione della gerarchia, i legami tra i sistemi di riferimento sono spesso rappresentati in maniera schematica con dei bastoncini. Si noti che la complessità della struttura, come la quantità dei sotto-oggetti necessari, è dipendente della precisione dei movimenti che si vuole poter ottenere. Per esempio, la figura 4.1a rappresenta una struttura articolare che non permette il piegamento delle dita. La struttura si utilizza andando ad applicare delle rotazioni a livello dei sistemi di riferimento articolari e viene spesso definita manualmente, riferimento dopo riferimento. • la curva di controllo, o curva di deformazione, è una struttura che si sta sem- pre più sviluppando. Si tratta di definire una curva in 3D (composta da un insieme di maniglie di deformazioni). Il numero di maniglie è dipendente dal- la precisione voluta nella deformazione. La figura 4.1b presenta questa curva permettendo di deformare la schiena e la testa di un personaggio. La ridefini- zione di questa curva e la preservazione di volume fanno in modo di indurre il movimento. La figura 4.1c raffigura un altro tipo di curva di controllo che viene chiamata linea d’azione e rappresenta la linea che percorre il personaggio e definisce la sua dinamica. • la gabbia di controllo, o griglia di deformazione, è utilizzata per dare degli effetti elastici ai personaggi applicando deformazioni volumetriche. Come mo- strato in figura 4.1d, viene presentata sotto forma di una struttura topologica semplice e deformabile. Più la struttura è complessa e più permetterà de- formazioni dettagliate. Per controllare la struttura, basterà all’utilizzatore di tirare su uno o più vertici di questa. 46
  • 58.
    4 – Catturae resa del movimento 4.1.2 Skinning Con il termine skinning si definisce il metodo impiegato per associare le strutture di controllo e le sottoparti di un oggetto insieme. L’idea è quella di definire come le modifiche applicate alla struttura di controllo si ripercuoteranno sulla geometria dell’oggetto. I primi metodi di skinning geometrico in tempo reale che sono stati sviluppati sono dei metodi molto semplici, come il metodo molto conosciuto del «Li- near Blend Skinning» (LBS) [50, 51] che associa a ciascuna sottoparte di un oggetto da uno a quattro elementi della struttura di controllo in modo da poter anima- re l’oggetto (vedere figura 4.2b). Tuttavia questa tecnica comporta degli artefatti ben conosciuti come l’effetto carta di caramella (riduzione della mesh in un punto quando la mesh si torce) e il crollo del gomito (perdita di volume a livello di una articolazione). L’approccio sviluppato da Kavan e colleghi [52], il «Dual Quaternion Skinning» (DQS), permette grazie alla sua non linearità di evitare alcuni artefatti del LBS (vedere figura 4.2c). In più questo approccio è facile da implementare ed è facile passare da LBS a DQS. I metodi di skinning pseudo-fisico si basano su delle proprietà fisiche della pelle umana (materiale elastico) per ottenere delle deformazioni più realistiche. Questi metodi danno dei risultati molto soddisfacenti ma impiegano spesso molto più tempo di calcolo. (a) (b) (c) Figura 4.2: Diversi metodi di skinning geometrico. (a) Definizione di pesi dello skinning rispetto alla struttura di controllo. (b) Metodo del linear blend skinning (LBS). (c) Metodo del dual quaternion skinning (DQS). Definizione dei pesi dello skinning Si chiamano pesi dello skinning la ponderazione che definisce per ciascun punto di una mesh, gli elementi della struttura di controllo che andranno a controllarlo e in che misura (vedere figura 4.2a). Un punto può essere influenzato da uno o 47
  • 59.
    4 – Catturae resa del movimento più elementi della struttura e per semplificare le ponderazioni, si associa spesso un vertice della mesh ad un massimo di quattro elementi della struttura. Queste influenze possono essere definite alla mano o automaticamente con diversi algoritmi, molti dei quali si basano sulla distanza dei punti della mesh dalle strutture di controllo. Per esempio, nel software di modellizzazione Blender, l’influenza di ciascun controllore può essere definita automaticamente e viene presentata sotto forma di una texture modificabile in una scala a colori: in rosso i punti che sono totalmente influenzati e in blu quelli che non lo sono per nulla. 4.1.3 Induzione del movimento Nel quadro del corpo umano, esistono due tipi di effettori motori che permettono di coprire i modi di espressione e movimenti corporali: i corpi articolati e i corpi deformabili. Questi concetti, che inducono il movimento, utilizzano il tempo come unità di misura. • Si definisce «corpo articolato», l’insieme di più elementi di controllo (spesso dei corpi rigidi 6D) in movimento, legati da delle articolazioni. Si chiama «articolazione» il legame che limita il movimento relativo tra due segmenti del corpo; i diversi tipi di articolazione sono presentati in sezione 3.1.2. • Si definisce «corpo in movimento», un corpo che si sposta rispetto ad un punto fisso dello spazio (spostamento assoluto) o rispetto ad un altro corpo (spostamento relativo). • Si definisce «corpo deformabile» un’entità anatomica che cambia forma in funzione della postura del corpo umano: fenomeno dello scivolamento delle entità (organi, muscoli, etc.) gli uni sugli altri. A seconda del settore di interesse, i bisogni in termini di movimento non sono gli stessi: per le applicazioni biomedicali si cerca di riprodurre e validare i fenomeni anatomici specifici mentre nel settore del cinema si cerca piuttosto a modellizzare l’effetto visivo del fenomeno, per ottenere una deformazione realistica della pelle. Ne è il caso, per esempio, del fenomeno della contrazione muscolare, spesso utilizzata per ottenere e migliorare le deformazioni della superficie della pelle. 4.2 Motion capture attraverso telecamere RGB- D Si presenterà qui più in dettaglio quello che riguarda il metodo della «cattura del movimento», poiché utilizzato in questo progetto. 48
  • 60.
    4 – Catturae resa del movimento Si chiama cattura del movimento1 una tecnica che permette di registrare le posi- zioni e le rotazioni dei segmenti di un soggetto (ad es.: oggetto, animale, umano) nel corso del tempo, per in seguito ritrascrivere questi movimenti in uno spazio virtuale. Si differenzia generalmente la cattura dei movimenti del corpo intero dalla cattura delle espressioni facciali. Ci si interessa qui unicamente della cattura dei movimenti del corpo intero. Si distinguono due grandi tipi di sistema di cattura: i sistemi pesanti con conseguenti marker che sono cari ma che offrono dati precisi e realistici e i sistemi leggeri, senza marker. Sistemi pesanti Si qualificano come «sistemi pesanti», i sistemi di cattura che necessitano di molti strumenti, spesso installati in modo permanente in una stanza. Questi sistemi per- mettono di registrare dei movimenti in maniera molto precisa e dettagliata. Lo stesso tipo di sistema, chiamato «performance capture», è utilizzato anche per catturare le espressioni facciali degli attori (come in figura 4.3a). (a) (b) Figura 4.3: Cattura dei movimenti, sistemi pesanti. (a) Sistema di cattura del viso - L’alba del pianeta delle scimmie. (b) Nestera e colleghi [53] Questa tecnologia è occasionalmente utilizzata per degli studi biomedici, come lo studio del movimento del piede durante un ciclo di cammino (vedere figura 4.3b), realizzato da Nestera e colleghi [53]. Sistemi leggeri D’altro canto, un prezzo abbordabile e la loro semplicità di installazione e di uti- lizzo, hanno fatto crescere l’interesse dei sistemi di cattura senza marker nei settori 1 Cattura del movimento: motion capture o semplicemente mocap in inglese 49
  • 61.
    4 – Catturae resa del movimento dei videogiochi, del cinema ma anche nella comunità biomedica. L’imporsi delle telecamere RGB-D come la Kinect ha permesso lo sviluppo di nuovi strumenti nel settore medico e sanitario. Gli autori di [55] dichiarano che i dati ricavati dalla registrazione dei movimenti grazie ad una Kinect, possono essere sufficienti per lo studio dei movimenti basici, come l’ampiezza del passo durante il cammino ma sono molto lontani dai risultati raggiunti con sensori di cattura pesanti. 4.2.1 Metodi di cattura dei movimenti Il fatto che si voglia utilizzare delle tecnologie semplici e trasportabili, ci impone l’u- tilizzo di sensori relativamente leggeri per catturare l’utilizzatore. La scelta quindi è stata portata verso le telecamere RGB-D che forniscono informazioni di profondità, che permettono di catturare semplicemente i movimenti di uno o più utilizzatori. Attraverso lo studio delle applicazioni di allenamento sportivo e di fitness che uti- lizzano telecamere RGB-D, si è determinato che il sensore Microsoft Kinect V2.0 è quello che fornisce i migliori risultati in termini di cattura dei movimenti. In sezione 2.3.2 si sono presentati diversi specchi interattivi e ora verranno mo- strati quali sono i metodi utilizzati da ciascun progetto per indurre il movimento al loro modello anatomico di riferimento. Nel quadro del «Magic Mirror», la cattura di uno scheletro di animazione viene fatta attraverso l’aiuto di una libreria NITE. Per migliorare il riposizionamento dei dati anatomici 3D, in una fase di inizializ- zazione è chiesto agli utilizzatori di puntare sul loro proprio corpo cinque punti anatomici specifici [54]. Il sistema andrà quindi a definire i vettori di traslazione che dovrà applicare sulle articolazioni per applicare queste correzioni e quindi ot- tenere un miglior posizionamento dell’anatomia. Nel progetto «Digital Mirror», si tratta essenzialmente di un riposizionamento nello spazio del modello anatomico di riferimento 3D a ogni step time. La tecnologia Microsoft Kinect è utilizzata per deformare in maniera rigida i segmenti anatomici e quindi permettere una visualiz- zazione di una postura simile a quella dell’utilizzatore. La cattura dei movimenti proposto dal sistema «Anatomie Spiegel» è basato sulla tecnologia Microsoft Kinect V2.0 che, combinata insieme al motore di gioco Unity [56], restituisce un’animazione fluida e realistica. La società israeliana PrimeSense, riacquistata da Apple Inc nel 2013, ha svilup- pato la tecnologia Kinect: una telecamera RGB dotata di un sistema infrarossi che permette la cattura in tempo reale di una carta di profondità 3D. A partire dalla sua prima apparizione nel 2010, la tecnologia Kinect si è resa disponibile a tut- ti. Diversi sensori sono apparsi sul mercato, tra i quali si possono citare il sensore Xtion sviluppato da Asus [57] o anche il progetto Tango di Google [58], per uno sviluppo di un tablet e di uno smartphone che integrano dei sensori di profondità 50
  • 62.
    4 – Catturae resa del movimento infrarosso. Recentemente, Apple Inc ha rilasciato il sensore Structure [59], che per- mette di scannerizzare una persona in 3D o proponendo delle appllicazioni in realità aumentata. Il sensore più conosciuto e il più comunemente utilizzato è il sensore Kinect di Windows [60, 61], sviluppato insieme insieme a PrimeSense, che è disponibile in due versioni ed è associato alla console di videogiochi Xbox. La scelta del sensore influenza la qualità e il tipo di informazioni che si è in grado di recepire. Ogni sensore è accompagnato da un kit di sviluppo che permette l’accesso ai dati acquisisti e ad un numero più o meno importante di utili algoritmi. Si è scelto di utilizzare il sensore Kinect V2.0 di Windows, che si andrà a presentare nel dettaglio. 4.2.2 La Kinect V2.0 I componenti della Kinect La Kinect è una telecamera RGB-D ed è composta da: • una telecamera a colori RGB. L’immagine stabile a 30 Hz (15 Hz nel caso di bassa luminosità) e di alta risoluzione (1920x1080 pixels) permette di creare delle applicazioni interattive di grande qualità. • un emettitore infrarosso indipendente da tipo di luminosità presente. Emette un raggio infrarosso a 30 Hz. • un sensore di profondità stabile a 30 Hz basato sulla tecnologia infrarosso. Grazie a una miglior fedeltà di profondità (512x424 pixels), il sensore ottimizza la visualizzazione 3D. I raggi infrarosso riflessi sono convertiti in informazioni di profondità grazue alla misura delle distanze tra l’oggetto e il sensore. • quattro microfoni dedicati alla cattura del suono che permettono la registra- zione del contenuto audio e l’identificazione delle sorgenti sonore e la direzione delle onde. La figura 4.4 indica la posizione di questi diversi componenti su una Kinect. Zona di cattura Si chiama «zona di cattura», il parallelogramma nel quale la Kinect è capace di catturare le informazioni di profondità. La figura 4.5 riassume quello che c’è da sapere riguardo la zona di cattura della Kinect V2.0. Si può vedere che la Kinect cattura informazioni a partire dai 0.5 m fino ai 4.5 m in termini di profondità, ma è capace di acquisire informazioni su un utilizzatore 51
  • 63.
    4 – Catturae resa del movimento Figura 4.4: Funzionamento interno della Kinect V2.0 Microsoft solamente in un range compreso tra gli 0.8m e i 3.5 m (rappresentato come “sweet spot” in figura 4.5a) Si può anche vedere che l’angolo di visione del sensore di profondità è di 60 gradi in verticale e di 70 gradi in orizzontale (vedere figura 4.5b). (a) (b) Figura 4.5: Zona di cattura della Kinect. Human Interface Guidelines - Kinect for Windows. I dati in uscita L’uscita del sensore di profondità è rappresentata da un’immagine che, per ogni pixel, fornisce un livello di grigio. Grazie agli strumenti del SDK Kinect attraverso un passaggio dallo spazio immagine allo spazio telecamera, si è in grado di trasformare ogni pixel dell’immagine in un punto dello spazio. L’insieme di questi punti permette di definire una nuvola di punti che descrivono parzialmente la forma degli elementi visibili nella zona di cattura. Il software Kinect effettua una segmentazione della carta di profondità. A par- tire da questa, la Kinect è capace di identificare e di catturare i movimenti di sei utilizzatori in uno stesso istante (vedere figura 4.6a). 52
  • 64.
    4 – Catturae resa del movimento Per ogni utilizzatore, la Kinect fornisce 25 sistemi di riferimenti, ognuno definito da una posizione e un orientamento nello spazio. La figura 4.6b presenta, a titolo indicativo, l’insieme dei sistemi di riferimento forniti dalla Kinect per un dato uti- lizzatore e i loro nomi. L’origine del mondo è definito da un sistema di riferimento attaccato all’emettitore infrarosso della Kinect, rappresentato in figura 4.6a. (a) (b) Figura 4.6: Sistema Kinect di cattura dell’utilizzatore (a) La Kinect può catturare fino a sei utilizzatori a corpo intero. (b) Definisce 25 riferimenti articolari. Per ogni utilizzatore, è associato un insieme di pixel della carta di profondità e viene definito la silhouette dell’utilizzatore. Per definire la posizione e l’orientamen- to dei sistemi di riferimento, la Kinect segmenta questa silhouette e poi traduce i pixel ottenuti in posizioni e orientamenti nello spazio. La posizione di un’articola- zione viene definite come un vettore di tre elementi: la coordinata x nello spazio, la coordinata y nello spazio e la coordinata z nello spazio. Per quanto riguarda l’orientamento delle articolazioni, questa viene fornita sotto forma di quaternioni unitari. In matematica, i quaternioni sono estensioni dei numeri complessi. Un quater- nione è un oggetto formale del tipo: H = a + bi + cj + dk dove a, b, c, d sono numeri reali e i, j, k sono dei simboli che si comportano in modo simile all’unità immaginaria dei numeri complessi. I quaternioni trovano un’im- portante applicazione nella modellizzazione delle rotazioni nello spazio: per questo motivo sono ampiamente usati nella fisica teorica (nella teoria della relatività e nella meccanica quantistica) e in settori più applicativi, come la computer grafica 3D e la 53
  • 65.
    4 – Catturae resa del movimento robotica. I quaternioni sono preferibilmente utilizzati perché forniscono una notazio- ne matematica più conveniente per la rappresentazione di orientamenti e rotazioni di oggetti in tre dimensioni. In confronto gli angoli di Eulero, presentano funzioni più semplici da comporre ed evitano il problema del blocco cardanico2 . Confrontati con le matrici di rotazione i quaternioni sono più stabili numericamente e forse più efficienti. Un quaternione è detto unitario quando la sua norma ha valore unitario. Esempi applicativi dell’utilizzo dei quaternioni vengono forniti nel seguito della trattazione. I quaternioni ottenuti dalla segmentazione della silhouette dell’utiliz- zatore sono quaternioni assoluti, nel senso che sono stati calcolati tutti rispetto al centro di riferimento assoluto della telecamera, ovvero il centro del sensore di profondità della Kinect. Quindi se si applicasse una trasformazione di rotazione definita da un quaternione ad una mesh di un osso, questa mesh sarà messa nello spazio in modo tale che la propria rotazione combaci con la rotazione della strut- tura anatomica descritta dal quaternione. Nel caso invece in cui si volesse avere un quaternione che definisce l’orientamento relativo di un’articolazione rispetto al- l’articolazione genitore, lo si può ottenere moltiplicando il quaternione assoluto per l’inverso del quaternione dell’articolazione genitore. I quaternioni essendo entità astratte sono difficili da poter visualizzare. Per aiu- tare la visualizzazione del concetto di orientamento si è pensato di costruire per ognuno dei 25 quaternioni catturati dalla Kinect un sistema di riferimento il cui orientamento possa seguire l’orientamento dei segmenti dell’utilizzatore. Diversa- mente dalle situazioni precedenti non si ha più una mesh da orientare ma una terna di versori. Si è quindi applicata la trasformazione di rotazione definita da un qua- ternione sul versore (1,0,0) per definire l’asse x, sul versore (0,1,0) per definire l’asse y e sul versore (0,0,1) per definire l’asse z. Si ottiene in questo modo una terna di riferimento, che in campo aeronautico viene definita di beccheggio, rollio e imbarda- ta (yaw, pitch and roll in inglese). I quaternioni estratti dalla Kinect sono tali per cui dopo aver costruito la terna di riferimento: • l’asse y punta verso l’articolazione figlia. Per esempio, l’asse y dell’articolazione della spalla punterà in direzione dell’articolazione del gomito. • l’asse z punta in profondità. Può puntare in direzione della Kinect o in direzione inversa. • l’asse x è perpendicolare agli altri due. 2 Blocco cardanico (gimbal lock): è un fenomeno problematico dei giroscopi causato dall’allinea- mento di due assi rotanti verso la stessa direzione. Il blocco causa la perdita di uno dei tre gradi di libertà, corrispondente all’asse bloccato. 54
  • 66.
    4 – Catturae resa del movimento Dopo aver proceduto a questa serie di calcoli, attraverso l’interfaccia OpenGL (di cui se ne parlerà più nel dettaglio in sezione 5.3.1) si è ottenuto un feedback visivo dei movimenti dell’utilizzatore attraverso quello che si chiama un sticky model. In Figura 4.7: Sticky model dell’utilizzatore. corrispondenza della posizione di ogni articolazione viene disegnato un punto nero e a partire da questo si disegna la terna di riferimento che ne rappresenta l’orientamento (il segmento verde rappresenta l’asse y, quello rosso rappresenta l’asse x e il blu rappresenta l’asse z). Attraverso dei segmenti neri che rappresentano i segmenti anatomici, si uniscono i diversi punti in modo da ottenere un modello stilizzato dell’utilizzatore. Poiché i valori delle posizioni e dei quaternioni variano nel corso del tempo, sulla finestra OpenGL (di cui se n’è fatto uno screenshot presente in figura 4.7) si vedrà il modello stilizzato muoversi come l’utilizzatore. Condizioni ottimali di cattura della Kinect La Kinect non necessita di condizioni di luminosità specifiche per catturare l’utiliz- zatore. Evitando di dirigere sorgenti luminose verso il sensore video e privilegiando 55
  • 67.
    4 – Catturae resa del movimento l’illuminamento naturale, l’immagine a colori ad alta risoluzione fornita dalla Kinect diventa più utilizzabile. Ci si è accorti che se il corpo dell’utilizzatore è riflesso, per esempio sulle pia- strelle o in uno specchio, la Kinect può considerare il pavimento come facente parte integrante della silhouette dell’utilizzatore. Questo può indurre a errori per esempio nella lunghezza degli art inferiori nel caso del riflesso sulle piastrelle. I raggi infrarossi permettono di poter ottenere un’informazione di profondità ma non permette di visualizzare un oggetto che si trova dietro ad un altro e questo può creare dei problemi di occultamento. L’occultamento più o meno importante di un utilizzatore può danneggiare la cattura dello scheletro di animazione Kinect. Questo occultamento può essere di diversa natura: l’utilizzatore può trovarsi in parte dietro ad un ostacolo (fisso o mobile) oppure l’utilizzatore può trovarsi in una posizione in cui nasconde una parte del suo corpo al sensore. 4.2.3 Kinect e lo scheletro di animazione Si è visto nella sezione precedente che la Kinect offre la possibilità di catturare i movimenti di sei utilizzatori e che per ciascuno restituisce uno scheletro di anima- zione composto da 25 articolazioni. Si considerano queste 25 articolazioni come le articolazioni principali del corpo umano. Malgrado il fatto che questo numero limi- tato possa rischiare di limitare i movimenti possibili, si è scelto di mantenere questa struttura semplificata per rappresentare il corpo dell’utilizzatore. Per correggere il problema di occultamento di cui si è appena parlato, la Ki- nect propone dei sistemi di riferimento che stima corretti. Una variabile di stato è associata ad ogni articolazione e permette di sapere se la Kinect considera l’arti- colazione acquisita correttamente, se è stata dedotta indirettamente a partire dalle altre articolazioni o se l’articolazione non è stata catturata del tutto. Come spiegato precedentemente, la silhouette dell’utilizzatore permette alla Ki- nect di definire le articolazioni. Tuttavia questa silhouette può essere falsata da su- perfici riflettenti, da oggetti sullo sfondo, da vestiti ampi o anche dalla capigliatura dell’utilizzatore. Orientamento del corpo dell’utilizzatore Grazie a delle sequenze di movimenti e alla variabile di stato delle articolazioni, si è potuto determinare gli orientamenti critici del corpo rispetto alla Kinect : rispetto al piano frontale, finché il corpo non supera i 60 gradi (in positivo o negativo), il risultato è accettabile. Si è ugualmente notato che più l’angolo è elevato più l’ampiezza dei movimenti è limitata per garantire risultati accettabili. Si è anche notato che un utilizzatore di schiena è considerato come di faccia per la Kinect e ciò è 56
  • 68.
    4 – Catturae resa del movimento dovuto al problema di auto-occultamento. Per dei risultati migliori, si consiglia agli utilizzatori di rimanere in un piano frontale rispetto al punto di vista della Kinect . 4.3 Struttura di controllo del modello Il rumore nei dati forniti dalla Kinect è tale che impedisce una visualizzazione rea- listica dei movimenti. Si è quindi scelto di creare un sistema di controllo del movi- mento che permette di correggere gli errori in maniera significativa, utilizzando in entrata i dati della Kinect . A ogni step time, si recuperano i 25 sistemi di riferimento forniti dalla Kinect per l’utilizzatore principale. Per livellare il rumore dei dati di monitoraggio del movi- mento, si è applicato un filtro di Holt sulla posizione delle articolazioni. Si definisce una struttura gerarchica tra le articolazioni e si applicano dei vincoli anatomici sugli orientamenti e i limiti delle varie articolazioni. 4.3.1 Sistema gerarchico Lo scheletro che rappresenta il sistema di controllo dell’intero modello anatomico 3D è un modello gerarchico, composto da 25 articolazioni, per permettere una corri- spondenza con lo scheletro di animazione fornito dal SDK della Kinect. Si definisce lo scheletro gerarchico come in robotica, in cui a partire da una base si diramano i vari segmenti meccanici uniti tra loro da giunti meccanici fino ad arrivare all’end effector. In questo caso si comincia col definire l’articolazione alla radice dello sche- letro spine base (situata alla base della colonna vertebrale) e poi ci si dirama verso le articolazioni alle estremità come hand tips, foot, head, passando dalle braccia, gambe e collo. Ogni articolazione è costituita da una terna di riferimento, definita nello spazio da un vettore posizione, che ne indica l’origine, e un quaternione, che ne indica l’orientamento. Il sistema di controllo gerarchico è il vero cuore dell’applicazione AnatoMimo, in quanto permette di fare da ponte tra le informazioni in uscita dalla Kinect con il modello anatomico digitale 3D, introducendo il concetto di dinamicità nello studio dell’anatomia, obiettivo che si vuole raggiungere con questa tesi. Lo scheletro di animazione ricavato in uscita dalla Kinect modifica la posizione e l’orientamento di tutte le articolazioni del sistema di controllo gerarchico, che a sua volta deforma il modello anatomico 3D, in modo tale che ci sia corrispondenza tra i layer anatomici del modello e la posizione dell’utilizzatore. Ad ogni intervallo di tempo, ogni articolazione del sistema di controllo gerar- chico tenderà sempre verso la posizione e l’orientamento della sua controparte nello scheletro di animazione fornito dalla Kinect. Questo è possibile grazie al fatto che tra una coppia della stessa articolazione nei due modelli diversi sia presente una 57
  • 69.
    4 – Catturae resa del movimento molla con una certa rigidezza. Se questa rigidezza è grande il sistema di controllo gerarchico seguirà più velocemente lo scheletro di animazione Kinect mentre se la rigidezza della molla è piccola il sistema di controllo gerarchico seguirà lentamente lo scheletro di animazione Kinect. Lo scheletro di animazione fornito dalla Kinect, muovendosi come l’utilizzatore, tirerà verso di sé il sistema di controllo gerarchico, cercando per ogni articolazione di minimizzare la distanza della molla, ottenendo quindi come risultato il combacio dei due modelli. In figura 4.8 viene rappresentato il concetto appena descritto. Sullo sfondo si può vedere lo scheletro di animazione Kinect, in cui le articolazioni sono rappresentate da sfere rosse mentre in primo piano viene raffigurato il sistema di controllo del modello, in cui le articolazioni sono rappresentate da terne di riferimento. Le molle che collegano le articolazioni dei due scheletri sono stilizzate da linee nere. In figura 4.8 è Figura 4.8: Sistema di controllo gerarchico. anche presente il sistema scheletrico anatomico, da non confondere con i due modelli descritti precedentemente (scheletro di animazione Kinect e sistema di controllo gerarchico), che fa parte del modello anatomico digitale 3D. Il sistema scheletrico anatomico è mappato sul sistema di controllo gerarchico, in modo tale da seguirne 58
  • 70.
    4 – Catturae resa del movimento i movimenti. Come il sistema di controllo gerarchico deformi il modello anatomico digitale 3D verrà spiegato in dettaglio nella sezione 4.4. 4.3.2 Correzioni delle articolazioni Sistemi articolari Osservando i dati in uscita dalla Kinect, si è osservato molto spesso che le articola- zioni siano mal articolate, per esempio ruotando su degli assi che non sono anato- micamente permessi (vedere sezione 3.1.2 sui tipi articolari) o ancora superando gli angoli estremi che il corpo in media può effettuare. Per correggere i comportamenti non anatomicamente corretti, dovuti a errori di cattura, durante la creazione del sistema di controllo gerarchico sono state vincolate le articolazioni limitando il numero di gradi di libertà in rotazione e imponendo limiti articolari. Ogni articolazione permette di definire, per il segmento che si trova a valle dell’articolazione, un range di movimenti effettuabili rispetto al segmento a monte della stessa. Essendo le articolazioni del sistema di controllo gerarchico rappresentate come una terna di riferimento, questo range di movimenti anatomica- mente effettuabili può essere scomposto lungo i tre assi. Si assegnano così, per ogni articolazione, una terna di angoli di Eulero anatomicamente corretti, in base alle conoscenze anatomiche sui vari tipi di articolazione. Questi angoli di Eulero iden- tificano quindi l’ampiezza massima e minima che ogni articolazione del sistema di controllo gerarchico può compiere, anche se i dati ricevuti dalla Kinect porterebbero il sistema di controllo gerarchico a superare questi limiti. Per esempio il gomito può essere approssimato ad un giunto rotoidale (1 grado di libertà) mentre l’anca può essere approssimata ad un giunto sferico (3 gradi di libertà). La figura 4.9 illustra in rosso i dati grezzi della Kinect e in grigio il risultato ottenuto dopo l’applicazione dei vincoli articolari, nel caso specifico del gomito. 4.3.3 Filtraggio di una serie di dati nel tempo Esistono varie tecniche per filtrare una serie di dati nel tempo, che questa sia un processo casuale oppure deterministico ma sporcato da rumore, come nella situazione attuale. La sequenza di dati da filtrare viene spesso rappresentata con xt. L’uscita dell’algoritmo del filtro viene indicata con st, che può essere considerata come la miglior stima che il prossimo valore di x potrà avere. Verrà qui introdotta la teoria di quattro dei filtri progettati e la scelta del filtro che apporta risulati migliori. Il metodo più semplice per filtrare una serie di dati è calcolare una semplice media mobile. Si usa una boxar rettangolare e quindi la statistica filtrata è la media delle ultime k osservazioni: st = 1 k k−1 n=0 xt−n Un piccolo valore di k avrà un piccolo effetto di filtraggio ma sarà più reattivo a 59
  • 71.
    4 – Catturae resa del movimento Figura 4.9: Correzione delle articolazioni tramite imposizione di limiti. cambiamenti dei dati, mentre un k grande avrà un effetto di filtraggio maggiore ma sarà meno reattivo ai cambiamenti. Uno degli svantaggi introdotti da questo filtro è che non può essere utilizzato per i primi k − 1 campioni, introducendo inoltre un ritardo di fase pari a metà della lunghezza della finestra. Il secondo metodo implementato è stata la media ponderata. Per questo filtro la prima cosa da fare è scegliere un set di fattori di peso tale per cui k n=1 wn = 1 e poi usare questi pesi per calcolare la statistica: st = k n=1 wnxt+1−n I pesi sono scelti in modo da dare più importanza ai campioni più recenti. Resta il fatto che nonostante le varianti di calcolo introdotte rispetto alla media mobi- le, anche questa media non riesce a dare istantaneamente un’idea del movimento effettuato, portando a non buoni risultati. Il filtraggio esponenziale è una tecnica per filtrare una serie di dati nel tempo applicando un filtro passa-basso con funzioni a finestra esponenziale (o finestra di Poisson), assegnando pesi decrescenti nel tempo. La formulazione più semplice è la seguente: st = αxt + (1 − α)st−1 In poche parole, la statistica filtrata st è la media ponderata del campione attuale e di quello precedente. Questa tecnica di filtraggio è semplice e produce una statistica filtrata non appena sono disponibili due campioni. Valori di α vicino al valore unitario hanno poco effetto di filtraggio e danno più peso ai cambiamenti recenti nei dati mentre valori di α più vicini al valore nullo hanno un effetto filtrante maggiore e danno meno reattività ai cambiamenti. Per scegliere α si è utilizzato il metodo dei minimi quadrati. Il filtraggio esponenziale introduce un ritardo rispetto agli input ed è equivalente ad un filtro IIR di primo ordine. 60
  • 72.
    4 – Catturae resa del movimento Doppio filtro esponenziale di Holt Il filtraggio esponenziale singolo non va bene se nella sequenza di dati c’è un trend. Nel caso specifico di AnatoMimo questo trend è presente e rappresenta le vere po- sizioni nello spazio delle 25 articolazioni, corrotte da rumore. In queste situazioni si utilizza l’applicazione ricorsiva di due filtri esponenziali. L’idea alla base del filtro doppio esponenziale è di introdurre un termine che prenda in considerazione la possibilità di esistenza di un trend all’interno dei dati. La miglior stima del trend viene indicata con bt. Nel seguito verrà introdotta la formulazione di Holt del filtro doppio esponenziale, per t > 2:    st = αxt + (1 − α)(st−1 + bt−1) bt = β(st − st−1) + (1 − β)bt−1 dove α è lo smoothing factor (compreso tra 0 e 1) e β è il trend smoothing factor (sempre compreso tra 0 e 1). L’output dell’algoritmo è ora scritto come Ft+m = st + mbt e rappresenta una stima del valore di x al tempo t + m, con m > 0. Nella previsione di serie di assume che una serie nel tempo è la combinazione di un pattern (trend) e un po’ di errori casuali. L’obiettivo è di separare il pattern dall’errore. Il filtraggio esponenziale è un metodo per rivedere una predizione alla luce di più recenti dati. Il filtraggio assegna quindi esponenzialmente pesi decrescenti man mano che l’osservazione diventa passata. Nuove osservazioni hanno più peso nel predire rispetto a osservazioni passate. Il filtraggio doppio esponenziale si basa sull’idea che il movimento dell’utilizzatore davanti alla Kinect può essere adeguatamente modellizzato da una semplice relazione relazione lineare un cui intercetta e coefficente angolare della retta cambiano nel tempo. Si è scelto quindi di utilizzare questo filtro in quanto sulla carta risulta il migliore, più adatto per lo specifico scopo e restituisce risultati concretamente migliori, che verranno subito presentati. Muovendo la mano davanti al corpo in modo da effettuare un cerchio immagina- rio, sono state acquisite le posizioni filtrate e non filtrate nello spazio della mano per qualche secondo per poter costruire un grafico che permetta di evidenziare l’efficacia del filtro implementato. Il grafico è presentato in figura 4.10. Dopo una serie di prove, è stata trovata la giusta serie di parametri che permette di ottenere i migliori risultati in termini di fluidità dei movimenti. 4.4 Skinning del modello Come spiegato nell’introduzione di questa tesi, il vincolo di ottenere un’applicazio- ne che sia tempo reale, o tempo interattivo, costringe l’adozione di una soluzione che faccia parte di un contesto di animazione grafica per deformazione del modello 61
  • 73.
    4 – Catturae resa del movimento −0.6 −0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 −0.2 −0.1 0 0.1 0.2 0.3 x [m] y[m] Grezzo Filtrato Figura 4.10: Confronto fra dati Kinect grezzi e filtrati piuttosto che utilizzare una soluzione di tipo biomeccanico. Si è fatto la scelta di visualizzare il movimento del corpo intero. La sezione 3.1.3 fornisce la terminologia del movimento: l’insieme di definizioni che definisce l’insieme di movimenti che il corpo umano è capace di compiere. Il sistema muscolo-scheletrico è una struttura articolare. Come spiegato in se- zione 3.1.2, il corpo umano è composto da un’insieme di articolazioni definite in funzione del loro grado di libertà e dell’ampiezza del movimento che riescono ad esprimere. Per avvicinarsi il più possibile al fenomeno anatomico, si è scelto di de- finire e utilizzare lo scheletro di animazione Kinect come struttura di controllo per poter indurre i movimenti, come spiegato in sezione 4.3.1. In sezione 4.1.2, si sono discussi i principali metodi di skinning, più o meno automatici, che forniscono risultati più o meno soddisfacenti. Per questo progetto, si è scelto il metodo «Linear Blend Skinning» poiché è una delle più semplici da implementare. In più si è a conoscenza che il LBS è il metodo più utilizzato nel settore dei giochi video, che necessita una buona efficacia in termini di velocità di esecuzione. Si è anche implementato il metodo «Dual Quaternion Skinning», che in teoria dovrebbe risolvere alcuni problemi del LBS, ma in questa specifica applicazione non 62
  • 74.
    4 – Catturae resa del movimento si sono riscontrati netti miglioramenti, anzi si sono osservati comportamenti anoma- li. Questi sono dovuti al fatto che grazie alla natura non lineare dei quaternioni, il DQS è un metodo che permette il preservamento del volume ma richiede una scelta più accurata dei pesi per ogni vertice della mesh. Questa scelta più accurata può essere ottenuta attraverso la tecnica del weight painting, presente in qualsiasi soft- ware di modellizzazione (Blender ad esempio). Questa tecnica è molto efficace ma richiede molto tempo ed accuratezza e osservando il risultato più che soddisfacente del LBS, ottenuto attraverso il calcolo automatico dei pesi, si è optato per l’utilizzo di quest’ultimo metodo. Si è presentato fino ad ora il modello di riferimento anatomico utilizzato e il sistema di controllo utilizzato. Si parlerà ora di come associare i due, con l’aiuto di un metodo di skinning, per poter visualizzare il modello anatomico in movimento. 4.4.1 Algoritmo di Linear Blend Skinning In sezione 4.4 si è spiegato la scelta dell’algoritmo di skinning. L’equazione 4.1 illu- stra il metodo LBS, esprimendo la posizione di ogni punto P della mesh in funzione della sua posizione al passo di integrazione precedente P0. La trasformazione di un singolo punto P è definita come la somma 3 i=0 delle matrici di deformazione M[index[i]] applicate su P0. Ognuna di queste matrici è funzione di uno dei 25 sistemi di riferimento che compongono il sistema di controllo, di indice index[i], e ponderata attraverso rispettivi pesi w[i]. Nel caso di punti che sono influenzati da meno di quattro sistemi di riferimento, le matrici sono completate da indici arbitrari con una ponderazione nulla, in modo che non influenzino lo spostamento del punto. La somma delle ponderazioni per ogni vertice deve sempre essere unitaria. LBS : P = 3 i=0 M[index[i]] ∗ P0 ∗ w[i] (4.1) Le influenze sul sistema cardiovascolare, sulla pelle e sul sistema muscolare sono distribuite tra diverse articolazioni dello scheletro di controllo gerarchico mentre le influenze sul sistema scheletrico e gli organi sono associati ad una sola articolazione. In questo modo durante un movimento, le ossa e gli organi non si deformano ma si spostano semplicemente seguente il movimento effettuato dall’utilizzatore. Nel caso delle arterie, della pelle e dei muscoli, le mesh corrispondenti si deformeranno per meglio adattarsi alla configurazione impartita dall’utilizzatore. Nella realtà le ossa sono strutture rigide e quindi è corretto assumere che durante un movimento queste si spostino ma non si deformino. Nel caso degli organi invece, questi sono strutture deformabili e quindi inizialmente anche alle loro mesh sono state associate più di un’articolazione ma questo provocava deformazioni innaturali. Si è scelto allora di associare una sola articolazione permettendo lo spostamento ma non la 63
  • 75.
    4 – Catturae resa del movimento deformazione, anche se la scelta corretta, ma che non è stata implementata per mancanza di tempo, sarebbe stata quella di associare per ogni tessuto un modello che racchiudesse le caratteristiche meccaniche del materiale. In figura 4.11 viene illustrato il principio dello skinning, attraverso un esempio di deformazione della mesh della pelle nel software di modellizzazione Blender [32]. Come si può notare in figura 4.11a, dopo aver caricato la mesh della pelle in Blen- der, si è definito uno scheletro di controllo gerarchico identico e corrispondente al sistema di controllo gerarchico definito in sezione 4.3.1. Successivamente sono stati calcolati automaticamente per ogni vertice della mesh quali elementi del sistema di controllo influiranno sul suo movimento e in che quantità, attraverso la definizione dei pesi. Prendendo in considerazione l’elemento braccio sinistro del sistema di con- trollo, questi pesi possono essere visualizzati attraverso una scala a colori: i vertici colorati in blu sono quei vertici che non saranno per nulla influenzati dal movimento del braccio sinistro, mentre i vertici rossi si sposteranno totalmente seguendo il mo- vimento del braccio sinistro. Poiché rosso e blu rappresentano gli estremi di questa scala, influenze intermedie saranno rappresentate da colori intermedi. (a) (b) Figura 4.11: Skinning del modello (a) Modello nella sua postura anatomica di riferimento. (b) Modello deformato che segue il movimento dello scheletro di controllo. Il risultato dell’applicazione di tale metodo è visualizzato in figura 4.11b. Nel caso in cui l’utilizzatore muova il braccio sinistro in alto, o come in questo caso 64
  • 76.
    4 – Catturae resa del movimento replicando tale movimento in Blender, verrà modificata di conseguenza la posizione nello spazio dello scheletro di controllo gerarchico che a sua volta influenzerà gli spostamenti dei vari vertici della mesh pelle. I vertici marcati in rosso, peso elevato, seguiranno lo spostamento del braccio, mentre quelli colorati in blu, peso nullo, non varieranno la loro posizione. Si può notare che i vertici della mano sinistra anche se colorati di blu si sono spostati. Questo è dovuto al fatto che lo scheletro di controllo è stato costruito in maniera gerarchica e quindi movimenti di un elemento parente di ripercuoteranno sugli elementi figli. Per esportare i pesi calcolati su Blender nel software utilizzato per realizzare il sistema AnatoMimo (SOFA, come verrà spiegato in seguito nel dettaglio), è stato realizzato uno script nel linguaggio di programmazione Python. Tale script legge in entrata un file di tipo Collada, con tutte le informazioni necessarie (indice del vertice, quali sono i sistemi di riferimento che ne influenzano la posizione e in che quantità), per trasformarlo in uscita in un formato leggibile da SOFA. 4.5 Conclusione e discussione Questo capitolo introduce la struttura di controllo e il sistema di cattura di movi- mento che si è messo in atto nel corso della tesi. Basato sull’idea di articolare un modello anatomico utilizzando un sensore di movimenti leggero, si è presentato qui lo scheletro di controllo gerarchico basato sulla tecnologia Kinect . Lo studio di Pfister e colleghi [55] suggerisce che i dati forniti dalla Kinect non permettono un’analisi di movimenti complessi ma attraverso l’applicazione dei vin- coli anatomicamente realistici sulle articolazioni catturate, si spera di rispondere a questa problematica, massimizzando il realismo dei movimenti. Si è notato che durante movimenti rapidi, può essere visualizzato un piccolo ritardo tra il movimento dell’utilizzatore e il movimento del modello, ma non risulta disturbante per la comprensione del movimento anatomico. Inizialmente si è fornito al sistema di controllo gerarchico sia la posizione che l’orientamento di ogni articolazione. Tuttavia i quaternioni, che sono responsabili dell’orientamento, pur essendo stati filtrati dal doppio filtro esponenziale di Holt, risultano instabili e per niente affidabili in termini di robustezza. Due sono state le idee per risolvere il problema. La prima, più semplice e immediata, è quella che si è adottata: fornire al sistema di controllo gerarchico solamente le posizioni delle articolazioni dell’utilizzatore, catturate dalla Kinect. Il risultato è nettamente mi- gliore in termini di robustezza ma si perde leggermente in termini di realismo del movimento. La seconda possibilità, ma che non è stata affrontata per mancanza di tempo, consisterebbe nel fornire al sistema di controllo gerarchico non più i quater- nioni estratti dalla Kinect ma dei quaternioni costruiti da un algoritmo, a partire 65
  • 77.
    4 – Catturae resa del movimento dalle posizioni fornite dalla Kinect. Questo in teoria porterebbe ad aumentare il realismo dei movimenti pur mantenendo la stessa robustezza della prima soluzione. Miglioramenti del sistema Lo sviluppo di un sistema articolare pseudo-fisico sembra essere la prossima tappa per migliorare i risultati ottenuti. L’idea sarebbe di definire uno scheletro biomec- canico (prendendo in conto gli assi di rotazione e i limiti articolari), deformato in funzione dello scheletro di animazione Kinect . Questo permetterebbe di ottenere spostamenti articolari più realistici e permetterebbe di gestire movimenti impossi- bili a catturare con il sensore attuale come per esempio la curvatura della colonna vertebrale durante una torsione verso l’avanti. Attualmente la deformazione dei muscoli non permette la visualizzazione dell’ef- fetto di contrazione e decontrazione. Una possibilità sarebbe di utilizzare simulazioni biomeccaniche inserendo un modello biomeccanico di contrazione del muscolo per rinforzare il realismo nella deformazione dei muscoli. 66
  • 78.
  • 79.
    5 – Integrazionedel sistema 5.1 Introduzione Nel corso di questa tesi, si è sviluppato un nucleo operativo di «AnatoMimo» attra- verso un sistema di cattura e di restituzione dei movimenti presentato nel capitolo 4). In poche parole: si utilizza un sensore di profondità Kinect per catturare i mo- vimenti di un utilizzatore in tempo reale. Si utilizzano queste informazioni per animare un avatar 3D e sfruttarlo per l’apprendimento dell’anatomia in movimento. Per la realizzazione di AnatoMimo, applicazione di tipo specchio interattivo, la scelta della visualizzazione, dell’interfaccia e dell’interazione sono fondamentali. 5.1.1 Confronto tra gli specchi interattivi Nella sezione 2.3 si è fornita una visione globale dell’applicazione delle nuove tec- nologie nel settore medicale. Nel contesto delle nuove tecnologie, si sono presentati tre sistemi di specchio interattivo simili all’AnatoMimo in sezione 2.3.2. Gli specchi interattivi combinano un insieme di tecnologie all’interno di una stes- sa applicazione e quindi esistono diversi criteri che permettono di fare un confronto. La tabella 5.1 riassume tutti i criteri di qualità degli specchi interattivi presenti ad oggi, permettendo di poter confrontare gli specchi interattivi tra loro, insieme alla versione attuale di AnatoMimo. Esistono anche diversi altri criteri importanti di cui non si è ancora trattato, tra i quali: l’interfaccia, la visualizzazione, le tecnologie utilizzate e anche la sperimentazione del sistema. 68
  • 80.
    5 – Integrazionedel sistema MagicMirrorDigitalMirrorAnatomieSpiegelAnatoMimo Integrazione Dominiodiapplicazioneapprendimentograndepubblicoartisticoapprendimento MaterialeK.PrimeSenseMicrosoftKinectKinectV2.0KinectV2.0 Realtàaumentatasìnonono Visualizzazione Coloreerenderingbasilarespecificopseudo-realisticosemplice Conoscenzespecifichetesto,immagininonobattitocardiaco Modellodiriferimento TipoTC-scan,MRIPET,raggiXmesh3Dmesh3D Utilizzatorespecificosìnonono Corpointerotroncosìsìsì Sistemascheletricosìsìsìsì Sistemamuscolaresìsìsìsì Interfacciaeinterazione Sceltadelsistemaanatomicononosìno Sceltadelsesso(modello)nosìsìno Sceltainfunzionedellaprofonditànonosìno Sceltaconlemanisìnosìno Catturadeimovimenti Posizionamentodell’utilizzatoresìsìsìsì Posturadell’utilizzatorenosìsìsì Strutturadicontrollo5riferimenti20riferimenti25riferimenti25riferimenti Correzionianatomichesìnonosì Tabella 5.1: Confronto degli specchi interattivi presentati nel corso della tesi. 69
  • 81.
    5 – Integrazionedel sistema 5.1.2 Piano del capitolo Nel seguito del capitolo, la sezione 5.2 fornirà più di dettagli tecnici riguardanti l’integrazione dei metodi visti fin’ora. Si parlerà anche del materiale necessario alla messa in opera di una versione demo di AnatoMimo e il suo funzionamento globale. Si proporrà in sezione 5.4 di discutere sugli aspetti di percezione e d’interazione con le conoscenze anatomiche. Infine in sezione 5.6 si concluderà parlando dello sviluppo applicativo di Ana- toMimo e si forniranno qualche prospettiva di miglioramento e di lavori futuri sul tema di interazione con le conoscenze anatomiche. 5.2 Sperimentazione e integrazione Il lavoro svolto durante il corso di questa tesi è una combinazione di approcci innova- tivi per formare il nucleo funzionale del sistema AnatoMimo. La pipeline dettagliata in figura 5.1 sintetizza il funzionamento interno di AnatoMimo. Figura 5.1: Pipeline del sistema. Le tre grandi fasi di AnatoMimo , che vengono rappresentate in figura 5.1 da un rettangolo blu sono: • fase 1: cattura e restituzione dei movimenti 70
  • 82.
    5 – Integrazionedel sistema • fase 2: associazione dell’avatar 3D con la struttura di controllo attraverso skinning • fase 3: integrazione In giallo vengono presentati i dati in entrata nel sistema: da una parte si hanno le informazioni fornite dalla Kinect (scheletro di animazione) e dall’altra informazioni geometriche sulle mesh del modello anatomico digitale 3D. I rettangoli verdi rappre- sentano i blocchi del sistema che sono stati sviluppati o modificati, se già esistenti precedentemente, nel corso dello sviluppo di AnatoMimo. Parte di questi blocchi sono stati introdotti nel capitolo 4; quelli appartenenti alla tappa di integrazione, verranno sviluppati nel corso di questa sezione. Il sistema gira su un computer con processore Intel(R) Core(TM) i7, frequenza 4.00 GHz, carta grafica Nvidia GeForce GTX 960, memoria RAM di 16.0 GB. L’u- tilizzo della Kinect V2.0 Windows vincola il fatto di dover utilizzare Windows 10 a 64 bit come sistema operativo. Per gestire la Kinect , molti fanno la scelta di soluzioni software «prefabbricate» come Unity3D [56], come nel caso del progetto «Anatomie Spiegel». Nell’idea a lungo termine di poter aggiungere simulazioni biomediche o anche dei vincoli bio- meccanici complessi e realistici nel sistema, si è optato per l’utilizzo di SOFA [62], un framework1 interattivo di simulazione fisica sviluppato in C++ a INRIA. Inoltre SOFA è uno strumento conosciuto in quanto è sviluppato nella squadra in cui viene svolto il progetto AnatoMimo. Per tutto quello che riguarda il lavoro sul modello anatomico 3D (ad es.: sche- letro di animazione, messa in postura, decimazione della mesh, definizione dei pesi, animazione del battito cardiaco, ecc.) si è utilizzato il software di modellizzazione Blender [32]. 5.2.1 SOFA SOFA (Simulation Open Framework Architecture) è una libreria open-source svi- luppata in C++, mirata principalmente alla simulazione medica computazionale [62]. SOFA scompone complessi simulatori in componenti sviluppati separatamente e or- ganizzati in una struttura di dati chiamato grafo della scena. Ogni componente racchiude uno degli aspetti di una simulazione, come i gradi di libertà, le forze e i vincoli, le equazioni differenziali, gli algoritmi, i solutori, i rivelatori di collisione o i 1 Framework: termine della lingua inglese che può essere tradotto come intelaiatura o struttura, in informatica e specificatamente nello sviluppo software, è un’architettura logica di supporto (spesso un’implementazione logica di un particolare design pattern) su cui un software può essere progettato e realizzato, spesso facilitandone lo sviluppo da parte del programmatore. 71
  • 83.
    5 – Integrazionedel sistema dispositivi di interazione. Gli oggetti simulati possono essere rappresentati usando diversi modelli, ognuno ottimizzato per un compito diverso come il calcolo di for- ze interne, la rilevazione di collisioni, la resa visiva o tattile. Questi modelli sono sincronizzati tra di loro durante la simulazione utilizzando il meccanismo del data mapping. Programmare simulazioni fisiche interattive di oggetti rigidi e deformabili neces- sita di molteplici capacità come la modellizzazione geometrica, meccanica computa- zionale, analisi numerica, rilevazione di collisione, rendering, interfaccia utilizzatore e diversi feedback, come quello tattile. È anche una sfida da un punto di vista ingegneristico, con le necessità di algoritmi computazionalmente efficienti, multith- reading (vedere sezione 5.2.2), o lo sviluppo di applicazioni in architetture hardware moderne come la GPU. Lo sviluppo di simulazioni mediche complesse è quindi diven- tato un lavoro sempre più complesso, coinvolgendo sempre più domini di esperienza. Lo scopo di SOFA è di indirizzare tutte queste questioni all’interno di un framework altamente modulabile ed efficiente, che permetta ai ricercatori e agli sviluppatori di concentrarsi sul proprio dominio di esperienza, riutilizzando i contributi forniti da altri esperti. SOFA introduce il concetto di una rappresentazione multi-modello basata su un grafo di scena per costruire facilmente simulazioni composte da un numero arbitrario di oggetti. Il gruppo di oggetti simulati e degli algoritmi utilizzati in una simulazione (anche chiamata una scena) è descritto usando una struttura di dati gerarchica simile ai grafi di scena usati nelle librarie grafiche. Gli oggetti simulati sono decomposti in un insieme di componenti indipendenti, ognuno di essi descrivendo una caratteristica del modello, come vettori di stato, massa, forze, vincoli, schema di integrazione e processi di soluzione. Come risultato, passare da forze interne basate su molle ad un approccio agli elementi finiti può essere fatto semplicemente sostituendo un componente con un altro, lasciando tutto il resto (massa, modelli di collisione, passo di integrazione, ...) invariato. Il grafo di scena è percorso ad ogni step time attraverso l’aiuto di visitatori. I visitatori attraversano il grafo di scena e chiamano le funzioni virtuali ad ogni componente trovato. In aggiunta al primo livello di modularità, è possibile aggiungerne ancora uno, scomponendo gli oggetti simulati in un set di modelli specializzati, ognuno ottimiz- zato per un dato tipo di calcolo. Un oggetto fisico in SOFA è tipicamente descritto usando tre modelli: un modello interno con i suoi indipendenti gradi di libertà (DOFs), la massa e le leggi costitutive, un modello di collisione con la geometria di contatto, e un modello visivo con la geometria dettagliata e parametri di rendering. Ogni modello può essere progettato indipendentemente dagli altri, e sono possibili più combinazioni complesse. Durante il tempo di esecuzione della simulazione, i mo- delli sono sincronizzati tra loro usando un generico meccanismo chiamato mapping per propagare forze e spostamenti. Implementazioni per CPU e GPU possono esse- re trasparentemente combinati per sfruttare al massimo la potenza computazionale 72
  • 84.
    5 – Integrazionedel sistema delle architetture hardware moderne. Grazie a questa flessibile ma anche efficiente architettura, SOFA può’ essere usato come banco di prova per confrontare modelli e algoritmi, o come una base per lo sviluppo di simulatori complessi e altamente performanti. SOFA è stato rilasciato per la prima volta nel 2007 [63]. Da allora, si è evoluto verso una libreria globale e altamente performante usata da un numero crescente di università e aziende commerciali. In appendice A viene presentato una semplificazione del grafo della scena costrui- to per realizzare AnatoMimo. Essendo la scena costituita da alcuni componenti che si ripetono molte volte (ad es.: il caricamento di tutte le mesh, la definizione di tutte le articolazioni per il sistema di controllo gerarchico, ecc.) questi vengono presentati solo una volta per rendere l’idea generale del grafo di scena. Il grafo di scena è stato realizzato utilizzando il linguaggio di programmazione XML. In appendice B invece viene mostrato quello che rappresenta il cuore del com- ponente realizzato durante il corso della tesi, per estrarre le informazioni in uscita dalla Kinect e renderle utilizzabili da altri componenti di SOFA. Tale componente è stato realizzato come plugin di SOFA, cioè come un programma non autonomo, a sé stante che interagisce con SOFA per ampliarne o estenderne le funzionalità originarie, principalmente per due motivi: per privatizzare il codice del plugin, in quanto il codice sorgente di SOFA è open-source, e per non compromettere il codice sorgente di quest’ultimo. In parole povere questo componente controlla se il senso- re Kinect è presente, se è stato aperto correttamente allora acquisisce i frame del sensore e controlla se nella zona di acquisizione imposta si trova un utilizzatore. In caso negativo restituisce le posizioni di un utilizzatore generico in posizione ferma mentre se viene percepito un utilizzatore viene eseguita un’analisi per catturare le posizioni in tempo reale delle articolazioni del soggetto. Il tutto viene eseguito ad ogni step time della simulazione. 5.2.2 Tempo reale e cadenza delle immagini Si è spiegato in sezione 1.1 il contesto importante del tempo reale per questo lavoro. Qualsiasi sia la tecnica di animazione utilizzata, esistono delle regole per quanto riguarda la cadenza delle immagini in modo tale che ci sia l’illusione di un movimento continuo. L’illusione può essere data a partire da 10 immagini al secondo (FPS2 ) e il cervello umano fa tutto il resto. Nel quadro dei film per la televisione, lo standard è di 25, 30 o 50 immagini per secondo a seconda della zona geografica; per il cinema invece, lo standard è fissato a 24 immagini al secondo; per i videogiochi, i fabbricanti di console limitano a 30 immagini al secondo. 2 FPS: Frame Per Second 73
  • 85.
    5 – Integrazionedel sistema Nella versione attuale di AnatoMimo, esistono due limiti critici che si applicano sul criterio del tempo reale: il ciclo SOFA e le dimensioni, in termini di numeri di punti e numeri di triangoli del modello di riferimento anatomico 3D utilizzato. Per quanto riguarda il ciclo SOFA, si può notare come più una scena è complessa in termini di gerarchia, più il tempo di calcolo è lungo. Questo è un problema che è stato riscontrato e ciò è dovuto alla complessità dell’anatomia e quindi al numero di entità anatomiche da visualizzare. Poco si può fare da questo punto di vista per cercare di aumentare la velocità di esecuzione della simulazione e quindi guadagnare in performance. Si è parlato in sezione 3.2.3 della scelta fatta in termini di risoluzione geometrica. Il fatto di aver delle mesh più leggere permetterà di poter passare dei dati più leggeri e quindi guadagnare in performance. Si noti anche che tutti gli algoritmi che permettono la gestione dello skinning sono stati sviluppati per la GPU attraverso a degli shader che permettono un guadagno di tempo di calcolo. Parallelizzazione con OpenMP Come viene riassunto in tabella 3.1, dopo aver decimato le mesh del Zygote, sono circa 300 000 i vertici che compongono gli strati anatomici (pelle, muscoli, scheletro, arterie e organi) del modello anatomico 3D utilizzato. La formula 4.1 che descrive il Linear Blending Skinning, viene utilizzata all’interno di un ciclo, che itera su tutti i vertici delle mesh, per calcolare la nuova posizione dei 300 000 punti ad ogni intervallo di integrazione. Questo passaggio fondamentale, aumenta di molto i tempi di calcolo, andando a rallentare il sistema, compromettendo la fluidità dei gesti. Per risolvere il problema si è pensato di utilizzare la libreria OpenMP per parallelizzare il codice che calcola le posizioni dei vertici ad ogni istante di tempo. OpenMP (Open Multiprocessing) è un API multipiattaforma per la creazione di applicazioni parallele su sistemi a memoria condivisa. OpenMP è un’implementazio- ne del concetto di multithreading3 ovvero di un metodo di parallelizzazione per cui un master thread (una serie di istruzioni eseguite consecutivamente) crea un certo numero di slave thread e un task (processo) è diviso tra i vari slave thread. Nel caso specifico, suddividendo il codice che calcola lo skinning in tre thread, si ha un guadagno di 8 FPS (Frame Per Second). Considerando che la Kinect gira ad un massimo di 30 FPS, con la parallelizzazione del calcolo si è passati da 12 FPS a 20 FPS, ottenendo un notevole miglioramento in termini di reattività del modello 3 Thread: un thread di esecuzione, in informatica, è una suddivisione di un processo in più filoni o sottoprocessi, che vengono eseguiti concorrentemente da un sistema di elaborazione monoprocessore (multithreading) o multiprocessore. 74
  • 86.
    5 – Integrazionedel sistema rispetto ai movimenti dell’utilizzatore. Rispetto ai 10 FPS che rappresentano il mi- nimo accettabile, si è raggiunto un livello pari al doppio di quello minimo, ottenendo quindi un’ottima prestazione. 5.2.3 Materiale, spazio di lavoro e mezzo di visualizzazione Il materiale necessario al buon funzionamento dell’AnatoMimo sono: un computer sul quale gira il software sviluppato, una Kinect per catturare l’utilizzatore e un mezzo per la visualizzazione. Il display per uno specchio interattivo può essere fatto su qualsiasi tipo di schermo ma generalmente viene fatto su un supporto abbastanza grande per offrire una migliore visibilità. Se alcuni scelgono di utilizzare uno solo grande schermo (come Magic Mirror) altri preferiscono una proiezione su un telo (come Anatomie Spiegel). Nel caso di questo progetto si è scelto di costruire un supporto in modo tale da poter disporre due televisioni in verticale una sopra l’altra in modo tale da permettere la visualizzazione di una persona adulta in scala 1:1. Si ottiene così un muro di televisioni alto 194 cm e largo 56 cm. Solamente a posteriori ci si è resi conto di un problema: se si dispone il modello anatomico 3D utilizzato in modo tale che occupi tutto lo schermo in altezza, i movimenti sul piano frontale, come i movimenti delle braccia, non verranno visualizzati a schermo perché questo non è abbastanza largo. La soluzione immediata è stata quella di ridurre l’altezza del modello in modo tale che a schermo possano essere rappresentati anche movimenti laterali. Una soluzione che risolverebbe definitivamente il problema, permettendo di rappresentare il modello in scala 1:1 con l’utilizzatore, sarebbe di modificare il muro di TV portandolo a 4 schermi affiancati tra di loro (come è stato fatto per Digital Mirror). Per quanto riguarda invece il supporto della Kinect, si sono provate diverse di- sposizioni del sensore intorno al muro di TV. Si è provato a metterlo ai piedi del supporto delle televisioni ma questo implica che il posizionamento delle strutture anatomiche verrà osservato a video da un punto di vista, quello della Kinect, troppo basso. Per esempio si è notato che la testa del modello era sempre presentata incli- nata all’indietro e la visualizzazione risulta subito errata da parte dell’utilizzatore, in quanto il punto di vista della Kinect dista molto dal punto di vista dell’utilizza- tore, i suoi occhi. Si è deciso quindi di posizionare la Kinect più in alto, a livello degli occhi di un generico utilizzatore, ad un’altezza di 150 cm, lateralmente alle due televisioni, come si può vedere in figura 5.2a. 5.2.4 Funzionamento della demo Si è deciso di voler fare una versione demo del sistema AnatoMimo, principalmente per ricevere dei feedback utili per il miglioramento e per adempiere lo scopo per cui questo sistema è stato progettato: rappresentare una delle attrazioni presenti 75
  • 87.
    5 – Integrazionedel sistema (a) (b) Figura 5.2: Setup del sistema. (a) Vista frontale del sistema. (b) Piantina del sistema con le misure. all’esposizione itinerante “De l’Homo Numericus au Citoyen Numérique”. Per la demo, si è fatta la scelta di visualizzare un solo utilizzatore alla volta con lo scopo di dare a ciascuno la possibilità di interagire come lo si vuole con il sistema e a lungo termine seguire una lezione anatomica al suo proprio ritmo e al suo proprio livello. Come è stato detto in sezione 4.2.2, la Kinect può catturare fino a sei utilizzatori nello stesso tempo. Si vuole qui visualizzare unicamente un solo utilizzatore, e questo pone il seguente problema: come definire l’utilizzatore principale e come conservarlo durante tutta l’esperienza. Sono state adottate diverse soluzioni, come la seguente in cui si sono definite due regole: • si considera come utilizzatore principale quello che si trova più vicino al sensore Kinect in termini di profondità. • si stima che la prova finisca quando l’utilizzatore esce dal campo di visione della Kinect . Si andrà al lancio di una nuova esperienza cominciando con il definire l’utilizzatore principale. Per fare questo, si prendono tutti gli utilizzatori catturati, si prende 76
  • 88.
    5 – Integrazionedel sistema la posizione dell’articolazione base, si classificano gli utilizzatori in funzione della distanza dal sensore e quindi si utilizzano i dati delle posizioni delle articolazioni solamente dell’utilizzatore più vicino alla Kinect. Per ogni utilizzatore la Kinect invia ad ogni step time, una variabile che dice se l’utilizzatore è catturato oppure no. Questo permetterà quindi di sapere a che momento l’utilizzatore è uscito dal campo di visione della Kinect e quindi si potrà interrompere l’esperienza. Tuttavia questa modalità risulta problematica nel contesto di un’esposizione come quella “De l’Homo Numericus au Citoyen Numérique”. Oltre al fatto che imporrebbe la presenza di una persona debita a far ripartire la demo per ogni nuovo utilizzatore, al rilancio della simulazione questa impiega dai 30 ai 45 secondi per caricarsi e questo causerebbe un forte rallentamento di afflusso alla demo. Inoltre, la scelta da parte della Kinect di chi sia l’utilizzatore più vicino ad essa, potrebbe essere compromessa da persone che, incuriosite, si avvicinano allo schermo per guardare meglio, “rubando” il controllo del modello anatomico 3D al vero utilizzatore del sistema. Queste considerazioni portano di fatto alla definizione di una zona di cattura della Kinect ben precisa, rappresentata nel mondo reale da un tappeto rettango- lare di dimensioni 150x120 cm disposto nello spazio come in figura 5.2b. Questo rettangolo si trova nel sweet spot di cattura della Kinect, come spiegato in sezio- ne 4.2.2, e permette al sensore di catturare un utilizzatore solo se questo si trova all’interno del rettangolo, rendendo invisibile alla Kinect qualsiasi utilizzatore che si trova al di fuori di questa zona. Lanciata la simulazione una prima volta, dopo che il primo utilizzatore ha interagito con il modello anatomico 3D ed è uscito dal rettangolo, il sistema, non vedendo più nessuno utilizzatore nella zona di cattura, fornisce al modello posizioni di un utilizzatore generico in posizione ferma, pronto ad aspettare nuove interazioni fornite da un nuovo utilizzatore, appena questo entra nel rettangolo di cattura. Questa modalità è più adatta ad un contesto come quello di un’esposizione, in quanto permette alla demo di girare in teoria all’infinito, garan- tendo un’ottima robustezza sulla scelta dell’utilizzatore principale in un ambiente affollato. 5.3 Visualizzazione «Qual è la visualizzazione la più adatta al trasferimento delle conoscenze?» È la domanda alla quale si cercherà di rispondere in questa sezione presentando e spie- gando le diverse scelte che sono state fatte. King e colleghi concludono, [64], che lo sviluppo adeguato dell’interfaccia e una visualizzazione adatta ai bisogni, sono gli elementi chiave per rendere i sistemi virtualmente utilizzabili. Questi punti di- pendono dalle conoscenze che si vuole visualizzare e dal contesto del lavoro. Inoltre la percezione delle strutture anatomiche può essere influenzata dal punto di vista, dall’orientamento e dalla scala dei dati visualizzati. 77
  • 89.
    5 – Integrazionedel sistema Questa sezione comincerà con un’introduzione a OpenGL, lo strumento utilizzato per realizzare il rendering del sistema, per poi parlare effettivamente delle scelte fatte riguardanti la visualizzazione del modello anatomico 3D. 5.3.1 OpenGL OpenGL (Open Graphics Library) [65] è una specifica che definisce una API (Ap- plication Program Interface) per più linguaggi e per più piattaforme per scrivere applicazioni che producono computer grafica 2D e 3D. OpenGL è quindi un’inter- faccia a cui un’applicazione può avere accesso e permette di controllare i sottosistemi grafici della macchina sulla quale l’applicazione sta girando. Prima di OpenGL, ogni compagnia, che sviluppava un’applicazione grafica, doveva tipicamente scrivere del codice riguardante la parte grafica per ogni sistema operativo e tenere anche in conto del tipo di hardware grafico. Con OpenGL, un’applicazione può produrre gli stessi risultati in qualsiasi sistema operativo usando qualsiasi adattatore grafico aderente ad OpenGL. OpenGL specifica una serie di “comandi” o funzioni eseguite immediatamente e ognuno di questi dirige un’azione di disegno o causa effetti speciali. I comandi del programma vengono presi da OpenGL e inviati agli hardware grafici sottostanti. In computer graphic generalmente si hanno tante ripetizioni di compiti molto simili e questi compiti sono indipendenti gli uni dagli altri. OpenGL può spezzare il progetto e lavorare sui suoi elementi fondamentali in parallelo attraverso una combinazione di pipeling e parallelismo. OpenGL porta con sé una grande quantità di capacità incorporate che possono essere richiamate attraverso l’API. Questo include superfici nascoste rimovibili, alpha blending (trasparenza), antialiasing, texture mapping, operazioni con i pixel, trasformazioni visive e di modello. Le GPU (graphics processing unit) oggigiorno sono molto flessibili e consistono in un grande numero di piccoli processori programmabili chiamati shader core, che fanno girare piccoli programmi chiamati shader. Ognuno di questi shader core pos- siede una bassa produttività, eseguendo una singola istruzione del shader in uno o più cicli; tuttavia ogni GPU può contenere dai 10 ai 1000 di questi core e insieme possono eseguire una grande quantità di lavoro. Il modello seguito da OpenGL è una pipeline. Il flusso di dati è in un senso solo, con dati creati dai comandi chiamati dal programma, entrando dall’inizio della pipeline e fluendo da uno stage all’altro fino a raggiungerne la fine. Lungo il percorso blocchi shaders (che sono programmabili in quanto eseguono gli shaders che vengono forniti dal programmatore) e funzioni fisse possono prendere diversi dati in input a partire da buffer o texture, che sono strutture per immagazzinare informazioni che saranno poi usate nella resa grafica (rendering). Alcuni passaggi nella pipeline possono anche salvare dati in questi buffer o texture, permettendo all’applicazione di leggere o salvare dati. 78
  • 90.
    5 – Integrazionedel sistema L’unità fondamentale del rendering in OpenGL è conosciuta con il nome di primi- tiva. OpenGL supporta tanti tipi di primitive, ma le tre fondamentali sono i punti, le linee e i triangoli. Tutto ciò che viene restituito a video è un insieme di punti, linee e triangoli posizionati e colorati correttamente. Le applicazioni normalmente suddividono superfici complesse in un numero molto alto di triangoli e li invia a OpenGL dove sono resi a video utilizzando un acceleratore hardware chiamato ra- sterizzatore. Il rasterizzatore è un hardware che converte la rappresentazione 3D di un triangolo in una serie di pixel che vengono disegnati su uno schermo, passando da una rappresentazione vettoriale ad un gran numero indipendente di pixel. Si è voluto introdurre brevemente OpenGL perché è risultato fondamentale ed è stato usato varie volte nel corso della tesi. 5.3.2 Rendering del modello Il rendering è un termine di lingua inglese che, in tempi relativamente recenti, ha assunto un valore essenzialmente riferito all’ambito della computer grafica, dove identifica il processo di “resa” ovvero di generazione di un’immagine 2D a partire da una descrizione matematica di una scena tridimensionale interpretata da algoritmi che definiscono il colore di ogni punto dell’immagine digitale. In parole povere è un processo in computer grafica che converte modelli 3D in immagini 2D con effetti 3D foto-realistici. È uno dei temi più importanti della grafica computerizzata tridimensionale e in pratica è sempre in relazione con tutti gli altri. Nell’ambito del processo di generazione grafica è l’ultimo importante stadio e fornisce l’aspetto finale al modello e all’animazione. Nel caso specifico di AnatoMimo, il rendering del modello anatomico 3D consi- ste nel fornire effetti 3D foto-realistici all’immagine del modello, deformato come la sagoma dell’utilizzatore, che verrà visualizzato sul muro di TV. Per fare questo sono stati introdotti modelli di riflessione o di scattering della luce, utilizzando e modi- ficando alcuni shaders già esistenti in SOFA, per descrivere l’apparenza realistica delle superfici delle varie mesh. Come si può vedere in figura 5.3, la resa della visualizzazione viene divisa in cinque sottoparti, tanti quanti sono i layers che compongono il sistema AnatoMimo. Per quanto riguarda la pelle, si è deciso di non visualizzare il colore roseo di tale tessuto ma di lasciare trasparente con un contorno bianco. Contorno che sarà sempre presente in tutte le altre visualizzazioni, per fornire un’idea di dove sono situate le varie strutture e con che profondità rispetto allo strato superficiale. Per quanto riguarda il sistema muscolare e il sistema vascolare si è deciso di impostare una colorazione uniforme, simile a quella rappresentativa del tessuto in letteratura. Infine per i vari organi e il sistema scheletrico si è realizzato un rendering il piu possibile realistico, attraverso l’utilizzo delle varie texture. Pelle esterna contorno sempre 79
  • 91.
    5 – Integrazionedel sistema Figura 5.3: Layers del modello utilizzato. visibile , antialiasing Layer presenti foto 4 strati, pelle contorno, muscoli e vasi sanguigni colori uniformi 5.4 Interfaccia e interazione Per migliorare l’esperienza di utilizzo di AnatoMimo, si è sviluppata un’interfaccia utente e si è aggiunto un’ulteriore livello di interazione tra l’utilizzatore e il modello anatomico 3D. 5.4.1 Interfaccia di AnatoMimo La scelta dell’interfaccia utilizzatore è cruciale per sfruttare al massimo tutte le funzionalità e ugualmente ridurre la frustrazione che l’utilizzatore potrebbe risentire nel caso di un’interfaccia non ergonomica. Nel caso di AnatoMimo, si è scelto di costruire un’interfaccia molto semplice e intuitiva. Come si può vedere in alto a sinistra del modello, in figura 5.4a, è presente una colonna composta da cinque icone, ognuna delle quali rappresenta un layer del modello. La prima icona rappresenta lo strato di pelle, la seconda identifica il sistema muscolare, la terza icona indica il layer in cui è presente in primo piano il sistema arterioso e leggermente trasparenti gli organi e il sistema scheletrico, la quarta icona rappresenta il layer degli organi e le ossa sullo sfondo, e per concludere la quinta icona identifica il sistema scheletrico. Come si spiegherà in sezione 5.4.2, l’utilizzatore potrà scegliere, passando da uno strato ad un altro, quale tra i vari layer esistenti viene rappresentato a video. Per aiutare l’utente a capire dove si posiziona il layer selezionato rispetto agli altri, 80
  • 92.
    5 – Integrazionedel sistema viene colorata la sua icona corrispondente in verde, lasciando le altre colorate in grigio. Cambiando layer visualizzato sul display, cambierà il colore dell’icona: l’icona del nuovo layer si colorerà di verde mentre l’icona del layer precedente sfumerà raggiungendo il colore grigio. OpenGL è stato indispensabile per la creazione dell’interfaccia. Come è stato detto OpenGL è utilizzato per realizzare applicazioni in computer grafica 2D e 3D. Il modello anatomico è evidentemente in 3D ma grazie ad una classe di funzioni di OpenGL, QPainter, è possibile aggiungere disegni 2D sovrapposti al rendering 3D del modello. (a) (b) Figura 5.4: Interfaccia e interazione del sistema. (a) Interfaccia a menu di AnatoMimo. (b) Wireless presenter che permette l’interazione con il modello. 5.4.2 Interazione con le conoscenze Oltre al livello di interazione già descritto nel corso di questa tesi, secondo cui l’utilizzatore modifica il posizionamento e l’orientamento dei segmenti del modello anatomico 3D attraverso i movimenti del suo corpo nello spazio, esiste un altro livello di interazione tra AnatoMimo e l’utente posto di fronte al sistema. Nel settore degli specchi interattivi questo secondo livello di interazione è messo in gioco nel sistema attraverso: 81
  • 93.
    5 – Integrazionedel sistema • una scelta in funzione della profondità: si tratta di cambiare il contenuto visibile in funzione della posizione dell’utilizzatore rispetto alla Kinect . Nel caso del progetto «Anatomie Spiegel» [30], si tratta di cambiare i sistemi anatomici visibili e le annotazioni associate. • una scelta con le mani: si tratta di accedere a delle opzioni attraverso la posi- zione delle mani o anche i movimenti delle braccia. Il «Magic Mirror» [28] pro- pone di cambiare lo strato anatomico visibile in funzione del posizionamento in altezza della mano. Anche nel contesto del progetto AnatoMimo, si è deciso che questo secondo livello di interazione venga raggiunto lasciando la libertà all’utente di scegliere quale layer venga rappresentato a video. L’utilizzatore potrà scegliere tra uno dei cinque layer possibili attraverso l’utilizzo di un wireless presenter, rappresentato in figura 5.4b. Partendo dallo strato più esterno (la pelle), schiacciando sul pulsante “avanti” si potrà scendere al tessuto muscolare e se si schiaccerà ancora lo stesso pulsante si ac- cederà al sistema vascolare. Ancora altri due click sul pulsante “avanti” permettono di raggiungere gli organi e in ultimo lo scheletro. Ovviamente cliccando sul pulsante “indietro” si potrà risalire e tornare in superficie. Questa idea di navigazione all’in- terno dei diversi strati anatomici è stata presa in prestito dagli atlanti anatomici interattivi, presentati in sezione 2.2.4. Ogni volta che un pulsante del wireless presenter viene cliccato, la transizione tra lo strato anatomico attuale e quello scelto avviene attraverso una dissolvenza. Ogni transizione, che dura un secondo circa, è stata realizzata modificando il livello di trasparenza4 della mesh in questione nel tempo. Se si vuol far scomparire lo strato della pelle e nel frattempo far comparire i muscoli, il livello di trasparenza deve diminuire linearmente nel caso della pelle fino a che non scompaia totalmente mentre nello stesso istante il livello di trasparenza dei muscoli deve aumentare fino a che non siano totalmente visibili. 5.5 Animazione del battito cardiaco Per rendere più realistica la visualizzazione dello strato interno del corpo umano, si è deciso di arricchire la visualizzazione del modello del cuore attraverso l’introduzione di un’animazione del battito cardiaco. Inoltre tale battito cardiaco risulta essere funzione dell’attività motoria dell’utilizzatore durante la durata della simulazione. 4 Livello di trasparenza: spesso indicato con alpha, rappresenta un intervallo di valori da zero ad uno, in cui lo zero rappresenta la trasparenza completa e uno identifica l’oggetto associato completamente visibile. 82
  • 94.
    5 – Integrazionedel sistema 5.5.1 Animazione L’animazione del battito cardiaco è stata eseguita nel software di modellizzazione Blender. Una volta caricata la mesh del cuore a riposo all’interno del programma, attraverso diverse funzioni, è possibile deformare i vertici del cuore in modo tale da ottenere una sequenza di mesh, ognuna delle quali rappresenta un istante del ciclo cardiaco. La contrazione del muscolo cardiaco è stata effettuata a mano, cercando di imitare al meglio i movimenti di diastole e sistole. Tale animazione non ha quindi nessuna pretesa di rappresentare fisiologicamente il battito cardiaco ma è molto utile in quanto aggiunge dinamismo all’esperienza di utilizzo di AnatoMimo. Inoltre nella visualizzazione degli organi, il posto riservato al cuore è molto limitato, racchiuso dai due polmoni, e quindi movimenti dettagliati come quelli fisiologicamente corretti non sarebbero apprezzabili. Per integrare l’animazione all’interno della simulazione, si è caricata la mesh del cuore a riposo, come per ogni altra mesh del modello. Ad ogni step time della simulazione però, le posizioni dei vertici del cuore vengono aggiornate, andando a leggerle da un file esterno, che contiene tutte le informazioni racchiuse dalla sequen- za di mesh creata in precedenza. Si ottiene cosi l’effetto di contrazione. Le mesh però non sono state salvate in modo tanto fitto quanto lo è il passo di integrazione della simulazione (t = 0.02). Quindi durante un passo di integrazione della simula- zione, che non coincide con gli intervalli di acquisizione delle mesh, ma risulta essere intermedio tra due acquisizioni, vengono interpolati le nuove posizioni a partire da quelle delle due mesh esistenti adiacenti. 5.5.2 Calcolo attività motoria Nel corpo umano, la frequenza del battito cardiaco è funzione principalmente del- l’attività fisica, motoria dell’uomo. All’interno di AnatoMimo, si vorrebbe che la frequenza cardiaca del modello del cuore possa risultare proporzionale alla quanti- tà del movimento effettuato dall’utilizzatore. Per fare questo è necessario di una variabile che, tenendo in considerazione i movimenti dell’utilizzatore, permetta di decidere la frequenza cardiaca. Inizialmente si è incominciati a lavorare con la varianza delle posizioni delle articolazioni all’interno di un determinato intervallo di tempo. Se questa varian- za risultava essere bassa, significava che l’utilizzatore non si era mosso molto. Al contrario, se la varianza risultava essere alta allora l’utilizzatore si era mosso anima- tamente, durante il periodo di osservazione. Tuttavia questa implementazione ha un limite: riesce a determinare se l’utilizzatore si è mosso solo in un intervallo di tempo limitato. Volendo poter osservare movimenti rapidi, che bruscamente alzerebbero la fre- quenza cardiaca, e movimenti lenti ma ripetuti nel tempo, che alzerebbe lentamente 83
  • 95.
    5 – Integrazionedel sistema la frequenza cardiaca, si è pensato di utilizzare come variabile fisica, per discriminare il movimento dell’utilizzatore, l’energia cinetica. In realtà si utilizza una grandezza proporzionale all’energia cinetica definita come E = 3 i=0 v2 i , con vi la velocità del- la i-esima articolazione. Tale grandezza risulta essere proporzionale in quanto nel calcolo non subentra la massa, poiché nel sistema le articolazioni non presentano massa. Ad ogni step time della simulazione, si aggiungono le nuove velocità ma nello stesso tempo si decrementa di un coefficiente scelto il valore appena calcolato in modo tale che la frequenza possa tornare al minimo nel caso in cui l’utilizzatore non si muova per un lungo periodo. Se viene effettuato un movimento brusco, come il picco più alto del grafico in figura 5.5, le velocità dei segmenti interessati saranno elevate e quindi E si alze- rà di molto. Se invece vengono effettuati dei movimenti semplici ma ripetuti nel tempo, come nei primi picchi a sinistra in figura 5.5, le velocità dei segmenti inte- ressati saranno basse ma prolungate nel tempo e quindi E aumenterà leggermente nel tempo. 0 5 10 15 20 25 30 0 0.5 1 1.5 2 ·104 t [s] E[J] Figura 5.5: Grandezza energetica per identificare la quantità di moto Si è quindi definita una corrispondenza tra il valore della frequenza cardiaca, ovvero la velocità con cui vengono aggiornati le posizioni dei vertici della mesh del 84
  • 96.
    5 – Integrazionedel sistema cuore, con il valore di E attraverso una tabella. 5.6 Conclusione e discussione Questo capitolo introduce diversi aspetti della creazione del nucleo dell’AnatoMi- mo tra i quali l’integrazione delle tecnologie, il funzionamento di una dimostrazione dell’AnatoMimo, la visualizzazione, l’interfaccia e l’interazione. In un primo mo- mento, si è presentato anche un riassunto dei criteri di confronto dei diversi specchi interattivi con l’AnatoMimo in sezione 5.1.1. Altri aspetti che sono stati trattati e che vengono qui brevemente citati sono: • inversione degli organi, in quanto, diversamente da una rappresentazione clas- sica anatomica, in cui la parte destra del corpo rappresenta il lato sinistro, in uno specchio tutto quello che è a destra dell’utilizzatore deve trovarsi a destra nello specchio. Per questa ragione, si sono invertiti gli organi, permettendo al fegato per esempio di trovarsi nel modello nella parte destra. Solo gli organi sono stati invertiti in quanto per simmetria tutti gli altri elementi del modello risultano essere uguali nella parte sinistra e destra. • immagine Kinect come sfondo. Si è tentato di sovrapporre il modello ana- tomico 3D all’immagine a colori restituita dalla Kinect . Tuttavia il fatto di vedere dietro al modello l’immagine dell’utilizzatore, mette alla luce diversi errori di posizionamento degli elementi del modello, che senza l’immagine di riferimento passerebbero inosservati. Tuttavia per lo scopo di embodiment su cui questo progetto si basa, è sufficiente che il modello si muova dopo che l’u- tilizzatore abbia compiuto lo stesso movimento per permettere la facilitazione dell’apprendimento dell’anatomia, senza che la propria immagine sia presente dietro. Per chiudere, si può dire che si é ideato un dispositivo che permette in maniera innovativa di visualizzare e esplorare in maniera interattiva, le strutture anatomiche interne del corpo normalmente invisibili ad occhio nudo. Per validare questo lavoro nel quadro dell’apprendimento «Somatic Learning» si é pensato che sarebbe possibile nei lavori futuri mettere in atto uno studio utilizzatore con degli studenti in medicina o degli studenti in sport. 85
  • 97.
  • 98.
    6 – Conclusione Inquesto capitolo, si ritornerà sull’insieme dei lavori svolti durante questa tesi. Inizialmente in sezione 6.1 si presenterà un rapido richiamo dei diversi contributi. In seguito in sezione 6.2 verranno presentate qualche prospettiva per seguire questo lavoro di ricerca. Infine, si parlerà in sezione 6.3 dei domini di applicazione per l’AnatoMimo. 6.1 Richiamo dei contributi L’idea principale dietro al progetto AnatoMimo è animare un modello anatomico mimando i movimenti di un utilizzatore. Si parla quindi di un’applicazione in tempo reale di tipo «specchio interattivo». Due sfide principali sono state rilevate. 6.1.1 Cattura e seguito dei movimenti Questa sfida consiste nella cattura realistica e in tempo reale dei movimenti del- l’utilizzatore con lo scopo di riprodurre lo stesso comportamento delle strutture anatomiche dell’utilizzatore in un modello anatomico digitale, a partire da dati Ki- nect, spesso parziali e rumorosi. Si è voluto intraprendere questo percorso per poter permettere di studiare l’anatomia in movimento a partire da sensori leggeri, con l’idea che l’intero sistema possa essere installato e utilizzato al di fuori di una sala specializzata. Si è presentato nel capitolo 4 la struttura di controllo gerarchica utilizzata, basata sulle conoscenze anatomiche (assi di rotazione e limiti articolari). Il sistema di cattura in tempo reale utilizzato si distingue grazie a: • dei movimenti realistici: con l’utilizzo delle conoscenze anatomiche per la correzione dei dati in entrata. • dei movimenti fluidi e robusti: con l’applicazione di un filtro sui dati grezzi • dei movimenti coerenti: grazie alla soppressione di una parte degli artefatti con le correzioni articolari e l’applicazione di un filtro Si è notato che per il sistema di cattura sviluppato il punto più critico risulta la gestione dei dati occultati: dovuti all’orientamento del corpo rispetto al punto di vista della telecamera o anche dovuto all’auto-occultamento. Si pensa che l’utilizzo di un modello biomeccanico, anche parziale, potrebbe correggere una buona parte degli artefatti dovuti ad occultamento e quindi aiutare i risultati ottenuti. 87
  • 99.
    6 – Conclusione 6.1.2Integrazione, visualizzazione e sperimentazione Esistono diversi specchi interattivi che permettono di visualizzare e interagire con un contenuto anatomico (vedere sezione 2.3.2), ognuno aventi i suoi punti forti e punti deboli in funzione degli scopi che gli autori si sono prefissati. La sfida, accettando questo progetto, riguarda la realizzazione di un nucleo ope- razionale di AnatoMimo che permette la visualizzazione e l’interazione con del con- tenuto anatomico. Ci si è interessati particolarmente ad una visualizzazione corpo intero in tempo reale del sistema muscolo-scheletrico per spiegare il funzionamento articolare del corpo. Componenti come il sistema vascolare e gli organi, tra cui il cuore che batte, aumenta la percezione di realismo da parte dell’utilizzatore. Per incrementare ulteriormente il realismo nel sistema muscolare e nel sistema vascola- re, si è pensato di aggiungere in un futuro le texture corrispondenti, sostituendo la colorazione uniforme realizzata in questa versione. 6.2 Prospettive Nella sezione precedente si sono riassunte i diversi contributi sviluppati nella tesi e anche le piste da seguire per miglioramenti a breve termine. Si espongono qui le prospettive da applicare sul lungo termine. Cattura Il lavoro presentato nel capitolo 4 permette di catturare i movimenti dell’utilizzatore. Un seguito logico di questo lavoro sarebbe quello di fare un riconoscimento dei movimenti per permettere di visualizzare del contenuto legato direttamente con il movimento in modo automatico. Si è parlato più volte dell’aspetto critico della cattura del movimento. Un approc- cio multi-sensore o l’utilizzo di un sensore più performante sembra essere una pos- sibile strada da seguire. Questo permetterebbe di ottenere una cattura più precisa rendendo possibile il settore della rieducazione o dell’apprendimento di un gesto. Interfaccia e interazione Ad oggi non sono state sviluppate interfacce complesse che permettono l’interazione con il contenuto. Uno studio spinto dell’interfaccia sembra essere essenziale per determinare la sua ergonomia e permettere la scelta del miglior modo per interagire con il contenuto (in funzione della profondità oppure utilizzando le mani). 88
  • 100.
    6 – Conclusione Conclusione L’AnatoMimo,strumento sviluppato nel corso di questa tesi, è attualmente in uno stadio sperimentale. La pertinenza dello strumento nel quadro dell’autoappren- dimento di conoscenze anatomiche complesse e dinamiche rimane da validare. Si spera in un futuro prossimo di poter costruire e validare uno strumento completo, attraverso l’aiuto di studenti e insegnanti di anatomia umana. Come si è appena visto, può ancora essere migliorato: a livello della cattura dei movimenti, dell’interfaccia, dell’interazione e della visualizzazione delle conoscenze. Questo strumento permette già di aprire una riflessione sul suo utilizzo in diversi domini, come nel quadro della formazione in anatomia. Si parlerà di questo nella sezione successiva. 6.3 Settori di applicazione di questo lavoro 6.3.1 Settore medico e paramedico L’ipotesi secondo la quale l’apprendimento sarebbe facilitato da un’esperienza corpo- rale rientra nella nozione di incarnazione o «embodiment». Questo concetto derivan- te dalla psicologia cognitiva fa riferimento ai processi cognitivi basati sulle esperienze sensoriali e sulle posture corporali. Questo lavoro potrebbe contribuire a nuove tecnologie pedagogiche di insegna- mento della medicina. 6.3.2 Apertura ad altri domini Questo strumento è stato inizialmente creato per delle applicazioni nel dominio medico e paramedico. Si è tuttavia notato nel corso del suo sviluppo, che AnatoMimo abbia un enorme potenziale da offrire in altri settori. Si può citare l’applicazione nel dominio del grande pubblico attraverso musei ed esposizioni, come il sistema Mir’Os [66] che permette a qualsiasi persona di scoprire in maniera ludica l’anatomia in movimento e le nozioni anatomiche associate. Seguendo questo esempio, si è deciso di creare una versione demo del sistema in modo che possa diventare una delle attrazioni presenti nell’esposizione itinerante “De l’Homo Numericus au Citoyen Numérique”. 89
  • 101.
    6 – Conclusione Nelcorso dello sviluppo del progetto, si sono instaurati molti confronti con col- leghi, relatori, professionisti in visita al laboratorio di ricerca, in cui si è sviluppato il progetto. Molte di queste persone hanno provato la versione demo di AnatoMimo e hanno lasciato diversi feedback che possono essere sintetizzati da queste due frasi: • AnatoMimo è uno dei miglior modi per instaurare curiosità in un pubblico non esperto e ispirarlo a imparare di più sul proprio corpo. • AnatoMimo è un bell’esempio su come la tecnologia moderna può portare una nuova prospettiva in una disciplina tradizionale come l’anatomia umana. 90
  • 103.
  • 104.
    Appendice A Grafo dellascena <?xml version="1.0" ?> <Node dt="0.02" gravity="0 0 0" name="root" animate="true"> <VisualStyle name="visualStyle1" displayFlags="showVisual hideBehaviorModels"/> <ViewerSetting resolution="800 600" cameraMode="Perspective"/> <RequiredPlugin pluginName="Plugin_Kinect" /> <EulerImplicit name="cg odesolver" printLog="false" vdamping="5" /> <CGLinearSolver iterations="10" name="linear solver" threshold="1e-7" tolerance="1e-7" /> <Node name="InputMesh"> <!-- Bones --> <MeshObjLoader name="spine" filename="data/mesh/spine.obj" scale="0.025"/> ... <!-- Organs --> <MeshObjLoader name="intestine" filename="data/mesh/intestine.obj" scale="0.025"/> ... <!-- Tissues --> <MeshObjLoader name="skin" filename="data/mesh/skin.obj" scale="0.025"/> ... </Node> <Node name="SpineBase" > <GenerateRigidMass name="rigidEngine" template="Rigid" density="1" position="@InputMesh/spine_base.position" triangles="@InputMesh/spine_base.triangles" quads="@InputMesh/spine_base.quads" /> <TransformEngine name="pivot" input_position="@rigidEngine.centerToOrigin" translation="0.0 0.0 0.018" /> </Node> ... <Node name="Muscles" > <GenerateRigidMass name="rigidEngine" template="Rigid" density="1" position="@InputMesh/muscles.position" triangles="@InputMesh/muscles.triangles" quads="@InputMesh/muscles.quads" /> <TransformEngine name="pivot" input_position="@rigidEngine.centerToOrigin" translation="-0.005 -0.035 0.03" /> </Node> <!-- Kinect interaction--> <KinectExtractor name="kinect" captureZone="1.5 2.2 -0.5 0.5"/> <MechanicalObject template="Rigid" name="trackedDOFs" showObjectScale="0.001" position="@kinect.bodyJoints" /> <Node name="articulation"> <MechanicalObject name="Articulations" template="Vec1d" position="0 ... 0 " /> <!-- Constraints articulations --> 93
  • 105.
    A – Grafodella scena <MechanicalStateFilter name="filter" template="Vec1d" indices="27 29" range="30 -150 0 -90"/> <Node name="Physic"> <MechanicalObject template="Rigid" name="DOFs" showObjectScale="0.001" position=" 0 0 0 0 0 0 1 ... 0 0 0 0 0 0 1" /> <Node name="points3D"> <MechanicalObject template="Vec3d" name="DOFs_3D" /> <IdentityMapping name="IdMapping" template="Rigid3d,Vec3d" input="@../DOFs" output="@DOFs_3D" /> <RestShapeSpringsForceField template="Vec3d" name="ControlSprings" stiffness="500000" external_rest_shape="../../../points3D/trackedDOFs_3D" points="1 2 3 4 5 6 9 10 11 12 13 14 15 16 17 18 19 20" external_points="0 1 1 20 20 3 4 8 5 9 12 16 13 17 15 19 6 10" /> </Node> <UniformMass template="Rigid" name="mass" mass="1 1 [1 0 0,0 1 0,0 0 1]" showAxisSizeFactor="0.075" /> <ArticulatedSystemMapping input1="@../Articulations" output="@DOFs" isMechanical="true" /> <Node name="Skeleton"> <VisualStyle name="SkeletonVisualStyle" displayFlags="showVisual" /> <Node name="SpineBase"> <Node name="VisualModel"> <include href="data/Shading_bone.xml" Visual__scale="0.025" Visual__filename="@InputMesh/spine_base.filename" Visual__translation="@../../../../../SpineBase/pivot.output_position" DiffuseMap__textureFilename="data/texture/skeleton_legs.png" /> <RigidMapping template="Rigid3d,ExtVec3f" index="1" input="@../../../DOFs" output="@Visual" /> </Node> </Node> ... <Node name="Muscles"> <Node name="VisualModel"> <OglModel name="Visual" src="@../../../../../InputMesh/muscles" translation="@../../../../../Muscles/pivot.output_position" tags="muscles" color="0.9 0.4 0.2" /> <include href="data/ SkinningMapping_MuscoliPesiCopiati_Ancheinblendermanoinsofa.xml" /> </Node> </Node> </Node> </Node> <ArticulatedHierarchyContainer /> <Node name="articulationCenters"> <Node name="SpineBaseArticulation"> <ArticulationCenter parentIndex="0" childIndex="1" posOnParent="0 0 0" posOnChild="0 0 0" articulationProcess="0" /> <Node name="articulations"> <Articulation translation="true" rotation="false" rotationAxis="1 0 0" articulationIndex="0" /> <Articulation translation="true" rotation="false" rotationAxis="0 1 0" articulationIndex="1" /> <Articulation translation="true" rotation="false" rotationAxis="0 0 1" articulationIndex="2" /> <Articulation translation="false" rotation="true" rotationAxis="1 0 0" articulationIndex="3" /> <Articulation translation="false" rotation="true" rotationAxis="0 1 0" 94
  • 106.
    A – Grafodella scena articulationIndex="4" /> <Articulation translation="false" rotation="true" rotationAxis="0 0 1" articulationIndex="5" /> </Node> </Node> ... <Node name="LeftFootArticulation"> <ArticulationCenter parentIndex="16" childIndex="18" posOnParent="-0.5 -0.4 0.5" posOnChild="0.0 0.0 0.0" articulationProcess="0" /> <Node name="articulations"> <Articulation translation="false" rotation="false" rotationAxis="1 0 0" articulationIndex="54" /> <Articulation translation="false" rotation="false" rotationAxis="0 1 0" articulationIndex="55" /> <Articulation translation="false" rotation="false" rotationAxis="0 0 1" articulationIndex="56" /> </Node> </Node> </Node> </Node> <VisualManagerPass name="contourPass" outputName="contourPass" tags="skin" listening="1" renderToScreen="0" factor="10" /> <VisualManagerPass name="backgroundPass" outputName="backgroundPass" tags="Background" listening="1" renderToScreen="0" factor="3" /> <VisualManagerPass name="bonesPass" outputName="bonesPass" tags="bones" listening="1" renderToScreen="0" factor="3" /> <VisualManagerPass name="organsPass" outputName="organsPass" tags="organs" listening="1" renderToScreen="0" factor="3" /> <VisualManagerPass name="musclePass" outputName="musclePass" tags="muscles" listening="1" renderToScreen="0" factor="3" /> <VisualManagerPass name="arteryPass" outputName="arteryPass" tags="vessels" listening="1" renderToScreen="0" factor="3" /> <OglShader tags="Final" name="shader" vertFilename="data/shader/compose.vert" fragFilename="data/shader/compose.frag" /> <OglFloatVariable tags="Final" name="organsCoeff" value="0.7" /> <OglFloatVariable tags="Final" name="bonesCoeff" value="0.3" /> <OglFloatVariable tags="Final" name="arteryCoeff" value="0.3" /> <OglFloatVariable tags="Final" name="musclesCoeff" value="0.3" /> <VisualManagerSecondaryPass name="secondaryPass" listening="1" renderToScreen="1" input_tags="muscles vessels organs bones Background skin" shader="@shader" /> <ZygoteBodyDisplayController name="zygoteController" /> </Node> </Node> 95
  • 107.
    Appendice B Plugin Kinect #ifndefSOFA_COMPONENT_ENGINE_KINECTEXTRACTOR_INL #define SOFA_COMPONENT_ENGINE_KINECTEXTRACTOR_INL #if !defined(__GNUC__) || (__GNUC__ > 3 || (_GNUC__ == 3 && __GNUC_MINOR__ > 3)) #pragma once #endif #include "KinectExtractor.h" #include <sofa/helper/gl/template.h> #include <iostream> #include <sofa/core/objectmodel/Event.h> #include <sofa/simulation/common/AnimateBeginEvent.h> #include <sofa/helper/system/thread/CTime.h> #include <sofa/helper/AdvancedTimer.h> namespace sofa { namespace component { KinectExtractor::kinectExtractor() : m_bodyJoints(initData(&m_bodyJoints, "bodyJoints", "list of all 25 body joints positions and orientations")), m_capture_zone(initData(&m_capture_zone, "captureZone", "Define a rectangle to be Kinect’s capture zone (the order of the given parameters is: minZ maxZ minX maxX)")) { f_listening.setValue(TRUE); } void KinectExtractor::init() { activeBodyIndex = 0; openKinectSensor(); addOutput(&m_bodyJoints); setDirtyValue(); filterPos.Init(smoothing, correction, prediction, jitterRadius, maxDeviationRadius); filterQuat.Init(smoothing, correction, prediction, jitterRadius, maxDeviationRadius); initPosition(); } void KinectExtractor::update() { processKinectInfo(); 96
  • 108.
    B – PluginKinect } void KinectExtractor::handleEvent(core::objectmodel::Event *event) { if (sofa::simulation::AnimateBeginEvent::checkEventType(event)) this->update(); } template<class Interface> static inline void KinectExtractor::safeRelease(Interface *&interfaceToRelease) { if (interfaceToRelease != nullptr) { interfaceToRelease->Release(); interfaceToRelease = nullptr; } } void KinectExtractor::openKinectSensor() { HRESULT hr = GetDefaultKinectSensor(&sensor); //If the function succeeds, open the sensor if (SUCCEEDED(hr)) { hr = sensor->Open(); if (SUCCEEDED(hr)) { //Get a body frame source from which we can get our body frame reader IBodyFrameSource *bodyFrameSource = nullptr; hr = sensor->get_BodyFrameSource(&bodyFrameSource); if (SUCCEEDED(hr)) { hr = bodyFrameSource->OpenReader(&bodyFrameReader); std::cout << "Success opening kinect" << std::endl; } //We’re done with bodyFrameSource, so we’ll release it safeRelease(bodyFrameSource); } } if (sensor == nullptr || FAILED(hr)) { std::cerr << "Cannot find any sensors.n"; //return E_FAIL; } } void KinectExtractor::processKinectInfo() { while (bodyFrameReader != nullptr) { IBodyFrame *bodyFrame = nullptr; HRESULT hr = bodyFrameReader->AcquireLatestFrame(&bodyFrame); if (SUCCEEDED(hr)) { IBody *bodies[BODY_COUNT] = { 0 }; hr = bodyFrame->GetAndRefreshBodyData(_countof(bodies), bodies); for (int i = 0; i < _countof(bodies); i++) { IBody *body = bodies[i]; BOOLEAN isTracked = false; body->get_IsTracked(&isTracked); if (FAILED(hr) || isTracked == false) 97
  • 109.
    B – PluginKinect continue; { Joint joints[JointType_Count]; body->GetJoints(_countof(joints), joints); if (joints[0].Position.Z<m_capture_zone.getValue()[1] && joints[0].Position.Z>m_capture_zone.getValue()[0] && joints[0].Position.X>m_capture_zone.getValue()[2] && joints[0].Position.X<m_capture_zone.getValue()[3]) activeBodyIndex = i; } } if (SUCCEEDED(hr)) { processBodies(bodies, activeBodyIndex); //After body processing’s done,we’re done with our bodies so release them. for (unsigned int bodyIndex = 0;bodyIndex < _countof(bodies);bodyIndex++) safeRelease(bodies[bodyIndex]); safeRelease(bodyFrame); return; } } else if (sensor) { BOOLEAN isSensorAvailable = false; hr = sensor->get_IsAvailable(&isSensorAvailable); if (SUCCEEDED(hr) && isSensorAvailable == false) { std::cout << "No available sensor is found.n"; helper::WriteAccessor<Data<VecRigid> > out = m_bodyJoints; out.resize(0); for (int a = 0; a < JointType_Count; a++) { const sofa::defaulttype::Quat quat(0, 0, 0, 1); sofa::defaulttype::Vec3d pos; pos[0] = initial_rigid[a].position.X; pos[1] = initial_rigid[a].position.Y; pos[2] = initial_rigid[a].position.Z; Rigid oneJoint(pos, quat); out.push_back(oneJoint); } } } else std::cerr << "Trouble reading the body frame.n"; } } void KinectExtractor::processBodies(IBody **bodies, int activeBodyIndex) { sofa::helper::AdvancedTimer::stepBegin("KinectProcess"); IBody *body = bodies[activeBodyIndex]; //Get the tracking status for the body, if it’s not tracked we’ll skip it BOOLEAN isTracked = false; HRESULT hr = body->get_IsTracked(&isTracked); if (FAILED(hr) || isTracked == false) { helper::WriteAccessor<Data<VecRigid> > out = m_bodyJoints; out.resize(0); for (int a = 0; a < JointType_Count; a++) { const sofa::defaulttype::Quat quat(0, 0, 0, 1); sofa::defaulttype::Vec3d pos; pos[0] = initial_rigid[a].position.X; 98
  • 110.
    B – PluginKinect pos[1] = initial_rigid[a].position.Y; pos[2] = initial_rigid[a].position.Z; Rigid oneJoint(pos, quat); out.push_back(oneJoint); } return; } //If we’re here the body is tracked so get the joint properties for this skeleton Joint joints[JointType_Count]; hr = body->GetJoints(_countof(joints), joints); JointOrientation jointsOrientation[JointType_Count]; hr = body->GetJointOrientations(_countof(jointsOrientation), jointsOrientation); if (SUCCEEDED(hr)) { helper::WriteAccessor<Data<VecRigid> > out = m_bodyJoints; out.resize(0); filterPos.UpdateFilter(joints); const CameraSpacePoint* newPos = filterPos.GetFilteredJoints(); if (joints[0].Position.Z<m_capture_zone.getValue()[1] && joints[0].Position.Z>m_capture_zone.getValue()[0] && joints[0].Position.X>m_capture_zone.getValue()[2] && joints[0].Position.X<m_capture_zone.getValue()[3]) { for (int a = 0; a < JointType_Count; a++) { sofa::defaulttype::Vec3d pos(newPos[a].X, newPos[a].Y, newPos[a].Z); Rigid oneJoint(pos, rigid[a].orientation); out.push_back(oneJoint); } } else { for (int a = 0; a < JointType_Count; a++) { const sofa::defaulttype::Quat quat(0, 0, 0, 1); sofa::defaulttype::Vec3d pos; pos[0] = initial_rigid[a].position.X; pos[1] = initial_rigid[a].position.Y; pos[2] = initial_rigid[a].position.Z; Rigid oneJoint(pos, quat); out.push_back(oneJoint); } } } sofa::helper::AdvancedTimer::stepEnd("KinectProcess"); } void KinectExtractor::initPosition() { initial_rigid[0].position={(float)-0.0843352, (float)-0.058137, (float)0.0795146}; ... initial_rigid[24].position={(float)0.310567, (float)-0.15552, (float)0.0526308}; } } // namespace component } // namespace sofa #endif 99
  • 111.
    Bibliografia [1] LUSK, M.M., AND ATKINSON, R. K. Animated pedagogical agents : Does their degree of embodiment impact learning from static or animated worked examples? Applied cognitive psychology 21, 6 (2007), 747–764. [2] AYMERIC, G., STÉPHANE, C., CHRISTOPHE, B., PATRICE, T., AND CHRISTIAN, C. Relationship between spatial abilities, mental rotation and functional anatomy learning. [3] REBECCA S., L., ANN C., Z., CARLA A., R., AND TODD M., H. Effect of visual– spatial ability on medical students performance in a gross anatomy course. [4] SANDRA, B., ROSITA, H., ROBERT, H., AND GERTRAUD, G. Improving spatial abilities with a 3d immersive environment. a pilot study. [5] KAMPHUIS, C., BARSOM, E., SCHIJVEN, M., AND CHRISTOPH, N. Aug- mented reality in medical education? Perspectives on medical education 3, 4 (2014), 300–311. [6] FREILER, T. J. Learning through the body. [7] COHEN, B. B. http ://www.experientialanatomy.org. [8] BUZAN, T., AND BUZAN, B. How to mind map. Thorsons London, 2002. [9] ANATOMAGE, 2012. http ://medical.anatomage.com/. [10] KAMINA, P. Anatomie clinique. Maloine, France, 2009. [11] CORPORATION, I., 1999. http ://www.innerbody.com/. [12] BIODIGITAL, 2014. https ://www.biodigital.com/. [13] ZYGOTEBODY, 2014. https ://zygotebody.com/. [14] ZOOLOGICO LA SPECOLA, M., MARTA, P., AND GEORGES, D.-H. Ency- clopaedia anatomica. Collection complète des cires anatomiques. Taschen GmbH, 2003. [15] PRINTING (CJP), C. http ://www.materialise.fr/impression-3D/cjp. [16] 3DSYSTEMS, 2013. http ://www.3dsystems.com/. [17] J. B. ANTOINE, M., AND MAX A., V. A survey of medical image registration, March 1998. [18] GRABER, M. A., WYATT, C., KASPAREK, L., AND XU, Y. Does simula- tor training for medical students change patient opinions and attitudes toward 100
  • 112.
    Bibliografia medical student proceduresin the emergency department ? MICCAI 12 (2005), 635–639. [19] KNEEBONE, R. Evaluating clinical simulations for learning procedural skills : a theorybased approach. Academic medicine : journal of the Association of American Medical Colleges 80 (2005), 549–553. [20] COTIN, S., DELINGETTE, H., AND AYACHE, N. Real-time elastic deforma- tions of soft tissues for surgery simulation. IEEE Transactions on Visualization and Computer Graphics 5, 1 (Jan. 1999), 62–73. [21] AYMERIC, G., STÉPHANE, C., CHRISTOPHE, B., PATRICE, T., AND CHRISTIAN, C. Relationship between spatial abilities, mental rotation and functional anatomy learning. [22] KAMPHUIS, C., BARSOM, E., SCHIJVEN, M., AND CHRISTOPH, N. Aug- mented reality in medical education? Perspectives on medical education 3, 4 (2014), 300–311. [23] NAVAB, N., BLUM, T., WANG, L., OKUR, A., AND WENDLER, T. First deployments of augmented reality in operating rooms. IEEE Computer 45, 7 (2012), 48–55. [24] MICROSOFT. HoloAnatomy, 2016. http://www.digitaltrends.com/virtual- reality/hololens-holoanatomy-award-jackson-hole-science-media-awards/. [25] MIRRACLE, 2011-2013. http ://campar.in.tum.de/files/mirracle/. [26] MENG, M., FALLAVOLLITA, P., BLUM, T., ECK, U., SANDOR, C., WEI- DERT, S., WASCHKE, J., AND NAVAB, N. Kinect for interactive ar anatomy learning. In Mixed and Augmented Reality (ISMAR), 2013 IEEE International Symposium on (2013), IEEE, pp. 277–278. [27] MA, M., FALLAVOLLITA, P., SEELBACH, I., VON DER HEIDE, A. M., EULER, E., WASCHKE, J., AND NAVAB, N. Personalized augmented reality for anatomy education. In Clinical Anatomy (May 2016), vol. 29, pp. 446–453. [28] BLUM, T., KLEEBERGER, V., BICHLMEIER, C., AND NAVAB, N. mirracle : An augmented reality magic mirror system for anatomy education. In Virtual Reality Short Papers and Posters (VRW), 2012 IEEE (2012), IEEE, pp. 115–116. [29] MAITRE, X. Newscientist : Digital mirror reveals what lies under your skin, April 2014. [30] BORNER, A., AND KIRSCH, S. Anatomie spiegel. http ://www.qwertzus.com/anatomie-spiegel/, February 2015. [31] PIXOLOGIC. Zbrush, 2015. https ://pixologic.com/. [32] FOUNDATION, B., 2002-2016. https ://www.blender.org/. [33] ICT. Light stage 6, 2006. https://www.fxguide.com/featured/light_stage_6/. [34] DEBEVEC, P., HAWKINS, T., TCHOU, C., DUIKER, H.-P., SAROKIN, W., AND SAGAR, M. Acquiring the reflectance field of a human face. In Proceedings 101
  • 113.
    Bibliografia of the 27thAnnual Conference on Computer Graphics and Interactive Techni- ques (New York, NY, USA, 2000), SIGGRAPH ’00, ACM Press/Addison-Wesley Publishing Co., pp. 145–156. [35] ANGUELOV, D., SRINIVASAN, P., KOLLER, D., THRUN, S., RODGERS, J., AND DAVIS, J. Scape : Shape completion and animation of people. ACM Trans. Graph. 24, 3 (July 2005), 408–416. [36] BOUAZIZ, S., AND PAULY, M. Dynamic 2d/3d registration for the kinect. In ACM SIGGRAPH 2013 Courses (New York, NY, USA, 2013), SIGGRAPH ’13, ACM, pp. 21 :1–21 :14. [37] BOGO, F., ROMERO, J., LOPER, M., AND BLACK, M. J. FAUST : Dataset and evaluation for 3D mesh registration. In Proceedings IEEE Conf. on Computer Vision and Pattern Recognition (CVPR) (Columbus, Ohio, USA, jun 2014), pp. 3794 –3801. [38] OF MEDICINE, C. N. L. The visible human project, 2014. https ://www.nlm.nih.gov/research/visible/. [39] HÖHNE, K. H. Voxel-man 3d navigator, 1985. http://www.voxel-man.com/gallery/ visible_human/inner_organs/. [40] ZACHOW, S., ZILSKE, M., AND HEGE, H.-C. 3D reconstruction of individual anatomy from medical image data : Segmentation and geometry processing. ZIB, 2007. [41] ZURICH MED TECH. Sim4life, 2010. http://www.zurichmedtech.com/. [42] ANDREAS, C., WOLFGANG, K., ECKHART G., H., KATHARINA, H., MARCEL, Z., ESRA, N., WOLFGANG, R., ROLF, J., WERNER, B., JI, C., BERTHOLD, K., PETER, S., HANS-PETER, H., JIANXIANG, S., MICHAEL, O., DOMINIK, S., ANTHONY, K., JOSHUA W., G., AND NIELS, K. The vir- tual family–development of surface-based anatomical models of two adults and two children for dosimetric simulations. vol. 55, p. N23–N38. [43] COMPANY, T. Z., 2010. https ://www.zygote.com/. [44] JACOBS, J., BARBIC, J., EDWARDS, E., DORAN, C., AND VAN STRA- TEN, A. How to build a human : Practical physics-based character animation. In Proceedings of the 2016 Symposium on Digital Production (New York, NY, USA, 2016), DigiPro ’16, ACM, pp. 7–9. [45] UNIVERSITÉ CLAUDE BERNARD, L. ., 2012. http ://anatomie3d.univ- lyon1.fr/. [46] THIRIET, P., AND RASTELLO, O., 2013. https ://www.youtube.com/watch ?v=KsYt96PWOOk. [47] MAYA. A. Maya muscle plugin, 2011. http://download.autodesk.com/us/ support/files/muscle.pdf. [48] AUTODESK. Maya, 1998-2016. http://www.autodesk.fr/products/maya/ overview. 102
  • 114.
    Bibliografia [49] LIU, L.,YIN, K., WANG, B., AND GUO, B. Simulation and control of skeleton- driven soft body characters. ACM Trans. Graph. 32, 6 (Nov. 2013), 215 :1–215 :8. [50] LANDER, J. Skin them bones : Game programming for the web generation.Game Developer Magazine, May 1998. [51] LANDER, J. Over my dead, polygonal body. Game Developer Magazine, October 1999. [52] KAVAN, L., COLLINS, S., ŽÁRA, J., AND O’SULLIVAN, C. Skinning with dual quaternions. In Proceedings of the 2007 Symposium on Interactive 3D Graphics and Games (New York, NY, USA, 2007), I3D ’07, ACM, pp. 39–46. [53] C., N., R.K., J., A., L., D., H., A., L., A., A., P., L., A., S., AND P., W. Foot kinematics during walking measured using bone and surface mounted markers. 3412– 3423. [54] MENG, M., FALLAVOLLITA, P., BLUM, T., ECK, U., SANDOR, C., WEI- DERT, S., WASCHKE, J., AND NAVAB, N. Kinect for interactive ar anatomy learning. In Mixed and Augmented Reality (ISMAR), 2013 IEEE International Symposium on (2013), IEEE, pp. 277–278. [55] PFISTER, A., WEST, A. M., BRONNER, S., AND NOAH, J. A. Comparative abilities of microsoft kinect and vicon 3d motion capture for gait analysis. Journal of medical engineering and technology 38, 5 (2014), 274–280. [56] UNITY3D, 2016. https ://unity3d.com/. [57] ASUS. Xtion pro live. [58] GOOGLE. Tango : see more of your world. [59] INC, A. Structure. [60] MICROSOFT. Kinect for windows sdk 2.0. [61] MICROSOFT. Kinect for xbox one. [62] SOFA. https://www.sofa-framework.org/ [63] F. Faure, C. Duriez, H. Delingette, J. Allard, Benjamin Gilles, et al.. SO- FA: A Multi-Model Framework for Interactive Physical Simulation. Yohan Pa- yan. Soft Tissue Biomechanical Modeling for Computer Assisted Surgery, 11, Springer, pp.283-321, 2012, Studies in Mechanobiology, Tissue Engineering and Biomaterials [64] KING, A. P., EDWARDS, P. J., JR., C. R. M., DE CUNHA, D. A., GASTON, R. P., CLARKSON, M. J., HILL, D. L. G., HAWKES, D. J., FENLON, M. R., STRONG, A. J., COX, T. C. S., AND GLEESON, M. J. Stereo augmented reality in the surgical microscope. Presence 9, 4 (2000), 360–368. [65] OPENGL SUPERBIBLE. http://www.openglsuperbible.com/ [66] DAUPHINOIS, M. Exposition confidences d’outre-tombe, squelettes en que- stion. http ://lacasemate.fr/visiter/hors-les-murs/confidences-doutre-tombe/. 103