跳转至

VisionCoach: Reinforcing Grounded Video Reasoning via Visual-Perception Prompting

会议: ECCV 2026
论文: ECCV 2026 官方页面 · 项目页
领域: 多模态 VLM / 视频理解
关键词: 视频推理、视觉提示、强化学习、自蒸馏、时空定位

一句话总结

VisionCoach 把"视觉提示"从推理时的外部工具改成训练时的教练:VP-Selector 只为难样本挑一种视觉提示(红圈 / 压暗 / 帧号等)叠加到关键帧上重新采样轨迹,再用自蒸馏把高奖励轨迹内化进策略,配合物体感知的空间定位奖励,使模型推理时只走一次前向、直接读原始视频;在 V-STAR 上比 Qwen2.5-VL-7B 提升 +15.0 mAM / +25.1 mLGM 并超过 GPT-4o。

研究背景与动机

视频推理要求模型在跨帧的证据流里定位并跟踪与问题相关的物体和时刻。近两年用可验证奖励做强化学习的路线(Video-R1、VideoRFT 等)确实把答案准确率推上去了,但推理过程中的时空定位始终不可靠。三类做法各有各的毛病:纯文本式推理模型靠语言先验编出解释,图上根本没有那段证据;工具调用式方法(VideoZoomer、Conan、Video-o3)在推理时反复裁剪、缩放、检索,虽然能把证据找回来,但推理模型自己没学会看图,一旦撤掉外部工具就退化,而且每多一次工具调用就多一份延迟;近期把定位与推理交错在同一模型里的 grounded reasoning 方法(以 Open-o3-video 为代表)往前走了一步,可仍会给出错误的物体指代和幻觉框,而这些错误会沿着推理链一路传播到最终答案。

病根在于缺少一种机制,强制中间推理步骤与时空证据对齐。实践中想改善定位无非两条路:要么扩增带密集时空标注的训练数据,标注成本极高;要么在推理阶段挂额外的感知模块。两条路本质都是"更重的外部干预",模型自身的感知行为没有改变——它只是被喂了更多数据、或被更多工具扶着走。本文于是把干预从数据侧和推理侧挪到训练侧:只在训练时给视觉引导,把定位行为的改善"烧"进参数,推理时保留一条最轻的路径。

这个想法建立在作者的两个小分析上。第一,在 PerceptionTest 子集里,答对的样本在时序匹配率、物体身份匹配率和框 IoU 上系统性地高于答错的样本,说明定位质量与答对与否强相关,定位不是副产品而是前置条件。第二,不同视觉提示对同一个模型的效果差异极大:Qwen2.5-VL 在原始关键帧上是 52.2,换成压暗反而掉到 43.3,红圈几乎不变(51.5),而"每个样本都选对它最合适的提示"这一 oracle 设置能到 70.8(Gemini-2.5-Flash 上同样是 47.4 / 50.4 / 49.3 → 75.2)。核心 idea:既然"选对提示"比"给提示"重要得多,那就先用多个代理推理器的行为蒸出一个 VP-Selector 专为难样本挑提示,再让 ST-Reasoner 在提示增强的输入上重新采样、用自蒸馏把提示带来的定位增益内化进策略,最终做到推理时既不挂提示也不挂工具。

方法详解

整体框架

VisionCoach 的输入是原始视频 \(x\) 与问题 \(q\),输出是一段带显式时空标注(<obj> / <box> / <t>)的推理轨迹和最终答案。整个训练分两段:先离线训练 VP-Selector——用多个代理推理器在候选提示上跑推理,把"哪个提示最好"变成监督标签,再用 LoRA 微调一个小 VLM 做 |V| 路分类,训完就冻结;然后进入 GSPO 强化学习训练 ST-Reasoner。RL 阶段的每个样本先采 G 条初始轨迹、按平均奖励判断它是不是难样本;只有难样本才调用 VP-Selector 选一种提示,把提示叠加到关键帧上、并在问题后追加一句描述该提示的文本 hint,重新采 G 条轨迹;两轮比较后,把奖励超过初始平均水平、且答题奖励最高的 top-2 轨迹挑出来做 token 级 NLL 自蒸馏,与 GSPO 损失相加。推理时 VP-Selector、视觉提示和文本 hint 全部撤掉,模型单次前向直接读原始视频。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["视频 + 问题"] --> B["VP-Selector<br/>离线训练后冻结"]
    B --> C["难样本判定与提示引导 rollout<br/>平均奖励低于阈值才施加提示"]
    C --> D["自蒸馏<br/>NLL 内化高奖励轨迹"]
    D --> E["物体感知的空间定位奖励<br/>身份一致性 + 多区域 IoU"]
    E --> F["GSPO 策略更新"]
    F --> G["推理:单次前向<br/>直接读原始视频无提示"]

