【论文分享】看懂动态世界的因果:解析 CVPR 顶会《Few-Shot Referring Relationships in Videos》的时空图与置信度传播

在我们之前分享的 【论文分享】告别“近视眼”:对比场景图(Contrastive Scene Graphs)如何用数学与结构重塑多模态认知? 中,我们深入探讨了如何利用图结构与对比学习治愈大模型在 2D 静态图片上的“关系盲”,让模型分清到底是谁压在谁身上。

但现实世界并不是一张张静止的切片,而是一条奔流不息的时间长河。当我们将目光投向动态视频时,一个更为严峻的认知鸿沟横亘在面前:

给 AI 输入一段长视频并询问:“穿红衣服的骑手跃过栅栏的动作发生在哪里?”

  • 传统目标检测与大模型可以轻松框出画面里的“人”、“马”和“栅栏”;
  • 但只要画面里有多匹马、多个骑手,或者发生动作的瞬间只有短短几秒,模型就会彻底陷入“时空迷失”——它分不清到底哪个人和哪匹马正在完成“跃过”动作,更无法在几百帧的连续画面中稳定咬住这一对交互轨迹。

更致命的是,现实世界中的动态交互千奇百怪,视频标注成本是图片的成百上千倍,我们根本不可能提前为每一种冷门动作收集成千上万条带时空标注的训练视频。

在计算机视觉顶会 CVPR 2023 上,来自印度理工学院(IIT Jodhpur)的研究团队发表了一篇极具开创性的重磅论文 —— 《Few-Shot Referring Relationships in Videos》。论文提出了一套优雅而强大的数学图模型框架:

“无需海量标注,仅凭 2~3 个参考演示视频(Few-Shot),借助 TT-分部随机场(TT-partite Random Field)与置信度传播(Belief Propagation)算法,就能在充满干扰的长视频中,精确提取出罕见动态交互的完整时空时序管道(Spatio-Temporal Tubelets)!”

在这篇博客中,我们将用最通俗易懂的语言,彻底拆解这篇论文背后的数学原理、图模型推导、四大核心机械架构与元学习工程落地。

论文题目:Few-Shot Referring Relationships in Videos
作者团队:Yogesh Kumar, Anand Mishra (印度理工学院焦特布尔分校 IIT Jodhpur)
收录会议:CVPR 2023 (IEEE/CVF Conference on Computer Vision and Pattern Recognition)
论文链接:https://openaccess.thecvf.com/content/CVPR2023/html/Kumar_Few-Shot_Referring_Relationships_in_Videos_CVPR_2023_paper.html
博士毕业论文汇总 (arXiv):https://arxiv.org/abs/2610.21422 (Chapter 3 / Survey)
arXiv HTML 预览:https://arxiv.org/html/2610.21422v1
开源代码库:https://github.com/vl2g/RefRelations
核心领域:Video Understanding, Visual Relationship Grounding, Few-Shot Learning, Spatio-Temporal Modeling
技术亮点:TT-partite 随机场时空建模、查询条件平移嵌入 (TransE)、全局/局部双重语义聚合 (GSA/LLA)、置信度传播 (Belief Propagation)


01. 行业盲区:从 2D 静态图到 3D 动态视频的“时空因果鸿沟”

在静态单图中理解关系已经很不容易,而将关系推向连续视频,难度则呈几何级数暴增:

1
2
3
4
5
6
7
8
9
10
11
12
13
【2D 静态图关系 vs 3D 连续视频关系】

2D 静态图:(主语, 谓语, 宾语)
┌───────────────┐
│ [人] ──骑──> [马] │ ───> 难度:低 (只需判定两框空间重叠与几何拓扑)
└───────────────┘

3D 连续视频:(主语, 谓语, 宾语) 跨越时间轴
┌────────────────────────────────────────────────────────┐
│ 第 1 帧: 骑手还在马厩 第 50 帧: 骑手跨步腾空 第 100 帧: 平稳落地 │
│ (单帧看不出任何动作) (剧烈位移与遮挡) (动作结束归于平静) │
└────────────────────────────────────────────────────────┘
───> 难度:极高 (动作是时间的函数,且标注一条视频轨迹成本高达静态图的 100 倍!)

痛点 1:动作是时间的积分,单帧无法明辨

很多动态关系(如“超车”、“投篮”、“跳过”、“追赶”)在孤立的任意一帧截图中,看起来可能与“并排行驶”、“站立”或“跑步”毫无二致。动作的语义必须在 TT 帧的流动长河中连续积分才能体现。

痛点 2:标注成本贵到破产,催生 Few-Shot 刚需

如果依靠监督学习硬砸算力,为成千上万种长尾交互动作(如“冰壶投掷”、“给马钉铁掌”)采集几万条带有逐帧包围盒坐标的视频,标注成本将极其高昂。

