Angolo di Anderson
Creazione di ambienti di ricerca e salvataggio Neural con Mega-NeRF

Una nuova collaborazione di ricerca tra Carnegie Mellon e l’azienda di tecnologia di guida autonoma Argo AI ha sviluppato un metodo economico per generare ambienti di volo dinamici basati su Neural Radiance Fields (NeRF), utilizzando footage catturata da droni.

Il nuovo approccio, chiamato Mega-NeRF, ottiene un aumento di velocità di 40 volte rispetto allo standard di rendering di Neural Radiance Fields, nonché qualcosa di notevolmente diverso dallo standard tanks and temples che ricorrono in nuovi documenti NeRF.
Il nuovo documento è intitolato Mega-NeRF: Scalable Construction of Large-Scale NeRFs for Virtual Fly-Throughs, e proviene da tre ricercatori di Carnegie Mellon, uno dei quali rappresenta anche Argo AI.
Modellazione del paesaggio NeRF per la ricerca e il salvataggio
Gli autori ritengono che la ricerca e il salvataggio (SAR) siano un caso d’uso ottimale per la loro tecnica. Quando si valuta un paesaggio SAR, i droni sono attualmente limitati sia da restrizioni di larghezza di banda che di vita della batteria, e quindi non sono in grado di ottenere una copertura dettagliata o completa prima di dover tornare alla base, al quale punto i dati raccolti vengono convertiti in mappe aeree statiche 2D.
Gli autori affermano:
‘Immaginiamo un futuro in cui la rappresentazione neurale solleva questo analisi in 3D, consentendo ai team di risposta di ispezionare il campo come se stessero volando con un drone in tempo reale a un livello di dettaglio molto al di là di quanto possibile con la classica Structure-from-Motion (SfM).’
Incaricati di questo caso d’uso, gli autori hanno cercato di creare un modello NeRF basato su una complessa rete neurale che possa essere addestrata all’interno di un giorno, considerando che la vita media dei sopravvissuti nelle operazioni di ricerca e salvataggio diminuisce dell’80% durante le prime 24 ore.
Gli autori notano che i set di dati di cattura del drone necessari per addestrare un modello Mega-NeRF sono ‘di diversi ordini di grandezza’ più grandi di un set di dati standard per NeRF, e che la capacità del modello deve essere notevolmente più alta di quella di una fork o derivativa di NeRF. Inoltre, l’interattività e l’esplorabilità sono essenziali in una mappa del terreno di ricerca e salvataggio, mentre i render NeRF in tempo reale standard si aspettano una gamma di movimento precalcolata molto più limitata.
Dividi e conquista
Per affrontare questi problemi, gli autori hanno creato un algoritmo di clustering geometrico che divide il compito in sottomoduli, ed effettivamente crea una matrice di sottoreti NeRF che vengono addestrate contemporaneamente.
Al momento del rendering, gli autori implementano anche un algoritmo di visualizzazione just-in-time che è abbastanza reattivo da facilitare la piena interattività senza eccessiva pre-elaborazione, simile a come i videogiochi aumentano il dettaglio degli oggetti quando si avvicinano al punto di vista dell’utente, ma che rimane a una scala energetica e più rudimentale quando si trova a distanza.
Queste economie, gli autori sostengono, portano a un dettaglio migliore rispetto ai metodi precedenti che tentano di affrontare aree di soggetto molto ampie in un contesto interattivo. In termini di estrazione di dettagli da footage video a risoluzione limitata, gli autori notano anche il miglioramento visivo di Mega-NeRF rispetto alla funzionalità equivalente in UC Berkeley’s PlenOctrees.

Il progetto utilizza una catena di sottoreti NeRF basata sulle capacità di rendering in tempo reale di KiloNeRF, gli autori riconoscono. Tuttavia, Mega-NeRF si discosta da questo approccio eseguendo effettivamente lo ‘sharding’ (smistamento discreto di faccette di una scena) durante l’addestramento, piuttosto che l’approccio di post-elaborazione di KiloNeRF, che prende una scena NeRF già calcolata e la trasforma successivamente in uno spazio esplorabile.

