GenXD: фреймворк с открытым исходным кодом для генерации видео произвольных 3D- и 4D-сцен

Общее введение

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

GenXD:生成任意3D和4D场景视频的开源框架

 

Список функций

  • Генерируйте произвольные 3D-сцены и поддерживайте последовательный вывод 3D-видов с нескольких точек обзора.
  • Генерируйте 4D-сцены движения, чтобы создавать видео, изменяющиеся со временем.
  • Декомпозиция движения камеры и объектов для обеспечения естественного потока генерируемого контента.
  • Набор данных CamVid-30K доступен для динамических 3D- и 4D-исследований миссий.
  • Поддержка нескольких условных входов (например, изображений или небольшого количества просмотров) для гибкой настройки генерируемых результатов.
  • Преобразование 3D-видов в редактируемые цифровые активы.
  • Встроенный многоракурсный временной модуль для оптимизации слияния 3D и 4D данных.

 

Использование помощи

GenXD - это исследовательский фреймворк с открытым исходным кодом, для его использования пользователям необходимо создать локальную среду. Ниже представлено подробное руководство по установке и эксплуатации, которое поможет пользователям быстро начать работу.

Процесс установки

GenXD требует поддержки среды программирования и подходит для пользователей с некоторой технической базой. Установка выполняется следующим образом:

  1. Подготовьте базовую среду
    • Убедитесь, что на вашем компьютере установлена версия Python 3.10 или более поздняя.
    • Установите Git для загрузки кода. Запустите его в терминале:
      git clone https://github.com/HeliosZhao/GenXD.git
      
    • Перейдите в каталог проектов:
      cd GenXD
      
  2. Установка основных зависимостей
    • Установите 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 и других библиотек.
  3. Загрузите предварительно обученную модель
    • Загрузите модель с сайта Hugging Face:
      pip install -U "huggingface_hub[cli]"
      huggingface-cli download Yuyang-z/genxd --local-dir ./genxd-model
      
    • Поместите файлы модели в каталог проекта под именем genxd-model Папка.
  4. Скачать набор данных
    • Набор данных CamVid-30K доступен для скачивания на сайте Hugging Face:
      • Подмножество VIPSeg и подмножество OpenVid доступны на сайте https://huggingface.co/datasets/Yuyang-z/CamVid-30K.
      • Подмножество WebVid-10M недоступно из-за ограничений, вам нужно получить его самостоятельно.
    • Скачайте и распакуйте в data/camvid-30k Папка.
  5. Проверка окружения
    • Убедитесь, что у вас работает графический процессор NVIDIA:
      python -c "import torch; print(torch.cuda.is_available())"
      

      экспорт True Указывает на нормальную среду.

Использование основных функций

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 года.
  • По вопросам обращайтесь по адресу .

 

сценарий применения

  1. исследовательский эксперимент
  • Исследователи использовали GenXD для тестирования алгоритмов 3D- и 4D-генерации и проверки новых моделей.
  1. Виртуальное создание контента
  • Создатели генерируют динамические сцены для использования в анимации или проектах виртуальной реальности.
  1. Образование и обучение
  • Студенты изучают компьютерное зрение и генеративные методы, используя набор данных CamVid-30K.

 

QA

  1. Является ли GenXD бесплатным?
  • Да, это проект с открытым исходным кодом под лицензией Apache-2.0.
  1. Нужно ли мне подключение к Интернету, чтобы использовать его?
  • Не требуется, установлен и готов к работе локально.
  1. Реальны ли полученные результаты?
  • Не являясь полностью реалистичной, модель не позволяет достичь идеального ощущения реалистичности и предназначена только для исследовательского использования.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...