Simple Science

Scienza all'avanguardia spiegata semplicemente

# Informatica# Visione artificiale e riconoscimento di modelli

Grendel: Un Nuovo Approccio allo Splatting Gaussiano 3D

Grendel migliora il rendering di immagini 3D utilizzando più GPU per una qualità e una velocità superiori.

― 6 leggere min


Grendel: Trasformare ilGrendel: Trasformare ilRendering 3Ddell'immagine 3D e la velocità.Nuovo sistema migliora la qualità
Indice

3D Gaussian Splatting (3DGS) è un metodo utilizzato per creare immagini tridimensionali a partire da fotografie bidimensionali. Questo approccio ha guadagnato popolarità perché produce visualizzazioni di alta qualità rapidamente. Tuttavia, è solitamente limitato all'addestramento su un singolo unità di elaborazione grafica (GPU). Questa restrizione ostacola la capacità di lavorare con immagini più grandi e scene più complesse, principalmente a causa dei limiti di memoria di una singola GPU.

Per affrontare queste problematiche, introduciamo un sistema chiamato Grendel, progettato per consentire a più GPU di lavorare insieme. In questo modo, possiamo gestire compiti più complessi nella ricostruzione 3D senza essere limitati da vincoli di memoria. Grendel aiuta a distribuire equamente il lavoro tra le GPU e accelera l'elaborazione di scene su larga scala.

Il Problema con i Sistemi Attuali

Attualmente, quando si utilizza 3DGS, l'addestramento avviene su una GPU, il che significa che possiamo lavorare solo con un certo numero di componenti chiamati Gaussiani. Ogni Gaussiano rappresenta una piccola parte di una scena e aiuta a renderizzare l'immagine finale. Tuttavia, una singola GPU può gestire solo un numero limitato di Gaussiani prima di esaurire la memoria. Questo limite restringe la qualità e la dimensione delle immagini che possiamo creare.

In particolare, ampi set di dati come il dataset Rubble possono essere problematici. Questo dataset consiste in molte immagini ad alta risoluzione e richiede significativamente più Gaussiani di quanti una singola GPU possa gestire. I metodi attuali che tentano di aggirare questa limitazione spesso comportano la compressione dei dati o il rendering selettivo di parti della scena. Sfortunatamente, questi metodi affrontano ancora sfide significative a causa di vincoli di memoria e di calcolo.

Introduzione di Grendel

Grendel è progettato per affrontare queste limitazioni suddividendo il lavoro in parti più piccole e gestibili. Distribuisce i Gaussiani tra più GPU e consente loro di lavorare insieme per rendere la scena. Ogni Gaussiano influisce solo su una piccola area dell'immagine finale, il che significa che possiamo sfruttare una comunicazione sparsa tra le GPU per mantenere tutto in funzione senza intoppi.

Una caratteristica chiave di Grendel è la sua capacità di supportare più viste durante l'addestramento. A differenza dei sistemi precedenti che addestravano solo utilizzando un angolo della fotocamera alla volta, Grendel consente l'elaborazione di più angoli in batch. Questo rende il processo di addestramento più veloce ed efficiente, poiché ogni GPU può eseguire una parte del lavoro simultaneamente.

Come Funziona Grendel

Grendel suddivide il lavoro in due categorie principali: calcolo basato sui Gaussiani e calcolo basato sui pixel. Il calcolo basato sui Gaussiani implica lavorare direttamente con i Gaussiani distribuiti tra le GPU, mentre il calcolo basato sui pixel si concentra sui singoli pixel delle immagini renderizzate.

Utilizzando questo approccio misto, Grendel minimizza la comunicazione necessaria tra le GPU e ottimizza le prestazioni. Il sistema si adatta anche dinamicamente durante l'addestramento, regolando il carico di lavoro su ciascuna GPU in base alle esigenze ongoing del compito. Questo previene il sovraccarico di qualsiasi GPU mentre altre sono sotto-utilizzate.

Addestramento in Batch

Nei metodi di addestramento tradizionali, ogni GPU elabora un'immagine alla volta. Questo porta a inefficienze, specialmente nei sistemi distribuiti con più GPU. In Grendel, l'addestramento avviene in batch, consentendo di elaborare più immagini contemporaneamente. Questo aumenta la velocità e l'efficienza complessive del processo di addestramento.

Tuttavia, quando si aumenta la dimensione del batch, è fondamentale regolare le impostazioni che governano il modo in cui il sistema apprende. Grendel include un metodo automatizzato per scalare gli iperparametri quando si utilizzano batch più grandi. Questo garantisce che il processo di apprendimento rimanga stabile ed efficace anche con cambiamenti nella dimensione del batch.

Testing delle Prestazioni

