跳转至

LAMP: Language-Assisted Motion Planning for Controllable Video Generation

会议: CVPR 2026
arXiv: 2512.03619
代码: 项目主页
领域: 视频生成
关键词: 视频生成, 运动控制, LLM规划, 领域特定语言, 电影摄影

一句话总结

提出LAMP框架,将运动控制建模为语言到程序合成问题:设计电影摄影启发的运动DSL,训练LLM将自然语言描述转化为结构化运动程序,再确定性映射为3D对象和相机轨迹来条件化视频生成,首次实现从自然语言同时生成对象和相机运动。

研究背景与动机

视频生成已取得显著进展,但运动控制——指定对象动态和相机轨迹——仍受限于有限的用户交互方式。现有方法大多依赖文本、从视频提取的标注、或简单的2D绘制界面,难以表达复杂的电影化运动。

核心痛点:对象运动和相机轨迹本质上是耦合的(相机通常相对运动对象定义),同时指定两者需要高级空间规划和心理想象能力。例如,编排追逐场景需要同时协调跑者路径和追踪相机。

现有方法的局限: - 直接从文本回归3D坐标困难:语言到运动的映射是多模态的、结构受限的 - 先前方法仅关注布局生成或相机轨迹合成,不统一对象和相机运动 - 缺乏可迭代编辑的界面

LAMP的核心idea:利用LLM的程序合成能力,将运动控制转化为语言条件化的程序合成问题——LLM生成符号化运动程序而非连续坐标,然后确定性地映射为3D轨迹。

方法详解

整体框架

LAMP 想解决的是:用户用一句自然语言("一个人在街上奔跑,相机从侧面追踪")就能同时指定对象怎么动、相机怎么拍,而不必手画 2D 轨迹或在 3D 里逐帧摆位。它的关键转念是不让模型从文本直接回归连续 3D 坐标——那是个多模态、约束极强的难映射——而是先让 LLM 写出一段符号化的运动程序,再用确定性规则把程序翻译成真实轨迹。

整条流水线是:自然语言进来后,微调过的 LLM 运动规划器先输出一段 DSL 运动程序;这段程序被确定性地展开成 3D 的对象轨迹和相机轨迹;轨迹再渲染成"控制视频"(把 3D 包围盒和全局方块投影到画面上);最后这段控制视频连同文本和首帧一起喂给预训练的视频扩散模型(VACE),生成最终成片。中间的 DSL 程序是人能读懂、能改的,所以用户可以在烧钱合成视频之前先把运动调满意。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    DSL["电影摄影启发的运动 DSL<br/>4 原语 + 修饰符,铺 4 个时间段"]
    DSL -->|采样组合 + 展开 + 文本改写| CORP["程序化训练语料构建<br/>400K 文本-运动配对"]
    IN["自然语言描述"] --> PLAN
    CORP -->|微调 Qwen2.5-VL| PLAN["LLM 运动规划与层次化分解<br/>先定对象 → 据对象定相机"]
    PLAN -->|输出 DSL 运动程序,人可读可改| EXP["确定性展开<br/>3D 对象轨迹 + 相机 6-DoF 轨迹"]
    EXP --> CTRL["渲染控制视频<br/>3D 包围盒 + 全局方块投影"]
    CTRL --> VACE["VACE 视频扩散<br/>+ 文本 + 首帧"]
    VACE --> OUT["最终视频"]
    PLAN -->|用户一句话局部改写| PLAN

关键设计

1. 电影摄影启发的运动 DSL:把连续轨迹换成可组合的符号原语

直接从文本回归坐标之所以难,是因为同一句描述对应无数条具体轨迹,监督信号既稀疏又不稳。LAMP 的做法是先把"运动"这件事离散成一套受电影运镜启发的词汇:基于 CameraBench 分类体系定义四种基础原语——free-form(无约束 6-DoF 运动)、orbit track(绕目标环绕)、tail track(跟随目标运动)、rotation track(原地旋转跟踪)。每种原语再用一组修饰符细化,分别管平移(lat/vert/depth)、旋转(yaw/pitch/roll)和时间风格(speed_fast/ease_in/jitter_low),全部写成 key-value 对。一个完整的运动序列最多由 4 个运动标签组成、铺在 4 个时间段上,于是"先平推再绕到正面"这类复杂运镜就从几个简单原语的拼接里涌现出来。符号化带来的好处是直接的:表示可解释、可组合,且因为词汇有限、监督明确,学起来比连续回归省数据得多。

2. 程序化训练语料构建:靠确定性映射自动造 400K 文本-运动配对

要让 LLM 学会写这套 DSL,得有大量"自然语言 ↔ 运动程序"的配对,但人工标注 3D 运动昂贵且不可控。LAMP 反过来利用 DSL→3D 是确定性的这一点,把数据生成自动化:先采样并组合运动原语得到 DSL 程序,确定性展开成 3D 轨迹,套模板生成文本描述,再让一个 LLM 把模板文本改写得更口语、更多样。最终得到 400K 样本(100K 自由运动 + 100K 物体相对运动,各自配原始模板文本与 LLM 改写文本),覆盖 27 个粗类(3 种运动类型 × 3 个方向)和 343 个细类,旋转角度在 \([-180°, 180°]\) 上密集采样。因为分布由采样过程控制,常见电影运镜可以给高频、复杂组合运镜给低频,既避免了人工标注,又让数据分布贴近真实使用。

