Diffusion as Shader数据集制作指南:使用Blender创建合成训练数据
2026/6/19 23:56:07 网站建设 项目流程

Diffusion as Shader数据集制作指南:使用Blender创建合成训练数据

【免费下载链接】DiffusionAsShader[SIGGRAPH 2025] Diffusion as Shader: 3D-aware Video Diffusion for Versatile Video Generation Control项目地址: https://gitcode.com/gh_mirrors/di/DiffusionAsShader

Diffusion as Shader是一个基于3D感知视频扩散技术的开源项目,能够实现多样化的视频生成控制。本文将详细介绍如何使用Blender创建合成训练数据,帮助你快速上手数据集制作流程。

为什么需要合成训练数据?

合成训练数据在计算机视觉和深度学习领域扮演着重要角色。通过Blender等工具创建的合成数据具有以下优势:

  • 成本低:无需昂贵的摄影设备和场地
  • 可控性高:可以精确控制场景、光照、物体姿态等参数
  • 数据丰富:可快速生成大量多样化的样本
  • 标注精准:自动生成精确的3D坐标、深度信息等标注

Diffusion as Shader项目特别需要高质量的合成视频数据来训练其3D感知视频扩散模型,以实现如相机控制、物体操纵和运动转移等高级功能。

图:Diffusion as Shader项目支持的多种视频生成控制效果,包括3D追踪、运动转移、相机控制和物体操纵等

准备工作

安装必要工具

  1. 安装Blender:推荐使用特定版本blender-4.3.2-linux-x64,可从Blender官网下载
  2. 克隆项目仓库
    git clone https://gitcode.com/gh_mirrors/di/DiffusionAsShader
  3. 安装依赖
    cd DiffusionAsShader pip install -r requirements.txt

收集资源素材

由于版权限制,项目无法提供训练数据合成所需的场景、模型和背景素材,你需要自行收集:

  • 角色模型和动画:可从mixamo获取免费的3D角色和动画
  • 环境背景:可从polyhaven下载高质量的天空盒和HDRI环境贴图
  • 其他3D资产:可从各种3D资源网站获取场景道具等

配置Blender工作环境

创建工作空间

按照以下结构创建合成工作空间:

synthesis_workspace ├── avatar.blend # 从项目scripts目录复制 ├── render_with_random_bg.py # 从项目scripts目录复制 ├── blender-4.3.2-linux-x64 # Blender程序目录 └── raw # 存放原始素材 ├── skybox # 天空盒图片 ├── character1 # 角色1相关文件 │ ├── character1.fbx # 角色模型 │ └── motion # 角色动画 └── character2 # 其他角色...

复制项目文件

将项目中的Blender相关文件复制到工作空间:

# 假设当前在项目根目录 mkdir -p synthesis_workspace cp scripts/avatar.blend synthesis_workspace/ cp scripts/render_with_random_bg.py synthesis_workspace/

使用Blender脚本生成合成数据

Blender脚本解析

项目提供的scripts/blender.py脚本实现了以下核心功能:

  1. 计算逆深度范围:通过get_scene_inverse_depth_range函数计算场景中所有顶点的逆深度范围
  2. 设置顶点颜色:通过set_vertex_colors_for_object函数为物体设置顶点颜色,编码屏幕空间坐标和深度信息
  3. 批量处理物体:通过process_all_objects函数处理场景中的所有网格物体

该脚本会为每个网格物体创建特殊的材质,将顶点颜色信息编码为发射颜色,以便后续渲染和深度信息提取。

组织素材文件

raw目录下组织你的素材:

  • 将天空盒图片放入raw/skybox目录
  • 为每个角色创建单独的目录(如raw/character1
    • 将角色模型FBX文件直接放在角色目录下
    • 将动画FBX文件放在角色目录下的motion子目录中

执行渲染脚本

使用以下命令执行渲染脚本,生成合成数据集:

# 在synthesis_workspace目录下执行 ./blender-4.3.2-linux-x64/blender -b avatar.blend -P render_with_random_bg.py -- --base_path .

脚本会自动:

  • 加载随机选择的角色模型和动画
  • 应用随机的天空盒背景
  • 渲染带有深度信息的视频序列
  • 生成符合项目要求的数据集结构

数据集格式要求

视频数据规范

生成的视频数据需要满足以下条件:

  • 分辨率:仅支持720 * 480
  • 帧数
    • 使用项目提供的预训练模型时,必须为49帧
    • 训练自定义模型时,帧数应为4 * k + 1(如16, 32, 49, 81等)

数据集文件结构

最终的数据集应组织为以下结构:

dataset ├── prompt.txt # 训练提示文本 ├── videos.txt # 视频文件路径列表 ├── trackings.txt # 跟踪文件路径列表 ├── images.txt # 图像文件路径列表 ├── images # 从视频帧提取的图像 ├── tracking # 跟踪视频 └── videos # 原始视频

生成跟踪文件

使用项目提供的脚本生成跟踪视频:

# 多GPU加速 accelerate launch accelerate_tracking.py --data_root <videos_root> --output_dir <output_dir> # 单GPU运行 python batch_tracking.py --data_root <videos_root> --output_dir <output_dir>

总结

通过本文介绍的方法,你可以使用Blender和项目提供的脚本创建高质量的合成训练数据,用于训练Diffusion as Shader模型。合成数据的优势在于成本低、可控性高,并且可以生成丰富多样的样本。

关键步骤包括:准备工作空间、收集资源素材、配置Blender环境、执行渲染脚本以及整理数据集格式。按照这些步骤操作,你将能够创建符合项目要求的训练数据,为后续的模型训练打下坚实基础。

希望本指南能帮助你顺利制作Diffusion as Shader项目的训练数据集,如有任何问题,可参考项目中的assets/dataset.md文件获取更多详细信息。

【免费下载链接】DiffusionAsShader[SIGGRAPH 2025] Diffusion as Shader: 3D-aware Video Diffusion for Versatile Video Generation Control项目地址: https://gitcode.com/gh_mirrors/di/DiffusionAsShader

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询