Per valutare le prestazioni di Grendel, sono stati eseguiti test approfonditi utilizzando ampi set di dati. Ad esempio, sul dataset Rubble, Grendel ha distribuito oltre 40 milioni di Gaussiani su 16 GPU, raggiungendo una qualità dell'immagine migliore rispetto ai metodi tradizionali che possono gestire solo una frazione di tale quantità su una singola GPU.

Con Grendel, abbiamo registrato miglioramenti significativi nella qualità dell'immagine e nella velocità di rendering. Il sistema è stato in grado di gestire set di dati più grandi che in precedenza non erano gestibili, dimostrando la sua efficacia nelle applicazioni del mondo reale.

Vantaggi di Grendel

Il principale vantaggio dell'utilizzo di Grendel è la sua capacità di scalare. Con l'aggiunta di più GPU, sia le prestazioni che la memoria disponibile aumentano. Ciò consente al sistema di gestire un numero maggiore di Gaussiani, il che porta a immagini di qualità migliore.

Inoltre, Grendel elabora le immagini più rapidamente rispetto ai metodi tradizionali. Questo è essenziale per applicazioni che richiedono risultati rapidi, come realtà virtuale e videogiochi. La capacità di lavorare con batch di immagini consente un uso efficiente dell'hardware disponibile, garantendo che le risorse siano ben utilizzate.

Affrontare le Sfide

Durante lo sviluppo di Grendel, sono state incontrate diverse sfide. Un problema significativo è stato la necessità di mantenere equilibrati i carichi di lavoro tra le GPU. Poiché diverse parti di una scena possono richiedere quantità diverse di potenza di elaborazione, è stato fondamentale sviluppare un metodo per regolare dinamicamente la distribuzione del lavoro.

Grendel utilizza un sistema di monitoraggio per registrare i tempi di rendering e regolare i carichi di lavoro in base alle esigenze di ciascuna GPU. Questo garantisce una distribuzione uniforme dei compiti e previene colli di bottiglia che potrebbero rallentare il processo di rendering.

Conclusione

Grendel offre un notevole aggiornamento al processo di rendering di immagini 3D utilizzando il Gaussian Splatting. Sfruttando più GPU, supera i limiti imposti dalle configurazioni di addestramento su dispositivo singolo. Il sistema migliora la qualità del rendering, aumenta la velocità di elaborazione e consente di gestire efficacemente set di dati più grandi.

Man mano che la tecnologia continua a evolversi, sistemi come Grendel diventeranno sempre più importanti per i settori che dipendono dalla generazione di immagini di alta qualità. Con il suo design scalabile e l'uso efficiente delle risorse, Grendel è pronto a guidare i progressi nei metodi di ricostruzione 3D.

Facendo di questa tecnologia un codice sorgente aperto, speriamo di incoraggiare ulteriori esperimenti e miglioramenti nella comunità, facilitando nuove applicazioni nella computazione visiva e oltre.

Fonte originale

Titolo: On Scaling Up 3D Gaussian Splatting Training

Estratto: 3D Gaussian Splatting (3DGS) is increasingly popular for 3D reconstruction due to its superior visual quality and rendering speed. However, 3DGS training currently occurs on a single GPU, limiting its ability to handle high-resolution and large-scale 3D reconstruction tasks due to memory constraints. We introduce Grendel, a distributed system designed to partition 3DGS parameters and parallelize computation across multiple GPUs. As each Gaussian affects a small, dynamic subset of rendered pixels, Grendel employs sparse all-to-all communication to transfer the necessary Gaussians to pixel partitions and performs dynamic load balancing. Unlike existing 3DGS systems that train using one camera view image at a time, Grendel supports batched training with multiple views. We explore various optimization hyperparameter scaling strategies and find that a simple sqrt(batch size) scaling rule is highly effective. Evaluations using large-scale, high-resolution scenes show that Grendel enhances rendering quality by scaling up 3DGS parameters across multiple GPUs. On the Rubble dataset, we achieve a test PSNR of 27.28 by distributing 40.4 million Gaussians across 16 GPUs, compared to a PSNR of 26.28 using 11.2 million Gaussians on a single GPU. Grendel is an open-source project available at: https://github.com/nyu-systems/Grendel-GS

Autori: Hexu Zhao, Haoyang Weng, Daohan Lu, Ang Li, Jinyang Li, Aurojit Panda, Saining Xie

Ultimo aggiornamento: 2024-06-26 00:00:00

Lingua: English

URL di origine: https://arxiv.org/abs/2406.18533

Fonte PDF: https://arxiv.org/pdf/2406.18533

Licenza: https://creativecommons.org/licenses/by/4.0/

Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.

Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.

Altro dagli autori

Articoli simili