AI个人学习
和实操指南
讯飞绘镜

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

综合介绍

GenXD 是一个开源项目,由新加坡国立大学(NUS)和微软团队开发。它专注于生成任意 3D 和 4D 场景,解决真实世界中 3D 和 4D 生成因数据不足和模型设计复杂带来的难题。项目通过分析相机和对象运动,结合大规模真实数据,构建了一个灵活的生成框架。GenXD 提供了首个开源 4D 数据集 CamVid-30K,包含 3 万多段视频的相机姿态和运动信息。用户可以用它生成符合相机轨迹的视频或一致的 3D 视图。项目已于 2025 年 1 月被 ICLR 2025 接收,并在 GitHub 上获得广泛关注,适合研究者和开发者使用。

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


 

功能列表

  • 生成任意 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 GPU,运行:
      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
  • 第一步:生成相机轨迹
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
  • 第二步:生成视图
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 内存需 16GB 以上,生成 4D 任务耗时较长。
  • 检查最新代码更新,官方于 2025 年 3 月 26 日发布预训练模型。
  • 如遇问题,可联系 <yuyangzhao98@gmail.com>。

 

应用场景

  1. 科研实验
  • 研究者用 GenXD 测试 3D 和 4D 生成算法,验证新模型效果。
  1. 虚拟内容创作
  • 创作者生成动态场景,用于动画或虚拟现实项目。
  1. 教育培训
  • 学生用 CamVid-30K 数据集学习计算机视觉和生成技术。

 

QA

  1. GenXD 是免费的吗?
  • 是的,它是 Apache-2.0 许可的开源项目。
  1. 需要联网使用吗?
  • 不需要,安装后可在本地运行。
  1. 生成结果真实吗?
  • 不完全真实,模型无法达到完美真实感,仅限研究使用。
未经允许不得转载:首席AI分享圈 » GenXD:生成任意3D和4D场景视频的开源框架
zh_CN简体中文