理解相机运动是视频感知的基础任务,广泛应用于空间智能与可控视频生成。多模态大语言模型(MLLMs)为此任务提供了天然接口,但现有工作通常仅对整个视频片段分配一个或多个标签。此类片段级识别忽略了真实相机运动的两个关键特性:运动可在镜头内发生变化,且多种运动可同时发生。因此,我们将相机运动理解建模为时间接地式、复合型识别任务,要求模型定位运动一致的时间区间,并识别每个区间内所有活跃的运动类型。我们提出 CamChoreo 基准,包含 4,229 个真实单镜头视频片段,均由专家标注其时间区间。其标注采用包含 20 个方向感知标签的紧凑词表,近半数区间标注为复合相机运动,即多个运动基元同时活跃。当前 MLLMs 难以识别此类细粒度、复合型运动,因其视觉编码器侧重语义内容,而非相机运动所依赖的几何线索。直接注入冻结的 3D 基础模型特征可弥补该缺陷,但需对每个输入运行计算开销高昂的几何模型;我们将该基线方法称为 CamInject。我们转而提出 CamDistill,其在训练阶段将相同几何知识蒸馏为轻量级相机 token,并在推理阶段完全移除 3D 模型。CamDistill 在推理时不调用 3D 教师模型,却能达到与 CamInject 相当的精度。CamChoreo 与 CamDistill 共同推动相机运动理解从片段级标签预测迈向时间接地式、复合型识别。项目主页:https
Understanding camera motion is fundamental to video perception, with applications in spatial intelligence and controllable video generation. Multimodal large language models (MLLMs) provide a natural interface for this task, but existing work typically assigns one or more labels to an entire clip. Such clip-level recognition overlooks two defining properties of real camera motion: it can change within a shot, and multiple movements can occur simultaneously. We therefore formulate camera-motion understanding as temporally grounded, compositional recognition, which requires a model to localize motion-consistent intervals and identify every movement active within each interval. We introduce CamChoreo, a benchmark of 4,229 real single-shot clips with expert-annotated temporal segments. Its annotations use a compact vocabulary of 20 direction-aware labels, and nearly half of the segments contain compound camera motion, with multiple movement primitives active simultaneously. Recognizing such fine-grained, compositional motion is hard for current MLLMs, whose visual encoders emphasize semantic content rather than the geometric evidence on which camera motion depends. Directly injecting features from a frozen 3D foundation model addresses this gap, but requires running the expensive geometry model on every input; we refer to this baseline as CamInject. We instead propose CamDistill, which distills the same geometric knowledge into lightweight camera tokens during training and removes the 3D model at inference. CamDistill matches the accuracy of direct feature injection without running the 3D teacher at inference. Together, CamChoreo and CamDistill advance camera-motion understanding from clip-level labeling to temporally grounded, compositional recognition. Project page: https://ddz16.github.io/cammotion.github.io/.