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

ReCamMaster:从单一视频生成多视角视频的渲染工具

综合介绍

ReCamMaster 是一个开源视频处理工具,核心功能是从单一视频生成新的相机视角。用户可以指定相机轨迹,重新渲染视频,获得不同角度的动态画面。它由浙江大学、快手科技等团队开发,基于文本到视频扩散模型。ReCamMaster 支持视频稳定、超分辨率增强和画面外扩,适用于视频创作、自动驾驶数据生成和虚拟现实开发。项目提供在线试用,用户上传视频后可快速获得新视角结果。开源代码基于 Wan2.1 模型,但因公司政策限制,完整模型暂未开放,需通过官方链接体验最佳效果。团队还发布了 MultiCamVideo 数据集,包含 13.6 万个多视角视频,助力相关研究。

不久后,可以在 可灵 国际版体验。目前仅可以在官方测试地址提交视频后,等待官方反馈生成结果。

ReCamMaster:从单一视频生成多视角视频的渲染工具-1

 

功能列表

  • 相机轨迹控制:用户选择或自定义相机路径,生成新视角视频。
  • 视频稳定:将抖动视频转为平滑画面,适合手持拍摄场景。
  • 超分辨率增强:通过变焦轨迹提升视频清晰度,生成细腻画面。
  • 画面外扩:扩展视频边界,生成超出原画面的场景内容。
  • 数据增强:为自动驾驶或机器人视觉生成多视角训练数据。
  • 批量处理:支持同时处理多个视频,自动输出新视角结果。
  • 数据集支持:提供 MultiCamVideo 数据集,包含同步多视角视频。

 

使用帮助

ReCamMaster 的核心在于通过相机轨迹控制,从单一视频生成新的视角。以下是详细的使用指南,涵盖在线试用、本地运行和数据集使用,帮助用户快速上手。

在线试用流程

ReCamMaster 提供便捷的在线试用,用户无需安装即可体验。操作步骤如下:

  1. 访问试用链接
    • 打开官方 Google Forms 链接:https://docs.google.com/forms/d/e/1FAIpQLSezOzGPbm8JMXQDq6EINiDf6iXn7rV4ozj6KcbQCSAzE8Vsnw/viewform?usp=dialog。
    • 输入有效的邮箱地址,用于接收渲染结果。
  2. 上传视频
    • 准备 MP4 格式视频,建议时长至少 81 帧(约 3 秒),分辨率不低于 480p。
    • 确保视频内容清晰,场景动态适中,避免过暗、过曝或纯静态画面。
    • 在表单中上传视频,注意文件大小限制(通常为 100MB,具体以表单说明为准)。
  3. 选择相机轨迹
    • ReCamMaster 提供 10 种预设轨迹,覆盖常见视角变化:
      • 向右平移(Pan Right):水平移动,展示场景宽度。
      • 向左平移(Pan Left):反向水平移动。
      • 向上倾斜(Tilt Up):垂直向上,突出高处细节。
      • 向下倾斜(Tilt Down):垂直向下,展示地面内容。
      • 放大(Zoom In):靠近主体,增强局部清晰度。
      • 缩小(Zoom Out):拉远镜头,扩展视野。
      • 向上平移(Translate Up):带旋转的向上移动。
      • 向下平移(Translate Down):带旋转的向下移动。
      • 左弧线(Arc Left):绕主体左侧旋转。
      • 右弧线(Arc Right):绕主体右侧旋转。
    • 在表单中选择一种轨迹,或备注自定义需求(需联系团队确认)。
  4. 提交并接收结果
    • 提交表单后,系统自动处理视频。处理时间通常为几小时到一天,视服务器负载而定。
    • 结果以 MP4 格式发送到用户邮箱,邮件标题为“Inference Results of ReCamMaster”,发件人可能是 jianhongbai@zju.edu.cn 或 cpurgicn@gmail.com
    • 检查收件箱和垃圾邮件文件夹。若一天未收到,可联系团队。

注意

  • 每位用户可免费试用,但频繁提交可能延迟处理。
  • 结果质量取决于视频内容,动态场景效果更佳。
  • 未来,团队计划推出在线试用网站,操作将更简单。

本地运行

开源代码基于 Wan2.1 模型,适合有技术背景的用户。以下是详细安装和运行步骤:

1. 环境准备

  • 硬件要求:建议使用配备 GPU 的设备(如 NVIDIA RTX 3060 或更高),CPU 运行可能较慢。
  • 软件要求
    • Python 3.10
    • Rust 和 Cargo(用于编译 DiffSynth-Studio)
    • Git 和 pip

