综合介绍
ReCamMaster 是一个开源视频处理工具,核心功能是从单一视频生成新的相机视角。用户可以指定相机轨迹,重新渲染视频,获得不同角度的动态画面。它由浙江大学、快手科技等团队开发,基于文本到视频扩散模型。ReCamMaster 支持视频稳定、超分辨率增强和画面外扩,适用于视频创作、自动驾驶数据生成和虚拟现实开发。项目提供在线试用,用户上传视频后可快速获得新视角结果。开源代码基于 Wan2.1 模型,但因公司政策限制,完整模型暂未开放,需通过官方链接体验最佳效果。团队还发布了 MultiCamVideo 数据集,包含 13.6 万个多视角视频,助力相关研究。
不久后,可以在 可灵 国际版体验。目前仅可以在官方测试地址提交视频后,等待官方反馈生成结果。
功能列表
- 相机轨迹控制:用户选择或自定义相机路径,生成新视角视频。
- 视频稳定:将抖动视频转为平滑画面,适合手持拍摄场景。
- 超分辨率增强:通过变焦轨迹提升视频清晰度,生成细腻画面。
- 画面外扩:扩展视频边界,生成超出原画面的场景内容。
- 数据增强:为自动驾驶或机器人视觉生成多视角训练数据。
- 批量处理:支持同时处理多个视频,自动输出新视角结果。
- 数据集支持:提供 MultiCamVideo 数据集,包含同步多视角视频。
使用帮助
ReCamMaster 的核心在于通过相机轨迹控制,从单一视频生成新的视角。以下是详细的使用指南,涵盖在线试用、本地运行和数据集使用,帮助用户快速上手。
在线试用流程
ReCamMaster 提供便捷的在线试用,用户无需安装即可体验。操作步骤如下:
- 访问试用链接:
- 打开官方 Google Forms 链接:https://docs.google.com/forms/d/e/1FAIpQLSezOzGPbm8JMXQDq6EINiDf6iXn7rV4ozj6KcbQCSAzE8Vsnw/viewform?usp=dialog。
- 输入有效的邮箱地址,用于接收渲染结果。
- 上传视频:
- 准备 MP4 格式视频,建议时长至少 81 帧(约 3 秒),分辨率不低于 480p。
- 确保视频内容清晰,场景动态适中,避免过暗、过曝或纯静态画面。
- 在表单中上传视频,注意文件大小限制(通常为 100MB,具体以表单说明为准)。
- 选择相机轨迹:
- ReCamMaster 提供 10 种预设轨迹,覆盖常见视角变化:
- 向右平移(Pan Right):水平移动,展示场景宽度。
- 向左平移(Pan Left):反向水平移动。
- 向上倾斜(Tilt Up):垂直向上,突出高处细节。
- 向下倾斜(Tilt Down):垂直向下,展示地面内容。
- 放大(Zoom In):靠近主体,增强局部清晰度。
- 缩小(Zoom Out):拉远镜头,扩展视野。
- 向上平移(Translate Up):带旋转的向上移动。
- 向下平移(Translate Down):带旋转的向下移动。
- 左弧线(Arc Left):绕主体左侧旋转。
- 右弧线(Arc Right):绕主体右侧旋转。
- 在表单中选择一种轨迹,或备注自定义需求(需联系团队确认)。
- ReCamMaster 提供 10 种预设轨迹,覆盖常见视角变化:
- 提交并接收结果:
- 提交表单后,系统自动处理视频。处理时间通常为几小时到一天,视服务器负载而定。
- 结果以 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
文件夹。
- Wan2.1 模型:
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 操作简单,尤其在线试用适合新手。数据集为研究人员提供了丰富资源,未来功能扩展值得期待。
应用场景
- 视频创作
ReCamMaster 为短视频、广告或电影预告片添加动态视角。例如,将固定镜头转为环绕效果,提升视觉冲击力。 - 自动驾驶
生成多视角驾驶场景视频,训练自动驾驶模型。它能模拟不同角度的路况,降低数据采集成本。 - 虚拟现实
为 VR/AR 开发提供多视角内容,适配沉浸式场景。如为 VR 游戏生成动态环境视频。 - 科研与教育
研究人员可利用 MultiCamVideo 数据集验证算法。教育者可用新视角视频展示实验过程,增强教学效果。 - 3D/4D 重建
数据集支持同步视频研究,助力重建动态场景的三维模型。
QA
- ReCamMaster 支持哪些视频格式?
目前支持 MP4,建议至少 81 帧,分辨率 480p 以上,动态场景效果更佳。 - 在线试用免费吗?
当前免费,但处理速度视服务器负载而定。未来可能推出付费加速服务。 - 本地运行需要什么配置?
建议 NVIDIA RTX 3060 或更高,至少 12GB 显存,Python 3.10 环境。 - 数据集如何下载?
从 https://huggingface.co/datasets/KwaiVGI/MultiCamVideo-Dataset 下载,解压后约占 1TB 存储。 - 可以自定义轨迹吗?
在线试用支持 10 种预设轨迹,自定义需联系团队。本地运行可通过代码修改轨迹参数。