Un set di addestramento discreto viene creato per sottomoduli, composto da pixel di immagini di addestramento il cui percorso potrebbe attraversare la cella che rappresenta. Di conseguenza, ogni modulo viene addestrato interamente separatamente dalle celle adiacenti. Fonte: https://arxiv.org/pdf/2112.10703.pdf
Gli autori caratterizzano Mega-NeRF come ‘una riformulazione dell’architettura NeRF che sparsifica le connessioni di layer in modo spazialmente consapevole, facilitando miglioramenti di efficienza durante l’addestramento e il rendering’.

Confronto concettuale dell’addestramento e della discretizzazione dei dati in NeRF, NeRF++, e Mega-NeRF. Fonte: https://meganerf.cmusatyalab.org/
Gli autori affermano che l’utilizzo di strategie di coerenza temporale innovative da parte di Mega-NeRF evita la necessità di eccessiva pre-elaborazione, supera i limiti intrinseci di scala e attua un livello di dettaglio più alto rispetto ai lavori precedenti, senza sacrificare l’interattività o richiedere più giorni di addestramento.
I ricercatori stanno anche rendendo disponibili grandi set di dati contenenti migliaia di immagini ad alta definizione ottenute da footage di droni catturati su 100.000 metri quadrati di terreno intorno a un complesso industriale. I due set di dati disponibili sono ‘Building’ e ‘Rubble’.
Miglioramento del lavoro precedente
Il documento nota che gli sforzi precedenti in una direzione simile, tra cui SneRG, PlenOctree e FastNeRF, si basano tutti su una sorta di caching o pre-elaborazione che aggiunge sovraccarichi di calcolo e/o tempo che non sono adatti alla creazione di ambienti virtuali di ricerca e salvataggio.
Mentre KiloNeRF deriva sottoreti NeRF da una raccolta esistente di perceptroni multi-strato (MLP), è architettonicamente limitato a scene interne con estensibilità limitata o capacità di affrontare ambienti di scala più alta. FastNeRF, invece, memorizza una versione ‘cotta’, pre-calcolata del modello NeRF in una struttura di dati dedicata e consente all’utente finale di navigare attraverso di essa tramite un MLP dedicato o attraverso il calcolo della base sferica.
Nel caso di KiloNeRF, la risoluzione massima di ogni faccetta nella scena è già calcolata, e non sarà disponibile una risoluzione maggiore se l’utente decide di ‘zoomare’.
Al contrario, NeRF++ può gestire nativamente ambienti esterni non limitati dividendoli in regioni di primo piano e sfondo, ognuna delle quali è supervisionata da un modello MLP dedicato, che esegue il ray-casting prima della composizione finale.
Infine, NeRF nel mondo reale, che non affronta direttamente spazi illimitati, migliora comunque la qualità dell’immagine nel dataset Phototourism, e le sue implicazioni di aspetto sono state seguite nell’architettura di Mega-NeRF.
Gli autori ammettono anche che Mega-NeRF è ispirato a progetti di Structure-from-Motion (SfM), in particolare al progetto Building Rome in a Day dell’Università di Washington.
Coerenza temporale
Come PlenOctree, Mega-NeRF pre-calcola una cache grezza di colore e opacità nella regione dell’attuale focus dell’utente. Tuttavia, invece di calcolare percorsi ogni volta che sono nella vicinanza del percorso calcolato, come fa PlenOctree, Mega-NeRF ‘salva’ e riutilizza queste informazioni suddividendo l’albero calcolato, seguendo una tendenza crescente per disentangliare l’etichetta di elaborazione strettamente legata di NeRF.

