Нейронное поле излучения
Материал из MachineLearning.
(Новая: {{well|Статья написана с использованием LLM '''GPT-5.6 Thinking''' и проверена участником ~~~~}} '''Нейронное поле излу...) |
(→См. также) |
||
| (5 промежуточных версий не показаны.) | |||
| Строка 1: | Строка 1: | ||
| - | {{well|Статья написана с использованием LLM '''GPT-5.6 Thinking''' и проверена участником [[Участник:Egor Goroshko|Egor Goroshko]] 03: | + | {{well|Статья написана с использованием LLM '''GPT-5.6 Thinking''' и проверена участником [[Участник:Egor Goroshko|Egor Goroshko]] 03:40, 19 июля 2026 (MSD)}} |
'''Нейронное поле излучения''' (англ. ''neural radiance field'', '''NeRF''') — способ непрерывного представления трёхмерной сцены с помощью [[нейронная сеть|нейронной сети]], которая по координате точки в пространстве и направлению наблюдения предсказывает объёмную плотность и цвет. Модель обучают по набору изображений сцены с известными или оценёнными параметрами [[камера|камер]]. После обучения она позволяет выполнять [[синтез новых ракурсов]], то есть строить изображения сцены из положений камеры, отсутствовавших в обучающей выборке.<ref name="nerf">Mildenhall B., Srinivasan P. P., Tancik M., Barron J. T., Ramamoorthi R., Ng R. [https://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123460392.pdf NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis] // European Conference on Computer Vision. 2020. P. 405–421.</ref> | '''Нейронное поле излучения''' (англ. ''neural radiance field'', '''NeRF''') — способ непрерывного представления трёхмерной сцены с помощью [[нейронная сеть|нейронной сети]], которая по координате точки в пространстве и направлению наблюдения предсказывает объёмную плотность и цвет. Модель обучают по набору изображений сцены с известными или оценёнными параметрами [[камера|камер]]. После обучения она позволяет выполнять [[синтез новых ракурсов]], то есть строить изображения сцены из положений камеры, отсутствовавших в обучающей выборке.<ref name="nerf">Mildenhall B., Srinivasan P. P., Tancik M., Barron J. T., Ramamoorthi R., Ng R. [https://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123460392.pdf NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis] // European Conference on Computer Vision. 2020. P. 405–421.</ref> | ||
| - | NeRF относится одновременно к [[компьютерное зрение|компьютерному зрению]], [[компьютерная графика|компьютерной графике]] и [[нейронный рендеринг|нейронному рендерингу]]. Нейронным рендерингом называют методы формирования изображений, в которых часть модели сцены или процесса визуализации представлена обучаемой нейронной сетью. NeRF также является [[неявное представление|неявным представлением]]: геометрия сцены не хранится непосредственно в виде списка поверхностей, а определяется значениями некоторой функции. | + | NeRF относится одновременно к [[компьютерное зрение|компьютерному зрению]], [[компьютерная графика|компьютерной графике]] и [[нейронный рендеринг|нейронному рендерингу]]. Нейронным рендерингом называют методы формирования изображений, в которых часть модели сцены или процесса визуализации представлена обучаемой нейронной сетью. NeRF также является [[неявное представление|неявным представлением]]: геометрия сцены не хранится непосредственно в виде списка поверхностей, а определяется значениями некоторой функции. В отличие от [[полигональная сетка|полигональной сетки]], состоящей из вершин, рёбер и граней, [[облако точек|облака точек]] или дискретной [[воксель|воксельной]] решётки, классическое нейронное поле излучения задаёт сцену как непрерывную функцию, параметры которой хранятся преимущественно в весах нейронной сети. |
| - | + | ||
| - | В отличие от [[полигональная сетка|полигональной сетки]], состоящей из вершин, рёбер и граней, [[облако точек|облака точек]] или дискретной [[воксель|воксельной]] решётки, классическое нейронное поле излучения задаёт сцену как непрерывную функцию | + | |
== Мотивация == | == Мотивация == | ||
| Строка 11: | Строка 9: | ||
Одна из основных задач трёхмерного компьютерного зрения состоит в восстановлении представления сцены по двумерным изображениям. Такое представление должно описывать расположение поверхностей, свободное пространство, текстуру объектов, видимость отдельных участков и возможную зависимость внешнего вида от направления наблюдения. | Одна из основных задач трёхмерного компьютерного зрения состоит в восстановлении представления сцены по двумерным изображениям. Такое представление должно описывать расположение поверхностей, свободное пространство, текстуру объектов, видимость отдельных участков и возможную зависимость внешнего вида от направления наблюдения. | ||
| - | Традиционные методы трёхмерной реконструкции могут явно строить [[карта глубины|карты глубины]], облака точек или полигональные поверхности. Карта глубины сопоставляет каждому пикселю расстояние от камеры до наблюдаемой точки сцены. Облако точек представляет объект набором трёхмерных координат, а полигональная модель приближает поверхность геометрическими гранями. | + | Традиционные методы трёхмерной реконструкции могут явно строить [[карта глубины|карты глубины]], облака точек или полигональные поверхности. Карта глубины сопоставляет каждому пикселю расстояние от камеры до наблюдаемой точки сцены. Облако точек представляет объект набором трёхмерных координат, а полигональная модель приближает поверхность геометрическими гранями. Явные представления удобны для измерений, редактирования и физического моделирования, однако воспроизведение тонких структур, частичной прозрачности, бликов и сложной зависимости цвета от ракурса часто требует дополнительных моделей. |
| - | + | ||
| - | Явные представления удобны для измерений, редактирования и физического моделирования, однако воспроизведение тонких структур, частичной прозрачности, бликов и сложной зависимости цвета от ракурса часто требует дополнительных моделей. | + | |
NeRF формулирует задачу иначе: вместо непосредственного восстановления поверхности обучается функция, объясняющая исходные изображения через дифференцируемую модель формирования изображения. Дифференцируемой называют модель, производные которой по обучаемым параметрам можно вычислять и использовать для оптимизации. Благодаря этому геометрия, видимость и внешний вид сцены настраиваются совместно по ошибке между реальными и синтезированными изображениями.<ref name="nerf"/> | NeRF формулирует задачу иначе: вместо непосредственного восстановления поверхности обучается функция, объясняющая исходные изображения через дифференцируемую модель формирования изображения. Дифференцируемой называют модель, производные которой по обучаемым параметрам можно вычислять и использовать для оптимизации. Благодаря этому геометрия, видимость и внешний вид сцены настраиваются совместно по ошибке между реальными и синтезированными изображениями.<ref name="nerf"/> | ||
| Строка 24: | Строка 20: | ||
<tex> | <tex> | ||
| - | + | F_{\Theta}(\mathbf{x},\mathbf{d})= | |
| - | + | \bigl(\sigma,\mathbf{c}\bigr). | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | F_{\Theta}(\mathbf{x},\mathbf{d}) | + | |
| - | = | + | |
| - | \bigl(\sigma | + | |
</tex> | </tex> | ||
| - | + | На вход функции подаются точка <tex>\mathbf{x}=(x,y,z)</tex> в трёхмерном пространстве и единичный вектор <tex>\mathbf{d}</tex>, задающий направление наблюдения. На выходе вычисляются объёмная плотность <tex>\sigma=\sigma(\mathbf{x})</tex> и цвет <tex>\mathbf{c}=\mathbf{c}(\mathbf{x},\mathbf{d})=(r,g,b)</tex>. Обозначение <tex>\Theta</tex> соответствует набору обучаемых параметров модели. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | Цвет обычно | + | Объёмная плотность определяет, насколько вероятно завершение луча в окрестности данной точки. Она не является плотностью вещества в обычном физическом смысле: в NeRF это обучаемая величина, используемая для описания непрозрачности и расположения видимого содержимого сцены. Цвет обычно задаётся тремя компонентами RGB, нормированными на интервал от 0 до 1. Его зависимость от направления позволяет моделировать эффекты, меняющиеся при перемещении наблюдателя, например зеркальные блики. |
В исходной архитектуре функция <tex>F_{\Theta}</tex> реализована как [[многослойный перцептрон]]. Многослойный перцептрон, или MLP, — это полносвязная нейронная сеть, состоящая из последовательности слоёв. Каждый слой выполняет линейное преобразование входного вектора, после которого обычно применяется нелинейная функция активации. Плотность в классическом NeRF зависит только от положения точки, тогда как цвет дополнительно зависит от направления наблюдения.<ref name="nerf"/> | В исходной архитектуре функция <tex>F_{\Theta}</tex> реализована как [[многослойный перцептрон]]. Многослойный перцептрон, или MLP, — это полносвязная нейронная сеть, состоящая из последовательности слоёв. Каждый слой выполняет линейное преобразование входного вектора, после которого обычно применяется нелинейная функция активации. Плотность в классическом NeRF зависит только от положения точки, тогда как цвет дополнительно зависит от направления наблюдения.<ref name="nerf"/> | ||
| Строка 61: | Строка 40: | ||
</tex> | </tex> | ||
| - | где <tex>\mathbf{o}</tex> — оптический центр камеры, <tex>\mathbf{d}</tex> — направление луча, а <tex>t</tex> — расстояние вдоль луча. Значение <tex>\mathbf{r}(t)</tex> задаёт трёхмерную точку, | + | где <tex>\mathbf{o}</tex> — оптический центр камеры, <tex>\mathbf{d}</tex> — направление луча, а <tex>t</tex> — расстояние вдоль луча. Значение <tex>\mathbf{r}(t)</tex> задаёт трёхмерную точку, расположенную на расстоянии <tex>t</tex> от камеры. |
Цвет пикселя вычисляется интегрированием вкладов точек вдоль луча: | Цвет пикселя вычисляется интегрированием вкладов точек вдоль луча: | ||
| Строка 68: | Строка 47: | ||
\mathbf{C}(\mathbf{r})= | \mathbf{C}(\mathbf{r})= | ||
\int_{t_n}^{t_f} | \int_{t_n}^{t_f} | ||
| - | T(t) | + | T(t)\sigma(\mathbf{r}(t)) |
| - | \sigma(\mathbf{r}(t)) | + | \mathbf{c}(\mathbf{r}(t),\mathbf{d})\,dt, |
| - | \mathbf{c}(\mathbf{r}(t),\mathbf{d}) | + | |
| - | \,dt, | + | |
</tex> | </tex> | ||
| Строка 84: | Строка 61: | ||
</tex> | </tex> | ||
| - | — накопленная прозрачность. Она выражает долю света, которая достигает точки <tex>\mathbf{r}(t)</tex>, не будучи поглощённой на предыдущем участке луча. | + | — накопленная прозрачность. Она выражает долю света, которая достигает точки <tex>\mathbf{r}(t)</tex>, не будучи поглощённой на предыдущем участке луча. Множитель <tex>T(t)\sigma(\mathbf{r}(t))</tex> задаёт относительный вклад окрестности точки в окончательный цвет пикселя. Если перед точкой находится область с большой плотностью, прозрачность уменьшается и вклад более удалённых точек становится малым. |
| - | + | ||
| - | Множитель <tex>T(t)\sigma(\mathbf{r}(t))</tex> задаёт относительный вклад окрестности точки в окончательный цвет пикселя. Если перед точкой находится область с большой плотностью, | + | |
Эта модель является вариантом интеграла [[объёмный рендеринг|объёмного рендеринга]]. Объёмным рендерингом называют построение изображения по значениям цвета и плотности, заданным во всём трёхмерном объёме, а не только на поверхности объекта.<ref name="max">Max N. [https://doi.org/10.1109/38.468400 Optical Models for Direct Volume Rendering] // IEEE Transactions on Visualization and Computer Graphics. 1995. Vol. 1, no. 2. P. 99–108.</ref> | Эта модель является вариантом интеграла [[объёмный рендеринг|объёмного рендеринга]]. Объёмным рендерингом называют построение изображения по значениям цвета и плотности, заданным во всём трёхмерном объёме, а не только на поверхности объекта.<ref name="max">Max N. [https://doi.org/10.1109/38.468400 Optical Models for Direct Volume Rendering] // IEEE Transactions on Visualization and Computer Graphics. 1995. Vol. 1, no. 2. P. 99–108.</ref> | ||
| Строка 106: | Строка 81: | ||
<tex> | <tex> | ||
| - | \alpha_i= | + | \alpha_i=1-\exp(-\sigma_i\delta_i), |
| - | 1-\exp(-\sigma_i\delta_i), | + | |
</tex> | </tex> | ||
| Строка 117: | Строка 91: | ||
</tex> | </tex> | ||
| - | а <tex>\delta_i=t_{i+1}-t_i</tex> — длина интервала между соседними отсчётами. | + | а <tex>\delta_i=t_{i+1}-t_i</tex> — длина интервала между соседними отсчётами. Величина <tex>\alpha_i</tex> задаёт непрозрачность отдельного интервала, значение <tex>T_i</tex> показывает, какая часть света дошла до этого интервала, а <tex>w_i</tex> определяет вклад его цвета в итоговый пиксель. |
| - | + | ||
| - | Величина <tex>\alpha_i</tex> задаёт непрозрачность отдельного интервала | + | |
При вероятностной интерпретации <tex>w_i</tex> можно рассматривать как приближённую вероятность того, что луч впервые завершится в <tex>i</tex>-м интервале. Те же веса позволяют оценить ожидаемую глубину: | При вероятностной интерпретации <tex>w_i</tex> можно рассматривать как приближённую вероятность того, что луч впервые завершится в <tex>i</tex>-м интервале. Те же веса позволяют оценить ожидаемую глубину: | ||
| Строка 134: | Строка 106: | ||
=== Позиционное кодирование === | === Позиционное кодирование === | ||
| - | Обычный многослойный перцептрон при обучении часто сначала воспроизводит плавные, низкочастотные изменения функции. Это явление связано со [[спектральное смещение нейронных сетей|спектральным смещением]]: нейронная сеть легче изучает медленно меняющиеся зависимости, чем мелкие детали и резкие переходы. | + | Обычный многослойный перцептрон при обучении часто сначала воспроизводит плавные, низкочастотные изменения функции. Это явление связано со [[спектральное смещение нейронных сетей|спектральным смещением]]: нейронная сеть легче изучает медленно меняющиеся зависимости, чем мелкие детали и резкие переходы. Поэтому непосредственная передача координат <tex>(x,y,z)</tex> в сеть может приводить к размыванию мелких текстур. |
| - | + | В классическом NeRF координаты преобразуют с помощью синусоидального позиционного кодирования: | |
<tex> | <tex> | ||
| Строка 147: | Строка 119: | ||
</tex> | </tex> | ||
| - | Здесь <tex>p</tex> — одна координата входа, а <tex>L</tex> определяет число используемых частот. Преобразование отдельно применяется к каждой компоненте положения и направления. | + | Здесь <tex>p</tex> — одна координата входа, а <tex>L</tex> определяет число используемых частот. Преобразование отдельно применяется к каждой компоненте положения и направления. Позиционное кодирование не является самостоятельной моделью сцены: оно переводит координаты в пространство синусоидальных признаков разных частот, благодаря чему многослойному перцептрону легче приближать мелкие детали и быстро меняющиеся зависимости.<ref name="fourier">Tancik M., Srinivasan P. P., Mildenhall B. et al. [https://proceedings.neurips.cc/paper/2020/hash/55053683268957697aa39fba6f231c68-Abstract.html Fourier Features Let Networks Learn High Frequency Functions in Low Dimensional Domains] // Advances in Neural Information Processing Systems. 2020. Vol. 33. P. 7537–7547.</ref> |
| - | + | ||
| - | Позиционное кодирование не является самостоятельной моделью сцены | + | |
=== Разделение плотности и цвета === | === Разделение плотности и цвета === | ||
| - | Сеть сначала обрабатывает пространственную координату и вычисляет плотность вместе со скрытым представлением точки. Скрытым представлением называют вектор признаков, который формируется внутри нейронной сети и не имеет заранее заданного физического смысла. | + | Сеть сначала обрабатывает пространственную координату и вычисляет плотность вместе со скрытым представлением точки. Скрытым представлением называют вектор признаков, который формируется внутри нейронной сети и не имеет заранее заданного физического смысла. Затем скрытые признаки объединяются с направлением наблюдения и преобразуются в RGB-цвет. |
| - | + | Такое разделение отражает предположение, что геометрия сцены не зависит от положения наблюдателя, тогда как видимый цвет может зависеть от ракурса. Если позволить плотности свободно зависеть от направления, модель сможет объяснять различия между изображениями изменением геометрии для разных камер, что затруднит получение согласованного трёхмерного представления. | |
| - | + | ||
| - | Если позволить плотности свободно зависеть от направления, модель сможет объяснять различия между изображениями изменением геометрии для разных камер | + | |
=== Иерархическая выборка === | === Иерархическая выборка === | ||
| - | Равномерное размещение большого количества точек вдоль каждого луча вычислительно неэффективно, поскольку значительная часть отсчётов может находиться в пустом пространстве. | + | Равномерное размещение большого количества точек вдоль каждого луча вычислительно неэффективно, поскольку значительная часть отсчётов может находиться в пустом пространстве. В исходной модели используются две нейронные сети, а вычисления выполняются в три этапа: |
| - | + | ||
| - | В исходной модели | + | |
| - | + | ||
| - | + | ||
| - | + | <ol> | |
| + | <li>Грубая сеть оценивает распределение плотности по первоначальному набору отсчётов;</li> | ||
| + | <li>На основе полученных весов выбираются дополнительные точки в наиболее значимых интервалах;</li> | ||
| + | <li>Точная сеть вычисляет окончательный цвет по объединённому набору первоначальных и дополнительных отсчётов.</li> | ||
| + | </ol> | ||
| - | + | Этот подход называется [[выборка по значимости|выборкой по значимости]]. При такой выборке больше вычислений направляется в области, которые с высокой вероятностью влияют на цвет пикселя. В контексте NeRF её также называют иерархической выборкой, поскольку дополнительные отсчёты определяются по результатам предыдущего, более грубого этапа.<ref name="nerf"/> | |
| - | |||
== Обучение == | == Обучение == | ||
| Строка 177: | Строка 144: | ||
=== Исходные данные === | === Исходные данные === | ||
| - | Для обучения классического NeRF обычно требуются несколько RGB-изображений одной неподвижной сцены, внутренние параметры камер и положение каждой камеры относительно сцены. | + | Для обучения классического NeRF обычно требуются несколько RGB-изображений одной неподвижной сцены, внутренние параметры камер и положение каждой камеры относительно сцены. К внутренним параметрам относятся характеристики, связывающие координаты пикселя с направлением луча, например фокусное расстояние и положение главной точки изображения. Положение и ориентация камеры называют внешними параметрами. |
| - | + | Параметры камер часто оценивают методами [[структура из движения|структуры из движения]]. Структура из движения — это восстановление трёхмерного расположения точек и движения камер по набору двумерных изображений. Обычно алгоритм находит соответствующие ключевые точки на разных кадрах и подбирает параметры камер, согласующиеся с этими соответствиями. Ошибки в положениях камер могут приводить к размытым деталям, двойным границам и искажённой геометрии. Для качественного обучения также желательно, чтобы соседние изображения имели достаточно большое перекрытие и сходную экспозицию. | |
| - | + | ||
| - | Параметры камер часто оценивают методами [[структура из движения|структуры из движения]]. Структура из движения — это восстановление трёхмерного расположения точек и движения камер по набору двумерных изображений. Обычно алгоритм находит соответствующие ключевые точки на разных кадрах и подбирает параметры камер, согласующиеся с этими соответствиями. | + | |
| - | + | ||
| - | Ошибки в положениях камер могут приводить к размытым деталям, двойным границам и искажённой геометрии. Для качественного обучения также желательно, чтобы соседние изображения имели достаточно большое перекрытие и сходную экспозицию. | + | |
=== Функция потерь === | === Функция потерь === | ||
| Строка 199: | Строка 162: | ||
</tex> | </tex> | ||
| - | Здесь <tex>\mathcal{R}</tex> — набор лучей в текущей обучающей выборке, <tex>\widehat{\mathbf{C}} | + | Здесь <tex>\mathcal{R}</tex> — набор лучей в текущей обучающей выборке, <tex>\widehat{\mathbf{C}}_{\Theta}</tex> — цвет, синтезированный моделью, а <tex>\mathbf{C}_{\mathrm{true}}</tex> — цвет соответствующего пикселя исходного изображения. Выражение <tex>\|\cdot\|_2^2</tex> обозначает сумму квадратов различий между компонентами RGB. Усреднённая по пикселям величина называется [[среднеквадратичная ошибка|среднеквадратичной ошибкой]]. |
| - | + | ||
| - | Выражение <tex>|\cdot|_2^2</tex> обозначает сумму квадратов различий между компонентами RGB. Усреднённая по пикселям величина называется [[среднеквадратичная ошибка|среднеквадратичной ошибкой]] | + | |
| - | + | ||
| - | + | ||
| - | Параметры обновляются методом [[стохастический градиентный спуск|стохастической градиентной оптимизации]] | + | Поскольку операции рендеринга дифференцируемы по параметрам сети, градиент функции потерь вычисляется методом [[обратное распространение ошибки|обратного распространения ошибки]]. Обратное распространение — это алгоритм последовательного вычисления производных функции потерь по параметрам каждого слоя нейронной сети. Параметры обновляются методом [[стохастический градиентный спуск|стохастической градиентной оптимизации]], при которой градиент оценивается не по всем пикселям сразу, а по случайно выбранной части данных. На практике часто применяется алгоритм [[Adam]], адаптивно изменяющий величину обновления для разных параметров.<ref name="nerf"/> |
Модель обычно не получает истинные значения плотности, формы поверхности или глубины. Эти свойства возникают из требования одновременно воспроизводить изображения, снятые с разных точек зрения. | Модель обычно не получает истинные значения плотности, формы поверхности или глубины. Эти свойства возникают из требования одновременно воспроизводить изображения, снятые с разных точек зрения. | ||
| Строка 213: | Строка 172: | ||
С точки зрения [[машинное обучение|машинного обучения]] NeRF является моделью координатной регрессии. Регрессией называют предсказание числовых значений по входным признакам. В данном случае входами служат пространственные координаты и направления, а выходами — плотность и цвет. | С точки зрения [[машинное обучение|машинного обучения]] NeRF является моделью координатной регрессии. Регрессией называют предсказание числовых значений по входным признакам. В данном случае входами служат пространственные координаты и направления, а выходами — плотность и цвет. | ||
| - | Нейронную функцию, принимающую координату и возвращающую свойства сигнала в этой координате, называют [[координатная нейронная сеть|координатной нейронной сетью]]. Такие сети используются не только для трёхмерных сцен, но и для представления изображений, звука, геометрии и физических полей. | + | Нейронную функцию, принимающую координату и возвращающую свойства сигнала в этой координате, называют [[координатная нейронная сеть|координатной нейронной сетью]]. Такие сети используются не только для трёхмерных сцен, но и для представления изображений, звука, геометрии и физических полей. Дифференцируемый рендерер объединяет локальные предсказания сети вдоль луча в цвет пикселя, после чего ошибка на изображении создаёт обучающий сигнал для всех точек, участвовавших в формировании этого пикселя. |
| - | + | ||
| - | Дифференцируемый рендерер объединяет локальные предсказания сети вдоль луча в цвет пикселя | + | |
Отдельный классический NeRF обычно обучается для одной сцены. Его веса являются параметрическим представлением конкретного объекта или пространства, а не универсальной моделью, способной без дополнительного обучения реконструировать произвольные сцены. | Отдельный классический NeRF обычно обучается для одной сцены. Его веса являются параметрическим представлением конкретного объекта или пространства, а не универсальной моделью, способной без дополнительного обучения реконструировать произвольные сцены. | ||
| Строка 223: | Строка 180: | ||
Математические основы NeRF возникли раньше самого термина. Методы объёмного рендеринга, использующие модели испускания и поглощения света, применялись в компьютерной графике задолго до распространения глубоких нейронных сетей.<ref name="max"/> | Математические основы NeRF возникли раньше самого термина. Методы объёмного рендеринга, использующие модели испускания и поглощения света, применялись в компьютерной графике задолго до распространения глубоких нейронных сетей.<ref name="max"/> | ||
| - | В 2010-х годах активно развивались методы синтеза новых ракурсов по набору изображений, включая [[световое поле|световые поля]], многоплоскостные изображения и обучаемые модели нейронного рендеринга. Световое поле описывает интенсивность света для множества лучей, проходящих через сцену. Многоплоскостное изображение представляет сцену набором полупрозрачных плоскостей, расположенных на разных глубинах. | + | В 2010-х годах активно развивались методы синтеза новых ракурсов по набору изображений, включая [[световое поле|световые поля]], многоплоскостные изображения и обучаемые модели нейронного рендеринга. Световое поле описывает интенсивность света для множества лучей, проходящих через сцену. Многоплоскостное изображение представляет сцену набором полупрозрачных плоскостей, расположенных на разных глубинах. Например, метод Local Light Field Fusion использовал набор локальных световых полей для синтеза видов по изображениям, снятым ручной камерой.<ref>Mildenhall B., Srinivasan P. P., Ortiz-Cayon R. et al. [https://doi.org/10.1145/3306346.3322980 Local Light Field Fusion: Practical View Synthesis with Prescriptive Sampling Guidelines] // ACM Transactions on Graphics. 2019. Vol. 38, no. 4. Article 29.</ref> |
| - | + | ||
| - | Например, метод Local Light Field Fusion использовал набор локальных световых полей для синтеза видов по изображениям, снятым ручной камерой.<ref>Mildenhall B., Srinivasan P. P., Ortiz-Cayon R. et al. [https://doi.org/10.1145/3306346.3322980 Local Light Field Fusion: Practical View Synthesis with Prescriptive Sampling Guidelines] // ACM Transactions on Graphics. 2019. Vol. 38, no. 4. Article 29.</ref> | + | |
В 2020 году Бен Милденхолл и соавторы представили NeRF как непрерывное нейронное представление сцены, объединяющее координатный многослойный перцептрон, позиционное кодирование, объёмный рендеринг и иерархическую выборку.<ref name="nerf"/> Работа стала основой большого семейства методов нейронного представления трёхмерных сцен. | В 2020 году Бен Милденхолл и соавторы представили NeRF как непрерывное нейронное представление сцены, объединяющее координатный многослойный перцептрон, позиционное кодирование, объёмный рендеринг и иерархическую выборку.<ref name="nerf"/> Работа стала основой большого семейства методов нейронного представления трёхмерных сцен. | ||
| Строка 235: | Строка 190: | ||
Классический NeRF требует многократного выполнения многослойного перцептрона для каждого пикселя. Для одного луча сеть вызывается во множестве пространственных точек, поэтому обучение и формирование изображения могут быть медленными. | Классический NeRF требует многократного выполнения многослойного перцептрона для каждого пикселя. Для одного луча сеть вызывается во множестве пространственных точек, поэтому обучение и формирование изображения могут быть медленными. | ||
| - | Метод Instant Neural Graphics Primitives, часто называемый Instant-NGP, сочетает небольшую нейронную сеть с обучаемым многомасштабным хеш-кодированием координат. Хеш-кодирование размещает обучаемые признаки в нескольких таблицах разного пространственного разрешения. Для заданной координаты модель извлекает признаки из этих таблиц и передаёт их небольшой нейронной сети. | + | Метод Instant Neural Graphics Primitives, часто называемый Instant-NGP, сочетает небольшую нейронную сеть с обучаемым многомасштабным хеш-кодированием координат. Хеш-кодирование размещает обучаемые признаки в нескольких таблицах разного пространственного разрешения. Для заданной координаты модель извлекает признаки из этих таблиц и передаёт их небольшой нейронной сети. Такой подход переносит значительную часть сложности представления из многослойного перцептрона в обучаемую структуру признаков и существенно ускоряет оптимизацию.<ref>Müller T., Evans A., Schied C., Keller A. [https://doi.org/10.1145/3528223.3530127 Instant Neural Graphics Primitives with a Multiresolution Hash Encoding] // ACM Transactions on Graphics. 2022. Vol. 41, no. 4. Article 102.</ref> |
| - | + | Другие методы используют разреженные воксельные структуры, тензорные разложения или наборы локальных признаков. Тензорное разложение — это приближение многомерного массива комбинацией более простых компонентов, позволяющее уменьшить объём памяти и число вычислений. | |
| - | + | ||
| - | Другие методы используют разреженные воксельные структуры, тензорные разложения или наборы локальных признаков. Тензорное разложение — это приближение многомерного массива комбинацией более простых компонентов, позволяющее уменьшить | + | |
=== Многомасштабное представление === | === Многомасштабное представление === | ||
| - | Обычный NeRF моделирует каждый пиксель бесконечно тонким лучом | + | Обычный NeRF моделирует каждый пиксель бесконечно тонким лучом, хотя в действительности пикселю соответствует конечная область пространства. Если расстояние до сцены или разрешение изображения изменяется, игнорирование этой области может приводить к [[алиасинг|алиасингу]]. Алиасингом называют искажения, возникающие при недостаточной частоте дискретизации сигнала; в изображениях он может проявляться ступенчатыми границами, мерцанием и ложными узорами. |
| - | + | ||
| - | Алиасингом называют искажения, возникающие при недостаточной частоте дискретизации сигнала | + | |
В mip-NeRF пиксель рассматривается как конический пучок, а интервалы вдоль него — как усечённые конусы. Вместо кодирования одной точки модель кодирует область пространства при помощи интегрированного позиционного кодирования. Это позволяет учитывать размер проекции пикселя в сцене и улучшает качество при изменении масштаба.<ref>Barron J. T., Mildenhall B., Tancik M. et al. [https://openaccess.thecvf.com/content/ICCV2021/html/Barron_Mip-NeRF_A_Multiscale_Representation_for_Anti-Aliasing_Neural_Radiance_Fields_ICCV_2021_paper.html Mip-NeRF: A Multiscale Representation for Anti-Aliasing Neural Radiance Fields] // Proceedings of the IEEE/CVF International Conference on Computer Vision. 2021. P. 5855–5864.</ref> | В mip-NeRF пиксель рассматривается как конический пучок, а интервалы вдоль него — как усечённые конусы. Вместо кодирования одной точки модель кодирует область пространства при помощи интегрированного позиционного кодирования. Это позволяет учитывать размер проекции пикселя в сцене и улучшает качество при изменении масштаба.<ref>Barron J. T., Mildenhall B., Tancik M. et al. [https://openaccess.thecvf.com/content/ICCV2021/html/Barron_Mip-NeRF_A_Multiscale_Representation_for_Anti-Aliasing_Neural_Radiance_Fields_ICCV_2021_paper.html Mip-NeRF: A Multiscale Representation for Anti-Aliasing Neural Radiance Fields] // Proceedings of the IEEE/CVF International Conference on Computer Vision. 2021. P. 5855–5864.</ref> | ||
| Строка 253: | Строка 204: | ||
Исходная формулировка особенно удобна для объектов, расположенных внутри заранее заданного ограниченного объёма. Для улиц, больших помещений и сцен с далёким фоном возникают значительные различия пространственных масштабов. | Исходная формулировка особенно удобна для объектов, расположенных внутри заранее заданного ограниченного объёма. Для улиц, больших помещений и сцен с далёким фоном возникают значительные различия пространственных масштабов. | ||
| - | Mip-NeRF 360 вводит нелинейное сжатие удалённого пространства, изменённую процедуру выборки и регуляризацию весов вдоль луча. Регуляризацией называют дополнительное ограничение функции потерь, которое поощряет желательные свойства решения и уменьшает вероятность вырожденного поведения модели. | + | Mip-NeRF 360 вводит нелинейное сжатие удалённого пространства, изменённую процедуру выборки и регуляризацию весов вдоль луча. Регуляризацией называют дополнительное ограничение функции потерь, которое поощряет желательные свойства решения и уменьшает вероятность вырожденного поведения модели. Эти изменения позволяют моделировать сцены, содержание которых не ограничено компактной областью.<ref>Barron J. T., Mildenhall B., Verbin D., Srinivasan P. P., Hedman P. [https://openaccess.thecvf.com/content/CVPR2022/html/Barron_Mip-NeRF_360_Unbounded_Anti-Aliased_Neural_Radiance_Fields_CVPR_2022_paper.html Mip-NeRF 360: Unbounded Anti-Aliased Neural Radiance Fields] // Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022. P. 5470–5479.</ref> |
| - | + | ||
| - | Эти изменения позволяют моделировать сцены, содержание которых не ограничено компактной областью.<ref>Barron J. T., Mildenhall B., Verbin D., Srinivasan P. P., Hedman P. [https://openaccess.thecvf.com/content/CVPR2022/html/Barron_Mip-NeRF_360_Unbounded_Anti-Aliased_Neural_Radiance_Fields_CVPR_2022_paper.html Mip-NeRF 360: Unbounded Anti-Aliased Neural Radiance Fields] // Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022. P. 5470–5479.</ref> | + | |
=== Неизвестные параметры камер === | === Неизвестные параметры камер === | ||
| - | Некоторые варианты NeRF совместно оптимизируют представление сцены и параметры камер. Например, NeRF-- позволяет для определённых типов сцен обучать модель без заранее известных внутренних и внешних параметров камер.<ref>Wang Z., Wu S., Xie W., Chen M., Prisacariu V. A. [https://arxiv.org/abs/2102.07064 NeRF--: Neural Radiance Fields Without Known Camera Parameters] // arXiv:2102.07064. 2021.</ref> | + | Некоторые варианты NeRF совместно оптимизируют представление сцены и параметры камер. Например, NeRF-- позволяет для определённых типов сцен обучать модель без заранее известных внутренних и внешних параметров камер.<ref>Wang Z., Wu S., Xie W., Chen M., Prisacariu V. A. [https://arxiv.org/abs/2102.07064 NeRF--: Neural Radiance Fields Without Known Camera Parameters] // arXiv:2102.07064. 2021.</ref> Такая совместная оптимизация может быть чувствительна к начальным значениям, поскольку неверные параметры камер и неверная геометрия способны частично компенсировать друг друга, сохраняя сравнительно малую ошибку на изображениях. |
| - | + | ||
| - | Такая совместная оптимизация может быть чувствительна к начальным значениям | + | |
=== Динамические и изменяющиеся сцены === | === Динамические и изменяющиеся сцены === | ||
| - | Классическая модель предполагает, что сцена неподвижна, а освещение во время съёмки приблизительно постоянно. Для динамических сцен в функцию могут вводиться время, поле деформаций или отдельные представления формы и движения. | + | Классическая модель предполагает, что сцена неподвижна, а освещение во время съёмки приблизительно постоянно. Для динамических сцен в функцию могут вводиться время, поле деформаций или отдельные представления формы и движения. Поле деформаций — это функция, описывающая перемещение каждой точки пространства относительно некоторого эталонного состояния сцены, которое часто называют каноническим пространством. |
| - | + | ||
| - | Поле деформаций — это функция, описывающая перемещение каждой точки пространства относительно некоторого эталонного состояния сцены | + | |
Другие расширения учитывают изменение освещения, экспозиции, временно появляющиеся объекты и различия между камерами. Такие модели требуют дополнительных ограничений, поскольку геометрия, движение, освещение и свойства камеры могут объяснять одни и те же изменения пикселей. | Другие расширения учитывают изменение освещения, экспозиции, временно появляющиеся объекты и различия между камерами. Такие модели требуют дополнительных ограничений, поскольку геометрия, движение, освещение и свойства камеры могут объяснять одни и те же изменения пикселей. | ||
| Строка 273: | Строка 218: | ||
== Преимущества == | == Преимущества == | ||
| - | + | Одно из главных преимуществ NeRF состоит в высоком качестве синтеза новых ракурсов при наличии достаточного количества согласованных изображений. Непрерывное представление позволяет описывать пространство без обязательного использования плотной воксельной решётки и воспроизводить мелкие визуальные детали, которые трудно выразить грубой дискретной геометрией. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | Геометрия, видимость и зависящий от направления внешний вид изучаются в рамках единой оптимизируемой модели. Благодаря дифференцируемому объёмному рендерингу NeRF может обучаться непосредственно по RGB-изображениям без обязательных эталонных карт глубины или трёхмерных сканов. Обучающий сигнал от ошибки цвета распространяется через модель рендеринга к параметрам плотности и цвета. | |
| - | + | Обученное поле позволяет получать не только изображения, но и оценки глубины, накопленной прозрачности и распределения плотности вдоль лучей. Эти величины полезны для анализа сцены, хотя не всегда имеют точную геометрическую или физическую интерпретацию. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | == | + | == Ограничения == |
| - | + | Классический NeRF обычно обучается отдельно для каждой сцены. Его веса представляют конкретный объект или пространство, поэтому исходная модель не может без дополнительной оптимизации непосредственно применяться к произвольным новым сценам. | |
| - | + | Существенным ограничением являются вычислительные затраты. Для формирования одного пикселя требуется оценить нейронную сеть во множестве точек вдоль луча, а полное обучение включает обработку большого количества лучей. Позднейшие варианты NeRF значительно ускоряют этот процесс, однако часто используют дополнительную память или более сложные структуры данных. | |
| - | + | Качество результата сильно зависит от точности калибровки и оценки положений камер. Ошибки в параметрах камер могут приводить к размытию, раздвоенным контурам и неверному расположению плотности. Недостаточное перекрытие ракурсов создаёт неопределённость в плохо наблюдаемых областях, а экстраполяция далеко за пределы положений обучающих камер обычно остаётся ненадёжной. | |
| - | + | Классическая формулировка предполагает неподвижную сцену и приблизительно постоянные условия съёмки. Движущиеся объекты, изменение освещения, автоматическая экспозиция и баланс белого нарушают эти предположения. Для таких данных требуются специальные расширения, отдельно моделирующие время, освещение или параметры камеры. | |
| - | + | Поле плотности NeRF не следует автоматически считать точной поверхностью. Отражения, прозрачность и другие сложные эффекты могут быть воспроизведены визуально за счёт распределённой плотности или зависимости цвета от направления. Поэтому высокое качество синтезированных изображений не гарантирует правильной геометрии, а извлечение чистой полигональной поверхности из поля может быть неоднозначным. | |
| - | + | == Применения == | |
| - | + | Нейронные поля излучения применяются для синтеза новых ракурсов, реконструкции объектов и помещений, создания виртуальных экскурсий, телеприсутствия и подготовки трёхмерных материалов для [[виртуальная реальность|виртуальной]] и [[дополненная реальность|дополненной реальности]]. Методы этого семейства также используются для визуализации культурного наследия, моделирования окружения в [[робототехника|робототехнике]], картографирования, обработки визуальных эффектов и редактирования трёхмерного содержимого. | |
| - | + | Прикладная пригодность конкретного варианта NeRF зависит от требований к скорости, геометрической точности, динамике сцены, объёму памяти и способности модели переносить знания между различными объектами. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
== Оценка качества == | == Оценка качества == | ||
| Строка 332: | Строка 246: | ||
Качество синтеза новых ракурсов обычно оценивают на изображениях, которые не использовались при обучении. Часть камер заранее исключают из обучающего набора, после чего модель должна восстановить изображения для этих положений. Такой подход позволяет оценить не простое запоминание обучающих кадров, а способность представления интерполировать между известными ракурсами. | Качество синтеза новых ракурсов обычно оценивают на изображениях, которые не использовались при обучении. Часть камер заранее исключают из обучающего набора, после чего модель должна восстановить изображения для этих положений. Такой подход позволяет оценить не простое запоминание обучающих кадров, а способность представления интерполировать между известными ракурсами. | ||
| - | Одной из распространённых метрик является [[PSNR]], или пиковое отношение сигнала к шуму. Она вычисляется на основе среднеквадратичной ошибки между истинным и синтезированным изображениями. Более высокое значение PSNR обычно означает меньшее попиксельное различие, однако метрика слабо учитывает особенности человеческого восприятия. | + | Одной из распространённых метрик является [[PSNR]], или пиковое отношение сигнала к шуму. Она вычисляется на основе среднеквадратичной ошибки между истинным и синтезированным изображениями. Более высокое значение PSNR обычно означает меньшее попиксельное различие, однако метрика слабо учитывает особенности человеческого восприятия. Метрика [[SSIM]], или индекс структурного сходства, сравнивает локальную яркость, контраст и структуру изображений. Она лучше PSNR отражает сохранение некоторых визуальных закономерностей, но также не полностью соответствует субъективному качеству. |
| - | + | ||
| - | Метрика [[SSIM]], или индекс структурного сходства, сравнивает локальную яркость, контраст и структуру изображений. Она лучше PSNR отражает сохранение некоторых визуальных закономерностей, но также не полностью соответствует субъективному качеству. | + | |
[[LPIPS]] представляет собой перцептивное расстояние, вычисляемое по признакам предварительно обученной нейронной сети. Перцептивными называют признаки, различия в которых должны приблизительно соответствовать визуально заметным различиям для человека. Для LPIPS, в отличие от PSNR и SSIM, меньшее значение означает большее сходство. | [[LPIPS]] представляет собой перцептивное расстояние, вычисляемое по признакам предварительно обученной нейронной сети. Перцептивными называют признаки, различия в которых должны приблизительно соответствовать визуально заметным различиям для человека. Для LPIPS, в отличие от PSNR и SSIM, меньшее значение означает большее сходство. | ||
| - | Сравнение методов только по качеству RGB-изображений является недостаточным. Следует также учитывать время обучения, скорость рендеринга, потребление памяти, количество и расположение обучающих камер, требования к калибровке и устойчивость к изменениям освещения. Для задач трёхмерной реконструкции необходимо отдельно оценивать глубину и геометрию, например сопоставлять предсказанные поверхности с эталонными сканами. | + | Сравнение методов только по качеству RGB-изображений является недостаточным. Следует также учитывать время обучения, скорость рендеринга, потребление памяти, количество и расположение обучающих камер, требования к калибровке и устойчивость к изменениям освещения. Для задач трёхмерной реконструкции необходимо отдельно оценивать глубину и геометрию, например сопоставлять предсказанные поверхности с эталонными сканами. Высокое значение метрик синтеза ракурсов не гарантирует правильной формы объекта: модель может воспроизводить тестовые изображения при помощи распределённой плотности или сильной зависимости цвета от направления, не соответствующих реальной поверхности. |
| - | + | ||
| - | Высокое значение метрик синтеза ракурсов не гарантирует правильной формы объекта | + | |
== Практические рекомендации == | == Практические рекомендации == | ||
| Строка 346: | Строка 256: | ||
Качество NeRF в значительной степени определяется способом получения исходных изображений. Сцену следует снимать так, чтобы соседние ракурсы заметно перекрывались, а все области, которые должны быть видимы при дальнейшем рендеринге, присутствовали на нескольких кадрах. Резкие перемещения камеры между снимками затрудняют поиск соответствующих точек и оценку её положения. | Качество NeRF в значительной степени определяется способом получения исходных изображений. Сцену следует снимать так, чтобы соседние ракурсы заметно перекрывались, а все области, которые должны быть видимы при дальнейшем рендеринге, присутствовали на нескольких кадрах. Резкие перемещения камеры между снимками затрудняют поиск соответствующих точек и оценку её положения. | ||
| - | Желательно избегать | + | Желательно избегать сильного цифрового шума, автоматического изменения баланса белого и резких колебаний экспозиции. Классическая модель предполагает, что цвет одной и той же точки сцены согласован между изображениями, за исключением зависимости от направления наблюдения. Изменение параметров камеры или освещения нарушает это предположение. |
До обучения необходимо проверять качество калибровки. Ошибочные положения камер часто проявляются в виде размытия, раздвоенных контуров и плавающих фрагментов плотности. Полезно визуализировать восстановленные положения камер и разреженное облако точек, полученное методом структуры из движения. | До обучения необходимо проверять качество калибровки. Ошибочные положения камер часто проявляются в виде размытия, раздвоенных контуров и плавающих фрагментов плотности. Полезно визуализировать восстановленные положения камер и разреженное облако точек, полученное методом структуры из движения. | ||
| Строка 360: | Строка 270: | ||
== См. также == | == См. также == | ||
| - | * [[ | + | * [[Позиционное кодирование]] |
| - | * [[ | + | * [[Компьютерное зрение]] |
| - | * [[ | + | * [[Нейронная сеть]] |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
* [[Многослойный перцептрон]] | * [[Многослойный перцептрон]] | ||
| - | * [[ | + | * [[Обратное распространение ошибки]] |
| + | * [[Сегментация изображений]] | ||
== Литература == | == Литература == | ||
<references/> | <references/> | ||
| + | |||
| + | [[Категория:Анализ и понимание изображений]] | ||
| + | [[Категория:Нейронные сети]] | ||
Текущая версия
| | Статья написана с использованием LLM GPT-5.6 Thinking и проверена участником Egor Goroshko 03:40, 19 июля 2026 (MSD) |
Нейронное поле излучения (англ. neural radiance field, NeRF) — способ непрерывного представления трёхмерной сцены с помощью нейронной сети, которая по координате точки в пространстве и направлению наблюдения предсказывает объёмную плотность и цвет. Модель обучают по набору изображений сцены с известными или оценёнными параметрами камер. После обучения она позволяет выполнять синтез новых ракурсов, то есть строить изображения сцены из положений камеры, отсутствовавших в обучающей выборке.[1]
NeRF относится одновременно к компьютерному зрению, компьютерной графике и нейронному рендерингу. Нейронным рендерингом называют методы формирования изображений, в которых часть модели сцены или процесса визуализации представлена обучаемой нейронной сетью. NeRF также является неявным представлением: геометрия сцены не хранится непосредственно в виде списка поверхностей, а определяется значениями некоторой функции. В отличие от полигональной сетки, состоящей из вершин, рёбер и граней, облака точек или дискретной воксельной решётки, классическое нейронное поле излучения задаёт сцену как непрерывную функцию, параметры которой хранятся преимущественно в весах нейронной сети.
Содержание |
Мотивация
Одна из основных задач трёхмерного компьютерного зрения состоит в восстановлении представления сцены по двумерным изображениям. Такое представление должно описывать расположение поверхностей, свободное пространство, текстуру объектов, видимость отдельных участков и возможную зависимость внешнего вида от направления наблюдения.
Традиционные методы трёхмерной реконструкции могут явно строить карты глубины, облака точек или полигональные поверхности. Карта глубины сопоставляет каждому пикселю расстояние от камеры до наблюдаемой точки сцены. Облако точек представляет объект набором трёхмерных координат, а полигональная модель приближает поверхность геометрическими гранями. Явные представления удобны для измерений, редактирования и физического моделирования, однако воспроизведение тонких структур, частичной прозрачности, бликов и сложной зависимости цвета от ракурса часто требует дополнительных моделей.
NeRF формулирует задачу иначе: вместо непосредственного восстановления поверхности обучается функция, объясняющая исходные изображения через дифференцируемую модель формирования изображения. Дифференцируемой называют модель, производные которой по обучаемым параметрам можно вычислять и использовать для оптимизации. Благодаря этому геометрия, видимость и внешний вид сцены настраиваются совместно по ошибке между реальными и синтезированными изображениями.[1]
Математическая модель
Поле излучения
Классическое нейронное поле излучения представляет сцену функцией
На вход функции подаются точка в трёхмерном пространстве и единичный вектор
, задающий направление наблюдения. На выходе вычисляются объёмная плотность
и цвет
. Обозначение
соответствует набору обучаемых параметров модели.
Объёмная плотность определяет, насколько вероятно завершение луча в окрестности данной точки. Она не является плотностью вещества в обычном физическом смысле: в NeRF это обучаемая величина, используемая для описания непрозрачности и расположения видимого содержимого сцены. Цвет обычно задаётся тремя компонентами RGB, нормированными на интервал от 0 до 1. Его зависимость от направления позволяет моделировать эффекты, меняющиеся при перемещении наблюдателя, например зеркальные блики.
В исходной архитектуре функция реализована как многослойный перцептрон. Многослойный перцептрон, или MLP, — это полносвязная нейронная сеть, состоящая из последовательности слоёв. Каждый слой выполняет линейное преобразование входного вектора, после которого обычно применяется нелинейная функция активации. Плотность в классическом NeRF зависит только от положения точки, тогда как цвет дополнительно зависит от направления наблюдения.[1]
Название «поле излучения» связано с понятием яркости излучения в оптике. Однако предсказываемый NeRF цвет следует понимать как эффективное представление наблюдаемого RGB-сигнала, а не как полную физическую модель распространения света.
Луч камеры
Каждому пикселю изображения соответствует луч
где — оптический центр камеры,
— направление луча, а
— расстояние вдоль луча. Значение
задаёт трёхмерную точку, расположенную на расстоянии
от камеры.
Цвет пикселя вычисляется интегрированием вкладов точек вдоль луча:
где и
задают ближнюю и дальнюю границы рассматриваемого участка луча, а
— накопленная прозрачность. Она выражает долю света, которая достигает точки , не будучи поглощённой на предыдущем участке луча. Множитель
задаёт относительный вклад окрестности точки в окончательный цвет пикселя. Если перед точкой находится область с большой плотностью, прозрачность уменьшается и вклад более удалённых точек становится малым.
Эта модель является вариантом интеграла объёмного рендеринга. Объёмным рендерингом называют построение изображения по значениям цвета и плотности, заданным во всём трёхмерном объёме, а не только на поверхности объекта.[1]
Дискретный рендеринг
Точный интеграл невозможно вычислить конечным числом операций, поэтому на практике его заменяют суммой. Вдоль луча выбирают точки с параметрами и вычисляют
где
а — длина интервала между соседними отсчётами. Величина
задаёт непрозрачность отдельного интервала, значение
показывает, какая часть света дошла до этого интервала, а
определяет вклад его цвета в итоговый пиксель.
При вероятностной интерпретации можно рассматривать как приближённую вероятность того, что луч впервые завершится в
-м интервале. Те же веса позволяют оценить ожидаемую глубину:
Таким образом, карта глубины может быть получена из NeRF без непосредственного обучения на истинных значениях глубины. Однако эта оценка является средним по распределению плотности и не всегда соответствует точному положению геометрической поверхности.
Архитектура классического NeRF
Позиционное кодирование
Обычный многослойный перцептрон при обучении часто сначала воспроизводит плавные, низкочастотные изменения функции. Это явление связано со спектральным смещением: нейронная сеть легче изучает медленно меняющиеся зависимости, чем мелкие детали и резкие переходы. Поэтому непосредственная передача координат в сеть может приводить к размыванию мелких текстур.
В классическом NeRF координаты преобразуют с помощью синусоидального позиционного кодирования:
Здесь — одна координата входа, а
определяет число используемых частот. Преобразование отдельно применяется к каждой компоненте положения и направления. Позиционное кодирование не является самостоятельной моделью сцены: оно переводит координаты в пространство синусоидальных признаков разных частот, благодаря чему многослойному перцептрону легче приближать мелкие детали и быстро меняющиеся зависимости.[1]
Разделение плотности и цвета
Сеть сначала обрабатывает пространственную координату и вычисляет плотность вместе со скрытым представлением точки. Скрытым представлением называют вектор признаков, который формируется внутри нейронной сети и не имеет заранее заданного физического смысла. Затем скрытые признаки объединяются с направлением наблюдения и преобразуются в RGB-цвет.
Такое разделение отражает предположение, что геометрия сцены не зависит от положения наблюдателя, тогда как видимый цвет может зависеть от ракурса. Если позволить плотности свободно зависеть от направления, модель сможет объяснять различия между изображениями изменением геометрии для разных камер, что затруднит получение согласованного трёхмерного представления.
Иерархическая выборка
Равномерное размещение большого количества точек вдоль каждого луча вычислительно неэффективно, поскольку значительная часть отсчётов может находиться в пустом пространстве. В исходной модели используются две нейронные сети, а вычисления выполняются в три этапа:
- Грубая сеть оценивает распределение плотности по первоначальному набору отсчётов;
- На основе полученных весов выбираются дополнительные точки в наиболее значимых интервалах;
- Точная сеть вычисляет окончательный цвет по объединённому набору первоначальных и дополнительных отсчётов.
Этот подход называется выборкой по значимости. При такой выборке больше вычислений направляется в области, которые с высокой вероятностью влияют на цвет пикселя. В контексте NeRF её также называют иерархической выборкой, поскольку дополнительные отсчёты определяются по результатам предыдущего, более грубого этапа.[1]
Обучение
Исходные данные
Для обучения классического NeRF обычно требуются несколько RGB-изображений одной неподвижной сцены, внутренние параметры камер и положение каждой камеры относительно сцены. К внутренним параметрам относятся характеристики, связывающие координаты пикселя с направлением луча, например фокусное расстояние и положение главной точки изображения. Положение и ориентация камеры называют внешними параметрами.
Параметры камер часто оценивают методами структуры из движения. Структура из движения — это восстановление трёхмерного расположения точек и движения камер по набору двумерных изображений. Обычно алгоритм находит соответствующие ключевые точки на разных кадрах и подбирает параметры камер, согласующиеся с этими соответствиями. Ошибки в положениях камер могут приводить к размытым деталям, двойным границам и искажённой геометрии. Для качественного обучения также желательно, чтобы соседние изображения имели достаточно большое перекрытие и сходную экспозицию.
Функция потерь
На каждой итерации обучения из исходных изображений выбирается набор пикселей и соответствующих им лучей. Для каждого луча модель выполняет объёмный рендеринг, после чего предсказанный цвет сравнивается с наблюдаемым:
Здесь — набор лучей в текущей обучающей выборке,
— цвет, синтезированный моделью, а
— цвет соответствующего пикселя исходного изображения. Выражение
обозначает сумму квадратов различий между компонентами RGB. Усреднённая по пикселям величина называется среднеквадратичной ошибкой.
Поскольку операции рендеринга дифференцируемы по параметрам сети, градиент функции потерь вычисляется методом обратного распространения ошибки. Обратное распространение — это алгоритм последовательного вычисления производных функции потерь по параметрам каждого слоя нейронной сети. Параметры обновляются методом стохастической градиентной оптимизации, при которой градиент оценивается не по всем пикселям сразу, а по случайно выбранной части данных. На практике часто применяется алгоритм Adam, адаптивно изменяющий величину обновления для разных параметров.[1]
Модель обычно не получает истинные значения плотности, формы поверхности или глубины. Эти свойства возникают из требования одновременно воспроизводить изображения, снятые с разных точек зрения.
Интерпретация как задачи машинного обучения
С точки зрения машинного обучения NeRF является моделью координатной регрессии. Регрессией называют предсказание числовых значений по входным признакам. В данном случае входами служат пространственные координаты и направления, а выходами — плотность и цвет.
Нейронную функцию, принимающую координату и возвращающую свойства сигнала в этой координате, называют координатной нейронной сетью. Такие сети используются не только для трёхмерных сцен, но и для представления изображений, звука, геометрии и физических полей. Дифференцируемый рендерер объединяет локальные предсказания сети вдоль луча в цвет пикселя, после чего ошибка на изображении создаёт обучающий сигнал для всех точек, участвовавших в формировании этого пикселя.
Отдельный классический NeRF обычно обучается для одной сцены. Его веса являются параметрическим представлением конкретного объекта или пространства, а не универсальной моделью, способной без дополнительного обучения реконструировать произвольные сцены.
История
Математические основы NeRF возникли раньше самого термина. Методы объёмного рендеринга, использующие модели испускания и поглощения света, применялись в компьютерной графике задолго до распространения глубоких нейронных сетей.[1]
В 2010-х годах активно развивались методы синтеза новых ракурсов по набору изображений, включая световые поля, многоплоскостные изображения и обучаемые модели нейронного рендеринга. Световое поле описывает интенсивность света для множества лучей, проходящих через сцену. Многоплоскостное изображение представляет сцену набором полупрозрачных плоскостей, расположенных на разных глубинах. Например, метод Local Light Field Fusion использовал набор локальных световых полей для синтеза видов по изображениям, снятым ручной камерой.[1]
В 2020 году Бен Милденхолл и соавторы представили NeRF как непрерывное нейронное представление сцены, объединяющее координатный многослойный перцептрон, позиционное кодирование, объёмный рендеринг и иерархическую выборку.[1] Работа стала основой большого семейства методов нейронного представления трёхмерных сцен.
Основные расширения
Ускорение обучения и рендеринга
Классический NeRF требует многократного выполнения многослойного перцептрона для каждого пикселя. Для одного луча сеть вызывается во множестве пространственных точек, поэтому обучение и формирование изображения могут быть медленными.
Метод Instant Neural Graphics Primitives, часто называемый Instant-NGP, сочетает небольшую нейронную сеть с обучаемым многомасштабным хеш-кодированием координат. Хеш-кодирование размещает обучаемые признаки в нескольких таблицах разного пространственного разрешения. Для заданной координаты модель извлекает признаки из этих таблиц и передаёт их небольшой нейронной сети. Такой подход переносит значительную часть сложности представления из многослойного перцептрона в обучаемую структуру признаков и существенно ускоряет оптимизацию.[1]
Другие методы используют разреженные воксельные структуры, тензорные разложения или наборы локальных признаков. Тензорное разложение — это приближение многомерного массива комбинацией более простых компонентов, позволяющее уменьшить объём памяти и число вычислений.
Многомасштабное представление
Обычный NeRF моделирует каждый пиксель бесконечно тонким лучом, хотя в действительности пикселю соответствует конечная область пространства. Если расстояние до сцены или разрешение изображения изменяется, игнорирование этой области может приводить к алиасингу. Алиасингом называют искажения, возникающие при недостаточной частоте дискретизации сигнала; в изображениях он может проявляться ступенчатыми границами, мерцанием и ложными узорами.
В mip-NeRF пиксель рассматривается как конический пучок, а интервалы вдоль него — как усечённые конусы. Вместо кодирования одной точки модель кодирует область пространства при помощи интегрированного позиционного кодирования. Это позволяет учитывать размер проекции пикселя в сцене и улучшает качество при изменении масштаба.[1]
Неограниченные сцены
Исходная формулировка особенно удобна для объектов, расположенных внутри заранее заданного ограниченного объёма. Для улиц, больших помещений и сцен с далёким фоном возникают значительные различия пространственных масштабов.
Mip-NeRF 360 вводит нелинейное сжатие удалённого пространства, изменённую процедуру выборки и регуляризацию весов вдоль луча. Регуляризацией называют дополнительное ограничение функции потерь, которое поощряет желательные свойства решения и уменьшает вероятность вырожденного поведения модели. Эти изменения позволяют моделировать сцены, содержание которых не ограничено компактной областью.[1]
Неизвестные параметры камер
Некоторые варианты NeRF совместно оптимизируют представление сцены и параметры камер. Например, NeRF-- позволяет для определённых типов сцен обучать модель без заранее известных внутренних и внешних параметров камер.[1] Такая совместная оптимизация может быть чувствительна к начальным значениям, поскольку неверные параметры камер и неверная геометрия способны частично компенсировать друг друга, сохраняя сравнительно малую ошибку на изображениях.
Динамические и изменяющиеся сцены
Классическая модель предполагает, что сцена неподвижна, а освещение во время съёмки приблизительно постоянно. Для динамических сцен в функцию могут вводиться время, поле деформаций или отдельные представления формы и движения. Поле деформаций — это функция, описывающая перемещение каждой точки пространства относительно некоторого эталонного состояния сцены, которое часто называют каноническим пространством.
Другие расширения учитывают изменение освещения, экспозиции, временно появляющиеся объекты и различия между камерами. Такие модели требуют дополнительных ограничений, поскольку геометрия, движение, освещение и свойства камеры могут объяснять одни и те же изменения пикселей.
Преимущества
Одно из главных преимуществ NeRF состоит в высоком качестве синтеза новых ракурсов при наличии достаточного количества согласованных изображений. Непрерывное представление позволяет описывать пространство без обязательного использования плотной воксельной решётки и воспроизводить мелкие визуальные детали, которые трудно выразить грубой дискретной геометрией.
Геометрия, видимость и зависящий от направления внешний вид изучаются в рамках единой оптимизируемой модели. Благодаря дифференцируемому объёмному рендерингу NeRF может обучаться непосредственно по RGB-изображениям без обязательных эталонных карт глубины или трёхмерных сканов. Обучающий сигнал от ошибки цвета распространяется через модель рендеринга к параметрам плотности и цвета.
Обученное поле позволяет получать не только изображения, но и оценки глубины, накопленной прозрачности и распределения плотности вдоль лучей. Эти величины полезны для анализа сцены, хотя не всегда имеют точную геометрическую или физическую интерпретацию.
Ограничения
Классический NeRF обычно обучается отдельно для каждой сцены. Его веса представляют конкретный объект или пространство, поэтому исходная модель не может без дополнительной оптимизации непосредственно применяться к произвольным новым сценам.
Существенным ограничением являются вычислительные затраты. Для формирования одного пикселя требуется оценить нейронную сеть во множестве точек вдоль луча, а полное обучение включает обработку большого количества лучей. Позднейшие варианты NeRF значительно ускоряют этот процесс, однако часто используют дополнительную память или более сложные структуры данных.
Качество результата сильно зависит от точности калибровки и оценки положений камер. Ошибки в параметрах камер могут приводить к размытию, раздвоенным контурам и неверному расположению плотности. Недостаточное перекрытие ракурсов создаёт неопределённость в плохо наблюдаемых областях, а экстраполяция далеко за пределы положений обучающих камер обычно остаётся ненадёжной.
Классическая формулировка предполагает неподвижную сцену и приблизительно постоянные условия съёмки. Движущиеся объекты, изменение освещения, автоматическая экспозиция и баланс белого нарушают эти предположения. Для таких данных требуются специальные расширения, отдельно моделирующие время, освещение или параметры камеры.
Поле плотности NeRF не следует автоматически считать точной поверхностью. Отражения, прозрачность и другие сложные эффекты могут быть воспроизведены визуально за счёт распределённой плотности или зависимости цвета от направления. Поэтому высокое качество синтезированных изображений не гарантирует правильной геометрии, а извлечение чистой полигональной поверхности из поля может быть неоднозначным.
Применения
Нейронные поля излучения применяются для синтеза новых ракурсов, реконструкции объектов и помещений, создания виртуальных экскурсий, телеприсутствия и подготовки трёхмерных материалов для виртуальной и дополненной реальности. Методы этого семейства также используются для визуализации культурного наследия, моделирования окружения в робототехнике, картографирования, обработки визуальных эффектов и редактирования трёхмерного содержимого.
Прикладная пригодность конкретного варианта NeRF зависит от требований к скорости, геометрической точности, динамике сцены, объёму памяти и способности модели переносить знания между различными объектами.
Оценка качества
Качество синтеза новых ракурсов обычно оценивают на изображениях, которые не использовались при обучении. Часть камер заранее исключают из обучающего набора, после чего модель должна восстановить изображения для этих положений. Такой подход позволяет оценить не простое запоминание обучающих кадров, а способность представления интерполировать между известными ракурсами.
Одной из распространённых метрик является PSNR, или пиковое отношение сигнала к шуму. Она вычисляется на основе среднеквадратичной ошибки между истинным и синтезированным изображениями. Более высокое значение PSNR обычно означает меньшее попиксельное различие, однако метрика слабо учитывает особенности человеческого восприятия. Метрика SSIM, или индекс структурного сходства, сравнивает локальную яркость, контраст и структуру изображений. Она лучше PSNR отражает сохранение некоторых визуальных закономерностей, но также не полностью соответствует субъективному качеству.
LPIPS представляет собой перцептивное расстояние, вычисляемое по признакам предварительно обученной нейронной сети. Перцептивными называют признаки, различия в которых должны приблизительно соответствовать визуально заметным различиям для человека. Для LPIPS, в отличие от PSNR и SSIM, меньшее значение означает большее сходство.
Сравнение методов только по качеству RGB-изображений является недостаточным. Следует также учитывать время обучения, скорость рендеринга, потребление памяти, количество и расположение обучающих камер, требования к калибровке и устойчивость к изменениям освещения. Для задач трёхмерной реконструкции необходимо отдельно оценивать глубину и геометрию, например сопоставлять предсказанные поверхности с эталонными сканами. Высокое значение метрик синтеза ракурсов не гарантирует правильной формы объекта: модель может воспроизводить тестовые изображения при помощи распределённой плотности или сильной зависимости цвета от направления, не соответствующих реальной поверхности.
Практические рекомендации
Качество NeRF в значительной степени определяется способом получения исходных изображений. Сцену следует снимать так, чтобы соседние ракурсы заметно перекрывались, а все области, которые должны быть видимы при дальнейшем рендеринге, присутствовали на нескольких кадрах. Резкие перемещения камеры между снимками затрудняют поиск соответствующих точек и оценку её положения.
Желательно избегать сильного цифрового шума, автоматического изменения баланса белого и резких колебаний экспозиции. Классическая модель предполагает, что цвет одной и той же точки сцены согласован между изображениями, за исключением зависимости от направления наблюдения. Изменение параметров камеры или освещения нарушает это предположение.
До обучения необходимо проверять качество калибровки. Ошибочные положения камер часто проявляются в виде размытия, раздвоенных контуров и плавающих фрагментов плотности. Полезно визуализировать восстановленные положения камер и разреженное облако точек, полученное методом структуры из движения.
Масштаб сцены и систему координат обычно нормализуют, чтобы интересующая область занимала предсказуемый диапазон координат. Это повышает численную устойчивость и упрощает выбор ближней и дальней границ лучей. Для неограниченных сцен следует применять модели, специально учитывающие удалённый фон, а не механически увеличивать область классического NeRF.
Обучающие и тестовые ракурсы необходимо разделять заранее. Близкие кадры одной непрерывной видеопоследовательности могут быть почти одинаковыми, поэтому случайное распределение соседних кадров между обучением и тестированием способно завысить оценку качества.
При диагностике следует анализировать не только синтезированные RGB-изображения, но и карты глубины, накопленной прозрачности и весов вдоль лучей. Визуально правдоподобный цвет может скрывать распределённую или ошибочно расположенную плотность. Особенно осторожно следует интерпретировать результаты на отражающих, прозрачных и слабо текстурированных поверхностях.
Для первого самостоятельного изучения полезно реализовать упрощённую версию NeRF. Минимальная реализация должна включать построение лучей камеры, выборку точек, позиционное кодирование, многослойный перцептрон, дискретный объёмный рендеринг и функцию потерь по цвету пикселей. Такая реализация позволяет проследить связь между геометрией камеры, весами объёмного рендеринга и градиентным обучением модели.
См. также
- Позиционное кодирование
- Компьютерное зрение
- Нейронная сеть
- Многослойный перцептрон
- Обратное распространение ошибки
- Сегментация изображений

