跳到正文
Kwei 个人主页作品集 project library

CAMERA / SPACE / CUT

AI 视频的运镜为什么不听话?从提示词到多镜头相机控制

人物和动作都对了,摄影机却没有按要求移动。把“怎么拍”单独拿出来规划,多镜头的空间关系才有机会被检查和修改。

10 分钟阅读方法与创作
本文目录06

让 AI 生成一个练武的人,再要求摄影机绕着他移动。人物可能抬手、转身,衣服和院落也都像那么回事,但背景几乎没变:它完成了人物动作,摄影机却留在原地。再接上第二个镜头,问题还会增加。机位换到哪里了?院门还在同一侧吗?两段画面能否让观众相信这是同一个空间?

ShotVerse 把这个问题拆成两步:先从文字规划出相机轨迹,再让视频模型按轨迹生成。它值得创作者关注的地方,是让“怎么拍”变成一份可以单独检查的中间结果。下面结合它的具体方法和实验,看看这一步能解决什么,又还解决不了什么。[1]

镜头 1 / 从右向左环绕五帧节选 · 点击放大
镜头 2 / 从左向右环绕五帧节选 · 点击放大
ShotVerse 原论文图 3 中的两个镜头,裁取作者方法对应的一行。静帧用于观察视角与背景变化;它们不能单独证明整段运动流畅,也不代表通用模型排名。[1]

01一个“环绕”,还欠多少信息

相机轨迹,是摄影机在一段时间里的位置和朝向序列。 单个时刻的位置与朝向叫相机位姿。把这些时刻按顺序连起来,才知道摄影机从哪出发、往哪走,以及一路看着哪里。

“绕人物一圈”只有动作名称。摄影机离人物多远,从正面还是侧面开始,几秒走完,运动中要不要一直对准脸,都还没有说清楚。两个模型甚至两次生成,对这句话给出不同拍法,并不奇怪。

可以把要求收窄成:“摄影机从人物右前方缓慢移向正前方,始终看向上半身,四秒内完成这一段弧线。”它仍是文字,但已经能检查起点、终点、方向和时长。如果工具支持显式轨迹,还可以把这些要求落实成逐帧的相机参数。文字负责表达意图,轨迹负责把其中的空间与时间关系写具体。

02切过镜头,房间还得是同一间

统一坐标系,就是让不同镜头用同一套空间基准描述机位。 想象桌子和门的位置已经画在一张俯视图上。第一个镜头的相机在桌前,第二个在桌侧,两个机位都能落到这张图里,空间关系才有可比性。

如果每个镜头都各自把“第一帧相机的位置”设为原点,单看一条轨迹可能很平顺,但这些数字不能直接拼成一份拍摄计划。还要对齐方向、位置和尺度。相同的“向右移动”,放到两个不同的局部坐标里,未必对应房间里的同一个方向。

图 1 · 让两条轨迹共享一间房点击放大 ↗
原创空间概念图。解释坐标关系,不是 ShotVerse 的实际生成结果。

ShotVerse 的数据处理会先屏蔽动态前景,利用静态背景分别重建每个镜头;再选取跨镜头的关键帧做联合重建,通过共享锚点,把各条局部轨迹对齐到全局空间。用移动的人物当唯一定位参照,容易把人物运动和相机运动混在一起,因此背景在这里承担了定位作用。[1]

数据量也要分开看。作者收集了 20,500 段单镜头片段;多镜头实验从其中选出 2,750 段,组成 1,100 个场景,其中 1,000 个训练、100 个测试,场景互不重叠。每个序列 249 帧,分辨率 843 × 480,包含 2—4 个镜头。20,500 不能读成已经有两万多场完整的多镜头训练戏。

03先规划,再生成:中间要有轨迹

Planner 是规划器,负责把拍摄说明变成轨迹;Controller 是执行器,负责按轨迹生成视频。 两者分别训练,却使用相互对应的文字、轨迹和视频数据,避免规划出的拍法与执行器学过的控制条件完全脱节。[1]

拍摄说明也分两层。全局描述交代同一场戏的人物、场景和整体事件;逐镜头描述写各段动作、景别与运镜。Planner 为每个镜头保留专门的轨迹查询位置,再通过解码器输出长短不同的轨迹序列。这样,“镜头二向左环绕”就有明确归属。

图 2 · 把拍摄意图交给可检查的轨迹点击放大 ↗
依据 ShotVerse 第3节重新绘制的简化流程。省略训练与网络内部细节。[1]

Controller 以 HoloCine 的多镜头生成模型为基础,将相机位姿编码成特征,送入生成网络。可以把它理解为:生成某一帧时,模型除读取“画面里是什么”,还会收到“这一帧的相机在哪里、朝向哪”。HoloCine 原本就联合处理整场戏的多个镜头,ShotVerse 在此基础上加入相机控制。[1][2]