因此,论文确立了一个极具实用价值的课题——小样本视频指称关系定位(Few-Shot Referring Relationships in Videos, FS-RRV):

  • 给出一段未标注的目标测试视频;
  • 给出一条文本查询指令,格式为主谓宾三元组 Q=⟨S,P,O⟩Q = \langle S, P, O \rangle(如 ⟨人,喂,狗⟩\langle \text{人}, \text{喂}, \text{狗} \rangle);
  • 提供仅仅 2~3 个展现该谓词 PP 的示范短视频(Support Videos);
  • 要求 AI 举一反三,在测试视频中将完成这一动作的主语和宾语的全程时空管道(Tubelets)严密框出!

02. 任务数学化定义:时空管道定位(Spatio-Temporal Tubelet Grounding)

在深入架构前,我们先用规范的数学语言界定系统输入与输出:

flowchart LR
    subgraph Inputs["系统输入端 (Inputs)"]
        Q["查询三元组 Q = ⟨S, P, O⟩<br/>例如: ⟨person, jump over, fence⟩"]
        S["少样本支持集 S = {V_1^s, ..., V_K^s}<br/>2~3 个展现 predicate P 的参考视频"]
        V["测试视频 V = {I_1, I_2, ..., I_T}<br/>由 T 帧图像组成的连续时空张量"]
    end

    Inputs --> Core["时空随机场 + 元学习网络"]

    Core --> Outputs["系统输出端 (Grounding Tubelets)"]
    subgraph Outputs["主宾时空管道"]
        TS["主语时空管道 T_S = {b_S^1, b_S^2, ..., b_S^T}"]
        TO["宾语时空管道 T_O = {b_O^1, b_O^2, ..., b_O^T}"]
    end

符号定义

  1. 测试视频:V={It}t=1TV = \{I_t\}_{t=1}^T,包含 TT 个时间步的视频帧;
  2. 查询指令:Q=⟨S,P,O⟩Q = \langle S, P, O \rangle,其中 SS 为主语类别(Subject),PP 为动态谓语(Predicate,训练时未见过的类别),OO 为宾语类别(Object);
  3. 少样本示范集:S={Vks}k=1K\mathcal{S} = \{V_k^s\}_{k=1}^K,包含 KK 个标注了该动作的短视频;
  4. 定位目标:求解主语管道 TS={bSt}t=1T\mathcal{T}_S = \{b_S^t\}_{t=1}^T 与宾语管道 TO={bOt}t=1T\mathcal{T}_O = \{b_O^t\}_{t=1}^T。其中 bt=[xmin⁡,ymin⁡,xmax⁡,ymax⁡]∈R4b^t = [x_{\min}, y_{\min}, x_{\max}, y_{\max}] \in \mathbb{R}^4 为第 tt 帧的包围盒。

03. 核心精髓:解构系统的三大数学支柱

面对海量候选目标与长时序干扰,作者没有盲目堆砌注意力参数,而是构筑了 三大严密的数学支柱:

1
2
3
4
5
             【系统三大核心数学支柱】

支柱一:T-分部随机场 ──────> 将全视频的时空候选建模为全局能量最小化问题
支柱二:查询条件平移嵌入 ──> 利用 TransE 向量几何 (主 + 谓 ≈ 宾) 度量单帧语义
支柱三:置信度传播算法 ────> 跨帧接力传递概率信件,在多项式时间内求解全局最优

🌟 支柱一:TT-分部随机场(TT-partite Random Field)与全局能量泛函

作者将视频中目标时空轨迹的搜索问题,形式化为一个在 TT-分部图模型 上的能量最小化任务。

在每一帧 t∈{1,…,T}t \in \{1, \dots, T\} 中,目标检测器会预先生成 NtN_t 个候选框对 (bS,it,bO,jt)(b_{S, i}^t, b_{O, j}^t)。整个视频的最佳轨迹选择,等价于在所有可能的管道组合中,寻找能量最低的构型:

E(TS,TO)=∑t=1TΦunary(bSt,bOt;Q,S)+λ∑t=1T−1Ψbinary(bSt,bOt,bSt+1,bOt+1)E(\mathcal{T}_S, \mathcal{T}_O) = \sum_{t=1}^T \Phi_{\text{unary}}(b_S^t, b_O^t; Q, \mathcal{S}) + \lambda \sum_{t=1}^{T-1} \Psi_{\text{binary}}(b_S^t, b_O^t, b_S^{t+1}, b_O^{t+1})

