Узнайте, как Neural Radiance Fields (NeRF) синтезирует 3D-сцены из 2D-изображений. Научитесь улучшать обучение NeRF с помощью Ultralytics для точной сегментации.
Нейронные поля излучения (NeRF) представляют собой революционный прорыв в области компьютерного зрения (CV) и генеративного искусственного интеллекта, предназначенный для синтеза фотореалистичных 3D-сцен из небольшого набора 2D-изображений. В отличие от традиционных подходов к 3D-моделированию, которые опираются на явные геометрические структуры, такие как полигоны, сетки или облака точек, NeRF использует нейронную сеть (NN) для обучения «неявного» представления сцены. Путем сопоставления пространственных координат и направлений обзора со значениями цвета и плотности, NeRF могут отображать новые точки обзора с исключительной точностью, точно передавая сложные визуальные эффекты, такие как отражения, прозрачность и переменное освещение, которые часто трудно воспроизвести с помощью стандартной фотограмметрии.
По сути, NeRF моделирует сцену как непрерывную объемную функцию. Эта функция обычно параметризуется полностью подключенной сетью глубокого обучения (DL). Процесс начинается с прохождения лучей, когда лучи проецируются из виртуальной камеры через каждый пиксель желаемой плоскости изображения в трехмерное пространство.
Для точек, отобранных вдоль каждого луча, сеть принимает 5D-входные данные, включающие 3D-пространственное положение ($x, y, z$) и 2D-направление обзора ($\theta, \phi$), и выдает цвет излучения и плотность объема (непрозрачность) в этой точке. Используя методы, основанные на объемном рендеринге, эти отобранные значения накапливаются для расчета окончательного цвета пикселя. Сеть обучается путем минимизации разницы между рендеринговыми пикселями и фактическими пикселями из исходных обучающих данных, эффективно оптимизируя веса модели для запоминания визуальных свойств сцены.
Технология NeRF быстро перешла от академических исследований к практическим инструментам, оказав влияние на различные отрасли промышленности, преодолев разрыв между статической фотографией и интерактивными 3D-средами.
Чтобы понять специфическую полезность NeRF, полезно отличать эту технологию от других 3D- и визуальных технологий.
Для обучения высококачественного NeRF часто требуются чистые данные. Фоновый шум или движущиеся объекты могут вызывать артефакты «ореолов» в окончательном рендере. Чтобы смягчить эту проблему, разработчики часто используют модели сегментации экземпляров для автоматического маскирования интересующего объекта перед обучением NeRF.
Ultralytics и Python позволяют легко интегрировать сегментацию в этот рабочий процесс предварительной обработки. Следующий пример демонстрирует, как использовать YOLO26 для генерации масок для набора изображений, подготавливая их к 3D-реконструкции.
from ultralytics import YOLO
# Load the YOLO26 segmentation model
model = YOLO("yolo26n-seg.pt")
# Run inference to detect and segment objects
# Saving results creates masks useful for NeRF preprocessing
results = model("scene_image.jpg", save=True)
# Access the binary masks for the detected objects
masks = results[0].masks.data
print(f"Generated {len(masks)} masks for NeRF training.")
Благодаря сочетанию точности сегментации и генеративной мощности NeRF инженеры могут создавать надежные конвейеры для генерации синтетических данных, что позволяет создавать неограниченное количество обучающих образцов для других последующих задач.