GenXD: фреймворк с открытым исходным кодом для генерации видео произвольных 3D- и 4D-сцен
Общее введение
GenXD - это проект с открытым исходным кодом, разработанный командой Национального университета Сингапура (NUS) и Microsoft. Он нацелен на генерацию произвольных 3D- и 4D-сцен, решая проблемы генерации реальных 3D- и 4D-сцен из-за недостатка данных и сложного дизайна моделей. В рамках проекта создается гибкая система генерации, анализирующая движение камеры и объектов и объединяющая их с масштабными реальными данными. GenXD предоставляет первый открытый набор 4D-данных CamVid-30K, который содержит информацию о положении и движении камеры из более чем 30 000 видео. Пользователи могут использовать его для создания видео или последовательных 3D-изображений, соответствующих траектории движения камеры. Проект был принят в ICLR 2025 в январе 2025 года и широко представлен на GitHub для исследователей и разработчиков.

Список функций
- Генерируйте произвольные 3D-сцены и поддерживайте последовательный вывод 3D-видов с нескольких точек обзора.
- Генерируйте 4D-сцены движения, чтобы создавать видео, изменяющиеся со временем.
- Декомпозиция движения камеры и объектов для обеспечения естественного потока генерируемого контента.
- Набор данных CamVid-30K доступен для динамических 3D- и 4D-исследований миссий.
- Поддержка нескольких условных входов (например, изображений или небольшого количества просмотров) для гибкой настройки генерируемых результатов.
- Преобразование 3D-видов в редактируемые цифровые активы.
- Встроенный многоракурсный временной модуль для оптимизации слияния 3D и 4D данных.
Использование помощи
GenXD - это исследовательский фреймворк с открытым исходным кодом, для его использования пользователям необходимо создать локальную среду. Ниже представлено подробное руководство по установке и эксплуатации, которое поможет пользователям быстро начать работу.
Процесс установки
GenXD требует поддержки среды программирования и подходит для пользователей с некоторой технической базой. Установка выполняется следующим образом:
- Подготовьте базовую среду
- Убедитесь, что на вашем компьютере установлена версия Python 3.10 или более поздняя.
- Установите Git для загрузки кода. Запустите его в терминале:
git clone https://github.com/HeliosZhao/GenXD.git
- Перейдите в каталог проектов:
cd GenXD
- Установка основных зависимостей
- Установите PyTorch (рекомендуется версия 2.1.2 с поддержкой CUDA). Запустите его:
pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118
- Установите другие зависимости (например, diffusers 0.30.3). Запустите:
pip install -r requirements.txt
- в случае, если
requirements.txt
Не предусмотрено, вы можете обратиться к официальным инструкциям по установке NumPy, OpenCV и других библиотек.
- Установите PyTorch (рекомендуется версия 2.1.2 с поддержкой CUDA). Запустите его:
- Загрузите предварительно обученную модель
- Загрузите модель с сайта Hugging Face:
pip install -U "huggingface_hub[cli]" huggingface-cli download Yuyang-z/genxd --local-dir ./genxd-model
- Поместите файлы модели в каталог проекта под именем
genxd-model
Папка.
- Загрузите модель с сайта Hugging Face:
- Скачать набор данных
- Набор данных CamVid-30K доступен для скачивания на сайте Hugging Face:
- Подмножество VIPSeg и подмножество OpenVid доступны на сайте https://huggingface.co/datasets/Yuyang-z/CamVid-30K.
- Подмножество WebVid-10M недоступно из-за ограничений, вам нужно получить его самостоятельно.
- Скачайте и распакуйте в
data/camvid-30k
Папка.
- Набор данных CamVid-30K доступен для скачивания на сайте Hugging Face:
- Проверка окружения
- Убедитесь, что у вас работает графический процессор NVIDIA:
python -c "import torch; print(torch.cuda.is_available())"
экспорт
True
Указывает на нормальную среду.
- Убедитесь, что у вас работает графический процессор NVIDIA:
Использование основных функций
GenXD поддерживает различные задачи генерации, и ниже описано, как это сделать.
1. Настраивайте изображения для создания 3D-сцен
- Приготовьтесь к поступлению: Поместите изображение (в формате PNG или JPG) в
example-images
Папка. - Настройка режима камеры: Поддержка
forward
(Вперед) иorbit
(Окружение) два режима. - Выполнить команду::
DATA_ROOT="example-images"
OUTPUT_DIR="outputs/example-images"
accelerate launch --main_process_port 1223 inference.py
diffusion.pretrain_unet="./genxd-model"
diffusion.output_dir="$OUTPUT_DIR"
+evaluator.data_name="static_cam_single"
+evaluator.data_root="$DATA_ROOT"
+evaluator.camera_info.mode="forward"
+evaluator.camera_info.elevation=0.
+evaluator.camera_info.azimuth_range=[-30,30]
+evaluator.focal=1.0938
+evaluator.camera_info.radius=2.0
- Просмотр результатов: Созданный многоракурсный 3D-вид сохраняется в
outputs/example-images
Ниже приведен пример инструмента, который можно открыть, например, в Blender.
2. Генерация 3D-сцен по образцу
- Подготовьте данные: Загрузите набор данных ReconFusion (https://huggingface.co/datasets/Yuyang-z/reconfusion-torch) и извлеките его в папку
data/reconfusion-torch/re10k
. - Шаг 1: Создание треков камеры::
python tools/pose_traj_generate.py -d data/reconfusion-torch/re10k -o outputs/pose_dataset --save_data_pose -sx 0.2 0.4 -0.2 -0.4 -sz 0.2 0.4 -0.2 -0.4 -n 18
- Шаг 2: Создание представлений::
accelerate launch --main_process_port 1224 inference.py
diffusion.pretrain_unet="./genxd-model"
diffusion.output_dir="outputs/re10k-group"
+evaluator.data_name="reconfgroup"
+evaluator.data_root="data/reconfusion-torch/re10k"
+evaluator.pose_dir="outputs/pose_dataset/re10k"
+evaluator.num_context_views=3
+evaluator.n_views=3
+evaluator.save_target_only=True
+evaluator.pad_to_square=True
- Просмотр результатов: Созданный 3D-вид отображается в
outputs/re10k-group
.
3. Генерация 4D динамических сцен
- Подготовьте данные: Используйте видео из набора данных CamVid-30K и поместите его в
data/camvid-30k
. - Выполнить команду: Вам нужно настроить параметры в соответствии с конкретной задачей, примеры команд см. в обновлении на GitHub.
- Просмотр результатов: Созданное видео сохраняется в указанном каталоге вывода.
Функциональное управление
Декомпозиция движения камеры и объекта
- GenXD использует многоракурсный временной модуль для разделения движения камеры и объекта.
- пример работы::
python motion_decompose.py --input data/camvid-30k/sample_video --output outputs/motion_data
- использоватьСгенерированные данные о движении можно использовать для настройки 4D-сцены.
Использование набора данных CamVid-30K
- структура данных: В распакованном виде он содержит изображения и файлы COLMAP (например.
cameras.bin
). - Данные о нагрузке: Поставьте
data/camvid-30k
Запустите сценарий тестирования:
python test_dataset.py --dataset data/camvid-30k
предостережение
- Память GPU должна быть 16 ГБ или больше, а генерация 4D-задач занимает много времени.
- Проверьте последнее обновление кода для официального релиза предварительно обученной модели от 26 марта 2025 года.
- По вопросам обращайтесь по адресу .
сценарий применения
- исследовательский эксперимент
- Исследователи использовали GenXD для тестирования алгоритмов 3D- и 4D-генерации и проверки новых моделей.
- Виртуальное создание контента
- Создатели генерируют динамические сцены для использования в анимации или проектах виртуальной реальности.
- Образование и обучение
- Студенты изучают компьютерное зрение и генеративные методы, используя набор данных CamVid-30K.
QA
- Является ли GenXD бесплатным?
- Да, это проект с открытым исходным кодом под лицензией Apache-2.0.
- Нужно ли мне подключение к Интернету, чтобы использовать его?
- Не требуется, установлен и готов к работе локально.
- Реальны ли полученные результаты?
- Не являясь полностью реалистичной, модель не позволяет достичь идеального ощущения реалистичности и предназначена только для исследовательского использования.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...