从事视频分析相关工作多年后,我总会回到同一个令人不安的问题:系统给出精确的视频答案时,能否同时展示答案来自哪里?
观看视频并给出令人信服的描述,视觉语言模型(VLM)能够做到;困难会在进一步要求它指出“哪些帧支持这个答案”、“占据了一个区域多久”,以及“物体究竟何时越过边界”时暴露出来。
描述属于语言任务,测量则属于证据任务。 我由此开展了一个实验:先把视频处理为可查询的结构化证据,任何内容随后才交由语言模型解释,并将这套方法称作“扎根视觉智能”(Grounded Visual Intelligence)。
我希望系统只遵守一条简单规则:
让感知模型来观察。让确定性工具进行测量。让 LLM 来规划和解释——并附上引用。
本文把这条规则落实为一个可操作的小型系统,以 SAM 3 作为主要的感知路径,Grounded DINO + SAM 2 作为能够复现的基线。两条管道面对同一段十秒视频,并生成同一种与模型无关的证据图。
设想你向视频助手提出这个问题:“隔板右侧的白杯,是何时从左侧移过来的?”
多模态模型或许会回答“大约四秒”。这个答案有用,却仍未解决几个工程问题:
帧与帧之间遵循了哪些物体身份?
“左”和“右”由哪条空间规则界定?
时间估算采用了怎样的分辨率?
不重新运行 LLM,其他组件能否复现答案?
审查者能否直接定位支撑帧?
问题并非只有答案错误。即使答案大致正确,只要证据、语义和不确定性仍被隐藏,它在操作层面依然薄弱。面对可测量的视频问题,我需要一种不同的合同:若系统能够根据跟踪观测计算时间戳,语言模型便无须直接从像素估算时间戳。
这条管道承担四项核心职责,并清楚划分感知、测量和语言之间的边界。
感知层先检测或提示对象,再进行分割,并在剪辑过程中维持对象身份。
主路径 (SAM 3):图像级检测负责识别,基于内存的视频跟踪器负责延续身份,两者共同构成其“可提示概念分割”;输入概念提示后,它会输出在图像和视频间保持身份的掩码。
基线 (Grounded DINO + SAM 2):第一帧先由Grounded DINO依据文本提示执行开放集检测,选定对象随后交给SAM 2,借助其流式存储器架构在整段视频中传播。
两条路径采用截然不同的模型栈,但系统的其余部分不应关心这种差异。
各适配器把自己的本地张量与响应对象转换成可移植的场景文档,而中央记录被有意控制得十分精简:
Scene metadata: source, width, height, fps, duration tracks[] track_id concept observations[] frame_index timestamp_s bounding_box confidence mask_uri zones[] provenance[]
掩码存储为行主要二进制 RLE 伪影(Artifacts)。模型权重、CUDA 张量和框架对象不跨越此边界。这意味着测试、分析工具和浏览器可以从录制的 JSON 和 RLE 文件中工作,而无需导入 PyTorch 或任何 SAM 实现。
场景内存提供以下操作:
统计某个概念的实例;
在指定时间范围内检索一条轨道;
测量所观测区域中的占用率;
找出一个区域的最后观测和另一个区域的首次观测;
提交确切的音轨、帧数与时间范围作为证据。
答案应当是数值以及对应的证据引用——而非仅仅一句听起来合理的话。
LLM把用户问题转换为工具调用,再把调用结果整理成可读语言,但它并不掌握计数、过渡规则或时间戳。对这些内容而言,确定性仍然存在,但并不具备可检视性。由于先完成测量、后进行生成,整个交互因此获得了不同的可靠性。
我特意选择了一个简单的合成场景:白色杯子从标有 A 的区域出发,穿过狭窄隔板并经过一本笔记本,最终移到标有 B 的区域。这个场景几乎乏味,却因此便于逐一仔细检查每项假设。
| 属性 | 值 |
|---|---|
| 持续时间 | 10 秒 |
| 采样率 | 4 fps |
| 分辨率 | 560 × 316 |
| 总帧数 | 40 |
| 提示词 | “white cup” |
| 交互修正 | None (Google Colab Tesla T4) |
分隔带周围的狭窄归一化带不计入 A 区和 B 区,区域成员依据轨道边界框的归一化中心确定。采用 4 帧每秒时,本次运行可达到的最细过渡分辨率为 250 毫秒。
没有遗失的证据框架,也不存在轨道间隙;两条感知路径各自得到一条杯赛跑道和40个观测,并划出相同的A到B边界。
确定性结果为:
白杯在 3.75 秒到 4.00 秒之间从 A 区移到 B 区。它最后一次在 A 区(帧 15)被观测到,首次在 B 区(帧 16)被观测到。在 4fps 采样下,过渡被局部化为 250 毫秒窗口。
测得的入住率同样完全一致:
| 测量项 | Grounded SAM 2 | SAM 3 |
|---|---|---|
| A 区证据间隔 | 0.00 – 3.75 s | 0.00 – 3.75 s |
| A 区停留 | 4.00 s | 4.00 s |
| B 区证据间隔 | 4.00 – 9.75 s | 4.00 – 9.75 s |
| B 区停留 | 6.00 s | 6.00 s |
两条路径找到同一个杯子并不意外,更值得关注的是,它们产生的空间证据是否足够相似,能够支撑相同测量。我逐帧配对两者的单杯轨迹,对二进制遮罩、包围盒及遮罩重心进行了比较。
全部 40 帧呈现出惊人的一致性:
| 一致度量指标 | 结果 |
|---|---|
| 平均掩蔽 IoU | 0.9694 |
| 中位掩蔽 IoU | 0.9692 |
| 3.75s处的最小掩蔽IoU | 0.9487 |
| 最大掩蔽 IoU | 0.9829 |
| 平均边界框 IoU | 0.9648 |
| 平均重心距离 | 0.447 px |
| 最大重心距离 | 1.068 px |
最低的掩膜重叠出现在 A 区最后一个观测点,当时杯子接近分隔线和笔记本。尽管如此,两个系统对于概念、身份、区域及过渡证据仍得出一致结果。
⚠️ 重要限制:准确性不能由一致性证明,因为这段素材不存在人工标注的真实地面掩码,两个系统完全可能犯下相同错误。因此,这次比较能确认的范围更有限:在该受控场景内,无论采用哪一个感知堆栈,形成的下游证据和确定性答案在实质上都相同。
两条流程还说明,模型元数据为什么必须保留自身语义。
在 Grounded SAM 2 中,初始 Grounding DINO 种子分数就是传播观测的置信度。
在 SAM 3 中,文本提示的配乐构成重复值。
二者都不应被呈现为 40 个经过独立校准的帧置信度,也不应直接相互比较。因此,证据探索者分别给它们添加了不同标签:seed_score(种子评分)以及 track_score(轨道评分)。类似 confidence)这样的泛名字段,只有在来源和含义同时传播时才有价值。
相位时序及存储情况,均由两次运行在Colab T4上分别记录:
| 指标 | Grounded SAM 2 | SAM 3 |
|---|---|---|
| 总耗时 | 37.30 秒 | 19.57 秒 |
| GPU 最高分配内存 | 3.28 GiB | 1.81 GiB |
| 进程 RSS | 3.88 GiB | 5.23 GiB |
人们很容易据此宣称“SAM 3 更快更轻”,但现有数据并不足以完全支持该结论:两者的依赖边界和模型加载路径不同,而且结果都来自单次运行。此外,进程 RSS 的变化方向相反,SAM 3 的常驻内存反而更高。
可选编译扩展在Grounded SAM 2笔记本中导入失败,随后的可选后处理因此没有执行。警告已被我留档,但核心传播仍顺利完成。只有纳入这些尴尬的设置细节,可重复性才更有价值。
最后提供的界面是一个静态证据浏览器。经过验证的视频会被它加载,同时载入两个归一化场景轨道和对应的80个RLE掩码;托管GPU推理与向LLM发送请求均不在其操作范围内。
探险者允许读者进行以下操作:
定位被引用的边界框架;
擦洗整条证据时间线;
选择SAM 3或Grounded SAM 2进行切换;
切换显示遮罩、方框与区域;
从记忆来源和时机入手,检查得分、空档与覆盖范围。
由于 SAM 3 提供最简洁的主概念提示路径,因此被设为默认视图;Grounded SAM 2 则继续保留为无限制基线。
对我而言,最有价值的结果在于架构。实验得到的结果是:两种视频感知堆叠虽然不同,最终却能收敛为稳定的证据契约。有了这一契约,对轨道执行确定性操作即可回答空间和时间问题,无须再围绕像素展开开放式猜测。
这项实验仍未证明对于VLM误差,系统整体呈现出降低效果。以下内容不在评估范围内:
直接 VLM 基线
拥挤场景及多个同类实例
长时间遮挡、重新识别与摄像机运动
真实操作画面(没有真实掩码和过渡注释)
后续测试应当涵盖:建立带注释的多场景评估集;增加遮挡和再入;分别处理身份、掩膜及时间抽样的不确定性;使用深度和 3D 几何扩展图;测量端到端答案的质量与成本。
视频基础模型在概念检测、分割及跟踪方面日益出色,而这并未降低上层架构的重要性,反而使其更加关键。
应用仍需保存观测内容、观测时间、测量方式,以及支撑相关主张的工件。否则,再强的感知模型也只是文本生成器的另一个不透明输入。
我如今偏好的设计原则非常简单:
“如果视觉事实可以被测量,不要让语言模型去发明它。给模型一个工具,保留证据,让答案变得可寻。”
一种视频系统只能给出听起来正确的结果,另一种则可以把工作过程展示出来,差异就在这里。
模型修订摘要、检查点、预备输入和精确来源,都可在项目结果文档与运行工件中查到。仓库的完整内容则涵盖绘图源代码、静态浏览器、验证结果文档、受控源剪辑、两个Colab笔记本,以及测试、适配器和与模型无关的Python包。
参考文献
SAM 3:任何有概念的片段;Carion等,2025/2026。
SAM 2:图像和视频中的任意片段;Ravi等,2024。
Grounded DINO:DINO与开放型物体检测基础预训练的结合;Liu等,2023/2024。
Grounded SAM:开放世界模型面向多样化视觉任务的组装;Ren等,2024。
SAM3视频文档,出自Hugging Face Transformers。