参数尺度
旋转矩阵受正交约束,平移向量的量级自由。直接拼接数值会给数据驱动学习带来尺度差异。
CameraCtrl 将一条相机轨迹展开为逐帧、逐像素的 Plücker 射线图,经带时间注意力的轻量编码器提取多尺度特征,再注入冻结视频 U-Net 的时间注意力层。训练只更新相机模块与融合线性层。
AnimateDiff MotionLoRA 只能选择八类预设运动;MotionCtrl 接收数值化相机参数,却缺少每个图像位置对应的三维射线几何。CameraCtrl 的核心假设是:相机姿态若表示为像素射线场,视频模型能够更容易把控制信号解释成全局视点变化,并复用已有时间一致性能力。
旋转矩阵受正交约束,平移向量的量级自由。直接拼接数值会给数据驱动学习带来尺度差异。
单个姿态向量没有显式说明图像中每个像素向三维世界发出哪条射线,细粒度空间控制较弱。
相机编码器若同时看到训练视频 latent,容易记住 RealEstate10K 的室内外观。作者因此只输入几何射线图。
| 符号 | 定义 | 作用 |
|---|---|---|
| \(K\in\mathbb{R}^{3\times 3}\) | 相机内参,包含焦距与主点 | 把像素坐标还原到相机坐标系方向 |
| \(R,t\) | 相机到世界坐标变换中的旋转与相机中心 | 把相机射线旋转、平移到统一世界坐标系 |
| \(\mathbf{o}_i\) | 第 \(i\) 帧相机中心 | 每帧所有像素共享 |
| \(\mathbf{d}_{i,u,v}\) | 世界坐标系中的单位射线方向 | 随像素位置与相机旋转变化 |
| \(\mathbf{p}_{i,u,v}\) | \(\left(\mathbf{o}_i\times\mathbf{d}_{i,u,v},\mathbf{d}_{i,u,v}\right)\in\mathbb{R}^{6}\) | 同时编码射线位置与朝向 |
| \(\mathcal{P}\) | \(\mathbb{R}^{n\times6\times h\times w}\) | 整个视频轨迹的逐像素条件张量 |
第一式将像素中心反投影成单位方向;第二式构造 Plücker 坐标,其中 moment \(\mathbf{o}\times\mathbf{d}\) 指明射线相对世界原点的位置。实现读取 world-to-camera 矩阵后求逆得到 camera-to-world;方向只乘旋转,原点取平移。论文正文 Eq. 3 把 \(t\) 写入方向表达式,代码把平移放在射线原点,代码形式符合常用射线几何。
官方数据代码先把第一个相机设为统一参考,再生成相对 c2w 序列;训练配置同时启用 relative_pose 与 zero_t_first_frame。这样模型学习轨迹变化,弱化世界坐标原点的任意选择。