符号拆解翻译

  • E(TS,TO)E(\mathcal{T}_S, \mathcal{T}_O):整条时空轨迹的全局失真能量。能量越低,说明这条轨迹越符合我们的查询意图;
  • Φunary(bSt,bOt;Q,S)\Phi_{\text{unary}}(b_S^t, b_O^t; Q, \mathcal{S}):单帧一元势能(Unary Potential)。衡量第 tt 帧中,选出的这一对候选框到底有多符合文本三元组 QQ 以及示范视频 S\mathcal{S} 中的动作特征;
  • Ψbinary(… )\Psi_{\text{binary}}(\dots):跨帧二元时序势能(Binary Potential)。衡量相邻帧之间物理运动的平滑性与外观特征的一致性;
  • λ\lambda:时空平衡超参数,用于调节“单帧像不像”与“动作连不连贯”之间的平衡。

通俗比喻:
这就像刑警在追查案犯的逃窜路线:

  • 一元势能 检查每一处路口监控里的嫌疑人像不像我们要抓的人(单点匹配);
  • 二元势能 检查路口 A 到路口 B 的行驶时间与速度是否符合物理规律(防止上一秒在城东、下一秒瞬间闪现到城西)。

🌟 支柱二:查询条件平移嵌入(Translational Relationship Embedding)

在一元势能 Φunary\Phi_{\text{unary}} 的计算中,如何从极少数示例视频中提炼出未见动作的数学表征?作者引入了知识图谱中经典的 TransE 平移几何假设:

fS+fP≈fO  ⟺  fP≈fO−fS\mathbf{f}_S + \mathbf{f}_P \approx \mathbf{f}_O \iff \mathbf{f}_P \approx \mathbf{f}_O - \mathbf{f}_S

在特征向量空间中,一个合格的动作谓词,应当能够充当从主语到宾语的“空间位移桥梁”。

论文设计了一元能量损失项:

Φunary(bSt,bOt;Q,S)=−log⁡Rmeta(vSt,vOt,vUt  ∣  grel(Q,S))\Phi_{\text{unary}}(b_S^t, b_O^t; Q, \mathcal{S}) = -\log \mathcal{R}_{\text{meta}} \Big( \mathbf{v}_S^t, \mathbf{v}_O^t, \mathbf{v}_U^t \;\Big|\; \mathbf{g}_{\text{rel}}(Q, \mathcal{S}) \Big)

其中:

  • vSt,vOt\mathbf{v}_S^t, \mathbf{v}_O^t 分别为主语和宾语候选区域的 RoI 视觉特征;
  • vUt\mathbf{v}_U^t 为包裹主宾两者的并集区域(Union Box)视觉特征,承载两者相互作用的空间交互像素;
  • grel(Q,S)\mathbf{g}_{\text{rel}}(Q, \mathcal{S}) 是由示范视频与文本 Query 联合提炼出的谓词元原型(Meta Prototype);
  • Rmeta(⋅)\mathcal{R}_{\text{meta}}(\cdot) 为元关系匹配网络输出的匹配概率。

🌟 支柱三:置信度传播(Belief Propagation)与全局最优解码

假设视频有 T=100T = 100 帧,每帧有 N=30N = 30 个候选对。如果采用暴力枚举寻找最低能量轨迹,搜索空间是 30100≈1014730^{100} \approx 10^{147},在物理世界上根本不可行。

但由于时间维度的马尔可夫链状结构(每一帧只与相邻帧发生时序二元交互),作者巧妙利用 置信度传播(Belief Propagation, BP,在链状图上等价于 Viterbi 动态规划算法),将计算复杂度从指数级 O(NT)O(N^T) 断崖式压缩至多项式级别 O(T⋅N2)O(T \cdot N^2)!

消息更新方程(前向打分传递)

从第 1 帧开始向后传递时序消息信件:

mt→t+1(j)=min⁡i∈{1,…,Nt}[Φunary(i)+λΨbinary(i,j)+mt−1→t(i)]m_{t \to t+1}(j) = \min_{i \in \{1, \dots, N_t\}} \Big[ \Phi_{\text{unary}}(i) + \lambda \Psi_{\text{binary}}(i, j) + m_{t-1 \to t}(i) \Big]

  • mt→t+1(j)m_{t \to t+1}(j) 表示:在已知前 tt 帧所有最优决策的前提下,第 t+1t+1 帧如果选择第 jj 个候选对,能达到的累积最小能量;
  • 当消息一路传递到最后一帧 TT 后,直接选取累积能量最小的候选框对:

    (bST∗,bOT∗)=arg⁡min⁡j[Φunary(j)+mT−1→T(j)](b_S^{T*}, b_O^{T*}) = \arg\min_j \Big[ \Phi_{\text{unary}}(j) + m_{T-1 \to T}(j) \Big]

  • 随后根据记录的前驱指针进行 反向回溯(Backtracking),秒级提取出全片全局最优的主宾追踪轨迹 (TS∗,TO∗)(\mathcal{T}_S^*, \mathcal{T}_O^*)!

