Risultati
I test sono stati effettuati utilizzando 3 distinte acquisizioni di un piccolo soprammobile in ceramica a forma di bebè. In Figura 1 si possono vedere i dati di origine, ovvero i dati provenienti dalle letture laser telemetriche, utilizzati nel processo di integrazione.
Fig.1 - Dati originali
La colorazione è determinata dalla confidenza delle singole informazioni: in rosso quando la lettura è poco precisa, in chiaro quando l'informazione è certa (notare i "buchi" simili a "crepe" nella figura).
Le letture laser telemetriche si trovano in 3 file in formato PLY.
Questi 3 file sono stati convertiti in mappe di profondità di
risoluzione 512×512 utilizzando il programma
ai42ply2depth
Fig.2 - Mappa di profondità
ai42ply2depth.
La fase più delicata, l'integrazione volumetrica, è eseguita tramite
il programma ai42integration. Alla prima invocazione del programma
è necessario fornire tutte le informazioni utili a creare, e posizionare
nello spazio metrico di riferimento (cioè quello su cui sono state fatte
le acquisizioni), la voxmap su cui si esegue l'integrazione con la varie
mappe di profondità a disposizione.
L'ultima integrazione segue il procedimento della seconda, differenziandosi da questa per l'angolo di rotazione.
A questo punto nel file creato in formato VOX è memorizzata la voxmap ottenuta dall'integrazione delle 3 mappe di profondità. L'ultimo passaggio è la generazione di un modello poligonale visualizzabile tramite un qualsiasi viewer per file PLY. Il risultato finale è visibile in Figura 3.
Parallelizzazione della pipeline
I programmi sviluppati permettono la parallelizzazione della pipeline direttamente da riga di comando. Tra le proprietà più interessanti di questa caratteristica, oltre alla ovvia scalabilità raggiungibile, su sistemi multiprocessore, è la facilità con cui si possono distribuire i calcoli su diversi computer in rete. Poiché l'integrazione volumetrica è un processo che richiede molteplici mappe di profondità, la parallelizzazione della singola integrazione non avvantaggia particolarmente rispetto alla parallelizzazione dell'intero processo.
Il principio usato per parallelizzare la pipeline di calcolo nei singoli computer è il seguente:
- la conversione delle letture laser telemetriche in mappe di profondità è indipendente, quindi tutte le conversioni sono singolarmente parallelizzabili;
- la generazione di un'immagine a partire da una mappa di profondità non necessita di informazioni da parte di altre mappe di profondità, quindi ogni conversione è singolarmente parallelizzabile;
- Il processo di integrazione volumetrica utilizza singolarmente le varie mappe di profondità da integrare ma per ognuna richiede l'aggiornamento dello stesso modello volumetrico, quindi la parallelizzazione richiede la suddivisione del modello volumetrico permettendo l'integrazione parallela tra le singole suddivisioni;
- i modelli suddivisi, per una corretta conversione in formato poligonale, richiedono di essere accorpati in un unico modello volumetrico;
- la conversione in formato poligonale è un processo parallelizzabile in quanto il modello volumetrico utilizzato è richiesto solo in input.