\(z_0^{1:N}\) 是 \(N\) 帧视频 latent,\(z_t^{1:N}\) 是第 \(t\) 个噪声时刻的 latent,\(c_t\) 为文本或图像条件,\(\Phi_c\) 为 CameraCtrl 编码器。训练冻结基础模型参数,只让 \(\Phi_c\) 与融合层吸收梯度。
\(\mathbf{h}\) 为 U-Net hidden state,\(\mathbf{c}\) 为同尺度 pose feature,\(s\) 为 pose embedding scale。官方代码将 \(W_{\mathrm{merge}}\) 的权重和偏置初始化为零,使训练开始时 \(\mathbf{h}'=\mathbf{h}\),基础生成器初始行为保持不变。
FVD 越低越好;CLIPSIM、FC、ODD、用户偏好越高越好;TransErr 与 RotErr 越低越好。MotionCtrlVC 使用 VideoCrafter,MotionCtrlSVD 使用 SVD;两组基础模型差异使跨方法比较同时受到生成器影响。
| 方法 | FVD ↓ | CLIPSIM ↑ | FC ↑ | ODD ↑ | TransErr ↓ | RotErr ↓ | 偏好率 ↑ |
|---|---|---|---|---|---|---|---|
| AnimateDiff | 1022.4 | 0.298 | 0.930 | 56.4 | 不支持 | 不支持 | 19.4% |
| MotionCtrlVC | 1123.2 | 0.286 | 0.922 | 42.3 | 14.02 | 1.58 | 37.0% |
| CameraCtrlAD | 1088.9 | 0.301 | 0.941 | 49.8 | 12.98 | 1.29 | 43.6% |
| SVD | 371.2 | 0.312 | 0.957 | 47.5 | 不支持 | 不支持 | 未测 |
| MotionCtrlSVD | 386.2 | 0.303 | 0.953 | 41.8 | 10.21 | 1.41 | 26.9% |
| CameraCtrlSVD | 360.3 | 0.298 | 0.960 | 46.5 | 9.02 | 1.18 | 73.1% |
50 名参与者观看短视频并选择轨迹更符合条件的结果。主表八类基础运动的 T2V 偏好率为 19.4% / 37.0% / 43.6%;复杂 RealEstate10K 轨迹的 MotionCtrl 与 CameraCtrl 二选一偏好为 27.6% / 72.4%;I2V 主表为 26.9% / 73.1%。论文未报告参与者背景分布、每人题量、随机化程序、置信区间与显著性检验。
| 表示 | FVD ↓ | TransErr ↓ | RotErr ↓ |
|---|---|---|---|
| Raw values | 230.1 | 13.88 | 1.51 |
| Euler angles | 221.2 | 13.71 | 1.43 |
| Direction + Origin | 232.3 | 13.21 | 1.57 |
| Plücker embedding | 222.1 | 12.98 | 1.29 |
Plücker 的 FVD 只排第二,但两项相机误差最小。消融支持“控制精度更好”,未支持“所有指标都更好”。
| 结构 | FVD ↓ | TransErr ↓ | RotErr ↓ |
|---|---|---|---|
| ControlNet | 295.8 | 13.51 | 1.42 |
| ControlNet + Temporal | 283.4 | 13.13 | 1.33 |
| T2I-Adaptor | 223.4 | 13.27 | 1.38 |
| T2I-Adaptor + Temporal | 222.1 | 12.98 | 1.29 |
ControlNet 风格分支同时输入 noised latent 与相机图,FVD 明显变差;几何专用 T2I-Adaptor 加 temporal attention 获得三个指标最佳值。
| 注意力位置 | FVD ↓ | TransErr ↓ | RotErr ↓ |
|---|---|---|---|
| Spatial self | 241.2 | 14.72 | 1.42 |
| Spatial cross | 237.5 | 14.31 | 1.51 |
| Spatial self + cross | 240.1 | 14.52 | 1.60 |
| Temporal | 222.1 | 12.98 | 1.29 |
| 数据集 | FVD ↓ | TransErr ↓ | RotErr ↓ |
|---|---|---|---|
| Objaverse | 1435.4 | 无法评估 | 无法评估 |
| MVImageNet | 1143.5 | 13.87 | 1.52 |
| RealEstate10K + ACID | 1102.4 | 13.48 | 1.41 |
| RealEstate10K | 1088.9 | 12.99 | 1.39 |
此处相机误差使用 MannequinChallenge 轨迹,因而与主表 RealEstate10K test 协议不同。Objaverse 的白底物体外观与 WebVid 差距过大,生成结果使 COLMAP 难以恢复足够姿态。
| 注入范围 | FVD ↓ | TransErr ↓ | RotErr ↓ |
|---|---|---|---|
| U-Net Encoder | 210.9 | 13.91 | 1.51 |
| U-Net Encoder + Decoder | 222.1 | 12.98 | 1.29 |
双侧注入提高相机控制,FVD 增加 11.2。该选择明确偏向轨迹准确度。
| 事项 | 论文 | 官方仓库 main 分支 | 复现含义 |
|---|---|---|---|
| Plücker 方向 | Eq. 3 文字形式含 \(RK^{-1}[u,v,1]^{\mathsf T}+t\) | 方向经 c2w 旋转,camera origin 单独用于 \(\mathbf{o}\times\mathbf{d}\) | 应按代码区分点、方向与原点 |
| 相对姿态 | 正文说明有限 | 首帧变换为 \(I_4\),配置启用 relative pose 与 zero first translation | 自定义轨迹需采用同一参考系 |
| 水平翻转 | 图像与姿态同步,概率 50% | 通过反转像素横坐标生成翻转后的射线,再同步翻转图像 | 只翻图像会破坏几何监督 |
| 融合初始化 | 可学习线性层 | qkv_merge 权重与偏置全零初始化 | 训练初始阶段保持基础模型输出 |
| 优化步数 | 50K steps | 发布的 T2V YAML 写 25K steps | 论文设置与配置文件不一致,复现者需要明确选择 |
| 优化器 | 正文写 AdamW;附录一处写 Adam | 训练脚本调用 torch.optim.AdamW | 代码支持 AdamW 结论 |
| SVD 训练 | 完整报告 32×A100、50K、40 小时 | main 分支说明 SVD 实现位于单独 svd 分支 | 需要切换分支核查对应配置 |
核查日期:2026-09-28。论文事实、作者主张、本文解释与研究延伸已分别标记。