04. 机械架构落地:模型底层的工程实现与张量流动

如果只停留在“随机场”和“消息传递”这些抽象数学名词上,工程师翻开代码依然会一头雾水。这套算法在深度学习框架(PyTorch)中到底是由哪些神经网络层构成的?数据张量在各模块间是如何流动的?

作者在工程实现上设计了分工极度明晰的四大协同模块,其端到端的张量物理流动如下:

flowchart TD
    subgraph StreamInput["多模态张量输入端 (Input Tensors)"]
        IMG["测试视频帧 I_t ∈ ℝ^(3 × H × W)"]
        SUP["K 个示范短视频 S ∈ ℝ^(K × T_s × 3 × H × W)"]
        TXT["三元组 Query ⟨S, P, O⟩ 文本 Token"]
    end

    subgraph FeatureFront["前端感知与 RoI 特征抽取 (Feature Extraction)"]
        IMG --> BACKBONE["ResNet-101 + RPN (检测器冻结)"]
        BACKBONE --> ROI_S["主语 RoIAlign: v_S ∈ ℝ^1024"]
        BACKBONE --> ROI_O["宾语 RoIAlign: v_O ∈ ℝ^1024"]
        BACKBONE --> ROI_U["联合包围盒 RoIAlign: v_U ∈ ℝ^1024"]
        
        SUP --> VID_ENC["3D-ResNet / I3D 时空编码器<br/>输出动作特征体 F_sup ∈ ℝ^(K × d)"]
        TXT --> TEXT_ENC["GloVe / BERT 嵌入层<br/>输出词向量 e_S, e_P, e_O ∈ ℝ^300"]
    end

    subgraph AggregationModule["双重聚合引擎 (Dual Aggregators)"]
        VID_ENC & TEXT_ENC --> GSA_BLOCK["【GSA 全局聚合器】<br/>Multi-Head Cross-Attention (8 头)<br/>Query: e_P, Key/Val: F_sup<br/>➔ 输出动作元原型 g_rel ∈ ℝ^512"]
        
        ROI_S & ROI_O & ROI_U --> LLA_BLOCK["【LLA 局部定位聚合器】<br/>Δ(b_S, b_O) 几何 MLP (4 ➔ 128 维)<br/>拼接 [v_S ‖ v_O ‖ v_U ‖ p_geo]<br/>➔ 输出局部交互张量 f_local ∈ ℝ^512"]
    end

    subgraph RelNet["元关系匹配网络 (Relation Network)"]
        GSA_BLOCK & LLA_BLOCK --> TRANS_HEAD["【TransE 平移几何层】<br/>f_S = MLP_S(v_S),  f_O = MLP_O(v_O)<br/>计算平移残差: d_trans = |(f_S + g_rel) - f_O|"]
        TRANS_HEAD --> SCORE_MLP["3 层 MLP 分类打分头<br/>Linear(1024, 512) ➔ LeakyReLU ➔ Linear(512, 1) ➔ Sigmoid<br/>➔ 得到匹配概率 s_match ∈ (0, 1)"]
        SCORE_MLP --> UNARY_MAT["构建单帧一元势能向量 Φ_unary ∈ ℝ^(N_t)"]
    end

    subgraph BP_Engine["时空图推理与置信度传播引擎 (GPU 动态规划)"]
        UNARY_MAT --> TRANS_MAT["构建跨帧转移矩阵 Ψ_binary ∈ ℝ^(N_t × N_(t+1))<br/>融合空间 IoU、中心点位移与特征余弦距离"]
        TRANS_MAT --> VITERBI_DP["【向量化置信度传播 (Vectorized BP)】<br/>前向广播更新: dp_table[t+1] = min_i(dp[t] + Ψ + Φ)<br/>记录反向指针矩阵 backtrack[t+1]"]
        VITERBI_DP --> TUBELET_OUT["反向回溯提取全局最优时空管道 (T_S*, T_O*)"]
    end

4.1 多模态特征前端与张量构造(Tensor Flow)

整个系统需要同时消化三路完全不同模态的数据流:

