论文 :VideoArgus: Agentic Rubric-Grounded Unified Evaluation for Video Generation and Editing
项目页 :https://zzzmyyzeng.github.io/VideoArgus
数据集 :HuggingFace
zengziyun/VideoArgusBench
一句话总结
不用固定指标去评所有视频,而是先为每一条输入单独写一份评分表(rubric),冻结后复用给所有候选模型,再由 agent 调 CV 工具逐条取证打分。
一、Motivation
1.1 现有评测的三个痛点
| 痛点 | 具体表现 |
|---|---|
| 评测内容静态 | benchmark 的 prompt 和素材固定不变,模型容易在这批测试集上过拟合 |
| 覆盖面碎片化 | T2V 用 VBench,I2V 用 VBench-I2V,编辑用 OpenVE-Bench ------ 每个任务一套指标、一套 judge、一套聚合方式,跨任务无法比较 |
| 分数无法解释 | FVD / CLIPScore / MLLM 直接打的总分都是一个标量,说不出"为什么扣分",也无法诊断 |
1.2 核心洞察
单一全局指标的根本问题是:它在每个 prompt 上奖励的都是同一件事。
但不同 prompt 关心的东西压根不同:
- 「毕业生抛起学士帽,帽子旋转、划弧、落回」→ 该查抛体物理是否合理
- 「把视频里的人换成参考图这个人」→ 该查身份是否一致
用同一套维度去评这两条,必然要么问了无关的问题,要么漏掉了关键的问题。
于是作者的方案是:让评测标准跟着输入变。
二、Related Work
2.1 传统自动指标
FVD、IS、CLIPScore 这类。优点是便宜、可复现,缺点是与人类判断相关性弱,且完全无法定位问题在哪。论文的实验也印证了这点 ------ 在 T2V 上原 benchmark 评测器与人类的排序相关性只有 0.162 ,TI2V 甚至是轻微负相关(−0.060)。
2.2 多维度 benchmark
代表:VBench / VBench-I2V (分解成多个维度,每维度一个人类对齐的评测器)、T2V-CompBench(组合性生成)。
这类工作已经意识到"总分不够用",但它的结构是一个维度一个固定槽位、所有视频共用同一套槽位。VideoArgus 的区别是:维度只当分类标签用,真正打分的 criterion 按输入现场生成、数量不固定。
2.3 学习型 / 人类偏好对齐指标
代表:VideoScore (在多维度人类评分数据上训回归模型)、VE-Bench(面向文本驱动视频编辑的主观对齐指标)。
这类的问题是:训练分布一旦固定,泛化到新任务、新失效模式就要重新标数据、重新训。VideoArgus 走的是免训练 + 换 backbone 即可的路线。
2.4 MLLM-as-Judge
直接让多模态大模型看视频打分(Video-Bench 等)。VideoArgus 明确反对 这种用法 ------ 它把 VLM 降格为「取证工具 + 逐条 judge」,总分只能由聚合公式算出,没有任何模型直接给出过总分。
2.5 LLM 领域的 rubric 思潮
近期 LLM 评测里的 rubric-as-reward / checklist grading 是这篇工作的直接思想来源。VideoArgus 可以看作把这套范式搬到视频域,并额外解决了两个视频特有的问题:时序取证 和多种条件输入的统一。
2.6 定位对比
| 标准是否随输入变 | 是否可解释 | 是否需训练 | 是否跨任务统一 | |
|---|---|---|---|---|
| FVD / CLIPScore | ✗ | ✗ | ✗ | ✗ |
| VBench 系列 | ✗(固定维度槽位) | 部分 | ✗ | ✗ |
| VideoScore / VE-Bench | ✗ | 部分 | ✓ | ✗ |
| MLLM-as-Judge | ✗ | 弱(黑箱权衡) | ✗ | 部分 |
| VideoArgus | ✓ | ✓(条目级分数+理由+报告) | ✗ | ✓(5 任务同一接口) |
三、Method