2. 安装步骤

  • 克隆仓库
    git clone https://github.com/KwaiVGI/ReCamMaster.git
    cd ReCamMaster
    
  • 安装 Rust
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    source "$HOME/.cargo/env"
    
  • 创建虚拟环境
    conda create -n recammaster python=3.10
    conda activate recammaster
    
  • 安装依赖
    pip install -e .
    pip install lightning pandas websockets
    
  • 下载模型权重
    • Wan2.1 模型:
      python download_wan2.1.py
      
    • ReCamMaster 预训练权重:
      从 https://huggingface.co/KwaiVGI/ReCamMaster-Wan2.1/blob/main/step20000.ckpt 下载 step20000.ckpt,放入 models/ReCamMaster/checkpoints 文件夹。

3. 测试示例视频

  • 运行以下命令,使用预设轨迹(如向右平移)测试:
    python inference_recammaster.py --cam_type 1
    
  • 输出结果保存在项目目录的 output 文件夹,格式为 MP4。

4. 测试自定义视频

  • 准备数据
    • 创建 custom_test_data 文件夹,放入 MP4 视频(至少 81 帧)。
    • 生成 metadata.csv,记录视频路径和描述性字幕。例如:
      video_path,caption
      test_video.mp4,"A person walking in the park"
      
    • 字幕可手动编写,或使用工具如 LLaVA 生成。
  • 运行推理
    python inference_recammaster.py --cam_type 1 --dataset_path custom_test_data
    

注意

  • 本地运行效果可能不如在线试用,因开源模型与论文模型不同。
  • 确保 GPU 内存充足(至少 12GB)。
  • 如遇报错,检查依赖版本或参考 GitHub Issues。

5. 训练模型

如果需要自定义模型,需准备 MultiCamVideo 数据集并训练:

  • 下载数据集
    从 https://huggingface.co/datasets/KwaiVGI/MultiCamVideo-Dataset 下载,解压:

    cat MultiCamVideo-Dataset.part* > MultiCamVideo-Dataset.tar.gz
    tar -xzvf MultiCamVideo-Dataset.tar.gz
    
  • 提取特征
    CUDA_VISIBLE_DEVICES="0,1,2,3,4,5,6,7" python train_recammaster.py --task data_process --dataset_path path/to/MultiCamVideo/Dataset --output_path ./models --text_encoder_path "models/Wan-AI/Wan2.1-T2V-1.3B/models_t5_umt5-xxl-enc-bf16.pth" --vae_path "models/Wan-AI/Wan2.1-T2V-1.3B/Wan2.1_VAE.pth" --tiled --num_frames 81 --height 480 --width 832 --dataloader_num_workers 2
    
  • 生成字幕
    使用 LLaVA 等工具为视频生成描述,保存到 metadata.csv
  • 开始训练
    CUDA_VISIBLE_DEVICES="0,1,2,3,4,5,6,7" python train_recammaster.py --task train --dataset_path recam_train_data --output_path ./models/train --dit_path "models/Wan-AI/Wan2.1-T2V-1.3B/diffusion_pytorch_model.safetensors" --steps_per_epoch 8000 --max_epochs 100 --learning_rate 1e-4 --accumulate_grad_batches 1 --use_gradient_checkpointing --dataloader_num_workers 4
    
  • 测试训练模型
    python inference_recammaster.py --cam_type 1 --ckpt_path path/to/your/checkpoint
    

提示

  • 训练需多张高性能 GPU,单卡训练可能需调整批量大小。
  • 可优化超参数(如学习率)以提升效果。

MultiCamVideo 数据集使用

MultiCamVideo 数据集包含 13.6 万个视频,覆盖 1.36 万个动态场景,每个场景由 10 个同步相机拍摄。以下是使用指南:

1. 数据集结构

MultiCamVideo-Dataset
├── train
│   ├── f18_aperture10
│   │   ├── scene1
│   │   │   ├── videos
│   │   │   │   ├── cam01.mp4
│   │   │   │   ├── ...
│   │   │   └── cameras
│   │   │       └── camera_extrinsics.json
│   │   ├── ...
│   ├── f24_aperture5
│   ├── f35_aperture2.4
│   ├── f50_aperture2.4
└── val
└── 10basic_trajectories
├── videos
│   ├── cam01.mp4
│   ├── ...
└── cameras
└── camera_extrinsics.json
  • 视频格式:1280x1280 分辨率,81 帧,15 FPS。
  • 相机参数:焦距(18mm、24mm、35mm、50mm),光圈(10、5、2.4)。
  • 轨迹文件camera_extrinsics.json 记录相机位置和旋转。