3. LLM 运动规划与层次化分解:先定对象、再据对象定相机

对象运动和相机轨迹本质是耦合的——相机往往是相对对象来定义的(追逐戏里相机是跟着跑者走的),硬让模型一次性吐出两者会互相纠缠。LAMP 把联合分布按电影制作的层次顺序拆开:

\[p(s_{cam}, s_{obj} \mid t) = p(s_{obj} \mid t_{obj}) \cdot p(s_{cam} \mid s_{obj}, t_{cam})\]

也就是先根据对象相关的文本生成对象运动 \(s_{obj}\),再以对象运动为条件生成相机运动 \(s_{cam}\)。规划器本身是在 400K 语料上微调的 Qwen2.5-VL,学习输出 DSL 程序。这种分解既符合"对象定义场景动态、相机据此调整构图"的拍摄直觉,又天然支持迭代精修——程序是符号化的,用户一句"把相机放低一点"就能让 LLM 局部改写程序,无需重跑昂贵的视频合成。

一个完整示例

以"一个人在街上奔跑,相机从侧面追踪并逐渐拉近"为输入:规划器先按 \(t_{obj}\) 生成对象程序(一个沿街道向前的 run 轨迹),再以该对象运动为条件生成相机程序——选 tail track 原语跟随跑者,配上 speed_fast 表现追逐感、depth 修饰符在后两个时间段逐步缩短距离实现拉近。这段 DSL 被确定性展开成跑者的 3D 包围盒序列和相机的 6-DoF 轨迹,投影成控制视频后,连同原文本和首帧送入 VACE,得到一段相机贴着跑者侧面、由远及近的成片。若用户觉得追得太紧,只需补一句"相机离远一点",LLM 把 depth 改小即可,前面的轨迹展开和渲染全部复用。

损失函数 / 训练策略

LLM 规划器用标准自回归目标训练,无额外结构损失。推理时 DSL 程序确定性映射为 3D 轨迹,渲染成控制视频(2D 包围盒投影 + 全局方块投影),与文本、首帧一起输入 VACE 视频生成器生成最终视频。

实验关键数据

主实验 — DataDoP相机轨迹评估

模型 修正F1 CLaTr Score CLaTr FID
CCD (预训练) 5.29 357.8
ET (预训练) 2.46 609.9
GenDoP (DataDoP训练) 0.400 36.18 22.7
LAMP (预训练) 0.763 36.29 66.9
LAMP (ft DataDoP) 0.776 36.52 67.2

ET数据集评估

LAMP在简单(pure)和复杂(mixed)分割上一致超越所有基线的F1分数

消融实验

配置 说明
无DSL (直接回归) 性能显著下降
无微调 (零样本) 基础能力可用但精度低
完整LAMP 最优性能

关键发现

  • LAMP在未经DataDoP训练的情况下,修正F1就超过了在该数据集上训练的GenDoP(0.763 vs 0.400),证明DSL表示的强泛化性
  • 符号化程序比直接坐标回归更高效,需要的数据更少
  • 迭代精修能力(如"稍微缩小""相机再低一点")是独特优势——用户无需昂贵的视频合成即可调整运动

亮点与洞察

  • 将运动生成重新定义为程序合成而非坐标回归,是架构层面的思路转变
  • DSL设计与电影摄影惯例对齐,使生成的运动具有专业电影感
  • 解耦设计允许在视频合成前迭代修改运动,大幅降低创作成本
  • 首次统一了对象和相机运动的自然语言控制

局限与展望

  • 目前仅支持单对象场景(3D bounding box),多对象交互场景未处理
  • 运动序列限制为4个时间段,更长的复杂运动需要扩展
  • 最终视频质量仍受限于底层视频生成模型(VACE)
  • CLaTr FID相对GenDoP较高(66.9 vs 22.7),说明轨迹的真实感仍有提升空间

相关工作与启发

  • vs GenDoP: GenDoP用GPT生成详细导演描述来指导自回归相机路径生成,但LLM角色仅限于辅助描述;LAMP让LLM直接输出可执行的运动程序
  • vs ET: ET使用LLM生成的电影描述来指导扩散模型预测轨迹;LAMP跳过扩散直接用DSL确定性映射
  • vs CameraCtrl/EPiC: 这些方法仅控制相机,假设对象静态;LAMP统一控制两者

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 将运动控制重新定义为程序合成,DSL设计与电影学结合的创新性强
  • 实验充分度: ⭐⭐⭐⭐ 在多个基准上定量对比,包含消融和用户研究
  • 写作质量: ⭐⭐⭐⭐ 动机清晰,方法层次分明,图示直观
  • 价值: ⭐⭐⭐⭐⭐ 对视频生成的可控性研究有重大推动,框架设计优雅且可扩展