关键设计

1. VP-Selector:把"该给什么视觉提示"做成一个可监督的分类问题

视觉提示的有效性高度依赖输入——同一张关键帧,压暗会毁掉 Qwen2.5-VL 的证据(52.2 → 43.3),红圈却几乎无感(51.5),换到 Gemini-2.5-Flash 上又是另一套排序(压暗 50.4 优于红圈 49.3)。这意味着"该给什么提示"本身是个需要按输入预测的问题,而它偏偏没有金标准:哪张提示更好,取决于下游模型的反应,人无法先验标注。本文的解法是用多个代理推理器的行为来定义标签。候选提示池 \(\mathcal{V}\) 由四类视觉提示构成——红圈、基于注意力的提示、逐帧编号、压暗;对每个候选 \(v_k\) 生成提示后的输入 \(x'_k\),让多个代理推理器(Qwen3-VL、Gemini 2.5、GPT-4o 一类,见原文引用)各跑一遍,得到二值答题准确率 \(A_k\) 与定位分数 \(G_k\),跨代理平均后取乘积最大者作为该 \((x,q)\) 的最优提示:

\[v_i = \arg\max_{v_k \in \mathcal{V}} (A_k \cdot G_k)\]

(⚠️ 原文式 (3) 在缓存文本中排版损坏,"·"是否表示乘积以原文为准;\(A_k\)\(G_k\) 的取平均范围是代理推理器集合。)得到 \((x, q, v_i)\) 三元组后,训练就退化成常规的 |V| 路分类:把 \((x,q)\) 组织成"从 \(\mathcal{V}\) 里选一个"的指令,让轻量 VLM 以 LoRA 输出对应的提示标签,用 token 级交叉熵监督。之所以用代理推理器而不是训练一个自建评分器,是为了让标签反映"跨模型的提示有效性共性"而不是过拟合到某一个 backbone——Tab. 7 的即插即用实验证明这个目的达到了:训好的 selector 直接挂到 Qwen2.5-VL、GPT-4o、Gemini-2.5-Flash 上都带来提升。

2. 难样本判定与提示引导 rollout:只在该帮的时候帮

无差别地给所有样本加提示是错的。消融里固定使用压暗(VP-F 行)把 V-STAR 的 mAM 从 30.4 拉低到 29.7,因为它会破坏简单题上本来就完好的视觉证据;而在真正困难的样本上,提示平均能带来 +56% 到 +66% 的相对奖励增益。所以关键不是"要不要提示",而是"给谁提示"。机制上,对每个样本 \((x_i,q_i)\) 先用当前策略采 G 条 rollout 并评分,取平均奖励 \(\bar R_i\);若 \(\bar R_i < k\)(k 为预设的难样本阈值)就判为难样本(指示函数 \(I_i=1\)),否则走普通 GSPO 分支。判难的依据是完整的四项总奖励,因此"难"同时涵盖答不对和定位不准两种情况,而不只是答案错了。难样本才调用冻结的 VP-Selector 得到 \(v_i\),把提示施加到 \(x_i\) 的关键帧上得到 \(x'_i\),同时把一句描述提示内容的文本 hint 拼到问题后面构成 \(q'_i\)——这一步容易被忽略但很必要,否则模型只看到画面上多了个红圈或整体变暗,并不知道这是有意为之的引导信号。随后在 \((x'_i, q'_i)\) 上再采 G 条轨迹。这一整套动作是输入级的感知控制:不改架构、不加参数,只在像素空间放大与问题相关的证据、压制干扰区域,与隐式的特征注意力调节是两条不同的路径。

3. 自蒸馏:把提示带来的增益内化进策略

提示只在训练时存在,如果只是"让模型在提示输入上答得更好",推理时一切照旧。自蒸馏要解决的就是这件事。它的做法是两轮 rollout 之间做筛选:记提示后轨迹的奖励为 \(\{R'^{(g)}_i\}\),先取奖励超过初始平均的候选集合 \(C_i = \{g : R'^{(g)}_i > \bar R_i\}\);若 \(C_i\) 为空(提示没帮上忙)就跳过该样本,不做蒸馏;否则在候选里按答题奖励再拔尖,取 top-\(N\)(正文实设为 top-2)组成 \(\mathcal{S}_i\),对它们做 token 级负对数似然:

\[\mathcal{L}_{\mathrm{SD}}(\theta) = -\frac{1}{|\mathcal{S}_i|}\sum_{j\in\mathcal{S}_i}\frac{1}{|y'_{i,j}|}\sum_{t=1}^{|y'_{i,j}|}\log \pi_\theta\big(y'_{i,j,t} \mid y'_{i,j,<t}, x'_i, q'_i\big)\]

这项损失的"教师"是模型自己在提示输入上的采样结果,没有任何外部模型参与,属于自教自。值得留意的是蒸馏项的条件里写的是提示后输入 \(x'_i\),因此"内化"一词更多是行为层面的描述:一方面它把"看着提示写出的好轨迹"当作正样本反复强化,另一方面同一批样本的 GSPO 项仍在原始输入上更新,两者共同把这种带定位的推理模式迁移到不看提示的原始视频上,论文用"self-evolving"来概括这个过程。⚠️ 论文对这一内化机制只给了推理时撤掉提示不掉点的行为证据,没有做"蒸馏条件用提示输入 vs 原始输入"的分解消融。

4. 物体感知的空间定位奖励:说了哪个物体,就得框在哪个物体上

前面几项奖励(答题、格式、时序)沿用 Open-o3-video,本文新加的是空间定位奖励。旧的写法只挑预测框里 IoU 最大的那一个来给分,完全不检查预测的物体名和这个框是否对应,结果模型学会了多吐几个框、总有一个能蒙中,同时伴随与物体无关的幻觉框。本文的奖励要求"声称的每个物体都要在自己的位置上被框住"。具体地,从推理文本里解析出 (物体名 \(o_m\)、时间戳 \(t_m\)、框 \(b_m\)) 三元组,先做软身份匹配:预测名与真值名完全相同、或互为子串(如 carblack car)才算一致,原文 Fig. 2 里把黑车的位置配到"white van"这类不一致匹配直接记 0;再对匹配上的物体,把预测框与它时间对齐的那个关键帧 \(\tilde t_m\) 上的所有真值框逐一算 IoU 取最大;最后只在同时满足时序对齐(\(\Delta t_m \le \tau\))且至少匹配上一个物体的预测集合 \(\mathcal{I}\) 上求平均:

\[r_{\text{spa}}(x,y)=\frac{1}{|\mathcal{I}|}\sum_{m\in\mathcal{I}}\frac{1}{|\mathcal{O}^{\text{match}}_m|}\sum_{o\in\mathcal{O}^{\text{match}}_m}\max_{b^{\text{gt}}\in\mathcal{B}^{\text{gt}}(\tilde t_m)}\mathrm{IoU}(b_m,b^{\text{gt}})\]

(⚠️ 原文式 (8) 排版损坏,此处按正文描述重写,各符号含义以原文为准。)式中的时序门控 \(\Delta t_m \le \tau\) 不是装饰:如果时间戳本身就错,框落在哪一帧都无从谈起,不做门控会把"框对但时刻错"的预测也算成空间上的正收益,等于给了模型一条绕过时序定位的捷径。"多区域平均"而不是"取最大"则消掉了单框蒙混的收益,让每个声称的物体都成为必须兑现的承诺。

损失函数 / 训练策略

总奖励是四项相加:

\[r(x,y) = r_{\text{acc}}(x,y) + r_{\text{fmt}}(x,y) + r_{\text{tmp}}(x,y) + r_{\text{spa}}(x,y)\]

其中答题奖励 \(r_{\text{acc}}\) 按任务类型自适应:选择题取二值正确性,开放题用 ROUGE 文本相似度,空间定位类题用预测框与真值框的视觉 IoU,时序定位类题用预测区间与真值区间的时序 IoU——这样一套信号就能覆盖异构的任务格式。格式奖励 \(r_{\text{fmt}}\) 是二值的,检查 <think> / <answer> 标签以及 <obj> / <box> / <t> 标注是否合法,满足给 1。时序奖励 \(r_{\text{tmp}}\) 沿用 Open-o3-video:把生成的 M 个时间戳各自匹配到最近的标注时刻,若落在某个真值区间内给满分 1,否则按与最近真值时刻的偏差 \(\Delta t\) 做高斯衰减 \(\exp(-\Delta t^2 / 2\sigma^2)\),再对这 M 个取平均。四项奖励在 rollout 组内归一化后算 advantage,供 GSPO 更新。

训练策略上,ST-Reasoner 沿用"先 SFT 冷启动、再做 RL"的两段式,RL 用 GSPO;VP-Selector 单独在 TVQA+ 与 VideoEspresso 的训练集上以 LoRA 分类方式训练,进入 RL 阶段后全程冻结。自蒸馏取 top-2 候选、权重 \(\alpha = 0.1\),难样本阈值 \(k\) 为预设值(阈值消融在附录)。为公平比较,ST-Reasoner 的 SFT 与 RL 数据与 Open-o3-video 保持一致。推理阶段只保留单次前向,无提示、无工具;论文的延迟对比在单张 NVIDIA RTX 6000 (40GB) 上测得。

实验关键数据

主实验

时空推理主战场 V-STAR(What 准确率 + When/Where 两个 Chain 的 IoU,mAM / mLGM 为综合指标):

模型 What Acc When Chain1 When Chain2 Where Chain1 Where Chain2 mAM mLGM
GPT-4o 60.8 16.7 12.8 6.5 3.0 26.8 38.2
Gemini-2-Flash 53.0 24.5 23.8 4.6 2.2 26.9 35.6
Conan(工具调用) 54.5 14.4 14.9 4.4 0.6 23.9 32.4
Video-o3(工具调用) 29.7 5.5 23.1 0.5 0.0 13.3 15.4
Qwen2.5-VL-7B 33.5 15.4 13.8 17.0 2.5 19.3 22.4
Video-LLaMA3 41.9 23.0 23.1 0.9 0.2 21.7 27.0
LLaVA-Video 49.5 10.5 12.2 1.9 1.3 20.8 27.3
VideoChat-R1.5 49.7 14.4 5.0 14.8 1.5 22.5 29.3
Open-o3-video(此前最强工具无关) 60.2 25.0 24.5 24.8 5.9 33.4 46.0
VisionCoach (Ours) 61.1 25.7 25.4 27.2 5.3 34.3 47.5
Δ vs. Qwen2.5-VL-7B +27.6 +10.3 +11.6 +10.2 +2.8 +15.0 +25.1

通用视频理解(VideoMME / WorldSense / VideoMMMU / PerceptionTest,* 表示作者自行复现):

模型 VideoMME Overall VideoMME Long WorldSense Overall WorldSense Recognition VideoMMMU Overall VideoMMMU Perception PerceptionTest
GPT-4o 71.9 42.6 61.2 66.0
EgoR1 (w/o RAG)(工具调用) 58.7 50.8 42.0 40.3 34.4 37.6 65.8
LongVT-RL-7B(工具调用) 66.1 22.1 22.5 42.6 50.0 55.4
Qwen2.5-VL-7B 62.4 50.8 36.1 33.7 51.2 64.7 66.2
VideoRFT-7B 59.8 50.7 38.2 36.6 51.1 66.0
VideoR1-7B 61.4 50.6 35.5 32.8 52.4 65.3
Open-o3-video-7B 63.1* 53.1* 37.5 36.8 52.3 68.0 67.5
VisionCoach-7B (Ours) 63.3 53.2 43.8 41.8 54.4 70.3 68.7

消融实验

逐项打开四个组件(\(r_{\text{spa}}\):物体感知空间奖励;LSD:自蒸馏;VP-F:固定使用压暗提示;VP-S:VP-Selector):

\(r_{\text{spa}}\) LSD VP-F VP-S Acc mAM mLGM
59.4 31.1 42.7
59.6 30.4 41.6
darken 58.3 29.7 40.6
60.7 31.3 43.1

VP-Selector 作为即插即用模块,挂到不同 backbone 上(TVQA+ 为域内,PerceptionTest 子集为域外):

模型 TVQA+(域内) PerceptionTest(域外)
Qwen2.5-VL-7B 54.5 52.2
+ VP-Selector 56.2 56.7
GPT-4o 71.8 61.5
+ VP-Selector 75.3 62.4
Gemini-2.5-Flash 72.4 47.4
+ VP-Selector 76.3 50.4

关键发现

  • 提示本身不是收益来源,"按输入选提示"才是。消融里固定压暗提示(第三行)比不加提示(第二行)在所有指标上一致变差(Acc 59.6 → 58.3,mAM 30.4 → 29.7),而换成 VP-Selector(第四行)后全面最好(60.7 / 31.3 / 43.1),正负两边的对照比单看增益更有说服力。
  • 自蒸馏单独使用时对定位指标反而是负作用:只加 LSD 时 Acc 从 59.4 微涨到 59.6,但 mAM 从 31.1 掉到 30.4、mLGM 从 42.7 掉到 41.6。论文的说法是"略微提升答题准确率但不稳定改善定位",这暗示蒸馏到的轨迹本身定位质量未必更好,"提示 + 蒸馏"这对组合才是有效单元。另外要诚实承认:VP-Selector 带来的定位净增益不大(相对只用 \(r_{\text{spa}}\) 的 31.1 / 42.7,提升 +0.2 mAM / +0.4 mLGM),主要收益落在答案准确率上(+1.3 Acc)。
  • 自适应提示的分布与收益:58% 的样本被判为难样本;VP-Selector 在这些样本上主要选择注意力类提示(25.4%)和帧号类提示(20.1%),其余为红圈、压暗等;不同提示类型都带来正收益,相对奖励增益 \(\left(R'_i - \bar R_i\right)/\bar R_i\) 落在 +56% 到 +66% 之间。
  • VP-Selector 跨模型可迁移:作为独立模块接到 Qwen2.5-VL(域外 52.2 → 56.7,+4.5)、GPT-4o(61.5 → 62.4)、Gemini-2.5-Flash(47.4 → 50.4)上都涨点,说明它学的是"输入—提示"的匹配规律而不是某个模型的偏好。
  • 推理延迟:在单张 RTX 6000 上,VisionCoach 优于文本式推理(Qwen2.5-VL、Video-R1)与工具调用式(EgoR1、LongVT-RL)方法的同时,延迟显著低于依赖外部工具的做法——即"涨点不涨开销"。
  • 更细粒度的定位基准:HCSTVG 上 VisionCoach 的 m_vIoU 为 19.3、[email protected] 为 25.4、[email protected] 为 6.1,相对 Open-o3-video(17.1 / 22.6 / 5.2)分别提升 +12.9% / +12.4% / +17.3%;与 GPT-5.4 的 20.2 / 25.9 / 5.1 相比,m_vIoU 与 @0.3 略低,但在更严格的 @0.5 阈值上反超(6.1 vs 5.1),而 backbone 规模小得多。Charades-STA 上论文报告优于所有对比的 VideoLLM(原文 Tab. 4),⚠️ 但该表在缓存文本中两栏交错、逐行数值无法可靠还原,故不在此列出,具体数字以原文为准。

亮点与洞察

  • 把"提示"从推理时工具变成训练时监督信号,是这篇论文最让人"啊哈"的地方:提示携带的定位信息被烧进参数后,推理侧的成本完全不变,而 VP-Selector 还能顺手当即插即用增强模块(Tab. 7 就是它的第二用途)。这条"训练时用重输入、推理时用轻输入"的思路可以直接迁移到任何"输入变换"场景(多帧采样策略、分辨率选择、检索式上下文扩充)。
  • 用多个代理模型的投票结果当标签,绕开了"哪张提示更好没有标准答案"这一标注难题。\(A_k \cdot G_k\) 这个只用两个现成指标相乘的排序函数极其廉价,却把不可标注的问题变成了可监督的分类问题;同样的套路可用于选数据增强、选 prompt 模板、选查询改写策略。
  • 物体身份一致性 + 多框 IoU + 时序门控这一组合直接针对 reward hacking:把"最好那个框"改成"每个声称的物体都要兑现",把"框对但时刻错"排除在外。任何带结构化输出的 RL 任务(引用定位、表格抽取、图表标注)都会遇到同款"多吐几个候选蒙混"的漏洞,这套奖励设计的思路可直接借鉴。
  • 难样本门控几乎零成本:判难只需要一次 rollout 的平均奖励,是采样过程的副产品,不需要额外训练难度预测器或引入人工难度标签。

局限与展望

  • "内化"的机制解释偏叙事。论文给出的证据是行为层面的(推理时撤掉提示不掉点),但没有做"蒸馏项条件在提示输入 vs 原始输入"的分解实验,也没有验证撤离提示后模型是否真的复现了提示带来的注意力重分布(Fig. 5 只对比了训练中的注意力图)。
  • 消融显示定位指标的净提升偏小(相对只用 \(r_{\text{spa}}\) 仅 +0.2 mAM),而 V-STAR 上的主要增益来自答案准确率;对"定位"这一被反复强调的核心痛点,证据强度不如"答对"。
  • VP-Selector 的数据构造成本没有被报告:每个 \((x,q)\) 需要在 \(|\mathcal{V}|\) 个候选提示上、用多个代理推理器各跑一遍推理,才能得到一个训练标签,论文没有给出这一步的推理开销与数据规模。
  • 关键超参(难样本阈值 \(k\)、时序容差 \(\tau\)、高斯衰减 \(\sigma\))的消融放在附录;本笔记依据的是正文缓存,未读到附录内容。
  • 域内数据(V-STAR、TVQA+)与训练数据的关系可能带来乐观偏差,跨域证据主要来自 PerceptionTest 的一个均匀子集。

相关工作与启发

  • vs Open-o3-video: 两者同属"在单模型内交错定位与推理"的路线,本文骨架(GSPO 训练 + 四项奖励中的三项 + 两段式 SFT/RL)明确沿用对方,差别在于增加了训练时的视觉提示教练、自蒸馏,以及物体感知的空间奖励。结果上 V-STAR 从 60.2 → 61.1 Acc、33.4 → 34.3 mAM,HCSTVG 从 17.1 → 19.3 m_vIoU。提升方向一致但幅度不算数量级,更像是在同一框架上对感知侧做加固,这也意味着其增益高度依赖所继承的基座。
  • vs 工具调用式方法(VideoZoomer / Conan / Video-o3 / EgoR1 / LongVT-RL): 他们把干预放在推理时——反复裁剪、缩放、检索,因而延迟高、且模型本身不获得感知能力;本文把干预前移到训练时,推理只走一次前向。代价是训练阶段多出一整套 VP-Selector 训练与代理推理器数据构造流程。
  • vs 纯文本式 RL(Video-R1 / VideoRFT): 他们只对齐最终答案,定位靠模型自发涌现;本文用 grounding 奖励加提示引导显式约束定位。差距在 V-STAR 的 When / Where 维度上最明显——Qwen2.5-VL-7B 的 Where Chain1 是 17.0,而 VisionCoach 是 27.2,说明显式定位监督确实是那条更有效的路子。

评分

  • 新颖性: ⭐⭐⭐⭐ 把视觉提示从推理工具改造成训练时的监督信号,并配自蒸馏完成内化,视角干净;但主干(GSPO + 四项奖励)明显继承 Open-o3-video,属于重要增量而非全新框架。
  • 实验充分度: ⭐⭐⭐⭐ 覆盖 6 个基准(V-STAR、VideoMME、WorldSense、VideoMMMU、PerceptionTest、Charades-STA 与 HCSTVG),消融、即插即用、注意力可视化和延迟对比都做了;不足是关键超参消融放在附录、提示数据构造成本未报告、定位指标的消融增益偏小。
  • 写作质量: ⭐⭐⭐⭐ 用 Fig. 3 / Tab. 1 两个小分析先立问题再给方法,算法表把难样本分支与蒸馏条件写得很清楚;扣分在公式排版(缓存中式 1、2、3、8 均明显错乱)。
  • 价值: ⭐⭐⭐⭐ 提供了一条"推理时零额外开销即可提升时空定位"的可复用路线,VP-Selector 还能单独作为即插即用模块复用,工程价值明确。