XYZNOT

Статьи · arXiv 2308.04079

3D Gaussian Splatting для рендеринга полей излучения в реальном времени

3D Gaussian Splatting for Real-Time Radiance Field Rendering

Опубликовано cs.GRcs.CV arXivPDF

Читать с переводом и ИИ

Кратко в трёх строках

  1. 🎯 Методы полей излучения (такие как NeRF) дают высокое качество, но страдают от медленного объемного ray-marching и долгой оптимизации, а быстрые сеточные методы уступают в качестве или скорости рендеринга.
  2. 🔧 Сцены явно представляются анизотропными 3D-гауссианами, инициализированными из разреженных точек SfM, оптимизируются с адаптивным контролем плотности (клонирование и разбиение) и рендерятся через дифференцируемый тайловый растеризатор на GPU с учетом видимости.
  3. 📈 Достигает качества уровня Mip-NeRF360 при скорости рендеринга свыше 130–160 FPS в 1080p и времени обучения менее одного часа.

Аннотация

Методы полей излучения (Radiance Field) произвели революцию в задаче синтеза новых ракурсов сцен, зафиксированных на нескольких фотографиях или видео. Однако для достижения высокого визуального качества по-прежнему требуются нейросети, обучение и рендеринг которых требуют значительных вычислительных ресурсов, в то время как более быстрые современные подходы неизбежно жертвуют качеством ради скорости. Для неограниченных и полных сцен (а не изолированных объектов) при рендеринге в разрешении 1080p ни один из существующих методов не обеспечивает интерактивную частоту кадров. Мы представляем три ключевых компонента, которые позволяют достичь передового визуального качества (state-of-the-art) при конкурентном времени обучения и, главное, обеспечивают высококачественный синтез новых ракурсов в реальном времени (>= 30 fps) при разрешении 1080p. Во-первых, отталкиваясь от разреженных точек, полученных в процессе калибровки камер, мы представляем сцену с помощью 3D-гауссианов, которые сохраняют полезные свойства непрерывных объемных полей излучения для оптимизации сцены, избегая при этом лишних вычислений в пустом пространстве. Во-вторых, мы выполняем чередующуюся оптимизацию и контроль плотности 3D-гауссианов, в частности оптимизируя анизотропную ковариацию для точного представления сцены. В-третьих, мы разработали быстрый алгоритм рендеринга с учетом видимости, который поддерживает анизотропный сплэттинг, ускоряет обучение и позволяет выполнять рендеринг в реальном времени. Мы демонстрируем передовое качество изображения и работу в реальном времени на нескольких стандартных датасетах.

Оригинальная аннотация (англ.)

Radiance Field methods have recently revolutionized novel-view synthesis of scenes captured with multiple photos or videos. However, achieving high visual quality still requires neural networks that are costly to train and render, while recent faster methods inevitably trade off speed for quality. For unbounded and complete scenes (rather than isolated objects) and 1080p resolution rendering, no current method can achieve real-time display rates. We introduce three key elements that allow us to achieve state-of-the-art visual quality while maintaining competitive training times and importantly allow high-quality real-time (>= 30 fps) novel-view synthesis at 1080p resolution. First, starting from sparse points produced during camera calibration, we represent the scene with 3D Gaussians that preserve desirable properties of continuous volumetric radiance fields for scene optimization while avoiding unnecessary computation in empty space; Second, we perform interleaved optimization/density control of the 3D Gaussians, notably optimizing anisotropic covariance to achieve an accurate representation of the scene; Third, we develop a fast visibility-aware rendering algorithm that supports anisotropic splatting and both accelerates training and allows realtime rendering. We demonstrate state-of-the-art visual quality and real-time rendering on several established datasets.

Разбор статьи

Постановка проблемы и мотивация

Нейронные поля излучения (NeRF) трансформировали задачу синтеза новых ракурсов благодаря оптимизации непрерывных неявных представлений сцен с помощью многослойных перцептронов (MLP). Однако рендеринг таких непрерывных полей опирается на стохастический объемный ray-marching, требующий вычисления десятков или сотен выборок вдоль каждого луча. Это приводит к огромной вычислительной нагрузке, длительному обучению (например, до 48 часов для Mip-NeRF360) и крайне медленному инференсу (секунды на кадр), что делает невозможной навигацию в реальном времени при высоких разрешениях вроде 1080p.

Более быстрые варианты полей излучения (такие как Plenoxels и InstantNGP) используют воксельные или хеш-сетки для ускорения обучения, но они часто жертвуют детализацией и с трудом обрабатывают пустое пространство или высокочастотные детали. С другой стороны, методы на основе точек предлагают явную геометрию, удобную для GPU, однако классическая растеризация точек требует плотной геометрии Multi-View Stereo (MVS) для устранения дыр либо опирается на постобработку сверточными сетями (CNN), вызывающую временное мерцание.