4D RoPE 是这里另一处值得理解的设计。 它给位置编码增加“镜头编号”,与帧、画面高度和宽度一起使用。“4D”指四个索引维度,并不表示相机在四维空间里移动。镜头一的最后一帧和镜头二的第一帧虽然时间相邻,却需要发生剪切;把镜头归属写进编码,有助于模型区分镜头内部的连续运动与镜头之间的切换。

04看数据时,把规划和执行分开

一次生成失败,可能是轨迹本身没有表达拍摄意图,也可能是轨迹正确、模型没执行出来。ShotVerse 把评估分为三条:A 看文字能否变成合适的轨迹,B 给定目标轨迹检查视频执行,C 从文字出发检查最终多镜头视频。拆开之后,分数才对应具体问题。

先看执行能力。 表中的方法都接收基准轨迹。研究者从生成视频中估计相机位姿,再与目标轨迹比较;单镜头基线按镜头生成后,再按论文方案拼接。下面完整列出这组比较,数值均来自原文表 3。[1]

给定目标轨迹后的执行表现 · ShotVerse-Bench / Track B
方法平移误差 ↓旋转误差 ↓CAS ↑
MotionCtrl0.09002.560.329
CameraCtrl0.05711.280.343
ReCamMaster0.05891.120.408
ShotVerse0.01630.730.500

前两列越低,表示按该评估方法得到的轨迹误差越小。CAS 是跨镜头坐标对齐的代理分数:选取视野重叠最高的跨镜头帧对,利用 DINOv2 特征衡量视觉相似性。它把几何关系与视觉一致性联系起来,但 0.500 不等于“有一半镜头完全对齐”。表里的误差也不能直接换算成实际拍摄偏了多少米。

再看一次消融实验。 “消融”就是移除或替换某个设计,观察结果如何变化。将完整方案的 4D RoPE 换成 3D RoPE 后,切镜准确度从 0.933 降到 0.429。这个对照支持“显式标出镜头归属有帮助”,不能改写成“100 段视频有 93 段成功”,因为论文没有给出足够的计数定义。[1]

替换位置编码后的变化 · 原文表 7
设置切镜准确度 ↑
使用 3D RoPE0.429
完整方案(4D RoPE)0.933

这些结果针对同一场景、多镜头相机控制的实验设置。它们没有回答所有题材谁最好,也没有证明画面漂亮就一定叙事清楚。原文还报告了重复视角的轻微漂移、时长和切点限制,以及密集人群动态处理困难。因此,更适合从中判断控制方式的价值,而不是做通用视频模型排名。

05用三个镜头,写一份能检查的拍摄说明

下面用一个自拟练习把方法落到分镜上:一个人在工作室里拿起桌上的信封,发现背面写着一个地址。桌子固定在房间中部,门在人物身后。三个镜头分别负责交代动作、引出新信息、观察反应。这个练习用于设计拍法,不是模型实测。

全局说明只写共享信息。 同一人物、同一工作室、桌子与门的位置、同一封信。随后给每个镜头写清楚“要看见什么”“相机怎么走”“结束时停在哪里”。下面三个镜头可逐个查看。

让观众看清信封来自桌面。

人物动作
人物站在桌边,低头,伸手拿起信封。
相机安排
中景,机位固定在人物右前方,桌面保留在画面中。
检查什么
手从桌面拿起信封,信封的位置连续;门仍处在已设定的背景方位。

这份说明可以交给支持逐镜头描述的模型;遇到有轨迹接口的工具,再把机位与运动路径输入进去。只有文字输入的工具,也能用它检查结果,但不能据此假定模型会精确执行米数、角度或秒数。需要严格几何控制时,还得使用相应的轨迹条件或预演流程。

生成后保留两个镜头的交界帧,再各取一张能看清门或桌子的中间帧,放在一起检查。若轨迹设想清楚而输出背景漂移,问题偏向执行;若连这几张预想画面也无法解释空间关系,就该先重写分镜。这样每次修改都有对象。

06总结:在生成之前,写好验收方式

多镜头创作需要同时回答两个问题:这场戏该怎样拍,模型有没有照着拍。ShotVerse 用显式轨迹把它们分开,又用统一坐标和镜头编号把不同镜头联系起来。这比只看最终画面是否“有电影感”,多了一层可以定位问题的依据。

对实际创作来说,可以先借用这种工作方法:把每个镜头的叙事用途、机位和运动终点写清楚,再定义交界处要保持哪些关系。固定机位也可以是明确的选择。下一次镜头不合意时,能说出“动作对了,但摄影机没有绕过去”,修改就有了方向。

可横向或纵向滚动查看,按 Esc 关闭。