1. 视觉检测支路(Visual Backbone)

  • 基础骨干:采用在 ImageNet 上预训练的 ResNet-101 + Faster R-CNN 架构,前置冻结参数;
  • 候选框生成:对测试视频的第 tt 帧提取候选目标,每帧筛选出得分最高的前 MM 个包围盒(通常 M∈[15,30]M \in [15, 30]);
  • RoIAlign 池化:对于任意一组主宾候选对 (bS,bO)(b_S, b_O),模型不仅分别对 bSb_S 和 bOb_O 做 RoIAlign,还会计算一个能同时包裹两者的最小联合矩形框(Union Bounding Box bUb_U):

    bU=[min⁡(xS,xO),min⁡(yS,yO),max⁡(xS,xO),max⁡(yS,yO)]b_U = [\min(x_S, x_O), \min(y_S, y_O), \max(x_S, x_O), \max(y_S, y_O)]

  • 经过标准 7×77 \times 7 RoIAlign 与全连接投射后,得到三个维度均为 R1024\mathbb{R}^{1024} 的视觉特征向量:主语特征 vS\mathbf{v}_S、宾语特征 vO\mathbf{v}_O、交互区联合特征 vU\mathbf{v}_U。

2. 示范视频支路(Support Stream)

  • 采用 3D-ResNet(或 I3D / SlowFast)作为时空动作编码器;
  • 对支持集中的 KK 个示范短视频(通常 K=3K = 3 或 55)抽取稠密时空特征体,经过时空自适应平均池化后,得到支持集特征张量 Fsup∈RK×d\mathbf{F}_{\text{sup}} \in \mathbb{R}^{K \times d}(其中 d=512d = 512)。

3. 语言查询支路(Language Stream)

  • 将三元组 Q=⟨S,P,O⟩Q = \langle S, P, O \rangle 拆分为独立的词汇,利用 GloVe 词向量(300 维)或微调的 BERT 文本编码器进行映射,输出文本嵌入:eS,eP,eO∈R300\mathbf{e}_S, \mathbf{e}_P, \mathbf{e}_O \in \mathbb{R}^{300},并通过一个线性层映射到 d=512d = 512 维空间。

4.2 双重聚合机制(GSA & LLA)的神经网络层实现

这是整篇论文在模型架构上最出彩的结构创新——用两个解耦的专用子网络,分别负责“大局观”与“微观空间接触”:

1. GSA(全局语义聚合器)的网络层设计

  • 核心挑战:示范视频中包含大量与动作无关的背景噪声(比如马场跑道、观众席),如何提炼出纯粹的动作语义?
  • 层结构:采用标准的 多头跨模态注意力层(Multi-Head Cross-Attention, 8 Heads):

    grel=LayerNorm(eP+MultiHeadAttn(Q=eP,K=Fsup,V=Fsup))\mathbf{g}_{\text{rel}} = \text{LayerNorm}\Big( \mathbf{e}_P + \text{MultiHeadAttn}(Q=\mathbf{e}_P, K=\mathbf{F}_{\text{sup}}, V=\mathbf{F}_{\text{sup}}) \Big)

  • 物理意义:以文本谓词 eP\mathbf{e}_P 作为“探针”(Query),去示范视频特征库 Fsup\mathbf{F}_{\text{sup}} 中检索并加权汇总最关键的时空动作特征,最终输出一个纯度极高的动作元原型向量 grel∈R512\mathbf{g}_{\text{rel}} \in \mathbb{R}^{512}。

2. LLA(局部几何定位聚合器)的网络层设计

  • 核心挑战:单靠卷积特征很容易丢失坐标敏感度(比如人是在马背上,还是在马腹下?)。
  • 几何编码器:将主宾候选框的相对空间几何关系显式计算为一个 4 维张量:

    Δ(bS,bO)=[xS−xOwO,  yS−yOhO,  log⁡wSwO,  log⁡hShO]∈R4\Delta(b_S, b_O) = \left[ \frac{x_S - x_O}{w_O}, \;\frac{y_S - y_O}{h_O}, \;\log\frac{w_S}{w_O}, \;\log\frac{h_S}{h_O} \right] \in \mathbb{R}^4

  • 经过 2 层带有 ReLU 激活的小型 MLP(Linear(4, 64) -> ReLU -> Linear(64, 128)),将空间拓扑投影为高维空间向量 pgeo∈R128\mathbf{p}_{\text{geo}} \in \mathbb{R}^{128};
  • 特征熔炼:将主语 RoI、宾语 RoI、联合框 RoI 与几何向量在通道维度进行拼接,通过一个特征融合全连接层:

    flocal=LeakyReLU(Wfuse⋅[vS ∥ vO ∥ vU ∥ pgeo])∈R512\mathbf{f}_{\text{local}} = \text{LeakyReLU}\Big( W_{\text{fuse}} \cdot [\mathbf{v}_S \,\|\, \mathbf{v}_O \,\|\, \mathbf{v}_U \,\|\, \mathbf{p}_{\text{geo}}] \Big) \in \mathbb{R}^{512}

  • 这一步将两者的外观形态、空间接触界面与包围盒重叠模式焊死在一起。

4.3 元关系网络(Relation Net)与 TransE 判别头

