Нейронное поле излучения ( NeRF ) — это метод, основанный на глубоком обучении для реконструкции трехмерного представления сцены из двухмерных изображений. Модель NeRF позволяет использовать нисходящие приложения для синтеза новых видов, реконструкции геометрии сцены и получения отражательных свойств сцены. Дополнительные свойства сцены, такие как позы камеры, также могут быть совместно изучены. Впервые представленный в 2020 году [1], с тех пор он привлек значительное внимание своими потенциальными приложениями в компьютерной графике и создании контента. [2]
Алгоритм NeRF представляет сцену как поле яркости, параметризованное глубокой нейронной сетью (DNN). Сеть предсказывает объемную плотность и зависящую от вида испускаемую яркость, учитывая пространственное положение ( x, y, z ) и направление обзора в углах Эйлера ( θ, Φ ) камеры. Путем выборки множества точек вдоль лучей камеры традиционные методы объемной визуализации могут создавать изображение. [1]
NeRF необходимо переобучить для каждой уникальной сцены. Первым шагом является сбор изображений сцены с разных углов и их соответствующей позы камеры. Эти изображения являются стандартными 2D-изображениями и не требуют специализированной камеры или программного обеспечения. Любая камера способна генерировать наборы данных, при условии, что настройки и метод захвата соответствуют требованиям SfM ( структура из движения ).
Это требует отслеживания положения и ориентации камеры, часто через некоторую комбинацию SLAM , GPS или инерциальной оценки. Исследователи часто используют синтетические данные для оценки NeRF и связанных с ними методов. Для таких данных изображения ( полученные с помощью традиционных необученных методов ) и соответствующие позы камеры воспроизводимы и не содержат ошибок. [3]
Для каждой предоставленной разреженной точки обзора (изображение и поза камеры) лучи камеры проходят через сцену, генерируя набор 3D-точек с заданным направлением излучения (в камеру). Для этих точек объемная плотность и испускаемое излучение прогнозируются с помощью многослойного персептрона (MLP). Затем изображение генерируется с помощью классического объемного рендеринга. Поскольку этот процесс полностью дифференцируем, ошибка между прогнозируемым изображением и исходным изображением может быть минимизирована с помощью градиентного спуска по нескольким точкам обзора, что побуждает MLP разрабатывать согласованную модель сцены. [1]
Ранние версии NeRF медленно оптимизировались и требовали, чтобы все входные виды были сделаны одной и той же камерой в одинаковых условиях освещения. Они работали лучше всего, когда ограничивались вращением вокруг отдельных объектов, таких как барабанная установка, растения или небольшие игрушки. [2] С момента выхода оригинальной статьи в 2020 году в алгоритм NeRF было внесено множество улучшений с вариациями для особых случаев использования.
В 2020 году, вскоре после выпуска NeRF, добавление картирования признаков Фурье улучшило скорость обучения и точность изображений. Глубокие нейронные сети испытывают трудности с изучением высокочастотных функций в низкоразмерных доменах; явление, известное как спектральное смещение. Чтобы преодолеть этот недостаток, точки сопоставляются с пространством признаков более высокой размерности, прежде чем поступать в MLP.
Где — входная точка, — векторы частот, — коэффициенты.
Это обеспечивает быструю сходимость к высокочастотным функциям, таким как пиксели в детальном изображении. [4]
Одним из ограничений NeRF является требование знания точных поз камеры для обучения модели. Зачастую методы оценки поз не совсем точны, а позу камеры вообще невозможно узнать. Эти недостатки приводят к артефактам и неоптимальной сходимости. Поэтому был разработан метод оптимизации позы камеры вместе с самой объемной функцией. Называемый Bundle-Adjusting Neural Radiance Field (BARF), этот метод использует динамический фильтр нижних частот для перехода от грубой к точной настройке, минимизируя ошибку путем нахождения геометрического преобразования для желаемого изображения. Это исправляет несовершенные позы камеры и значительно улучшает качество рендеринга NeRF. [5]
Обычные NeRF испытывают трудности с представлением деталей на всех расстояниях просмотра, создавая размытые изображения вблизи и чрезмерно искаженные изображения с дальних ракурсов. В 2021 году исследователи представили метод улучшения резкости деталей на разных масштабах просмотра, известный как mip-NeRF (происходит от mipmap ). Вместо того, чтобы выбирать один луч на пиксель, этот метод подгоняет гауссиану к коническому усеченному конусу, отбрасываемому камерой. Это улучшение эффективно сглаживает на всех масштабах просмотра. mip-NeRF также уменьшает общую ошибку изображения и быстрее сходится при размере ~ половины NeRF на основе лучей. [6]
В 2021 году исследователи применили метаобучение для назначения начальных весов MLP. Это быстро ускоряет сходимость, эффективно давая сети фору в градиентном спуске. Метаобучение также позволило MLP изучить базовое представление определенных типов сцен. Например, имея набор данных известных туристических достопримечательностей, инициализированный NeRF может частично реконструировать сцену, имея одно изображение. [7]
Обычные NeRF уязвимы к небольшим изменениям во входных изображениях (объекты, освещение), что часто приводит к появлению ореолов и артефактов. В результате NeRF с трудом представляют динамические сцены, такие как оживленные городские улицы с изменениями в освещении и динамическими объектами. В 2021 году исследователи из Google [2] разработали новый метод учета этих изменений, названный NeRF in the Wild (NeRF-W). Этот метод разделяет нейронную сеть (MLP) на три отдельные модели. Основная MLP сохраняется для кодирования статического объемного свечения. Однако она работает последовательно с отдельным MLP для встраивания внешнего вида (изменения в освещении, свойствах камеры) и MLP для встраивания переходных процессов (изменения в объектах сцены). Это позволяет обучать NeRF на различных коллекциях фотографий, например, снятых на мобильные телефоны в разное время суток. [8]
В 2021 году исследователи добавили больше выходных данных в MLP, лежащий в основе NeRF. Теперь выходные данные включают: объемную плотность, нормаль поверхности, параметры материала, расстояние до первого пересечения поверхностей (в любом направлении) и видимость внешней среды в любом направлении. Включение этих новых параметров позволяет MLP изучать свойства материала, а не чистые значения яркости. Это облегчает более сложный конвейер рендеринга, вычисляя прямое и глобальное освещение , зеркальные блики и тени. В результате NeRF может рендерить сцену при любых условиях освещения без повторного обучения. [9]
Хотя NeRF достигли высокого уровня точности, их дорогостоящее время вычислений сделало их бесполезными для многих приложений, требующих рендеринга в реальном времени, таких как VR / AR и интерактивный контент. Представленные в 2021 году, Plenoctrees (пленоптические октодеревья ) позволили рендерить в реальном времени предварительно обученные NeRF путем деления объемной функции сияния на октодерево. Вместо того, чтобы назначать направление сияния в камеру, направление обзора извлекается из сетевого ввода, и сферическое сияние прогнозируется для каждой области. Это делает рендеринг более чем в 3000 раз быстрее, чем обычные NeRF. [10]
Подобно Plenoctrees, этот метод позволяет выполнять рендеринг предварительно обученных NeRF в реальном времени. Чтобы избежать запроса большого MLP для каждой точки, этот метод запекает NeRF в разреженные нейронные сетки сияния (SNeRG). SNeRG — это разреженная сетка вокселей , содержащая непрозрачность и цвет, с изученными векторами признаков для кодирования информации, зависящей от вида. Затем используется легкий, более эффективный MLP для создания зависимых от вида остатков для изменения цвета и непрозрачности. Чтобы включить это сжимающее запекание, были внесены небольшие изменения в архитектуру NeRF, такие как запуск MLP один раз на пиксель, а не для каждой точки вдоль луча. Эти улучшения делают SNeRG чрезвычайно эффективным, превосходящим Plenoctrees. [11]
В 2022 году исследователи из Nvidia обеспечили обучение NeRF в реальном времени с помощью техники, известной как Instant Neural Graphics Primitives. Инновационное кодирование входных данных сокращает вычисления, позволяя проводить обучение NeRF в реальном времени, что на порядки превышает предыдущие методы. Ускорение обусловлено использованием пространственных хеш-функций , которые имеют время доступа, и параллельных архитектур, которые быстро работают на современных графических процессорах . [12]
Plenoxel (пленоптический объемный элемент) использует разреженное представление вокселей вместо объемного подхода, как в NeRF. Plenoxel также полностью удаляет MLP, вместо этого напрямую выполняя градиентный спуск по коэффициентам вокселей. Plenoxel может соответствовать точности обычного NeRF за на порядки меньшее время обучения. Опубликованный в 2022 году, этот метод опроверг важность MLP, показав, что дифференцируемый конвейер рендеринга является критическим компонентом. [13]
Гауссово разбрызгивание — это более новый метод, который может превзойти NeRF по времени рендеринга и точности. Вместо того, чтобы представлять сцену как объемную функцию, он использует разреженное облако трехмерных гауссиан . Сначала генерируется облако точек (через структуру из движения ) и преобразуется в гауссианы начальной ковариации, цвета и непрозрачности. Гауссианы напрямую оптимизируются через стохастический градиентный спуск для соответствия входному изображению. Это экономит вычисления, удаляя пустое пространство и устраняя необходимость запрашивать нейронную сеть для каждой точки. Вместо этого просто «разбрызгивает» все гауссианы на экране, и они перекрываются, создавая желаемое изображение. [14]
Традиционная фотограмметрия не является нейронной, а вместо этого использует надежные геометрические уравнения для получения 3D-измерений. NeRF, в отличие от фотограмметрических методов, по своей сути не производят размерно точную 3D-геометрию. Хотя их результаты часто достаточны для извлечения точной геометрии (например, с помощью кубического марширования [1] ), процесс нечеткий , как и в большинстве нейронных методов. Это ограничивает NeRF случаями, когда оценивается выходное изображение, а не сырая геометрия сцены. Однако NeRF преуспевают в ситуациях с неблагоприятным освещением. Например, фотограмметрические методы полностью терпят неудачу при попытке реконструировать отражающие или прозрачные объекты в сцене, в то время как NeRF способен вывести геометрию. [15]
NeRF имеют широкий спектр применения и начинают набирать популярность по мере их интеграции в удобные для пользователя приложения. [3]
NeRFs имеют огромный потенциал в создании контента, где фотореалистичные виды по запросу чрезвычайно ценны. [16] Технология демократизирует пространство, ранее доступное только командам художников VFX с дорогими активами. Поля нейронного излучения теперь позволяют любому человеку с камерой создавать захватывающие 3D-среды. [3] NeRF был объединен с генеративным ИИ , что позволяет пользователям без опыта моделирования вносить изменения в фотореалистичные 3D-сцены. [17] NeRFs имеют потенциальное применение в видеопроизводстве, компьютерной графике и дизайне продуктов.
Фотореализм NeRF делает их привлекательными для приложений, где важно погружение, таких как виртуальная реальность или видеоигры. NeRF можно комбинировать с классическими методами рендеринга для вставки синтетических объектов и создания правдоподобных виртуальных впечатлений. [18]
NeRFs использовались для реконструкции 3D КТ-сканов из разреженных или даже единичных рентгеновских снимков. Модель продемонстрировала высокоточную визуализацию данных грудной клетки и колена. Если ее принять, этот метод может спасти пациентов от избыточных доз ионизирующего излучения, что позволит проводить более безопасную диагностику. [19]
Уникальная способность NeRF понимать прозрачные и отражающие объекты делает их полезными для роботов, взаимодействующих в таких средах. Использование NeRF позволило роботизированной руке точно манипулировать прозрачным бокалом для вина; задача, с которой традиционное компьютерное зрение столкнулось бы с трудностями. [20]
NeRF также могут генерировать фотореалистичные человеческие лица, что делает их ценными инструментами для взаимодействия человека с компьютером. Традиционно визуализированные лица могут быть странными , в то время как другие нейронные методы слишком медленные для работы в реальном времени. [21]