Studio e sviluppo di uno Scanner 3D con Kinect - AIRT Lab

Studio e sviluppo di uno Scanner 3D con Kinect
Università politecnica delle marche
Facoltà di ingegneria
Corso di laurea magistrale in ingegneria informatica
Tesi di laurea di:
Luca Pignati
Relatore:
Prof. Aldo Franco Dragoni
Correlatore:
Ing. Gianluca Dolcini
Introduzione
●
●
●
Sopperire alla mancanza di un
adeguato strumento di
misurazione
Esportare la tecnologia del
Kinect da un contesto
videoludico ad un contesto
biomedico.
●
Sviluppare un prototipo
software capace di effettuare
una scansione del corpo
umano a tre dimensioni
Testare le capacità del Kinect
per verificare se è possibile
utilizzarlo per misurazioni
antropometriche del corpo
umano
Tesi sviluppata nell'ambito di una collaborazione tra AIRTlab del DII e la
facoltà di medicina dell'UNIVPM
Il Kinect
Il Kinect è un sensore della Microsoft sviluppato dall'israeliana
Primesense per la consolle di gioco Xbox 360, è costituito da:
●
Una fotocamera RGB 640x480
●
Un emettitore di infrarossi
●
Una telecamera sensibile agli infrarossi
●
Un array di microfoni
●
Una Base motorizzata
Il Kinect effettua il riconoscimento del corpo e dei gesti tramite il
processore posto al suo interno per non appesantire la CPU della
consolle.
Il sensore di profondità
Questo progetto si basa sull'analisi e l'utilizzo del sensore di profondità
del Kinect.
Per calcolare la profondità il processore utilizza 3 tecniche applicate
alle informazioni che riceve dalla telecamera sensibile agli infrarossi:
●
Pattern di luce
●
Depth from focus
●
Depth from stereo
Strumenti utilizzati
Per sviluppare questo progetto sono stati utilizzati i seguenti strumenti
software.
●
Sistema Operativo Ubuntu 12.04
●
Librerie OpenNI
●
Librerie Java3D
●
Ambiente di sviluppo Eclipse 3.7.2
Misure Antropometriche: Attuale stato dell'arte
●
Attualmente le misure antropometriche vengono prese
manualmente da parte di medici o infermieri.
●
Lo strumento utilizzato è il metro a nastro
●
Le misure vengono riportate per lo più in centimetri.
Questo strumento solitamente ha una
Portata di 1,5 m e una sensibilità di
1mm
Tipicamente si riportano i valori di torace, addome e collo.
La nostra proposta
●
●
Verificare l'effettiva
funzionalità del Kinect
Effettuare una serie di test per
misurarne l'accuratezza
V1=[a1, a2, a3, … an]
Vdiff= |V1 – V2|
V2=[b1, b2, b3, … bn]
Vdiff= [|a1­b1|,|a2­b2|, … |an­bn|]
●
●
●
Migliorare le misurazioni
attuali
Fornire una base per eventuali
sviluppi futuri
Allargare l'utilizzo dello
strumento ad altri settori
Calcolo del volume:
S=[a , b]×[c , d ]
∬ g ( x , y )dV
S
Oppure
b d
∫∫ g ( x , y) dx , dy
a
c
Nel caso di insiemi discreti
l'integrale è una sommatoria di m
sottoregioni Pi aventi volume ΔVi
m
∑ g (Pi) ΔVi
i=1
Test sul Kinect
●
La procedura di calcolo è stata
ripetuta 50 volte per ogni tipo
di sperimentazione
Media
Err. max
Err. min
●
I risultati ottenuti sono stati
inseriti in un foglio di calcolo
Media 1
Media 2
0 mm
<2 mm
●
Tramite il foglio di calcolo si è
potuta fare un'indagine
statistica dell'errore
<5 mm
<10 mm
%0
%2
%5
%10
Test sulla distanza
Sono stati effettuati 3 nuovi test a 3 distanze significative,
1m:
Media
Err.
Max
Err.
Min
Media
1
Media
2
0 mm
<2
mm
<5
mm
<10
mm
%0
%2
%5
%10
0
15
0
1005
1005
254411
258849
306130
307169
82,82
84,26
99,65
99,99
Media
Err.
Max
Err.
Min
Media
1
Media
2
0 mm
<2
mm
<5
mm
<10
mm
%0
%2
%5
%10
1
30
0
1550
1550
252366
252366
252366
306107
82,15
82,15
82,15
99,64
Media
Err.
Max
Err.
Min
Media
1
Media
2
0 mm
<2
mm
<5
mm
<10
mm
%0
%2
%5
%10
2
173
0
2015
2015
249565
249565
249565
250603
81,24
81,24
81,24
81,58
1,5m:
2m:
Aumento dell'errore
120
100
80
Err. Max 1m
Err. Max 1,5m
Err. Max 2m
60
40
20
0
1 2 3 4 5 6 7 8 9 1011121314151617181920212223242526272829303132333435363738394041424344454647484950
Prove di posizione
In questi test abbiamo osservato come il Kinect si comporta con la
base inclinata e con lo schermo di osservazione ridotto.
Piano inclinato:
Media
Err.
Max
Err.
Min
Media
1
Media
2
0 mm
<2
mm
<5
mm
<10
mm
%0
%2
%5
%10
0
244
0
1224
1224
252822
254521
290652
306710
82,3
82,85
94,61
99,84
Schermo ridotto:
Media
Err.
Max
Err.
Min
Media
1
Media
2
0 mm
<2
mm
<5
mm
<10
mm
%0
%2
%5
%10
0
20
0
1080
1080
185512
185512
224925
225656
82,11
82,11
99,56
99,88
Immagini di errore
●
Immagine intera
●
Punti con errore > 3mm
●
●
Punti esatti
Punti con errore >5mm
Test sul corpo
●
●
E' stato utilizzato lo stesso principio dei
normali Test
L'algoritmo di calcolo è stato
leggermente modificato per eliminare
l'interferenza del punto cieco al
contorno
Test sul corpo
●
Valori Medi
Media
Err.
Max
Err.
Min
Media
1
Media
2
0 mm
<2
mm
<5
mm
<10
mm
%0
%2
%5
%10
1,42
94
0
32
34
248170
254300
273144
291514
80,78
82,78
88,91
94,89
●
Deviazione Standard
Media
Err.
Max
Err.
Min
Media
1
Media
2
0 mm
<2
mm
<5
mm
<10
mm
%0
%2
%5
%10
2,08
95
0
8
8
51354
48329
43024
29052
16,72
15,75
14,01
9,46
Immagini di errore sul corpo
Errore >5
Errore >7
Errore >10
Errore >20
Ultimo Test
●
Effettuato utilizzando il primo software sperimentato
●
Tabella ridotta, interessano solo le percentuali
0 mm
<2 mm
<5 mm
<10 mm
%0
%2
%5
%10
212680
212892
290893
301114
69,23
69,3
94,69
98,02
Lo Scanner 3D: primo prototipo
●
●
●
●
Selezionare i punti di interesse
Determinare i livelli di
profondità
Disporre i punti nel giusto
ordine
Java 3D disposizione
cartesiana dei punti
Lo Scanner 3D 360°
●
●
●
Stesso principio del primo
prototipo
Effettuare più scatti a seconda
della precisione desiderata
Utilizzo di formule di
traslazione per disporre i punti
nella maniera opportuna
x '= xcos (∂)− ysin(∂)
y '= xsin(∂)+ ycos(∂)
Conclusioni
Risultati ottenuti
●
●
●
●
●
Conferma dell'utilità del
sensore nel rilevamento di
misure antropometriche
Sviluppi Futuri
●
●
Buoni risultati in fase di testing
Buoni risultati nella
realizzazione dei prototipi
Basse percentuali di errore
oltre i 2 mm con oggetti
inanimati
Basse percentuale di errore
oltre i 5 mm con persone
●
●
Utilizzo di opportuni filtri per
eliminare eventuali errori
Ottimizzare strumenti di
interpolazione e correzione
software per abbassare il
margine di errore
Utilizzo del riconoscimento dei
movimenti per integrare allo
scanner la mappatura del
corpo
Applicare il prodotto ad altri
campi (fisioterapia, medicina
sportiva, cinema)
Le librerie di sviluppo
Il Kinect può essere utilizzato sfruttando le librerie ufficiali oppure
utilizzando delle librerie non ufficiali create da differenti gruppi di
ricerca.
Il pattern di luce
La Primesense ha sviluppato un particolare pattern di luce che
permette di sfruttare appieno i tre principi precedentemente illustrati.
Xtion Asus