跳转至

Fine-Grained Text-to-Video Retrieval for Camera-Trap Data

会议: ECCV 2026
论文: ECCV 原文
项目主页: Project Page
领域: 视频理解
关键词: 文本到视频检索、红外相机陷阱、时空动作定位、大语言模型智能体、生态计算

一句话总结

提出了首个面向野生动物红外相机陷阱的细粒度文本到视频检索基准 Prompting-MammAlps,并设计了结合时空动作定位模型 SALMA 与代码生成智能体的检索框架,通过将自然语言查询编译为结构化文本解析程序,在避免大模型幻觉的同时实现了高可解释的集合检索。

研究背景与动机

红外相机陷阱(Camera-traps)是野生动物生态学与保护生物学不可或缺的野外监测手段,能够在极小化人为干扰的前提下持续捕获大量高分辨率视频数据。然而,当前生态学界对这类海量视频的分析处理严重滞后于数据采集速度。尽管深度学习在空镜过滤(如 MegaDetector)和物种分类粗筛上取得了长足进步,但在分析动物行为模式、社会互动、繁殖交配及环境响应等细粒度动态事件时,仍极度依赖专家肉眼逐帧排查或公民科学计划人工标注,耗时耗力。利用文本到视频检索(Text-to-Video Retrieval, TVR)直接通过自然语言定位目标事件,是打破这一瓶颈的理想路径。

现有基于通用多模态视频语言大模型(VLM)的主流 TVR 方案在红外相机陷阱场景中全面失效。一方面,通用多模态模型主要在大规模网络视频(如 YouTube、Kinetics)上预训练,缺乏生态细粒度先验,且缺少物种分类以外的动物行为基准用于评测;另一方面,常规 TVR 严重依赖抽样关键帧与文本提示在联合隐空间的余弦相似度计算,这种隐空间度量不仅黑盒不可解释,更天然缺乏长程时空推理能力,无法判别多动物时序交互、条件触发或行为因果关系。若直接让多模态大模型生成长文本描述再交由 LLM 检索,又会因开放域幻觉和上下文长度爆炸而不可控。

针对这一矛盾,本文的切入角度是将「高维视觉时空感知」与「符号逻辑推理」彻底解耦:在离线端由端到端时空动作定位模型抽取动物轨迹及细粒度行为属性,并沉淀为规范的结构化 JSON 语义树;在在线端将用户的生态自然语言查询交给 LLM 代码智能体,编译为调用专用算子库的可执行布尔判别函数。核心 idea:将相机陷阱视频检索解耦为「离线时空动作定位与结构化文本提取」和「在线 LLM 代码智能体逻辑解析」,由微调视频 Transformer (SALMA) 生成每段视频的结构化 JSON 描述,再由 LLM 代码智能体将自然语言查询编译为调用预定义解析库的布尔判别函数执行检索,在规避 LLM 幻觉的同时实现高可解释性检索。

方法详解

整体框架

本文提出的端到端细粒度检索系统在设计上将视频处理与文本查询处理完全分离。在离线阶段,候选视频池被送入时空动作定位模型 SALMA(Spatiotemporal Action Localization for MammAlps)中,模型逐帧检测并追踪各个体轨迹,预测物种、高层活动、底层行为、鹿科年龄及性别等多维属性,并将整段视频序列抽象存储为紧凑的标准结构化 .json 文件。在检索阶段,用户输入涵盖特定物种、行为序列或跨视频对比的自然语言查询,LLM 代码智能体基于预定义的 23 个原子解析函数库,将该查询翻译为一段确定性的 Python 判别函数。该函数在所有候选视频的 JSON 文件上批量运行并输出二值判决,命中条件的视频即刻作为检索集合返回给用户。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["输入原始相机陷阱视频池"] --> B["SALMA 时空动作定位与两阶段课程学习<br/>VideoMAE 编码器 + 动态 Object Queries 渐进解码"]
    B --> C["结构化 JSON 轨迹表示与时空聚合<br/>个体轨迹属性聚类 + 帧级目标检测与行为对齐"]
    D["用户生态查询 Prompt<br/>含复杂属性/时序/跨视频对比"] --> E["语法约束的 LLM 代码智能体检索<br/>基于 23 个原子算子库合成确定性布尔判别函数"]
    C --> F["沙箱执行与集合判决<br/>对每段候选视频 JSON 运行判别函数"]
    E --> F
    F --> G["返回检索视频集合<br/>附带 SALMA 可视化框与透明解析源码"]