В этой работе предлагается неструктурированное явное представление сцены с использованием 3D-гауссианов (3D Gaussians) в сочетании с быстрым тайловым растеризатором, что обеспечивает качество визуализации на уровне лучших неявных полей излучения при частоте кадров реального времени и конкурентной скорости оптимизации.


Ключевые идеи

  1. Неструктурированное представление 3D-гауссианами: Вместо непрерывных координатных сетей или плотных сеток поле излучения параметризуется дискретными 3D-гауссианами с полными анизотропными ковариационными матрицами. Они инициализируются из разреженных облаков точек Structure-from-Motion (SfM) без необходимости вычисления нормалей или плотного MVS.
  2. Параметризация через масштаб и вращение: Чтобы ковариационная матрица оставалась положительно полуопределенной на протяжении всего градиентного спуска, она факторизуется на 3D-вектор масштабирования и единичный кватернион.
  3. Адаптивный контроль плотности: В процессе оптимизации динамически регулируется плотность сцены за счет отслеживания градиентов позиций в пространстве вида (view-space): недореконструированные гауссианы клонируются, перереконструированные — разбиваются, а прозрачные или чрезмерно крупные сплэты удаляются (прунинг).
  4. Тайловая растеризация с учетом видимости: Пользовательский GPU-растеризатор разбивает экран на тайлы пикселей, сортирует сплэты по глубине для каждого кадра с помощью быстрой поразрядной сортировки (Radix sort) и выполняет альфа-смешивание анизотропных проекций спереди назад без ограничения числа сплэтов, получающих обновления градиентов.

Метод

1. Представление сцены 3D-гауссианами

3D-гауссиан с центром в точке математического ожидания определяется ковариационной матрицей в мировом пространстве:

Для гарантии того, что остается положительно полуопределенной во время оптимизации, она факторизуется в матрицу вращения и матрицу масштабирования : Здесь хранится как 3D-вектор , к которому применяется экспоненциальная функция активации, а задается нормализованным единичным кватернионом .

Для рендеринга 3D-гауссианы проецируются в 2D-координаты изображения в рамках подхода EWA-сплэттинга. Для матрицы преобразования вида и якобиана аффинного приближения проективного преобразования 2D-ковариационная матрица в пространстве экрана вычисляется как: Третья строка и столбец отбрасываются, в результате чего получается ковариационная матрица для планарного сплэттинга.

2. Рендеринг и формирование изображения

Каждый гауссиан обладает непрозрачностью (ограниченной диапазоном через сигмоиду) и коэффициентами сферических гармоник (SH), описывающими зависящий от угла обзора цвет . Смешивание упорядоченных перекрывающихся гауссианов в пикселе следует стандартной формуле объемного рендеринга: где определяется вычислением спроецированного 2D-гауссиана, умноженного на оптимизируемую непрозрачность данной точки.

3. Оптимизация и адаптивный контроль

Функция потерь объединяет функцию и потерю D-SSIM (с коэффициентом ):

Адаптивный контроль плотности выполняется каждые 100 итераций для гауссианов, у которых средний градиент позиции в пространстве вида превышает порог :

  • Клонирование (недореконструкция): Для маленьких гауссианов создается дубликат, который смещается вдоль направления градиента позиции.
  • Разбиение (перереконструкция): Для больших гауссианов примитив заменяется двумя меньшими гауссианами, масштабы которых уменьшены в раза, а их начальные положения сэмплируются из родительского гауссиана.
  • Прунинг: Удаляются гауссианы с или имеющие слишком большой размер в мировом пространстве или пространстве вида. Каждые итераций значения непрозрачности сбрасываются ближе к нулю для фильтрации артефактов («висящих» точек).

4. Быстрый дифференцируемый тайловый растеризатор

  • Экран делится на тайлы размером пикселей.
  • Гауссианам, прошедшим усечение по пирамиде видимости (frustum culling) с доверительным интервалом 99%, присваиваются 64-битные ключи, кодирующие ID тайла и глубину во view-space.
  • Единственный проход поразрядной сортировки (Radix sort) на GPU упорядочивает все экземпляры по всему кадру.
  • Блоки потоков аккумулируют цвет по каждому тайлу в направлении спереди назад до тех пор, пока не достигнет насыщения (останавливаясь до превышения ).
  • Обратный проход (backward pass) обходит тайлы сзади наперед, восстанавливая промежуточные значения непрозрачности путем деления итоговой накопленной непрозрачности на значение каждого примитива, что устраняет необходимость в тяжелых динамических буферах памяти для каждого пикселя.