3.1 整体流程
一条输入 x = (prompt, 条件媒体)
│
├──[LLM 只看输入]──→ Rubric Generation ──→ 冻结的 rubric ❄️ ──┐
│ │
└──[同一条输入喂给所有模型] ├──→ Evaluation ──→ Final Score
├─→ Veo 3.1 → 视频 V₁ ──────────────────────────┤
├─→ Seedance 2.0 → 视频 V₂ ──────────────────────────┤
└─→ Wan 2.2 → 视频 V₃ ──────────────────────────┘
关键 :上下两条分支从输入分出去后中途完全不相交 ,只在评测阶段第一次汇合。这就是 output-blind ------ 写 rubric 时,被评的视频还不存在。
3.2 输入形式化:一个接口覆盖五个任务
xi=(pi, Iifirst, Iisubj, Visrc)x_i = (p_i,\ I_i^{\text{first}},\ \mathcal{I}_i^{\text{subj}},\ V_i^{\text{src}})xi=(pi, Iifirst, Iisubj, Visrc)
即 prompt + 首帧图 + 主体图集合 + 源视频,缺省即为空:
| 任务 | 条件输入 | Bench 样本数 |
|---|---|---|
| T2V | 纯文本 | 202 |
| TI2V | 文本 + 首帧 | 203 |
| TS2V | 文本 + 主体图 | 205 |
| TV2V | 文本 + 源视频(编辑) | 208 |
| TSV2V | 文本 + 主体图 + 源视频 | 208 |
全部任务共用一条 rubric 生成 prompt,靠"哪些条件输入存在"自动推断该激活哪些 criterion。
预处理:图片保持长宽比、最长边 768px;源视频 2 fps 采样。
3.3 Rubric 的结构(本文核心)
先明确层级 ------ rubric 是一整张评分表,criterion 是表上的一行,是嵌套关系不是并列关系:
rubric(一份,对应一条输入)
├── criterion 1
│ ├── concrete requirement ← 查什么
│ ├── scoring rule ← 这一条的打分规则
│ ├── expected failure modes ← 这一条的预期失效方式
│ ├── evidence plan ← 这一条的取证计划
│ └── hard/soft, 重要度, t_i, c_i
├── criterion 2 ...(同样 8 个字段,各自独立)
└── ... 平均 11.9 条(范围 6--17)
每条 criterion 的 8 个字段:
| 字段 | 含义 |
|---|---|
| Semantic dimension | 语义维度标签,仅分类用,不占打分槽位 |
| Concrete requirement | 要检查的具体可观测属性 |
| Constraint type | hard / soft |
| Importance level | low / med / high → 权重 wi∈{1,2,3}w_i \in \{1,2,3\}wi∈{1,2,3} |
| Scoring rule | 0--10 整数打分规则 |
| Expected failure modes | 预期的失效方式 |
| Optional hard cap | 分数上限 cic_ici + 触发阈值 tit_iti |
| Evidence plan | 目标实体/事件 + 参考源 + 有序工具序列 |
22 个维度 vs criterion 的关系 :背后有一个 22 维度的统一池子(分 general 与 input-conditional 两类),但它是语义 taxonomy 而非一维度一槽位的模板 ------ 一个维度可产出 0 条、1 条或多条独立打分的 criterion。
覆盖范围包括:物体与属性正确性、计数、空间关系、时序关系、动作、运动、镜头行为、物理合理性、视觉质量、风格、首帧保真、主体身份、编辑遵从、源内容保留、合成质量等。
实例(T2V,prompt = 毕业生抛起学士帽,帽子旋转、划弧、落回):
| 要求 | 类型·重要度 |
|---|---|
| 画面中有单个人类毕业生作为主体 | hard·high |
| 毕业生抛出并接住学士帽 | hard·high |
| 帽子遵循抛体运动物理规律 | soft·med |
| 学位袍袖子随手臂动作摆动 | soft·med |
3.4 Evidence Plan:从「问题清单」到「可执行规格」
三个字段回答三个不同问题:
concrete requirement→ 查什么(what)evidence plan→ 怎么查(how)scoring rule→ 查到后怎么给分(how to score)
evidence plan 包含三部分:目标实体/事件 、可用参考源 、有序的工具调用序列(是 ordered,不只是"可以用这些工具")。
对比两条就能看出参考源为什么必须写明:
【T2V 动作类】
requirement : 毕业生抛出并接住学士帽
target : 毕业生 + 学士帽
reference : 无(纯文本,无参考媒体)
tools : ① 目标定位跟踪 → ② 时序密集探针 → ③ vlm_qa「接住的是同一人吗」
【TS2V 身份类】
requirement : 生成人物面部身份与参考图一致
target : 人物面部
reference : 主体图 I^subj ← 逻辑上必须有"和什么比"
tools : ① 目标定位 → ② reference-guided cropping → ③ DINOv3 相似度
工具箱分两类:
| 专用工具 | vlm_qa |
|
|---|---|---|
| 输入 | 结构化参数 | 自然语言问题 + 帧 |
| 输出 | 数值/掩码/框/文本 | 自然语言回答 |
| 能答的问题 | 只有一种 | 任何语义问题 |
| 性质 | 客观、可量化 | 主观判断 |
| 例 | tracking、DINOv3 相似度、OCR、depth、flicker probe、感知质量、可选参考检索 | 「袖子摆动是否自然」 |
论文强调 vlm_qa is not a separate holistic evaluator ------ 它是工具箱里的一员,只回答 criterion 作用域的窄问题,不是"看一眼视频打个总分"的裁判。像"运动自然度"这种没有对应 CV 工具的审美类判断,vlm_qa 是主路径而非兜底。
采样配置:候选视频 4 fps / ≤24 帧;密集时序探针 ≤48 帧 @ 8 fps;最终判断 ≤12 张代表帧。
3.5 Plan-Normalization:一个诚实的工程层
evidence plan 是 LLM 盲写的意图声明,不是经过编译器检查的代码。所以执行前有一层归一化:
| 操作 | 解决什么 | 例子 |
|---|---|---|
| resolves visual conditions | 抽象的"参考图"绑定到实际媒体句柄 | Isubj\mathcal{I}^{\text{subj}}Isubj 是集合,用哪张?T2V 根本没有参考媒体 → 空引用 |
| checks tool arguments | 参数缺失/越界 | 要求第 60 帧但只采了 48 帧 |
| checks inter-tool dependencies | 顺序与数据流 | DINOv3 需要裁好的图 → 必须先跑 cropping;序列写反就断了 |
| maps unavailable operations | 工具箱里没有的操作 | 「用光流估角速度」→ tracking + 时序探针 |
拿不到专用证据 → 退化为 criterion-specific vlm_qa(注意作用域没变,不会滑向整体打分)。实际执行的工具序列和所有 fallback 决策都记入报告,可审计、可诊断。
3.6 打分与聚合
第 0 步:对 judge 隐藏三样东西
Criterion importance, failure thresholds, and hard caps are hidden from the judge and used only during aggregation.
| judge 看得到 | judge 看不到 |
|---|---|
| 要查什么、打分规则、证据 | wiw_iwi、tit_iti、cic_ici |
否则 judge 会算计"给 4 分会砸总分,给 5 分就安全",在阈值附近产生打分扭曲。藏起来后它没有能力做策略性权衡:
judge → 事实判断(这条做到了几分)
公式 → 价值判断(这条多重要、多致命)
tit_iti、cic_ici 在 rubric 生成阶段就定好,不是看到分数再定,避免事后调参。
第 1 步:剔除无效分数。 解析失败 → 整条剔除(连分母一起),不是算 0 分 。有效下标集记为 I(V^)\mathcal{I}(\hat V)I(V^)。
第 2 步:加权平均基础分
B(V^)=∑i∈Iwisi∑i∈IwiB(\hat{V}) = \frac{\sum_{i \in \mathcal{I}} w_i s_i}{\sum_{i \in \mathcal{I}} w_i}B(V^)=∑i∈Iwi∑i∈Iwisi
第 3 步:硬性违规触发上限
F(V^)={i∈I∣ri is hard, si<ti}\mathcal{F}(\hat{V}) = \{ i \in \mathcal{I} \mid r_i \text{ is hard},\; s_i < t_i \}F(V^)={i∈I∣ri is hard,si<ti}
κ(V^)=min({ci∣i∈F}∪{10})\kappa(\hat{V}) = \min\big(\{c_i \mid i \in \mathcal{F}\} \cup \{10\}\big)κ(V^)=min({ci∣i∈F}∪{10})
∪{10}\cup\{10\}∪{10} 是为了处理 F=∅\mathcal{F}=\varnothingF=∅:此时 κ=10\kappa=10κ=10,代回下式得 S=BS=BS=B(无违规时最终分 = 基础分)。
第 4 步:软混合
S(V^)=(1−α)B(V^)+αmin(B(V^),κ(V^)),α=0.5S(\hat{V}) = (1-\alpha)B(\hat{V}) + \alpha \min\big(B(\hat{V}), \kappa(\hat{V})\big), \quad \alpha = 0.5S(V^)=(1−α)B(V^)+αmin(B(V^),κ(V^)),α=0.5
即"不考虑硬性违规的分"与"考虑硬性违规的分"各占一半。
数值例子(我按上面那份 rubric 构造):
| # | 要求 | 类型·重要度 | www | ttt | ccc | 得分 |
|---|---|---|---|---|---|---|
| 1 | 单个毕业生为主体 | hard·high | 3 | 5 | 4 | 9 |
| 2 | 抛出并接住帽子 | hard·high | 3 | 5 | 4 | 3 |
| 3 | 帽子走抛物线 | soft·med | 2 | -- | -- | 5 |
| 4 | 袖子随手臂摆动 | soft·med | 2 | -- | -- | 7 |
| 5 | 无闪烁 | soft·low | 1 | -- | -- | 8 |
B=3⋅9+3⋅3+2⋅5+2⋅7+1⋅83+3+2+2+1=6811=6.18B = \frac{3{\cdot}9+3{\cdot}3+2{\cdot}5+2{\cdot}7+1{\cdot}8}{3+3+2+2+1} = \frac{68}{11} = 6.18B=3+3+2+2+13⋅9+3⋅3+2⋅5+2⋅7+1⋅8=1168=6.18
条目 2 是 hard 且 3<53<53<5 → 触发 → κ=4\kappa=4κ=4
S=0.5×6.18+0.5×min(6.18, 4)=5.09S = 0.5\times 6.18 + 0.5\times\min(6.18,\,4) = \mathbf{5.09}S=0.5×6.18+0.5×min(6.18,4)=5.09
为什么不直接截断成 4? 因为会丢信息:
| 基础分 | 硬截断 min(B,κ)\min(B,\kappa)min(B,κ) | 软混合 α=0.5\alpha{=}0.5α=0.5 | |
|---|---|---|---|
| 视频 A | 6.18 | 4.00 | 5.09 |
| 视频 C(其他项都很好) | 8.50 | 4.00 | 6.25 |
硬截断把差 2.3 分的两个视频压成同一个数;软混合既罚了红线,又保留区分度。这就是论文说的 penalizes essential failures while retaining information from all criterion scores。
边界情况 :若 B<κB < \kappaB<κ,则 min(B,κ)=B\min(B,\kappa)=Bmin(B,κ)=B,S=BS=BS=B ------ cap 不起作用。所以 cap 只在"整体不错但踩了红线"时才真正咬人。
3.7 两个 backbone 的分工
| 阶段 | 模型 | 调用次数 |
|---|---|---|
| rubric 生成 | Claude Opus 4.8(闭源 API) | 每条输入一次 → 1,026 次 |
| 取证 + 打分 | Qwen3.6-27B(vLLM 本地) | 每个候选视频一次 → 1,026 × M 次 |
贵的那步次数最少且跑完就冻结发布;便宜的那步承担随模型数 MMM 线性增长的部分。 对下载 benchmark 的人来说 rubric 成本直接是 0 ------ 这就是论文说的 "no hosted-API keys on the eval path"。
四、Experiments
4.1 VideoArgus-Bench 统计
| 项 | 值 |
|---|---|
| 输入实例 | 1,026 |
| 独立图片 / 独立视频 | 653 / 416 |
| 指令平均长度 | ~26 词 |
| rubric 平均条目数 | 11.9(6--17) |
| 语义维度池 | 22 |
| 评测的 model--task 对 | 55 |
构建流程:任务专属 blueprint + 质量过滤的 Pixabay 素材 → 自动检查可行性/图文一致性/去重 → 人工核验、修改或丢弃。
只发布输入 + 冻结的 rubric,不发布生成视频 ------ 评测自己模型的输出。
4.2 人类对齐实验设置
刻意用外部 benchmark 取样,避免自评自:
| 任务 | 来源 | 实例数 |
|---|---|---|
| T2V | VBench | 48 |
| TI2V | VBench-I2V | 48 |
| TS2V | OpenS2V-Nexus | 48 |
| TV2V | OpenVE-Bench | 56 |
| TSV2V | EditVerseBench | 10 |
每条输入 6 个模型输出 → 1,260 段视频。15 名受训标注者看 prompt 与条件输入,对匿名随机化视频 0--10 打分、并列项排序,分数取平均。
Baseline 用各来源 benchmark 自己规定的评测器(原始指标、prompt、judge、聚合方式)。
指标:R-ρ(样本内 Spearman,跨样本宏平均)、R-τ(样本内 Kendall)、P-ρ(池化 Spearman)。常数分样本排除。
4.3 主结果:与人类的相关性
| 任务 | 指标 | 原 benchmark 评测器 | VideoArgus-VLM | VideoArgus-Full |
|---|---|---|---|---|
| T2V | R-ρ / R-τ / P-ρ | 0.162 / 0.104 / 0.073 | 0.436 / 0.472 / 0.513 | 0.496 / 0.550 / 0.480 |
| TI2V | R-ρ / R-τ / P-ρ | −0.060 / −0.059 / −0.050 | 0.590 / 0.673 / 0.606 | 0.605 / 0.690 / 0.663 |
| TS2V | R-ρ / R-τ / P-ρ | 0.524 / 0.426 / 0.471 | 0.612 / 0.692 / 0.611 | 0.631 / 0.670 / 0.632 |
| TV2V | R-ρ / R-τ / P-ρ | 0.548 / 0.452 / 0.521 | 0.593 / 0.601 / 0.636 | 0.608 / 0.625 / 0.618 |
| TSV2V | R-ρ / R-τ / P-ρ | 0.686 / 0.587 / 0.729 | 0.715 / 0.751 / 0.703 | 0.749 / 0.829 / 0.708 |
读法:
- 提升最大的是 T2V 和 TI2V ------ 恰好是原生评测器与人类几乎不相关的两个(TI2V 甚至负相关)。
- TSV2V 上原评测器本来就有 0.686,提升空间自然小。
- 池化指标 P-ρ 上,Full 在 T2V(0.480 vs 0.513)和 TV2V(0.618 vs 0.636)反而不如 -VLM。(后面讨论)
4.4 工具消融
把所有 专用工具调用换成 criterion 专属 vlm_qa,冻结 rubric、采样帧、backbone、judge prompt、aggregation 不变。
结果:Full 在五个任务的 R-ρ 全胜 、R-τ 四胜 ,池化 mixed。
这个消融设计得很干净 ------ 它不是 "有 rubric vs 没 rubric",而是"专用工具 vs 全部通用提问",两边都仍然逐条问。所以它精确测出了专用 CV 工具的净贡献:有,但不压倒性。收益大头来自 rubric 这个结构本身。
4.5 Rubric 覆盖度 vs 人类
同样 210 条输入上:
| 自动诱导 | 人类撰写 | 比值 | |
|---|---|---|---|
| 总 criterion 数 | 11.68 | 4.98 | 2.33×(各任务 2.18--2.56×) |
| hard criterion 数 | 2.09 | 2.27 | ≈1× |
结论:是覆盖更广,不是一味更严 ------ 硬性红线的数量和人类基本一致。
4.6 Backbone 鲁棒性
(任务宏平均排名相似度,每任务 6 个模型,五任务平均)
| 换什么 | 固定什么 | 相似度 |
|---|---|---|
| rubric 生成器(Opus 4.8 / GPT 5.6 Sol / Gemini 3.1 Pro) | 评测器 | 0.909 |
| 评测器(Qwen3.6-27B / Gemma4-31B) | rubric | 0.931 |
4.7 榜单
| 任务 | 第一 | 第二 | 最佳开源 |
|---|---|---|---|
| T2V | Seedance 2.0 | Veo 3.1 | HunyuanVideo-1.5 |
| TI2V | Seedance 2.0 | Kling v3 Omni | HunyuanVideo-1.5 |
| TS2V | Seedance 2.0 | Kling v3 Omni | OmniWeaving |
| TV2V | Seedance 2.0 | Kling v3 Omni | Kiwi-Edit |
| TSV2V | Seedance 2.0 | Kling v3 Omni | Aurora |
Seedance 2.0 五项全冠。
4.8 成本
| 项 | 值 |
|---|---|
| rubric 生成 token | 平均 11,223 in / 7,007 out |
| rubric 生成单价(Opus 4.8,5/25 per M) | **0.231/条**(各任务 0.206--0.266) |
| 换 GPT 5.6 Sol / Gemini 3.1 Pro | 0.323 / 0.125 |
| 评一段视频 | ~0.033 H100 GPU-hour,零 API 费 |
全库 rubric ≈ $237 一次性成本,之后评任意多个模型都不再产生这笔开销。
五、Conclusion
VideoArgus 提出了一个我认为相当漂亮的抽象:把 rubric 当作「可执行的评测规格」。
它做的事情是把两件一直被混在一起的东西拆开:
- 评什么 → LLM 一次性诱导,output-blind,冻结,公开
- 怎么查 → agent 按 evidence plan 调 CV 工具取证
- 怎么加权 → 明写的聚合公式,wiw_iwi / tit_iti / cic_ici / α\alphaα 全部可审计
三个直接收益:
- 公平 ------ 同一输入下所有模型面对完全相同的规格,分数差异只能来自视频本身
- 摊销 ------ rubric 每条输入只生成一次,评的模型越多单位成本越低
- 解耦 ------ 两端 backbone 可独立替换(相似度 0.909 / 0.931),且贵的推理放在 API、便宜的批量视觉放在本地
在五个任务上都超过了各自 benchmark 的原生评测器,尤其在原评测器几乎失效的 T2V / TI2V 上提升明显。