关键设计

1. SALMA 时空动作定位与两阶段课程学习:离线全解耦多属性提取 常规目标检测或多模态分类器无法捕获相机陷阱中动物连续行为的时空动态与个体一致性。为此,作者基于 DETR 与 MOTR 架构设计了整体式架构 SALMA。模型以 VideoMAE 为主干编码器提取视频时空 Token \(f_{i,t}\),并在解码器中通过交叉注意力机制让一组可学习的目标查询(Object Queries)\(q_{i,t}\) 在连续帧间自回归演进。解码后的每个 Query 接 6 个并行 MLP 预测头,分别预测边界框回归、轨迹激活置信度 \(s_{i,t,j}\)、物种、细粒度底层动作(Actions,如低头、抬蹄)、高层活动(Activity,如觅食、警戒)以及鹿科个体的幼龄/成年状态与性别。 为保障训练稳定性和轨迹时间一致性,SALMA 采用两阶段课程学习策略:第一阶段冻结属性头,仅使用匈牙利匹配优化边界框定位的 L1 与 gIoU 损失,激活分数的二值交叉熵损失,以及维持 Query 跨帧身份一致性的时序对比损失: $$ \mathcal{L}{\text{InfoNCE}} = -\log \frac{\exp(q $$ 该时序对比损失强制同一动物目标查询在相邻帧保持表征连续,有效抑制了复杂红外遮挡环境下的身份跳变(ID switch)。在第二阶段中,固定定位表征并联合训练 5 个属性预测头的分类交叉熵损失,从而在单次前向传递中完成时空轨迹与多属性解耦。针对相机陷阱 16:9 画幅与训练正方形输入的比例差异,推理时在双重方形裁剪视图上运行并通过匈牙利匹配融合同一实体的检测。} \cdot q_{i,t+1,j} / \tau)}{\sum_{k} \exp(q_{i,t,j} \cdot q_{i,t+1,k} / \tau)

2. 结构化 JSON 轨迹表示与时空聚合:保留帧级时空信息与跨视角匹配 若直接让视觉语言模型将长视频概括为自由文本摘要,极易丢弃微小动作的时序转折,且难以表示空间相对位置。本文设计了结构化层次字典作为视频的中间语义表征:顶级字段包含视频全局元数据(站点编号、相机视角、分辨率与环境天气);次级字段 frames 包含所有时间戳下的个体检测数组,每个检测包含由 SALMA 激活的 track_id、连续边界框坐标及当前帧的细粒度行为属性标签。对于整段轨迹中不随时间变化的静态属性(如物种、性别、年龄),系统在轨迹维度实施多数表决时空聚合(Majority Voting),过滤帧级瞬间抖动;而对于动作和活动等动态属性则保持逐帧时间序列完整性。这种表示方式将复杂的像素时空张量转化为严格遵循数据模式的符号结构,既为后续符号计算提供了零信息衰减的查询载体,又充当了视觉特征与语言理解之间的防火墙。

3. 语法约束的 LLM 代码智能体检索:面向预定义算子库的布尔判别合成 将自然语言理解交由 LLM 处理的核心风险在于大模型的事实幻觉与不可控发散。传统基于 LLM 的视频检索往往直接把全部视频文本丢入 Prompt 让模型打分,不仅容易发生上下文注意力丢失,而且无法验证判断依据。本文基于 smolagents 框架构建了一个代码生成智能体,明确禁止大语言模型直接接触任何候选视频的 JSON 内容。相反,系统为智能体提供了一套包含 23 个严格类型检查的专用原子函数库(例如 check_tracks_contains_species(tracks, species)、get_unique_activities_from_tracks(tracks)、check_action_sequence(...) 等),并附带属性合法枚举表与 3 个少样本上下文示例。 智能体的任务仅是理解用户意图,并将自然语言编译为一段名为 check_file(file_id) 的 Python 谓词函数。该函数在沙箱环境中使用测试用桩执行,如果智能体调用了非法函数名或编造了词表外的标签,解释器会立即捕获异常并反馈给智能体,最多触发 10 轮自我反思纠错,直至生成可执行且自洽的代码。这使得用户不仅能获得明确的真/假检索集合,还能通过直接审查 Python 源码获知模型究竟是“按何种逻辑匹配该视频”,赋予了检索过程完全的白盒可解释性。

损失函数 / 训练策略

SALMA 模型在 MammAlps-S2 训练集的 2090 段视频上进行两阶段训练,每个课程学习阶段训练 500 个 Epoch,优化器使用 AdamW,设置权重衰减与学习率线性预热。推理时采用跨度为 4 帧(Temporal Stride = 4)的滑窗推理,未采样的跳跃帧采用前向填充(Forward-Filling)对齐。LLM 智能体评测对比了 Qwen3-8B、Llama-3.1-8B-Instruct、Mistral-7B-Instruct 以及 Apertus-8B-Instruct,最终选定代码生成与指令遵循表现最优的 Qwen3-8B 作为核心智能体推理引擎。

实验关键数据

主实验

评估在 Prompting-MammAlps 测试集(775 段候选视频、135 条生态查询)上展开。由于本方法输出的是二值匹配判定而非排序得分,评测指标采用集合级 F1-Score(包含对无真值视频查询的精准过滤评估)。对比基准包括零样本与微调的主流 VLM 检索模型(CLIP4Clip、SigLIP4Clip、GRAM、InternVideo2.0)。

方法 训练设定 全体查询 (All, 135) 排除跨视频对比 (113) 罕见事件 (Rare, 48) 求偶行为 (Courtship, 27) 其他社交 (Social, 36) 相机反应 (Reaction, 28) 常见行为 (Common, 2)
CLIP4Clip Zero-shot n/a 0.17 0.16 0.13 0.26 0.14 0.40
SigLIP4Clip Zero-shot n/a 0.17 0.17 0.12 0.25 0.12 0.37
GRAM Zero-shot n/a 0.16 0.16 0.08 0.25 0.12 0.35
InternVideo2.0 Zero-shot n/a 0.18 0.16 0.15 0.28 0.12 0.40
CLIP4Clip† 微调 (MammAlps-S2) n/a 0.26 0.29 0.22 0.30 0.18 0.70
Agent + SALMA† (本文) 监督定位 + 代码智能体 0.34 0.37 0.43 0.34 0.35 0.21 0.87
Agent + Oracle (性能上限) 真值 JSON + 代码智能体 0.87 0.89 0.94 0.79 0.90 0.82 0.98

注:† 表示在 MammAlps-S2 领域数据上经过微调/训练;n/a 表示传统基于单路相似度的 VLM 无法直接处理依赖双视频对比(Video Comparison)的两阶段逻辑查询。

消融实验

为精细拆解感知端(SALMA)与推理端(LLM Agent)对最终性能的影响,作者分别进行了跟踪与属性预测性能评估、以及代码智能体能力消融。

1. SALMA 跟踪与属性识别表现消融

模型与配置 HOTA ↑ IDF1 ↑ DetA ↑ IDswp (身份跳变) ↓ 物种 F1 活动 F1 动作 F1 鹿龄 F1 鹿性 F1 天气 F1
SALMA-MOT (无 InfoNCE) 67.5 75.4 64.9 3485 - - - - - -
SALMA-MOT (完整阶段一) 72.9 84.5 67.7 192 - - - - - -
SALMA (两阶段完整模型) 69.0 81.1 62.6 202 0.48 0.40 0.29 0.70 0.75 0.76
MegaDetector v5a + ByteTrack 76.2 81.4 67.2 93 - - - - - -

2. Qwen3-8B 代码解析智能体组件消融(基于 Oracle 真值 JSON)

配置方案 检索 F1-Score 性能增益 (Gain) 说明
Vanilla Agent (原生代码生成) 0.44 基准 仅提供 JSON 结构与标签名,直接生成解析代码
+ 专用原子解析函数库 (Parsing Library) 0.78 +0.34 约束 LLM 仅组合预定义 23 个专用算子
+ 3 个少样本上下文示例 (In-context Examples) 0.84 +0.06 提示模型如何处理嵌套逻辑与轨迹遍历
+ 严格标签空间强约束 (Label Space Constraint) 0.87 +0.03 非法字段/标签即刻报错触发智能体自我修复

关键发现

  • 大模型代码智能体的天花板极高:当代码智能体运行在真实真值标注(Agent + Oracle)上时,综合 F1 达到 0.87,在简单属性上达到 1.00,在罕见事件上达到 0.94,证明专用算子库与语法沙箱反馈机制能够极高保真度地理解复杂的生态行为逻辑。
  • 瓶颈主要在细粒度视觉感知而非语言推理:Agent + SALMA 的性能为 0.34,与 Oracle 之间的 0.53 差距清晰揭示出当前主要瓶颈在于红外夜视、遮挡环境下的细粒度动作分割(如底层动作 F1 仅 0.29)与物种分类准确率,而非 LLM 的逻辑翻译能力。
  • 通用 VLM 在垂直生态领域泛化匮乏:无论是 InternVideo2.0 还是 SigLIP4Clip,零样本检索 F1 均低于 0.18,即使经过监督微调(CLIP4Clip† 达到 0.26),也大幅落后于显式建模时空轨迹的解耦检索架构。

亮点与洞察

  • 解耦式代码生成避免幻觉传播:不让大语言模型直接阅读长视频特征或原始标注,而是让其充当“编译器”,把人类提示词转译为确定性 Python 算子。这种设计从物理架构上杜绝了大模型在海量数据检索中产生幻觉性虚假匹配的可能。
  • 真正的白盒可追溯性:传统检索只返回难以解释的余弦相似度分数,而本框架返回的是透明的 Python 源码与 SALMA 标注框。生态学家可以直接查看代码中的逻辑断言(如判断两个个体是否发生同一动作),不仅能定位检索错误是由视觉误检还是逻辑理解偏差所致,还能直接手动微调代码规则。
  • 引入负向空集与跨视频对比检索机制:该基准首次在视频检索中系统性评测了“目标事件未发生”(无相关视频的 Query 过滤能力)以及“寻找与参考视频 B 中个体具有相同动作行为的视频”等复合推理场景,极大拓宽了 TVR 评测维度的深度。

局限与展望

  • 二值判决缺乏连续置信度排序:当前系统输出严格的集合判决(0 或 1),无法对命中结果按相关性强弱排序。在面对包含“一只幼崽跟随母鹿”等连续空间距离约束的弱条件查询时,容易因硬阈值过滤产生漏检。
  • 视觉底层模型受限于红外夜视与频繁遮挡:SALMA 在底层精细动作(Action)分类上的 F1 仅为 0.29,且跨视角(15 个不同机位)的个体连续重识别与特征鲁棒性仍有较大改进空间。
  • 未来方向:作者指出可探索在原子算子中返回连续软分数以扩展为排序型检索(Ranking-based TVR);同时充分利用红外相机捕获的音频多模态信号(如动物鸣叫、踩踏树枝声),结合音频事件定位进一步弥补夜视画面遮挡带来的感知短板。

相关工作与启发

  • vs CLIP4Clip / InternVideo2.0 等连续表征检索:传统方法在大规模预训练视频隐空间中进行跨模态相似度匹配,模型处于端到端黑盒状态,且只能处理粗粒度内容,面对时序依赖或复合逻辑时完全崩溃;本文采用离线时空符号化 + 在线代码智能体推理,在可解释性、多实体复杂推理和零样本逻辑泛化上均展现出绝对优势。
  • vs X-CoT 等 LLM 重排序方案:X-CoT 需要对 Top-\(k\) 视频对进行穷举二值对比与 CoT 推理,计算复杂度随视频规模呈平方级爆炸且极易诱发大模型幻觉;本文智能体仅需执行一次查询编译(单次代码生成),编译出的代码可在千量级候选视频上毫秒级并发执行,计算效率与工程落地性远超传统重排序模型。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首次提出针对红外相机陷阱生态视频的细粒度 TVR 基准,首创代码智能体布尔编译检索范式。
  • 实验充分度: ⭐⭐⭐⭐⭐ 涵盖 18 小时高质量野外稠密标注视频、135 条复合生态查询,从感知、跟踪、属性分类到代码生成开展了全面消融。
  • 写作质量: ⭐⭐⭐⭐⭐ 动机阐述清晰,图表严谨专业,解构了当前 VLM 在垂直领域的真实瓶颈。
  • 价值: ⭐⭐⭐⭐⭐ 对计算生态学、野生动物智能监测以及面向复杂时空推理的跨模态检索系统具有极高的理论指导与实用落地价值。