有了全局动作原型 grel\mathbf{g}_{\text{rel}} 和局部候选特征 flocal\mathbf{f}_{\text{local}},网络如何给这一对候选框打分?

  1. 投影到平移嵌入空间:通过两个独立的轻量 MLP 映射层,将视觉 RoI 特征映射到与关系原型兼容的空间中:

    fS=MLPS(vS)∈R512,fO=MLPO(vO)∈R512\mathbf{f}_S = \text{MLP}_S(\mathbf{v}_S) \in \mathbb{R}^{512}, \quad \mathbf{f}_O = \text{MLP}_O(\mathbf{v}_O) \in \mathbb{R}^{512}

  2. 计算 TransE 平移残差:根据 fS+grel≈fO\mathbf{f}_S + \mathbf{g}_{\text{rel}} \approx \mathbf{f}_O 的几何规律,计算差分误差向量:

    dtrans=∣(fS+grel)−fO∣∈R512\mathbf{d}_{\text{trans}} = \Big| (\mathbf{f}_S + \mathbf{g}_{\text{rel}}) - \mathbf{f}_O \Big| \in \mathbb{R}^{512}

    如果候选框对确实符合该动作,这个残差向量的数值应当极度接近于 0。
  3. 多层感知机打分头(Scoring Head):将平移残差 dtrans\mathbf{d}_{\text{trans}} 与 LLA 抽取的局部综合特征 flocal\mathbf{f}_{\text{local}} 拼接为 1024 维张量,送入 3 层分类 MLP:

    smatch=Sigmoid(MLPscore([dtrans ∥ flocal]))∈(0,1)s_{\text{match}} = \text{Sigmoid}\Big( \text{MLP}_{\text{score}}\big( [\mathbf{d}_{\text{trans}} \,\|\, \mathbf{f}_{\text{local}}] \big) \Big) \in (0, 1)

  4. 生成单帧一元势能(Unary Potential):结合 Faster R-CNN 对主宾类别的分类先验概率 p(S∣bS)p(S|b_S) 与 p(O∣bO)p(O|b_O),计算出该节点在图模型中的负对数势能:

    Φunary(bS,bO)=−log⁡(smatch⋅p(S∣bS)⋅p(O∣bO)+ϵ)\Phi_{\text{unary}}(b_S, b_O) = -\log \Big( s_{\text{match}} \cdot p(S | b_S) \cdot p(O | b_O) + \epsilon \Big)


4.4 二元时序连续性网络(Binary Transition Module)

在连续视频中,帧与帧之间的过渡必须符合物理规律。在代码实现中,相邻两帧 tt 与 t+1t+1 之间会构造一个维度为 [Nt,Nt+1][N_t, N_{t+1}] 的时序转移代价矩阵(Transition Matrix):

对于当前帧的第 ii 个候选对 (bS,it,bO,it)(b_{S, i}^t, b_{O, i}^t) 与下一帧的第 jj 个候选对 (bS,jt+1,bO,jt+1)(b_{S, j}^{t+1}, b_{O, j}^{t+1}),其二元能量由四项物理与视觉指标加权组成:

Ψbinary(i,j)=w1⋅DIoU(bS,it,bS,jt+1)+w2⋅DIoU(bO,it,bO,jt+1)+w3⋅Dmotion(i,j)+w4⋅Dfeat(i,j)\Psi_{\text{binary}}(i, j) = w_1 \cdot \mathcal{D}_{\text{IoU}}(b_{S,i}^t, b_{S,j}^{t+1}) + w_2 \cdot \mathcal{D}_{\text{IoU}}(b_{O,i}^t, b_{O,j}^{t+1}) + w_3 \cdot \mathcal{D}_{\text{motion}}(i, j) + w_4 \cdot \mathcal{D}_{\text{feat}}(i, j)

  • 交并比惩罚项:DIoU(b1,b2)=1−IoU(b1,b2)\mathcal{D}_{\text{IoU}}(b_1, b_2) = 1 - \text{IoU}(b_1, b_2),防止包围盒在两帧间发生离奇瞬移;
  • 运动平滑惩罚项:Dmotion=∥center(bt)−center(bt+1)∥2\mathcal{D}_{\text{motion}} = \|\text{center}(b^t) - \text{center}(b^{t+1})\|_2,惩罚中心点加速度异常;
  • 视觉外观惩罚项:Dfeat=1−vit⋅vjt+1∥vit∥∥vjt+1∥\mathcal{D}_{\text{feat}} = 1 - \frac{\mathbf{v}_i^t \cdot \mathbf{v}_j^{t+1}}{\|\mathbf{v}_i^t\| \|\mathbf{v}_j^{t+1}\|},利用 RoI 特征的余弦距离,防止目标在下一帧被长相完全不同的物体冒名顶替;
  • 权重向量 w=[w1,w2,w3,w4]\mathbf{w} = [w_1, w_2, w_3, w_4] 为可学习参数或通过网格搜索固定的超参数。