A sinistra, il calcolo a uso singolo di PlenOctree. Al centro, l’espansione dinamica dell’octree di Mega-NeRF relativa alla posizione corrente del fly-through. A destra, l’octree viene riutilizzato per la navigazione successiva.
Questa economia di calcolo, secondo gli autori, riduce notevolmente il carico di elaborazione utilizzando calcoli just-in-time come una cache locale, piuttosto che stimare e memorizzare tutto pre-emptivamente, secondo la pratica recente.
Campionamento guidato
Dopo il campionamento iniziale, in accordo con i modelli standard fino ad oggi, Mega-NeRF esegue un secondo round di campionamento guidato dei raggi dopo il raffinamento dell’octree, al fine di migliorare la qualità dell’immagine. Per questo, Mega-NeRF utilizza solo un passaggio basato sui pesi esistenti nella struttura di dati dell’octree.

Come si può vedere nell’immagine sopra, dal nuovo documento, il campionamento standard spreca risorse di calcolo valutando un’eccessiva quantità dell’area di destinazione, mentre Mega-NeRF limita i calcoli in base alla conoscenza della presenza di geometria, limitando i calcoli al di sopra di una soglia pre-impostata.
Dati e addestramento
I ricercatori hanno testato Mega-NeRF su vari set di dati, tra cui i due sopra menzionati, set di dati creati a mano tratti da footage di droni su terreno industriale. Il primo set di dati, Mill 19 – Building, presenta footage ripresa su un’area di 500 x 250 metri quadrati. Il secondo, Mill 19 – Rubble, rappresenta footage simile ripresa su un cantiere edile adiacente, in cui i ricercatori hanno posizionato dummy rappresentanti potenziali sopravvissuti in una scenario di ricerca e salvataggio.

Dall’materiale supplementare del documento: A sinistra, i quadranti da coprire con il drone Parrot Anafi (ritratto al centro e in lontananza nella foto a destra).
Inoltre, l’architettura è stata testata contro diverse scene da UrbanScene3D, dal Visual Computing Research Center dell’Università di Shenzhen in Cina, che consiste in footage di droni ad alta definizione di grandi ambienti urbani; e il dataset Quad 6k, dal Laboratorio di visione artificiale dell’Università dell’Indiana.
L’addestramento ha avuto luogo su 8 sottomoduli, ognuno con 8 livelli di 256 unità nascoste, e un successivo livello ReLU da 128 canali. A differenza di NeRF, lo stesso MLP è stato utilizzato per interrogare campioni grezzi e raffinati, riducendo le dimensioni del modello complessivo e consentendo il riutilizzo dei risultati della rete grezza nella fase di rendering successiva. Gli autori stimano che ciò salva il 25% delle richieste di modello per ogni raggio.
1024 raggi sono stati campionati per batch con Adam a una velocità di apprendimento iniziale di 5×104, decrescendo a 5×10-5. Le implicazioni di aspetto sono state gestite nello stesso modo del sopra menzionato NeRF nel mondo reale. Il campionamento a precisione mista (addestramento a una precisione inferiore a 32 bit floating point) è stato utilizzato, e la larghezza del MLP è stata fissata a 2048 unità nascoste.
Test e risultati
Nei test dei ricercatori, Mega-NeRF è stato in grado di superare robustamente NeRF, NeRF++ e DeepView dopo l’addestramento per 500.000 iterazioni sui set di dati sopra menzionati. Poiché lo scenario di destinazione di Mega-NeRF è limitato nel tempo, i ricercatori hanno concesso ai framework più lenti un tempo extra oltre il limite di 24 ore e riferiscono che Mega-NeRF ha comunque superato loro, anche con questi vantaggi.

Le metriche utilizzate sono state il rapporto di segnale/rumore di picco (PSNR), la versione VGG di LPIPS e SSIM. L’addestramento ha avuto luogo su una macchina singola dotata di otto V100 GPU – in pratica, su 256GB di VRAM e 5120 core Tensor.

Risultati di esempio dagli esperimenti di Mega-NeRF (vedere il documento per risultati più estesi su tutti i framework e set di dati) mostrano che PlenOctree causa una notevole voxelizzazione, mentre KiloNeRF produce artifact e risultati generalmente più sfocati.
La pagina del progetto è su https://meganerf.cmusatyalab.org/, e il codice rilasciato è su https://github.com/cmusatyalab/mega-nerf.
Pubblicato per la prima volta il 21 dicembre 2021.












