Novel View Synthesis (NVS)
La sintesi di nuove viste genera immagini di una scena da posizioni della telecamera mai fotografate, usando deformazione basata sulla profondità, NeRF, splat gaussiani o diffusione.
La sintesi di nuove viste (NVS) consiste nel generare l'immagine di una scena da una posizione della fotocamera mai fotografata, partendo da una o più immagini di input. Il modello deve dedurre la posizione delle superfici, il loro aspetto dalla nuova angolazione e ciò che riempie le aree non riprese da nessuna fotocamera di input. La NVS alimenta video con punto di vista libero, tour virtuali, videochiamate 3D e simulatori che riproducono tragitti registrati lungo nuove traiettorie; è inoltre un test standard per i modelli di visione artificiale 3D, perché le foto tenute da parte mostrano direttamente se la rappresentazione della scena regge da nuove angolazioni.
Come funziona la sintesi di nuove viste#
L'approccio più semplice riproietta i pixel. Se si conosce la profondità di ogni pixel, è possibile spostare ogni punto nel punto in cui lo vedrebbe una nuova fotocamera: una tecnica chiamata rendering basato su immagini di profondità. I punti vicini alla fotocamera si spostano più di quelli lontani; le superfici nascoste nell'input ma visibili dalla nuova posizione lasciano dei buchi, detti disocclusioni, che vanno riempiti. Questo esempio sintetizza la vista destra di una coppia stereo di Middlebury partendo dall'immagine sinistra e dalla sua disparità, una forma di profondità inversa, poi confronta il risultato con la foto destra reale, mai vista durante la deformazione:
import numpy as np
from skimage import data
from skimage.metrics import peak_signal_noise_ratio as psnr
# Left view, the real right view (held out), and per-pixel disparity (inverse depth) for the left view
left, right, disp = data.stereo_motorcycle()
ys, xs = np.nonzero(np.isfinite(disp))
xt = np.round(xs - disp[ys, xs]).astype(int) # column where the right camera, 0.19 m away, sees each pixel
# Paint far to near so the nearest surface wins where several pixels land on one spot
order = np.argsort(disp[ys, xs])
ys, xs, xt = ys[order], xs[order], xt[order]
keep = xt >= 0 # drop pixels that leave the frame
novel = np.zeros_like(left)
novel[ys[keep], xt[keep]] = left[ys[keep], xs[keep]]
# Holes are spots no left pixel reached, such as surfaces the left camera never saw
filled = novel.any(axis=2)
print(f"Holes: {1 - filled.mean():.1%} of the novel view")
print(f"PSNR, synthesized view: {psnr(right[filled], novel[filled]):.1f} dB")
print(f"PSNR, left view copied: {psnr(right[filled], left[filled]):.1f} dB")Misurata sulla foto reale, la vista sintetizzata raggiunge un rapporto segnale/rumore di picco di 26.9 dB, rispetto ai 12.9 dB ottenuti riutilizzando semplicemente l'immagine sinistra; tuttavia, il 17.0% della nuova vista resta costituito da buchi. Da una singola foto, la disparità può derivare dalla stima monoculare della profondità: i modelli di profondità Ultralytics YOLO26 predicono la profondità di ogni pixel in metri, convertibile in disparità per qualsiasi spostamento scelto della fotocamera. Il metodo delle foto 3D di Meng-Li Shih e colleghi, presentato a CVPR 2020, segue questo approccio e riempie i buchi con l'inpainting di immagini appreso.
Le acquisizioni dense consentono l'ottimizzazione di ogni singola scena. Date da decine a centinaia di foto con le pose delle fotocamere, in genere ottenute tramite structure from motion, i campi di radianza neurali, introdotti da Ben Mildenhall e colleghi nel 2020, adattano una rete che restituisce colore e densità in qualsiasi punto 3D e renderizza nuove viste con il rendering volumetrico lungo ogni raggio della fotocamera. Lo splatting gaussiano, introdotto da Bernhard Kerbl e colleghi nel 2023, sostituisce la rete con milioni di gaussiane 3D rasterizzate in tempo reale, a 30 fotogrammi al secondo o più a 1080p. Entrambi vengono addestrati con il rendering differenziabile, confrontando le immagini renderizzate con le foto di input.
Con uno o pochi input, i modelli generativi forniscono ciò che le fotocamere non hanno mai ripreso. I modelli di diffusione condizionati da un'immagine di input e dalla posa relativa della fotocamera, come Zero-1-to-3 della Columbia University del 2023, generano viste plausibili del lato nascosto di un oggetto; i metodi di diffusione multivista generano diverse viste coerenti e poi vi adattano una rappresentazione 3D.
La qualità si misura su foto tenute da parte usando PSNR, l'indice di similarità strutturale (SSIM) e LPIPS, una distanza percettiva appresa, con benchmark come le scene sintetiche Blender dell'articolo su NeRF e le scene reali senza limiti di Mip-NeRF 360.
Concetti correlati#
Il rendering neurale è la famiglia più ampia di tecniche grafiche basate su reti neurali, che comprende la NVS, la riluminazione, gli avatar e la modifica delle immagini. La ricostruzione 3D mira a ottenere geometrie misurabili, come le mesh, mentre la NVS si valuta solo sulle immagini renderizzate: un campo di radianza può quindi produrre immagini convincenti pur avendo una geometria sfocata. La visione stereo esegue la deformazione nella direzione opposta e misura la disparità a partire da due viste reali. L'interpolazione dei fotogrammi crea nuovi istanti da un punto di vista fisso, mentre la generazione video controllata dalla fotocamera combina entrambe le tecniche, muovendo una fotocamera virtuale all'interno di una scena generata. I metodi dinamici estendono la NVS al tempo con tecniche come lo splatting gaussiano 4D.
Applicazioni nel mondo reale#
- Videochiamate 3D: Google Beam, in precedenza Project Starline, riprende ogni partecipante con più fotocamere e lo renderizza dalla posizione degli occhi di chi guarda su uno schermo a campo luminoso.
- Realtà virtuale e realtà mista: le stanze, i prodotti e i luoghi d'interesse acquisiti diventano scene esplorabili, che il visore renderizza nuovamente per ogni posizione della testa.
- Simulazione di guida: le ricostruzioni neurali di percorsi registrati renderizzano viste della fotocamera da traiettorie mai percorse dall'auto, generando dati sintetici dei sensori per testare la percezione. I ricercatori di Waymo e Google hanno realizzato Block-NeRF a partire da 2.8 milioni di immagini per renderizzare un intero quartiere di San Francisco.










