Novel View Synthesis (NVS)
Bei der Synthese neuer Ansichten werden Bilder einer Szene aus Kamerapositionen gerendert, von denen keine Fotos aufgenommen wurden. Zum Einsatz kommen Tiefenverzerrung, NeRFs, Gaußsche Splats oder Diffusion.
Novel View Synthesis (NVS) bezeichnet die Erzeugung eines Bildes einer Szene aus einer Kameraposition, von der aus nie fotografiert wurde. Dafür wird mindestens ein Eingabebild benötigt. Ein Modell muss erschließen, wo sich Oberflächen befinden, wie sie aus dem neuen Blickwinkel aussehen und was die Bereiche ausfüllt, die keine der Eingabekameras erfasst hat. NVS ermöglicht Videos mit freier Blickpunktwahl, virtuelle Rundgänge, 3D-Videoanrufe und Simulatoren, die aufgezeichnete Fahrten aus neuen Perspektiven wiedergeben. Zudem ist NVS ein gängiger Test für 3D-Computer-Vision-Modelle, da Fotos aus zurückgehaltenen Blickwinkeln direkt zeigen, ob eine Szenenrepräsentation auch aus neuen Richtungen funktioniert.
So funktioniert Novel View Synthesis#
Der einfachste Ansatz projiziert Pixel neu. Ist für jedes Pixel ein Tiefenwert bekannt, lässt sich jeder Punkt dorthin verschieben, wo ihn eine neue Kamera sehen würde. Dieses Verfahren heißt tiefenbildbasierte Darstellung. Punkte in Kameranähe verschieben sich weiter als weit entfernte Punkte. Oberflächen, die in der Eingabe verborgen, vom neuen Standort aus aber sichtbar sind, hinterlassen Lücken. Diese sogenannten Disokklusionen müssen gefüllt werden. Das Beispiel unten erzeugt anhand des linken Bildes und seiner Disparität, einer Form inverser Tiefe, die rechte Ansicht eines Stereo-Bildpaars aus Middlebury. Anschließend wird das Ergebnis mit dem tatsächlichen rechten Foto verglichen, das bei der Verzerrung nicht verwendet wurde:
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")Die synthetisierte Ansicht erreicht, gemessen am tatsächlichen Foto, ein Spitzen-Signal-Rausch-Verhältnis von 26.9 dB. Wird einfach das linke Bild wiederverwendet, sind es 12.9 dB. Gleichzeitig bleiben 17.0 % der neuen Ansicht als Lücken zurück. Bei einem einzelnen Foto kann die Disparität durch monokulare Tiefenschätzung ermittelt werden: Tiefenmodelle von Ultralytics YOLO26 sagen die Tiefe jedes Pixels in Metern voraus. Daraus lässt sich die Disparität für jede gewählte Kameraverschiebung berechnen. Das von Meng-Li Shih und Kollegen bei CVPR 2020 vorgestellte 3D-Fotoverfahren folgt diesem Ansatz und füllt die Lücken mithilfe von gelerntem Bildinpainting.
Dichte Aufnahmen ermöglichen eine Optimierung für einzelne Szenen. Liegen Dutzende bis Hunderte Fotos mit Kamerapositionen vor, üblicherweise aus der Structure-from-Motion-Rekonstruktion, trainieren neuronale Strahlungsfelder, die Ben Mildenhall und Kollegen 2020 vorstellten, ein Netz, das an jedem 3D-Punkt Farbe und Dichte ausgibt. Neue Ansichten werden erstellt, indem Volumen entlang jedes Kamerastrahls gerendert werden. Das 2023 von Bernhard Kerbl und Kollegen vorgestellte Gaussian Splatting ersetzt das Netz durch Millionen von 3D-Gaußverteilungen, die in Echtzeit gerastert werden – mit mindestens 30 Bildern pro Sekunde bei 1080p. Beide Verfahren werden mithilfe von differenzierbarem Rendering trainiert, indem ihre gerenderten Ansichten mit den Eingabefotos verglichen werden.
Bei einer oder wenigen Eingaben ergänzen generative Modelle, was die Kameras nicht erfasst haben. Auf ein Eingabebild und eine relative Kameraposition konditionierte Diffusionsmodelle, etwa das 2023 an der Columbia University entwickelte Zero-1-to-3, erzeugen plausible Ansichten der abgewandten Seite eines Objekts. Diffusionsverfahren für mehrere Ansichten erzeugen mehrere zueinander passende Ansichten und erstellen daraus anschließend eine 3D-Repräsentation.
Die Qualität wird anhand zurückgehaltener Fotos mit dem PSNR, dem strukturellen Ähnlichkeitsindex (SSIM) und LPIPS gemessen, einer erlernten Wahrnehmungsdistanz. Zu den Benchmarks zählen die synthetischen Blender-Szenen aus der NeRF-Arbeit und die unbegrenzten realen Szenen von Mip-NeRF 360.
Verwandte Konzepte#
Neuronales Rendering ist der Oberbegriff für grafische Verfahren auf Basis neuronaler Netze. Dazu gehören neben NVS auch Beleuchtungsänderungen, Avatare und Bildbearbeitung. Bei der 3D-Rekonstruktion geht es um messbare Geometrie wie Netze. NVS wird dagegen nur anhand der gerenderten Bilder beurteilt, sodass ein Strahlungsfeld auch mit unscharfer Geometrie überzeugend rendern kann. Stereosicht kehrt die Projektion um und misst die Disparität aus zwei realen Ansichten. Bildinterpolation erzeugt aus einem festen Blickwinkel neue Zeitpunkte. Die kameragesteuerte Videogenerierung verbindet beides, indem sie eine virtuelle Kamera durch eine erzeugte Szene bewegt. Verfahren wie 4D-Gaussian-Splatting erweitern NVS auf dynamische Szenen und beziehen die Zeit mit ein.
Anwendungen in der Praxis#
- 3D-Videoanrufe: Google Beam, ehemals Project Starline, nimmt jede Person mit mehreren Kameras auf und stellt sie auf einem Lichtfeldbildschirm aus der Augenposition der anderen Person dar.
- Virtuelle und gemischte Realität: Aufgenommene Räume, Produkte und Sehenswürdigkeiten werden zu erkundbaren Szenen, die ein Headset für jede Kopfposition neu rendert.
- Fahrsimulation: Neuronale Rekonstruktionen aufgezeichneter Fahrten rendern Kameraansichten von Strecken, die das Auto nie gefahren ist, und erzeugen so synthetische Sensordaten zum Testen der Wahrnehmung. Forschende von Waymo und Google erstellten Block-NeRF anhand von 2.8 Millionen Bildern, um ein ganzes Viertel von San Francisco zu rendern.










