Руководство: поле нейронного излучения (NeRF)
Neural Radiance Field (NeRF): нежное введение
Поле нейронного излучения (NeRF) — это полностью подключенная нейронная сеть, которая может генерировать новые виды сложных 3D-сцен на основе частичного набора 2D-изображений. Он обучен использовать потери рендеринга для воспроизведения входных видов сцены. Он работает, беря входные изображения, представляющие сцену, и интерполируя их, чтобы визуализировать одну полную сцену. NeRF — это очень эффективный способ создания изображений для синтетических данных.
Сеть NeRF обучена отображать непосредственно направление взгляда и пространственное положение (ввод 5D) до непрозрачности и цвета (вывод 4D), используя объемную визуализацию для визуализации новых видов. NeRF — это алгоритм, требующий больших вычислительных ресурсов, и обработка сложных сцен может занять часы или дни. Однако доступны новые алгоритмы, которые значительно улучшают производительность.
В этой статье
- NeRF и нейронный рендеринг: основные понятия
- Как работают поля нейронного излучения
- Улучшение производительности NeRF
NeRF и нейронный рендеринг: основные понятия
Чтобы понять, как работает NeRF, давайте рассмотрим некоторые основные понятия.
Рендеринг
Рендеринг — это процесс создания изображения из 3D-модели. Модель будет содержать такие функции, как текстуры, затенение, тени, освещение и точки обзора, а роль механизма рендеринга заключается в обработке этих функций для создания реалистичного изображения.
Три распространенных типа алгоритмов рендеринга: растеризация, которая проецирует объекты геометрически на основе информации в модели без оптических эффектов; приведение лучей, которое вычисляет изображение с определенной точки зрения, используя основные оптические законы отражения; и трассировка лучей, в которой используются методы Монте-Карло для получения реалистичного изображения за гораздо более короткое время. Трассировка лучей используется для повышения производительности рендеринга в графических процессорах NVIDIA.
Объемный рендеринг
Объемный рендеринг позволяет создать 2D-проекцию 3D-дискретного набора данных.
Для заданного положения камеры алгоритм объемного рендеринга получает RGBα (красный, зеленый, синий и альфа-канал) для каждого вокселя в пространстве, через которое проходят лучи от камеры. Цвет RGBα преобразуется в цвет RGB и записывается в соответствующем пикселе 2D-изображения. Процесс повторяется для каждого пикселя, пока не будет визуализировано все 2D-изображение.
Посмотреть синтез
Синтез представлений противоположен объемному рендерингу — он включает создание 3D-вида из серии 2D-изображений.Это можно сделать с помощью серии фотографий, которые показывают объект с разных ракурсов, создают полусферический план объекта и размещают каждое изображение в соответствующем месте вокруг объекта. Функция синтеза вида пытается предсказать глубину по серии изображений, описывающих разные перспективы объекта.
Как работают поля нейронного излучения
NeRF использует разреженный набор входных представлений для оптимизации функции непрерывной объемной сцены. Результатом этой оптимизации является возможность создавать новые виды сложной сцены. Вы можете предоставить входные данные для NeRF в виде статического набора изображений.
Непрерывная сцена представляет собой пятимерную векторную функцию со следующими характеристиками:
- Входными данными являются трехмерное местоположение x = (x; y; z) и двухмерное направление просмотра (θ; Φ).
- Его выходом является излучаемый цвет c = (r; g; b) и объемная плотность (α).
Вот как вы можете создать NeRF с определенной точки зрения:
- Создание выборочного набора 3D-точек — направляя лучи камеры через сцену.
- Создайте выходной набор плотностей и цветов — путем ввода выбранных вами точек с соответствующими направлениями 2D-просмотра в нейронную сеть.
- Накопите свои плотности и цвета в 2D-изображение — с использованием классических методов объемного рендеринга.
Описанный выше процесс оптимизирует глубокий, полносвязный, многослойный персептрон (MLP), но не требует использования сверточных слоев. Он использует градиентный спуск, чтобы свести к минимуму ошибки между каждым наблюдаемым изображением и всеми соответствующими представлениями, полученными из представления.
Улучшение производительности NeRF
Первоначальная модель NeRF имела несколько недостатков — она медленно обучалась и рендерилась и могла обрабатывать только статические сцены. Он также негибок, потому что модель NeRF, обученная на одной сцене, не может быть использована для других сцен.
Вот несколько методов, основанных на NeRF и пытающихся решить некоторые из его проблем.
Нейронные разреженные воксельные поля (NSVF)
NSVF — это нейронное представление сцены, которое обеспечивает быструю высококачественную визуализацию, не зависящую от конкретной точки обзора. Он работает, определяя ограниченные вокселами неявные поля, организованные в разреженной сети ячеек, и постепенно изучает структуры вокселей в каждой ячейке сети. Он может намного быстрее визуализировать новые представления, пропуская воксели без содержимого сцены — этот метод делает NSVF более чем в десять раз быстрее, чем исходный NeRF.
Мип-НерФ
Mip-NerF расширяет исходную модель NeRF с целью уменьшения эффектов размытия и визуальных артефактов. NeRF использовал один луч на пиксель, что часто вызывало размытие или алиасинг при разных разрешениях. Mip-NeRF использует геометрическую форму, известную как усеченный конус, для визуализации каждого пикселя вместо луча, что уменьшает алиасинг, позволяет отображать мелкие детали изображения и снижает количество ошибок на 17–60%. Модель также на 7% быстрее, чем NeRF.
КилоНерФ
KiloNeRF решает проблему медленного рендеринга в NeRF, которая в основном связана с необходимостью миллионы раз запрашивать глубокую сеть MLP. KiloNeRF разделяет рабочую нагрузку между тысячами небольших MLP вместо одного большого MLP, к которому нужно обращаться много раз. Каждый небольшой MLP представляет собой часть сцены, что позволяет повысить производительность в 3 раза при более низких требованиях к хранилищу и сравнимом качестве изображения.
Пленоксели
Пленоптические воксели (Plenoxels) заменяют MLP в центре NeRF разреженной трехмерной сеткой. Каждая точка запроса интерполируется из окружающих ее вокселей. Таким образом, новые 2D-изображения визуализируются без запуска нейронной сети, что значительно снижает сложность и требования к вычислениям. Plenoxels обеспечивают визуальное качество, аналогичное NeRF, но на два порядка быстрее.