4.5 置信度传播(BP)在 GPU 上的向量化动态规划实现

在工程部署时,许多人误以为“图模型的置信度传播(Belief Propagation)需要在 CPU 上跑复杂的图遍历库”。完全不是!

在链状视频结构中,置信度传播可以纯粹用 PyTorch 张量广播(Tensor Broadcasting)与矩阵乘法 实现,整个算法能在 GPU 显存内以数十行代码极速完成:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import torch

def vectorized_belief_propagation(unary_costs, binary_costs):
"""
unary_costs: [T, N] - 每一帧 N 个候选对的一元势能
binary_costs: [T-1, N, N] - 相邻帧候选对之间的二元转移代价矩阵
返回:
best_trajectory: [T] - 全视频全局能量最低的最优轨迹索引
"""
T, N = unary_costs.shape
dp_table = torch.zeros(T, N, device=unary_costs.device)
backtrack = torch.zeros(T, N, dtype=torch.long, device=unary_costs.device)

# 1. 初始化第 0 帧
dp_table[0] = unary_costs[0]

# 2. 前向消息传递 (向量化动态规划扫描)
for t in range(T - 1):
# 广播计算前一帧到后一帧所有候选组合的累积总能量: [N, 1] + [N, N]
accumulated_cost = dp_table[t].unsqueeze(1) + binary_costs[t]

# 沿着上一帧候选维度寻找最小值 (min-sum 消息方程)
min_prev_cost, best_prev_idx = torch.min(accumulated_cost, dim=0)

# 加上下一帧自身的一元势能
dp_table[t + 1] = min_prev_cost + unary_costs[t + 1]
backtrack[t + 1] = best_prev_idx # 记录最优前驱节点指针

# 3. 终点寻优:最后一帧能量最小的候选
best_trajectory = [torch.argmin(dp_table[-1]).item()]

# 4. 反向回溯提取全局最优时空管道
for t in range(T - 1, 0, -1):
prev_idx = backtrack[t, best_trajectory[-1]].item()
best_trajectory.append(prev_idx)

best_trajectory.reverse()
return best_trajectory

这种架构设计带来了巨大的工程收益:
由于所有操作均通过张量矩阵运算完成,处理一段数百帧的视频,时空推理阶段仅消耗不到 50MB 显存,耗时在毫秒级别,完全消除了传统大模型推理长视频时的显存溢出与高延迟风险。


4.6 两阶段训练与元学习损失函数编排(Training Recipe)

为了让模型在“未见过的谓词(Unseen Predicates)”上依然具备极强的泛化能力,训练流程被划分为严谨的两阶段:

1
2
3
4
5
6
7
8
9
10
┌────────────────────────────────────────────────────────────────────────┐
│ 阶段一:目标感知底座前置冻结 (Frozen Perception) │
│ Faster R-CNN 骨干参数全冻结,提取稳定的候选包围盒与 RoI 特征,防梯度污染 │
└────────────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────────────┐
│ 阶段二:回合式元训练 (Episodic Meta-Training with Joint Loss) │
│ 每一个迭代步采样一个 Episode (N-way K-shot 任务),共同优化以下联合损失: │
└────────────────────────────────────────────────────────────────────────┘

联合损失函数设计

在每个元学习回合中,模型优化如下复合损失函数:

Ltotal=LBCE(smatch,y)+α⋅LTransE(fS,grel,fO)\mathcal{L}_{\text{total}} = \mathcal{L}_{\text{BCE}}(s_{\text{match}}, y) + \alpha \cdot \mathcal{L}_{\text{TransE}}(\mathbf{f}_S, \mathbf{g}_{\text{rel}}, \mathbf{f}_O)

  1. 二元交叉熵损失(LBCE\mathcal{L}_{\text{BCE}}):
    • 强制匹配头对真实的主宾关系对输出 1,对混淆干扰对(包括负采样的错误主语、错误宾语以及倒转关系)输出 0;
  2. TransE 几何正则化损失(LTransE\mathcal{L}_{\text{TransE}}):
    • 采用 Margin 边界损失:

      LTransE=max⁡(0,  γ+∥(fS++grel)−fO+∥22−∥(fS−+grel)−fO−∥22)\mathcal{L}_{\text{TransE}} = \max\Big(0, \; \gamma + \|(\mathbf{f}_S^+ + \mathbf{g}_{\text{rel}}) - \mathbf{f}_O^+\|_2^2 - \|(\mathbf{f}_S^- + \mathbf{g}_{\text{rel}}) - \mathbf{f}_O^-\|_2^2 \Big)

    • 迫使正样本三元组在潜空间中严格满足向量平移加法,而将负样本推离距离边界 γ\gamma 之外。
    • 平衡超参数 α\alpha 通常设为 0.1∼0.20.1 \sim 0.2。


