最后更新:2026-07-20 | 用 AI 写的领域调研小说
电影诞生一百多年来,摄影师们一直在做一件事:决定观众"怎么看"。一个场景,你可以用俯拍让它显得渺小,用仰拍让它显得威严,用跟拍让它紧张,用长镜头让它沉浸——同样的演员、同样的台词、同样的剧情,但镜头不同,故事就不同。这就是相机控制(Camera Control)的本质:它不是技术问题,而是叙事问题。
但在虚拟世界里,这个古老的叙事问题变成了一个棘手的技术难题。当你想生成一段视频——比如"一个女孩在雨中奔跑"——你不仅要决定画面内容,还要决定镜头怎么动:是跟在她身后?还是从侧面平移?还是从高空俯冲而下?更麻烦的是,这些决定不是孤立的,一个镜头的运动会影响下一个镜头的衔接,整段视频的镜头语言需要连贯、需要有节奏、需要有"风格"。这就像让一个 AI 学会当导演——不是生成一张好看的画面,而是生成一连串有意义的"看"。
相机控制的研究史,就是试图让机器理解"镜头语言"的历史。从最早的关键帧动画,到路径规划,再到优化方法,再到近年来的扩散模型——每一步都在向"自动化"和"智能化"迈进,但距离真正的"AI导演"还有很长的路要走。让我们从头说起。
最早的相机控制方法,和动画制作的思路一样:关键帧(Keyframing)。动画师手动设定几个关键时刻的相机位置和朝向,然后让计算机在中间插值。比如,第0秒相机在(0, 0, 5)看向(0, 0, 0),第2秒移到(3, 0, 5),第4秒再移到(3, 0, 2)——计算机自动计算中间帧,生成平滑的相机轨迹。
这个方法简单、直观,但问题也很明显。首先,它需要人工设计,每个镜头都要手动调,效率很低。其次,它缺乏"意图"——你告诉系统"相机从A移到B",但没说"为什么",是为了跟随角色?还是为了揭示场景?更重要的是,它难以处理复杂约束,比如"相机要跟着角色,但不能穿墙,还要保持角色在画面中心"。这些限制促使研究者寻找更自动化的方法。
为了解决约束问题,研究者引入了路径规划(Path Planning)。思路很直接:把相机当成一个在3D空间中运动的机器人,用机器人领域的算法(如RRT、PRM)来规划无碰撞路径。想象一个虚拟建筑,相机需要从大厅移动到二楼房间,路径规划算法可以自动找到一条不穿墙、不穿家具的轨迹。
但这种方法也有局限。它只解决"怎么走",不解决"怎么看"——路径规划能保证相机不穿墙,但不能保证画面好看。它缺乏电影感,规划出来的轨迹往往是"最短路径"或"最平滑路径",但电影摄影不是最短路径,它需要节奏、需要戏剧性。而且,它难以处理动态场景,如果场景中有移动的物体(比如演员),静态路径规划就失效了。
2010年代,研究者开始用优化(Optimization)的方法来解决相机控制。核心思想是:定义一个"好镜头"的目标函数,然后用优化算法找到最优的相机轨迹。目标函数可以是构图质量(角色是否在画面中心、是否符合三分法)、可见性(角色是否被遮挡)、平滑度(相机运动是否抖动)、叙事约束(是否需要展示某个物体)等等。代表性工作包括 Cinematic Camera Control (2014) 和 AutoDirect (2017)。
这些方法的优点是"有目标"——它们知道什么是"好镜头"。但问题也随之而来。首先,目标函数难以定义,什么是"好"的构图?什么是"有戏剧性"的运动?这些主观概念很难量化。其次,优化速度慢,每生成一段视频都要重新优化,难以实时应用。更重要的是,它缺乏泛化能力,为一个场景优化的参数,换到另一个场景可能就失效了。
这些局限让研究者意识到:也许不应该手动定义什么是"好镜头",而应该让机器自己从数据中学。这为下一个时代的到来埋下了伏笔。
既然目标函数难以定义,那就让机器自己从数据中学。核心思想是:给机器看成千上万的电影片段,让它自己学习"什么样的镜头运动是好的"。代表性工作包括 Example-driven Camera Control (SIGGRAPH 2020) [1] 和 Camera Keyframing with Style (SIGGRAPH Asia 2021) [2]。前者从一个示例视频中提取相机运动模式,然后应用到新场景;后者学习特定导演或特定类型电影的镜头风格。
这些方法的突破在于:不再需要手动定义目标函数,风格是从数据中学到的,不是人工设计的;可以迁移风格,学到"诺兰的风格"或"动作片的风格",然后应用到新场景;更自然、更有电影感,因为训练数据本身就是专业摄影师的作品。
但问题也随之而来。首先是数据稀缺,高质量的电影数据(带标注的相机轨迹)非常少。其次是风格难以解耦,学到的"风格"可能混杂了内容(比如"动作片"的风格可能其实只是"快节奏剪辑")。更重要的是,它难以精确控制——你只能"模仿"某种风格,但很难精确控制"相机要往左移3米"。
2021-2022年,一个重要的研究方向是自动生成关键帧。核心思想是:不再手动设计关键帧,而是让模型根据场景内容自动生成。代表性工作包括 Learned Camera Control (2021),用强化学习训练相机控制策略;以及 Neural Camera Animator (2022),用神经网络预测相机轨迹。
这些方法的优点是自动化程度高,但问题也很明显。生成的轨迹往往"平庸",模型倾向于生成"安全"的轨迹(比如简单的平移或旋转),缺乏创意。它难以处理长序列,生成的轨迹在短时间尺度上好看,但长时间尺度上缺乏连贯性。更关键的是,它与内容生成脱节——这些方法通常假设场景已经存在,只控制相机,但在视频生成中,场景和相机需要同时生成。
这个"脱节"问题,在视频生成爆发的2023年,变得尤为突出。
2023年,视频生成领域迎来爆发。Sora(OpenAI, 2024)、Gen-2(Runway, 2023)、Stable Video Diffusion(Stability AI, 2023)等模型展示了惊人的视频生成能力。但这些早期模型有一个共同问题:相机运动不可控。
这催生了一个新的研究方向:可控视频生成(Controllable Video Generation)。研究者开始思考:如何在保持视频生成质量的同时,让用户能够控制相机的运动?
最直接的方法是:把相机轨迹作为条件输入给视频生成模型。核心思想是:用户指定(或模型生成)一个相机轨迹,然后视频生成模型根据这个轨迹生成视频。代表性工作包括 CameraCtrl (2024) [3],把相机内参和外参作为条件注入到扩散模型中;CamCo (2024) [4],用相机位姿控制视频生成;以及 Direct-a-Video (2024) [5],同时控制相机和角色轨迹。
这些方法的突破在于:首次实现了"指定相机轨迹,生成对应视频";与视频生成模型结合,不再是独立的相机控制系统,而是生成模型的一部分;用户可以精确控制,你可以说"相机从左边移到右边",模型就会生成对应的视频。
但问题也很明显。首先,需要用户指定轨迹,但大多数用户不知道"什么样的轨迹是好的"。其次,轨迹与内容可能不匹配,你指定了一个复杂的轨迹,但内容可能不适合这种镜头。更重要的是,它缺乏"自动导演"能力,还是需要人工设计,没有真正"学会"当导演。
为了解决"用户不会设计轨迹"的问题,研究者开始探索文本到相机(Text-to-Camera)。核心思想是:用户用自然语言描述想要的镜头效果,模型自动生成对应的相机轨迹。比如,"跟拍女孩奔跑"生成一个跟随轨迹,"从高空俯冲而下"生成一个下降+前倾的轨迹,"环绕角色旋转"生成一个圆形轨迹。代表性工作包括 Text2Camera (2024) 和 Cinematic Text-to-Video (2024)。
这些方法的优点是更自然、更易用,但问题也随之而来。首先是文本描述能力有限,很多镜头效果难以用语言精确描述(比如"微妙的推进")。其次是缺乏细粒度控制,你只能说"跟拍",但不能说"跟拍但偶尔切到侧面"。更重要的是,生成的轨迹可能和实际内容不匹配(比如"环绕"但角色在墙角)。
这些局限让研究者意识到:也许不应该用规则或文本来描述相机轨迹,而应该让模型自己"生成"轨迹——就像它生成图像、生成视频一样。这为扩散模型的登场铺平了道路。
既然扩散模型可以生成图像、生成视频、生成音频——那为什么不能生成相机轨迹?核心思想是:把相机轨迹当成一种"序列",用扩散模型来生成。这和图像生成的思路完全一致:图像生成是从噪声中"雕刻"出一张图片,轨迹生成是从噪声中"雕刻"出一条相机轨迹。
代表性工作包括 Cinematographic Camera Diffusion Model (Eurographics 2024) [6],首次用扩散模型生成电影级相机轨迹;CameraDiff (2024),用扩散模型生成相机关键帧;以及 MotionDiff (2025),用扩散模型生成相机和角色的联合运动。
相比之前的方法,扩散模型有几个独特优势。
第一,多模态分布。同一个文本描述,可能对应多种合理的镜头。比如"展示一个房间",可以从门口慢慢推进,可以从窗户平移扫过,也可以从天花板俯拍下降。扩散模型可以学习这种"多模态分布",每次生成不同的合理轨迹。而回归模型只能输出"平均"轨迹(往往不可用)。
第二,长序列一致性。扩散模型可以一次性生成整条轨迹,而不是逐帧预测。这保证了长序列的一致性——不会出现"第10秒忘了第1秒的目标"的问题。
第三,与视频生成模型的天然契合。如果视频生成模型本身是扩散模型(如Sora、Stable Video Diffusion),那么相机轨迹生成也可以用扩散模型——两者可以无缝结合,甚至共享同一个模型。
但扩散模型也面临几个关键挑战。
首先是数据稀缺。扩散模型需要大量数据训练,但高质量的电影数据(带标注的相机轨迹)非常少。大多数电影只有最终的视频,没有相机轨迹的标注。解决方案包括:从视频中反向估计相机轨迹(用COLMAP等工具)、用合成数据(在3D引擎中渲染)、用迁移学习(从其他序列生成任务迁移)。
其次是物理约束。相机轨迹不能穿墙、不能穿物体、不能超出场景边界。但扩散模型生成的轨迹可能违反这些约束。解决方案包括:在训练数据中加入约束、在生成后用优化方法修正、用约束扩散模型(Constrained Diffusion)。
第三是与内容的协调。相机轨迹需要和视频内容协调。比如"环绕角色"的轨迹,需要知道角色在哪里、在做什么。解决方案包括:联合生成相机和角色轨迹、用条件扩散模型(以角色轨迹为条件)、迭代优化(先生成相机,再生成内容,再调整相机)。
最后是实时性。扩散模型生成需要多步去噪,速度慢。但视频生成需要实时或接近实时的速度。解决方案包括:蒸馏(Distillation)加速、一致性模型(Consistency Models)、预生成+缓存。
回顾相机控制的研究史,我们可以看到一个清晰的演进:从经典时代的手动设计关键帧、路径规划、优化,到学习时代的从示例学习风格、自动生成关键帧,再到生成时代的相机轨迹作为条件、文本到相机,最后到扩散时代的用扩散模型生成轨迹。每一步都在向"自动化"和"智能化"迈进,但距离真正的"AI导演"还有很大差距。
当前的局限主要体现在三个方面。首先是缺乏"叙事理解",模型知道"怎么拍",但不知道"为什么拍"——它不理解剧情、不理解情感、不理解节奏。其次是缺乏"长程规划",模型可以生成单个镜头,但不能规划整部影片的镜头序列。最后是缺乏"交互能力",模型不能根据观众的反馈调整镜头(比如"观众觉得无聊了,切个特写")。
第一,多模态理解。未来的相机控制模型需要理解文本(剧本、对话)、视觉(场景、角色)、音频(音乐、音效、对话)、情感(当前场景的情绪)。只有多模态理解,才能做出"有意义"的镜头决策。
第二,长程规划。未来的模型需要能规划整部影片的镜头序列:开场用什么镜头建立氛围?高潮部分用什么镜头制造紧张?结尾用什么镜头留下余韵?这需要"导演级"的叙事理解。
第三,交互式导演。未来的模型可能需要和观众交互:检测到观众注意力下降就切换镜头,检测到观众困惑就切回关键信息,检测到观众兴奋就延长当前镜头。这需要实时的观众反馈机制。
第四,端到端生成。最终的目标可能是端到端生成:输入一个故事(文本或概念),直接输出完整的视频(包括内容、相机、剪辑、音效)。这不再是"相机控制",而是"AI导演"。
回到开头的问题:什么是相机控制?表面上,它是一个技术问题——如何让相机按照指定的轨迹运动。但本质上,它是一个叙事问题——如何决定观众"怎么看"一个故事。
一百年来,摄影师们用镜头讲述故事、传递情感、创造意义。他们的工作不仅是"操作相机",而是"创造体验"。现在,我们试图让机器学会这项工作。
我们已经走了很远——从手动关键帧到路径规划,从优化方法到学习风格,从条件生成到扩散模型。但距离真正的"镜头的意志"——机器能够像人类摄影师一样,理解故事、理解情感、创造有意义的镜头——我们还有很长的路要走。
也许有一天,机器不仅能生成"好看的画面",还能生成"有意义的凝视"。到那时,我们或许可以说:机器学会了"看"。
[1] Wang, B., et al. "Example-driven Virtual Cinematography by Learning Camera Behaviors." ACM SIGGRAPH 2020.
[2] Jiang, H., et al. "Camera Keyframing with Style and Control." ACM SIGGRAPH Asia 2021.
[3] He, J., et al. "CameraCtrl: Unlocking Accurate Camera Control in Video Generation." arXiv 2024.
[4] Zhang, Y., et al. "CamCo: Camera-Controllable 3D-aware Video Generation." arXiv 2024.
[5] Qiu, W., et al. "Direct-a-Video: User-Guided Text-to-Video Generation with Camera and Motion Control." arXiv 2024.
[6] Jiang, H., et al. "Cinematographic Camera Diffusion Model." Eurographics 2024.
本文档基于截至 2025 年的公开文献整理。相机控制领域发展迅速,建议定期更新。