2. 数据集用途

  • 训练视频生成模型,验证相机控制效果。
  • 研究同步视频生产或 3D/4D 重建。
  • 测试相机轨迹生成算法。

3. 操作示例

  • 解压数据集
    tar -xzvf MultiCamVideo-Dataset.tar.gz
    
  • 可视化相机轨迹
    python vis_cam.py
    

    输出轨迹图,展示相机移动路径。

注意

  • 数据集较大(建议预留 1TB 存储)。
  • 可裁剪视频比例(如 16:9)以适配模型。

功能操作详解

1. 新视角生成

  • 功能:从单一视频生成新视角,如将正面视频转为侧面或环绕视角。
  • 在线操作
    • 上传视频,选择轨迹(如右弧线)。
    • 系统根据轨迹重新渲染,生成 MP4 文件。
  • 本地操作
    • 运行 inference_recammaster.py,指定 --cam_type(如 9 表示左弧线)。
    • 检查 output 文件夹中的结果。
  • 提示:动态场景(如人物行走)效果最佳,静态背景可能生成不自然。

2. 视频稳定

  • 功能:消除手持视频抖动,生成平滑画面。
  • 操作
    • 在线:上传视频,备注“稳定”需求。
    • 本地:暂无直接稳定命令,需通过平移轨迹模拟。
  • 效果:如跑步拍摄的抖动视频,处理后接近云台效果。

3. 超分辨率与外扩

  • 超分辨率
    • 选择放大轨迹,提升画面细节。
    • 适合低分辨率视频,生成清晰局部内容。
  • 外扩
    • 选择缩小轨迹,扩展画面边界。
    • 适合狭窄场景,生成额外背景。
  • 操作
    • 在线:选择“Zoom In”或“Zoom Out”轨迹。
    • 本地:设置 --cam_type 5(放大)或 --cam_type 6(缩小)。

4. 数据增强

  • 功能:生成多视角视频,用于自动驾驶或机器人训练。
  • 操作
    • 上传视频,批量选择多种轨迹。
    • 或用数据集直接训练模型,生成多样化数据。
  • 示例:为自动驾驶模型生成环绕视角的路况视频。

常见问题解决

  • 结果延迟:检查垃圾邮件,或联系 jianhongbai@zju.edu.cn
  • 效果不佳:确保视频帧数足够(至少 81 帧),场景动态丰富。
  • 本地报错:验证 Python 版本(3.10)、Rust 安装,或更新依赖。
  • 模型权重缺失:从 Hugging Face 下载正确文件,检查路径。

ReCamMaster 操作简单,尤其在线试用适合新手。数据集为研究人员提供了丰富资源,未来功能扩展值得期待。


 

应用场景

  1. 视频创作
    ReCamMaster 为短视频、广告或电影预告片添加动态视角。例如,将固定镜头转为环绕效果,提升视觉冲击力。
  2. 自动驾驶
    生成多视角驾驶场景视频,训练自动驾驶模型。它能模拟不同角度的路况,降低数据采集成本。
  3. 虚拟现实
    为 VR/AR 开发提供多视角内容,适配沉浸式场景。如为 VR 游戏生成动态环境视频。
  4. 科研与教育
    研究人员可利用 MultiCamVideo 数据集验证算法。教育者可用新视角视频展示实验过程,增强教学效果。
  5. 3D/4D 重建
    数据集支持同步视频研究,助力重建动态场景的三维模型。

 

QA

  1. ReCamMaster 支持哪些视频格式?
    目前支持 MP4,建议至少 81 帧,分辨率 480p 以上,动态场景效果更佳。
  2. 在线试用免费吗?
    当前免费,但处理速度视服务器负载而定。未来可能推出付费加速服务。
  3. 本地运行需要什么配置?
    建议 NVIDIA RTX 3060 或更高,至少 12GB 显存,Python 3.10 环境。
  4. 数据集如何下载?
    从 https://huggingface.co/datasets/KwaiVGI/MultiCamVideo-Dataset 下载,解压后约占 1TB 存储。
  5. 可以自定义轨迹吗?
    在线试用支持 10 种预设轨迹,自定义需联系团队。本地运行可通过代码修改轨迹参数。
未经允许不得转载:首席AI分享圈 » ReCamMaster:从单一视频生成多视角视频的渲染工具
zh_CN简体中文