Blog

Sviluppare un software di visualizzazione delle nuvole di punti più efficace per ottenere informazioni più approfondite

Scritto da Saad Support | 17 agosto 2023, ore 14:00:00

Visualizzazione di dati ad alta densità

Team di visualizzazione nel settore ingegneristico

Negli ultimi due anni, il nostro team di ingegneria della visualizzazione ha sviluppato un software in grado di fornire approfondimenti sui dati raccolti da Hovermap. La grande quantità di dati raccolti e le loro numerose applicazioni hanno reso necessario lo sviluppo di uno strumento di visualizzazione delle nuvole di punti in grado di soddisfare numerosi requisiti tecnici, al fine di ottimizzare l'esperienza utente dei Hovermap . Questa serie di articoli approfondisce gli aspetti da considerare e le soluzioni innovative che il team ha sviluppato per realizzare il software di visualizzazione Emesent.

Il team di ingegneria della visualizzazione ha iniziato a sviluppare un'applicazione di visualizzazione utilizzando Unreal Engine, uno strumento 3D impiegato nei 3D e nei software di architettura e ingegneria. Ciò include un plugin per nuvole LiDAR che abbiamo potuto utilizzare per visualizzare le nostre nuvole di punti. Questo plugin utilizza la partizione spaziale Octree in combinazione con un "point budget" per selezionare i punti migliori da visualizzare tra tutti quelli presenti nelle nuvole. Il budget dei punti limita i punti visualizzati a quelli che il renderer o l'unità di elaborazione grafica (GPU) è in grado di gestire.

Uno dei vantaggi di questo approccio è che, anche quando si esplorano miliardi di punti, viene visualizzato solo il sottoinsieme più piccolo di punti attualmente presenti nell'area di visualizzazione e, anche in quel caso, solo quelli visivamente più rilevanti. In questo modo è possibile mantenere una frequenza di aggiornamento altamente interattiva durante l'esplorazione dei dati.

Lo svantaggio di questa tecnica è che si analizzano solo i dati che l'algoritmo ritiene rilevanti o importanti. Più basso è il "Point Budget", maggiore è l'influenza di queste decisioni algoritmiche sul risultato finale. Esistono modi per ovviare a questo problema, ad esempio utilizzando una dimensione dei punti maggiore per fondere i punti nelle superfici. Tuttavia, si tratta essenzialmente di dati sintetici e non "reali".

Questo non è necessario per Hovermap , poiché produce nuvole di punti molto dense e il livello di dettaglio è già presente senza bisogno di essere sintetizzato. Pertanto, sin dall'inizio del progetto, abbiamo ampliato il plugin per adattarlo ai nostri dati densi.

Una delle nostre prime estensioni è stata quella di aggiungere il supporto per gli attributi puntuali generati dal nostro software SLAM . Abbiamo incluso il supporto per la visualizzazione degli attributi relativi a intensità, tempo, numero di anello, distanza e colori reali.

Un altro obiettivo era quello di portare al massimo il nostro budget di rendering per singolo fotogramma a 100 milioni di poligoni, ben oltre le impostazioni predefinite di Unreal.

Hovermap prima del rendering multi-frame Emesent.

La funzione di rendering multi-frame integrata nell'applicazione di visualizzazione Emesentconsentirà agli utenti di esplorare rapidamente Hovermap contenenti miliardi di punti.

Ma questo non soddisfaceva i requisiti. Hovermap set di dati composti da miliardi e miliardi di punti, quindi avevamo bisogno di un approccio diverso per il nostro risultato finale.

Per consentire il rendering a fotogramma intero di tutti i punti, abbiamo sviluppato un sistema che chiamiamo "Multi-Frame Rendering". Con questo approccio, abbiamo modificato il renderer in modo che costruisca l'immagine su più fotogrammi della GPU. Per applicarlo, l'algoritmo inizia attraversando l'octree alla ricerca dei nodi (insiemi di punti) visivamente più rilevanti, che vengono contrassegnati e quindi renderizzati. L'algoritmo attraversa quindi nuovamente l'octree e cerca i nodi visivamente più rilevanti successivi che non sono stati ancora renderizzati. Questo processo viene ripetuto fino a quando non rimangono più punti.

Ogni fotogramma viene composto utilizzando la profondità per ricostruire un fotogramma finale che comprenda tutti i punti, che siano un miliardo o 10 miliardi. Da queste immagini si può notare che la densità Hovermap è semplicemente incredibile, e ora possiamo visualizzarla all'interno del nostro Viewer. I tempi di rendering dipendono dal numero di punti e dall'hardware di rendering, ma il processo è comunque molto veloce, e il Multi-Frame Rendering è in grado di elaborare un miliardo di punti in un paio di secondi.

Questo approccio consentirà ai nostri utenti di esplorare rapidamente Hovermap , che contengono miliardi di punti, e di generare in breve tempo immagini di alta qualità che riproducono fedelmente i dati acquisiti, senza alcuna compromissione.

Nel prossimo articolo di questa serie vedremo come realizzare l'interfaccia utente, quindi seguiteci su LinkedIn per sapere quando sarà disponibile.