Результаты

  • Датасет Mip-NeRF360: После 30 тысяч итераций (среднее время обучения 41 мин 33 с) 3D Gaussian Splatting достигает среднего SSIM 0.815, PSNR 27.21 дБ и LPIPS 0.214, сравниваясь или превосходя Mip-NeRF360 (SSIM 0.792, PSNR 27.69 дБ, LPIPS 0.237 при 48 часах обучения), при этом рендеринг происходит со скоростью 134 FPS по сравнению с 0.06 FPS у Mip-NeRF360.
  • Быстрая конфигурация (7K итераций): Обеспечивает SSIM 0.770 и PSNR 25.60 дБ всего за 6 мин 25 с со скоростью 160 FPS, превосходя InstantNGP-Base (SSIM 0.671, 11.7 FPS) и Plenoxels (SSIM 0.626, 6.79 FPS) при сопоставимом времени обучения.
  • Tanks&Temples и Deep Blending: На Tanks&Temples 30K итераций дают SSIM 0.841 и PSNR 23.14 дБ при 154 FPS. На Deep Blending достигается SSIM 0.903 и PSNR 29.41 дБ при 137 FPS.
  • Synthetic Blender: Достигает среднего значения PSNR 33.32 дБ при случайной инициализации из 100K точек со скоростью рендеринга 180–300 FPS.

Ограничения и открытые вопросы

  • Ненаблюдаемые ракурсы и выбросы: Недостаточное покрытие съемкой или ракурсы, далекие от обучающей траектории, могут приводить к заметным артефактам, таким как вытянутые или пятнистые гауссианы.
  • Артефакты резкого появления (Popping): Внезапная смена порядка глубины или агрессивный guard-band culling могут вызывать эффект «поппинга» при перемещении камеры, что требует более качественного антиалиасинга.
  • Потребление памяти: Несмотря на компактность по сравнению с классическими плотными облаками точек, явное представление требует сотен мегабайт (например, 400–750 МБ для сцен с 1–5 миллионами гауссианов), а неоптимизированное обучение прототипа может приводить к пикам потребления видеопамяти GPU свыше 20 ГБ.
  • Отсутствие регуляризации: В архитектуре нет явных регуляризаторов геометрической гладкости или плотности, что может приводить к появлению плавающих артефактов в областях, слабо перекрытых лучами камер.

Ключевые термины

3D Gaussians
Базовые неструктурированные дифференцируемые 3D-примитивы, определяемые средним положением, анизотропной ковариационной матрицей, непрозрачностью и коэффициентами сферических гармоник для представления внешнего вида.
Anisotropic Covariance
Направленное 3D-рассеяние, параметризованное отдельными векторами масштабирования и единичными кватернионами вращения, что позволяет гауссианам деформироваться в плоские эллипсоиды, прилегающие к физическим поверхностям.
Adaptive Density Control
Чередующаяся стратегия оптимизации, добавляющая гауссианы путем клонирования или разбиения примитивов с большими градиентами положения и удаляющая прозрачные или слишком крупные элементы.
Tile-Based Rasterization
Конвейер рендеринга на GPU, разбивающий область просмотра на бины размером пикселей для эффективной параллельной сортировки и смешивания перекрывающихся гауссианов.
Alpha-Blending
Накопление цвета и прозрачности спереди назад, повторяющее стандартное объемное интегрирование в NeRF для отсортированных спроецированных 2D-сплэтов.
Radix Sort
Алгоритм поразрядной сортировки на GPU, используемый для глобального параллельного упорядочивания гауссианов по 64-битным ключам, объединяющим ID тайла и глубину в пространстве вида.
Spherical Harmonics (SH)
Базис угловых частотных функций, используемый для представления цвета каждого гауссиана в зависимости от направления взгляда (до 4 порядков).

Вопросы

Как инициализируются 3D-гауссианы перед началом оптимизации?

Они инициализируются с использованием разреженного облака точек, полученного в процессе калибровки камер методом Structure-from-Motion (SfM). Начальные изотропные масштабы вычисляются на основе среднего расстояния до трех ближайших соседних точек. Для синтетических сцен также может использоваться равномерная случайная инициализация.

В чем разница между клонированием и разбиением гауссианов?

Клонирование дублирует небольшой гауссиан и сдвигает его вдоль градиента положения для покрытия пропущенных геометрических элементов (недореконструкция), тогда как разбиение делит слишком большой гауссиан на два меньших с уменьшением масштаба в 1.6 раза для более точного представления высокодисперсных деталей (перереконструкция).

Почему растеризатор сортирует примитивы по тайлам, а не попиксельно?

Сортировка по тайлам с помощью единой глобальной поразрядной сортировки (Radix sort) на GPU по объединенным ключам «тайл-глубина» позволяет избежать огромных вычислительных затрат на попиксельную сортировку, обеспечивая высокую частоту кадров при незначительных визуальных допущениях.

Как обратный проход (backward pass) обходится без хранения длинных списков примитивов для каждого пикселя в глобальной памяти?

Растеризатор повторно проходит по уже отсортированным спискам тайлов в направлении сзади наперед и восстанавливает промежуточные значения непрозрачности делением финальной накопленной непрозрачности на значение alpha каждого гауссиана, что требует лишь константного объема памяти на пиксель.

Обзор на этой странице написан ИИ по тексту статьи и может содержать ошибки. Подробности смотрите в самой статье.

Читать с переводом и ИИ