05. 实验数据与评测发现:小样本下的大幅跃升

论文在两大权威的大型视频关系数据集 ImageNet-VidVRD 和 VidOR 上进行了极其苛刻的跨类别小样本基准评测(测试集中的谓词 Predicate 在训练过程中完全未被模型见过):

评测模型方案 是否需要海量全监督 5-Shot 关系定位精度 (vIoU@0.5) 时序稳定性 (跨镜头平滑率) 推理耗时 (每百帧)
传统逐帧检测 + 启发式追踪 (Baseline) 否 18.4% 极差 (频繁闪烁丢目标) 8.2 秒
纯 Vision Transformer 暴力时空注意力 24.1% 中等 (易被相似目标带偏) 21.5 秒
全监督视频关系定位模型 (SOTA) 是 (依赖数万条密集标注) 38.6% 优良 6.5 秒
本文方案 (Few-Shot RRV,仅用 3-Shot) 否 (仅需 3 个演示小样) 35.2% (逼近全监督上限) 极佳 (置信度传播全局收敛) 3.8 秒 (动态规划秒级求解)

关键发现解读

  1. 仅用 3~5 个样本,性能逼近全监督上限:在完全未见过的长尾动作上,模型凭借 GSA/LLA 双重聚合和 TransE 平移约束,取得了接近消耗上万标注数据的全监督模型的精度;
  2. 置信度传播消除了 80% 以上的时序抖动:相比单纯靠逐帧 Greedy Argmax 选出的轨迹,基于 TT-分部随机场的全局平滑算法将轨迹断裂、主角误跟丢的现象压降了五分之四;
  3. 算法求解效率极高:得益于将图模型解码转化为动态规划消息传递,整个时空推理可以在普通 GPU 上做到准实时(30+ FPS)运行。

06. 跨篇章认知联结:从静态场景图到时空图模型

将本文与我们此前拆解的经典多模态工作对照,可以清晰地看到视觉认知架构的演进脉络:

flowchart TD
    M1["1. Contrastive Scene Graphs (CSG 2D)"]
    M1 ---|从单帧静态图 升级为 连续长视频| M2["2. Few-Shot Referring Relationships (本文)"]
    M2 ---|从几秒精细管道 升级为 数小时超长记忆| M3["3. Video-EMem (长视频读写分离)"]

    style M1 fill:#f9f,stroke:#333,stroke-width:1px
    style M2 fill:#bbf,stroke:#333,stroke-width:2px
    style M3 fill:#dfd,stroke:#333,stroke-width:1px
  • 呼应《对比场景图(CSG)》:
    • 两者都坚定地站在了“拒绝机械像素切片拼图,拥抱显式拓扑结构”的阵营;
    • CSG 在 2D 平面上用场景图与硬负样本消除主客体颠倒;
    • 本文则将图结构沿时间轴拉伸为 TT-分部随机场,用二元势能和置信度传播消除了时空动作的流变幻觉。
  • 呼应《长视频 Video-EMem》:
    • Video-EMem 强调面对长视频时必须“做轻量化紧凑记忆,拒绝把原始帧塞满上下文”;
    • 本文的时空管道同样体现了这一哲学——通过将复杂的连续视频抽象为候选状态节点与能量消息传递,完全摆脱了千亿级巨型上下文的显存泥潭。

07. 总结与架构落地思考

这篇 CVPR 论文最大的贡献在于:它证明了在深度学习与大模型时代,经典的图概率模型(Random Fields)与消息传递推断(Belief Propagation)并没有过时,反而与现代神经网络的特征表征能力产生了极其惊艳的化合反应。

对工业界的落地启示:

  1. 智能安防与嫌疑轨迹排查:警方只需手绘或从历史资料库抽出一两个“翻越护栏”的示范案例,系统即可在几十个监控摄像头的海量无标注视频中,自动捕捉同类危险交互行为;
  2. 具身智能与服务机器人:家用机器人无需在预训练时看遍所有做家务的动作。主人现场做一次“把遥控器递给老人”的演示(Few-Shot),机器人即可将动作关系抽象并迁移到全新的家庭环境中执行协同;
  3. 体育竞技高光自动剪辑:教练提供几个标准的“空切配合”或“抢断反击”片段,算法即可从长达两小时的整场比赛中全自动抽出该配合发生的主客体完整轨迹。

当计算机视觉从“识别静止的皮囊”跨越到“透视流动的因果交互”,真正具备自主认知与行动能力的多模态智能体,才终于迈出了坚实的关键一步。