Будь то артист VFX, научный сотрудник или графический любитель, Blendernerf - самый простой и быстрый способ создания синтетических наборов данных Nerf и гауссовского расщепления в Blender. Получите рендеры и параметры камеры одним щелчком, имея полное управление пользователем над 3D -сценой и камерой!
Вы готовы к Nerf? Начните с одного щелчка в Blender, проверив этот урок!
Поля нервного излучения (NERF) стремятся представлять трехмерную сцену в качестве зависимого от представления объемного объекта только из двухмерных изображений, наряду с их соответствующей информацией о камере. 3D -сцена обратно разработана из учебных изображений с помощью простой нейронной сети.
Гауссовое распад -это метод последующего наблюдения за точечным способом, основанным на точечном режиме. Это представление очень оптимизировано для рендеринга GPU и использует более традиционные методы графики для достижения высокой частоты кадров.
Я рекомендую посмотреть это видео на YouTube от команды коридоров для захватывающего расследования нескольких вариантов использования и будущих потенциальных приложений NERFS.
Рендеринг - это дорогое вычисление. Фотореалистические сцены могут занять секунды до часа, чтобы рендеринг в зависимости от сложности сцены, оборудования и доступных программных ресурсов.
Nerfs и гауссовые сплаты могут ускорить этот процесс, но требуют информации о камере, обычно извлекаемой с помощью громоздкого кода. Этот плагин позволяет любому получить рендеры и камеры с одним щелчком в блендере.
Несмотря на то, что версии выпуска Blendernerf доступны для загрузки, они в основном предназначены для отслеживания основных изменений кода и для целей цитирования. Я рекомендую напрямую загружать текущий репозиторий, поскольку незначительные изменения или исправления ошибок могут быть не включены в выпуск сразу.
Blendernerf состоит из 3 методов, обсуждаемых в подразделах ниже. Каждый метод способен создавать данные обучающих данных и тестирование данных для NERF в форме обучающих изображений и A transforms_train.json , соответственно, файл transforms_test.json с соответствующей информацией о камере. Данные архивируются в один zip -файл, содержащий обучающие и тестирующие папки. Данные обучения могут затем использоваться моделью NERF для изучения 3D -представления сцены. После обучения модель может быть оценена (или протестирована) по данным тестирования (только информация о камере) для получения новых рендеров.
Подмножество кадров (SOF) отображает каждые N рамки из анимации камеры и использует отображаемое подмножество кадров в качестве данных обучения NERF. Зарегистрированные данные тестирования охватывают все кадры одной и той же анимации камеры, включая учебные рамы. При обучении модель NERF может отображать полную анимацию камеры и, следовательно, хорошо подходит для интерполяции или применения больших анимаций статических сцен.
Поезда и тестовые камеры (TTC) регистрируют данные обучения и тестирования из двух отдельных пользовательских камер. Затем модель NERF может быть оснащена данными, извлеченными из учебной камеры, и оцениваться на данные тестирования.
Камера на сфере (cos) отображает учебные рамы путем равномерно отбирая случайные виды камеры, направленные в центр со сферы, контролируемой пользователем. Данные тестирования извлекаются из выбранной камеры.
Панель «Дополнительные свойства» доступна под 3D View > N panel > BlenderNeRF ( панель N доступна в 3D-порту просмотра при нажатии N ). Все 3 метода ( SOF , TTC и COS ) имеют общую вкладку под названием BlenderNeRF shared UI с приведенными ниже контролируемыми свойствами.
Train (активируется по умолчанию): зарегистрировать ли учебные данные (рендеринги + информация о камере)Test (активирован по умолчанию): следует ли регистрировать данные тестирования (только информация о камере)AABB (по умолчанию установлен 4 ): параметр шкалы AABB, как описано в мгновенном NGP (подробнее ниже)Render Frames (активированы по умолчанию): перед кадром кадрыSave Log File (деактивирован по умолчанию): Сохранить файл журнала, содержащий информацию воспроизводимости в запуске BlendernerfFile Format ( NGP по умолчанию): для экспорта файлов камеры в мгновенном NGP или Defaut Nerf Format FormatGaussian Points (деактивируются по умолчанию): для экспорта файла points3d.ply .Gaussian Test Camera Poses (по умолчанию манекен ): для экспорта фиктивного файла тестовой камеры или полный набор позиционных камеров (только с Gaussian Points )Save Path (по умолчанию пустоте): путь к выводному каталогу, в котором будет создан набор данных Если свойство Gaussian Points активно, Blendernerf создаст дополнительные points3d.ply . Цвета вершины будут храниться, если они будут доступны, и в противном случае устанавливаются на черный.
Гауссовый репозиторий сплестинга наносит и поддерживает наборы данных NERF , но требует как данных поезда, так и тестирования. Dummy опция для Gaussian Test Camera Poses свойство создает пустой файл позы испытательной камеры, в случае, если не требуется тестовых изображений. Full вариант экспортирует тестовую камеру по умолчанию, но потребует отдельного отображения test папки, содержащей все тестовые рендеры.
AABB ограничена как целочисленная мощность 2, он определяет длину боковой объема ограничивающей коробки, в котором NERF будет отслеживать лучи. Собственность была введена с мгновенной NGP -версией NVIDIA NERF.
Свойство File Format может быть NGP или NERF . Конвенция о формате файла NGP совпадает с NERF ONE, с несколькими дополнительными параметрами, к которым можно получить мгновенный NGP.
Обратите внимание, что каждый метод имеет свое отличительное Name свойство (по умолчанию, установленное на dataset ), соответствующее имени набора данных, и создало имя файла Zip для соответствующего метода. Обратите внимание, что неподдерживаемые символы, такие как пространства, # или / , автоматически заменяются подчеркиванием.
Ниже описаны свойства, специфичные для каждого метода (свойство Name осталось в стороне, так как уже обсуждается выше).
Frame Step (по умолчанию установлен 3 ): n (как определено в разделе «Настройки») = Частота, на которой зарегистрированы учебные рамыCamera (всегда установлена на активную камеру): камера, используемая для регистрации обучения и тестирования данныхPLAY SOF : воспроизводите оператор метода рамков для экспорта данных NERFFrames (по умолчанию устанавливают 100 ): количество учебных рамков, используемых в учебной камереTrain Cam (по умолчанию пустоте): камера, используемая для регистрации учебных данныхTest Cam (по умолчанию пусто): камера, используемая для регистрации данных тестированияPLAY TTC : воспроизводите оператор метода поезда и тестовые камеры для экспорта данных NERF Количество Frames учебных рам будет захвачено с использованием объекта Train Cam , начиная с начала сцены.
Camera (всегда установлена на активную камеру): камера, используемая для регистрации данных тестированияLocation (по умолчанию устанавливается на 0 м вектор): центральное положение обучающей сферы, из которой отображаются виды камерыRotation (по умолчанию устанавливается на вектор 0 ° ): вращение тренировочной сферы, из которой отображаются виды камерыScale (по умолчанию устанавливается на 1 вектор): вектор шкалы обучающей сферы на осях XYZRadius (по умолчанию установлен до 4 м ): радиус скаляр обучающей сферыLens (по умолчанию установлен до 50 мм ): фокусное расстояние учебной камерыSeed (по умолчанию установлен в 0 ): семена для инициализации процедуры отбора проб случайного представления камерыFrames (по умолчанию устанавливают 100 ): количество обучающих рамSphere (деактивирована по умолчанию): показывать ли обучающая сфера, из которой будут отображаться случайные взглядыCamera (деактивирован по умолчанию): показывать ли камеру, используемая для регистрации учебных данныхUpper Views (деактивируются по умолчанию): будь то виды образца только из верхнего обучающего полушария (вариант вращения)Outwards (деактивируется по умолчанию): указывать ли камеру наружу сферы тренировокPLAY COS : воспроизводите камеру на операторе метода сферы для экспорта данных NERF Обратите внимание, что активация свойств Sphere и Camera создает пустой объект BlenderNeRF Sphere и объект камеры BlenderNeRF Camera соответственно. Пожалуйста, не создавайте никаких объектов с этими именами вручную, так как это может сломать функциональные возможности.
Количество Frames учебных рам будет захвачено с использованием объекта BlenderNeRF Camera , начиная с начала сцены. Наконец, имейте в виду, что учебная камера заблокирована на месте и не может быть перемещена вручную.
NVIDIA предоставляет несколько полезных советов о том, как обучить модель NERF с использованием мгновенного NGP. Не стесняйтесь посещать их хранилище для дальнейшей помощи. Ниже приведены некоторые быстрые советы по оптимальному развлечению, полученным из личного опыта.
AABB максимально напряженным, насколько это возможно, к шкале сцены, более высокие значения замедляют обучениеAABB , сохраняя при этом силу 2Vertical датчик камеры, иногда приводит к искаженным объемам Nerf, избегайте его, если это возможно Если у вас есть доступ к графическому процессору NVIDIA, вы можете установить мгновенный NGP на свое собственное устройство для оптимального пользовательского опыта, следуя инструкциям, предоставленным в их репозитории. В противном случае вы можете бесплатно запустить NERF в ноутбуке Colab на Google GPU с учетной записью Google.
Откройте это ноутбук Colab (также можно загрузить здесь) и следуйте инструкциям.
Это дополнение разрабатывается как забавный побочный проект в течение нескольких месяцев и версий блендера, в основном на macOS. Если вы столкнетесь с какими -либо проблемами с функциональными возможностями плагина, не стесняйтесь открывать проблему GitHub с четким описанием проблемы, с которой Blendernerf -версия, с которой возникли проблемы, и какой -либо дополнительной информации, если это уместно.
В то время как это расширение предназначено для создания синтетических наборов данных, доступны существующие инструменты для импорта данных отслеживания движений из камер реального мира. Одним из таких примеров является тревожным по Shopify , приложению для iOS с открытым исходным кодом и смежным плагином Blender плагина записи движения с сеансом Arkit на iPhone. Имейте в виду, однако, что отслеживание данных может подвергаться дрейфам и неточностям, что может повлиять на качество реконструкции NERF.
Если вы найдете этот репозиторий полезным в своем исследовании, пожалуйста, рассмотрите возможность ссылаться на Blendernerf , используя выделенную кнопку GitHub выше. Если вы использовали это расширение для своих художественных проектов, не стесняйтесь поделиться некоторыми из своих работ, используя хэштег #blendernerf в социальных сетях! :)