Novel View Synthesis (NVS)
Синтез новых ракурсов создаёт изображения сцены с позиций камеры, с которых её не фотографировали, используя преобразование глубины, NeRF, гауссовы сплаты или диффузионные модели.
Синтез новых ракурсов (NVS) — это задача генерации изображения сцены с позиции камеры, с которой её никогда не фотографировали, по одному или нескольким входным изображениям. Модель должна определить расположение поверхностей, их вид с нового ракурса и то, чем заполнить области, не попавшие ни на один входной снимок. NVS используется для видео со свободным выбором точки обзора, виртуальных экскурсий, видеозвонков в 3D и симуляторов, которые воспроизводят записанные поездки по новым маршрутам. Кроме того, это стандартный тест моделей 3D-компьютерного зрения: отложенные фотографии напрямую показывают, насколько хорошо представление сцены работает с новых ракурсов.
Как работает синтез новых ракурсов#
Самый простой подход — перепроецировать пиксели. Если для каждого пикселя известно значение глубины, каждую точку можно переместить в положение, где её увидит новая камера. Эта техника называется рендерингом на основе изображения глубины. Точки, расположенные ближе к камере, смещаются сильнее, чем удалённые, а поверхности, скрытые на входном изображении, но видимые с новой позиции, оставляют дыры — области дисокклюзии, которые нужно заполнить. В этом примере по левому изображению стереопары Middlebury и карте диспаратности — величине, обратной глубине, — синтезируется правый ракурс, а затем результат сравнивается с настоящей правой фотографией, которую алгоритм деформации не видел:
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")На синтезированном ракурсе пиковое отношение сигнал/шум, измеренное по настоящей фотографии, составляет 26.9 дБ, тогда как при простом повторном использовании левого изображения оно равно 12.9 дБ. При этом 17.0% нового ракурса остаётся незаполненным. Для одной фотографии диспаратность можно получить с помощью монокулярной оценки глубины: модели глубины Ultralytics YOLO26 предсказывают глубину каждого пикселя в метрах, которую можно преобразовать в диспаратность для любого выбранного смещения камеры. Метод 3D-фотографии, представленный Мэн-Ли Ши и его коллегами на CVPR 2020, использует этот подход и заполняет дыры с помощью обученной заливки пропусков на изображениях.
Плотные наборы снимков позволяют оптимизировать каждую сцену отдельно. Если есть от нескольких десятков до нескольких сотен фотографий с координатами камер, полученными обычно с помощью метода «структура из движения», нейронные поля излучения, представленные Беном Милденхоллом и его коллегами в 2020 году, обучают сеть возвращать цвет и плотность для любой точки 3D-пространства, а новые ракурсы рендерят методом объёмного рендеринга вдоль каждого луча камеры. Гауссово сплаттинг, представленный Бернхардом Кербелем и его коллегами в 2023 году, заменяет сеть миллионами трёхмерных гауссовых примитивов, которые растеризуются в реальном времени — с частотой не менее 30 кадров в секунду при разрешении 1080p. Оба метода обучаются с помощью дифференцируемого рендеринга: полученные изображения сравниваются с входными фотографиями.
Если на входе одно или несколько изображений, недостающую информацию добавляют генеративные модели. Диффузионные модели с условием по входному изображению и относительной позиции камеры, например Zero-1-to-3, представленная Колумбийским университетом в 2023 году, генерируют правдоподобные ракурсы обратной стороны объекта. Методы диффузии с несколькими ракурсами генерируют несколько согласованных изображений, а затем подгоняют под них трёхмерное представление.
Качество оценивают на отложенных фотографиях с помощью PSNR, индекса структурного сходства (SSIM) и LPIPS — обученной модели перцептивного расстояния. Для этого используют такие тестовые наборы, как синтетические сцены Blender из статьи о NeRF и реальные сцены без ограничения дальности из набора Mip-NeRF 360.
Связанные понятия#
Нейронный рендеринг — широкое семейство графических методов на основе нейронных сетей, включающее NVS, а также изменение освещения, создание аватаров и редактирование изображений. 3D-реконструкция направлена на получение измеримой геометрии, например сеток, тогда как в NVS оценивают только отрендеренные изображения, поэтому поле излучения может давать убедительную картинку даже при нечёткой геометрии. В стереозрении деформация выполняется в обратном направлении: диспаратность измеряется по двум настоящим ракурсам. Интерполяция кадров добавляет новые моменты времени при фиксированной точке обзора, а управляемая положением камеры генерация видео сочетает оба подхода: виртуальная камера перемещается по сгенерированной сцене. Методы для динамических сцен расширяют NVS, добавляя измерение времени, например с помощью 4D-гауссова сплаттинга.
Примеры применения в реальных условиях#
- Видеозвонки в 3D: Google Beam, ранее известный как Project Starline, снимает каждого участника несколькими камерами и отображает его с позиции глаз собеседника на дисплее со световым полем.
- Виртуальная и смешанная реальность: Отснятые комнаты, товары и достопримечательности превращаются в сцены для исследования, которые гарнитура повторно рендерит для каждого положения головы.
- Симуляция вождения: Нейронные реконструкции записанных поездок рендерят изображения с ракурсов, соответствующих маршрутам, по которым автомобиль не ездил, создавая синтетические сенсорные данные для тестирования систем восприятия. Исследователи Waymo и Google создали Block-NeRF на основе 2.8 миллиона изображений, чтобы отрендерить целый район Сан-Франциско.










