Ai42
Skip to: [content] [navigation]
Progetto svolto su commissione del Dipartimento di Informatica, Sistemistica e Telematica dell'Università degli Studi di Genova (DIST) ed in collaborazione con l'Ente per le Nuove Tecnologie, l'Energia e l'Ambiente (ENEA).

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.

I dati associati alle letture laser telemetriche del modello acquisito, ruotato di 0 gradi. La colorazione è data dalla confidenza delle letture (in rosso le letture poco precise).

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

Immagine PGM della mappa di profondità estratta dal modello nella Figura precedente. In scuro i punti più distanti. Notare la mancanza di buchi.

Fig.2 - Mappa di profondità

Le mappe di profondità così generate sono state convertite in immagini PGM a scopo di controllo. In Figura 2 è visibile l'immagine PGM della mappa di profondità estratta dal modello in Figura 1. Da notare la mancanza di "buchi", riempiti automaticamente dal programma 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.

La voxmap di risoluzione 250×250×250 risultante integrando le letture laser telemetriche.

Fig.3 - Integrazione volumetrica

Per la seconda integrazione si è dovuto specificare la rotazione della voxmap per posizionarla correttamente rispetto alla mappa di profondità. Tale operazione modifica la voxmap memorizzata nel file VOX integrandola con la mappa di profondità.

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:

  1. la conversione delle letture laser telemetriche in mappe di profondità è indipendente, quindi tutte le conversioni sono singolarmente parallelizzabili;
  2. 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;
  3. 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;
  4. i modelli suddivisi, per una corretta conversione in formato poligonale, richiedono di essere accorpati in un unico modello volumetrico;
  5. la conversione in formato poligonale è un processo parallelizzabile in quanto il modello volumetrico utilizzato è richiesto solo in input.