Beyond Scanpaths: Graph-Based Gaze Simulation in Dynamic Scenes¶
会议: CVPR 2026
论文: CVF Open Access
代码: 项目页 glimpse.ml/beyond-scanpaths(未见公开代码仓库)
领域: 人体理解 / 驾驶注意力建模
关键词: 注视模拟, 异构图Transformer, 驾驶员注意力, 混合密度网络, 动力系统建模
一句话总结¶
把驾驶员注视建模成一个自回归动力系统:将每一帧交通场景编码成「以注视为中心」的异构时空图,用关系亲和力 Transformer(ART)建模注视与交通物体的交互,再用对象级混合密度网络(ODN)预测下一步注视分布并自回归地展开成连续注视轨迹,从而用同一个模型同时生成 SOTA 级别的注视时间序列、扫视路径与显著图。
研究背景与动机¶
领域现状:在驾驶安全等场景里,人们想知道司机的视线落在哪里。主流做法把注视压缩成两类静态表示——要么是聚合的显著图(saliency map,每帧一张概率热图),要么是离散的扫视路径(scanpath,一串注视点)。视频显著性方向已经从 CNN-LSTM 演进到 ViT、对抗模型,但产出的始终是「聚合后的概率分布」。
现有痛点:这两类表示都把注视的时间动力学只当作隐式副产物。显著图直接抹掉了视线随时间移动的轨迹;扫视路径虽保留了顺序,但生成它必须先做注视点过滤(fixation filtering)——而在视频刺激下注视点检测算法本身就不可靠,过滤会引入伪影、丢失数据,还会把平滑追随(smooth pursuit)这类连续眼动当噪声删掉。换句话说,现有方法是在「已经被破坏过的中间表示」上建模。
核心矛盾:人的注视本质上是一个随时间连续演化、由场景中物体相关性驱动的过程,而现有方法要么丢掉时间维度(显著图),要么把连续轨迹离散化并依赖脆弱的预处理(扫视路径)。三种表示(轨迹 / 扫视 / 显著图)各自训一个模型,彼此割裂。
本文目标:① 直接在原始注视轨迹上学习「注视生成过程」本身,不做任何注视点过滤;② 用一个模型统一产出原始轨迹,并通过免训练后处理导出扫视路径和显著图,三项都达到 SOTA。
切入角度:作者借用了物理仿真里的「图基仿真(Graph-Based Simulation, GBS)」范式——把流体、布料、沙子这类系统建成「节点是物体/智能体、边是物理关系」的图,用 GNN 自回归地推演动力学。最近的研究表明 GBS 也能建模不连续、随机的动力学,而人的注视恰恰是不连续、随机跳变的,天然契合。
核心 idea:把驾驶员的注视当成视觉环境里的一个主动智能体,给它在异构场景图里专设一个「注视节点」,让它和交通物体节点一起随时间演化,自回归地预测下一步视线落点——首次把 GBS 用到视频与驾驶场景下的人类注意力建模。
方法详解¶
整体框架¶
方法要解决的是:给定 \(T\) 帧驾驶视频和已观测到的历史注视,预测下一时刻(\(T{+}1\))司机的视线落点,并能一直滚动下去生成完整轨迹。整体分三段串行:先把同步的视频 + 注视转成一张「以注视为中心」的时空异构场景图;再用堆叠的 ART 块在图上做消息传递,建模注视节点与各类交通物体节点之间的交互;最后用 ODN 读出最后一帧各节点的表示,输出一个节点数自适应的二维高斯混合分布作为下一步注视位置。训练用负对数似然;推理时从混合分布里采样一个注视点,回填进图、更新到下一时刻,如此自回归 rollout 得到连续轨迹,轨迹再免训练地后处理成扫视路径和显著图。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["输入:T 帧驾驶视频<br/>+ 同步历史注视"] --> B["以注视为中心的<br/>时空异构场景图<br/>(物体/结构/注视节点 + 时空亲和边)"]
B --> C["关系亲和力 Transformer ART<br/>把边的相对亲和力注入图注意力"]
C --> D["对象密度网络 ODN<br/>每个节点贡献一个高斯分量<br/>→ 自适应 GMM"]
D -->|采样落点回填更新图| B
D --> E["自回归 rollout:原始注视轨迹"]
E --> F["免训练后处理<br/>→ 扫视路径 / 显著图"]
关键设计¶
1. 以注视为中心的时空异构场景图:给视线一个能和物体对话的节点
针对「显著图/扫视路径抹掉了注视与场景的交互关系」这个痛点,本文把每帧场景建成异构图 \(G=(V,E,A,R)\)。每个交通实体(车、人、信号灯等)在每个时刻是一个节点,节点特征 \(x\) 含 2D 位置、包围框形状、检测置信度、外观向量、深度估计和 one-hot 类别。关键之处是额外引入一个注视节点,代表司机的中央凹视野——它用和物体节点相同的特征定义,但包围框中心放在测得的注视位置、尺寸固定为画面的 20% 高 ×10% 宽,外观取该区域的图像 crop;再加一个编码可行驶区域的结构节点。节点按检测标签归并成 vehicle / person / static / gaze / structure 五种异构类型,让模型给每类分配类型专属参数。
边分两类:同一时刻内所有节点对用双向空间边互连;跨时刻只从过去连向未来的时间边,且只在时间差落在预定义集合 \(T_d=\{1,2,4,8,16\}\) 时连接(多尺度时间上下文,省去全连接的开销)。每条边带一个亲和力特征向量 \(a_{i,j}\),编码两节点在 3D 位置上的差、时间步差、以及外观向量的余弦相似度。注视节点与物体节点之间的边让「之前看过的物体」「当前在看的物体」的信息得以流动,配合跨时刻注视节点串起来的历史,给自回归预测提供上下文。这是把 GBS 用到注意力建模的载体:注视不再是后处理出来的点,而是图里和物体平起平坐、能交互的一员。
2. 关系亲和力 Transformer(ART):把边上的相对关系直接灌进注意力
普通异构图 Transformer(HGT)用类型专属的缩放点积注意力 \(a(x_i,x_j)=\xi_j\!\left(\frac{Q_iK_j^{\mathsf T}}{\sqrt d}\right)\),query/key/value 都来自节点自身,边上的相对几何/外观关系(也就是 \(a_{i,j}\))进不去注意力。而注视往哪跳,恰恰取决于物体相对司机当前视线的位置、时间、外观差异。ART 的做法是:用两个独立编码器把边亲和力 \(a_{i,j}\) 分别嵌成 key 偏置和 value 偏置(线性→BatchNorm→ReLU→线性):
然后把它们直接加到 key 和 value 上:\(K_j=(x_jW^\tau_K+b^\tau_K)W^\phi_K + p^K_{i,j}\),\(V_j=(x_jW^\tau_V+b^\tau_V)W^\phi_V + p^V_{i,j}\),再按 \(\tilde x'_i=\sum_{j\in\mathcal N_i}\xi_j\!\left(\frac{Q_iK_j^{\mathsf T}}{\sqrt d}\right)V_j\) 聚合。这等于把语言/图像里「相对位置编码」的思想推广成「任意 \(d\) 维关系向量」——不再是固定的 1D/2D 学习嵌入,而是把空间+时间+外观的相对关系一起注入每条消息。ART 块用 Pre-LN 设计(LayerNorm→ART 注意力→LayerNorm→两层 FFN),并用类型专属的门控残差 \(y=\lambda_\tau u+(1-\lambda_\tau)h\),堆叠 \(L\) 层构成图处理器。相比 HGT/HEAT,正是这套「关系入注意力」让生成的注视序列更贴近人类(见消融)。
3. 对象密度网络(ODN):高斯分量数随场景复杂度自适应的混合密度头
针对「人在驾驶这种复杂任务里的注意力是被物体相关性引导的,而非逐像素的」,ODN 取一种对象级视角,而不是预测像素级热图。它读取最后一帧节点集合 \(V_T\) 经第 \(L\) 层 ART 后的特征,让每个节点 \(v_k\) 贡献一个高斯分量,混合分量数 \(K=|V_T|\)——场景里物体越多、越复杂,混合容量越大。这与传统 MDN 用固定分量数的做法根本不同。对每个节点,异构线性层输出分量参数 \([\Delta\hat x_k,\Delta\hat y_k,\hat\sigma_{xk},\hat\sigma_{yk},\hat\rho_k,\hat\pi_k]\),经 softmax 得权重 \(\pi_k\)、\(\tanh\) 约束相关系数、\(\exp\) 保证标准差为正;均值为节点像平面位置加一个受限偏移 \(\Delta\mu_k=\Delta_{\max}\tanh(\Delta\hat\mu_k)\)(\(\Delta_{\max}=0.05\))。下一步注视分布即
这个设计还自带可解释的注视机制:注视节点上的 \(\pi_k\) 高 → 视线倾向于停在当前位置(维持注视 fixation);环境节点上的 \(\pi_k\) 高 → 视线向对应交通物体或可行驶区域转移(注意力跳转)。一个权重就把「盯着不动」和「扫过去」统一表达了。
损失函数 / 训练策略¶
训练目标是 ground-truth 未来注视在预测混合分布下的负对数似然:
用 Adam、batch 128、float16 在 4×L40S 上训 50 epoch;Focus100 基础学习率 \(3\times10^{-4}\)、MAAD 为 \(1\times10^{-3}\),ODN 头用 0.1× 基础学习率,权重衰减 \(1\times10^{-6}\),取验证损失最低的 checkpoint。全程在原始注视上训练,不做注视点过滤。 推理时用前 20(Focus100)或 25(MAAD)个时间步初始化,反复从 ODN 分布采样并更新图来 rollout;显著图通过每条序列随机初始化跑 50 次模拟、用 EyeMMV 检测注视点、再每帧卷高斯核得到。
实验关键数据¶
数据集:自建 Focus100(30 名被试看 100 段 60 s 第一视角驾驶视频,10 fps 视频 + 60 Hz 同步注视,按 70/10/20 划分;含危险物体标注)与 MAAD(已有的、规模更小、同步原始注视的驾驶数据集)。评估覆盖三个维度:原始序列(TC↑、DTW↓、LEV↓)、扫视动力学(注视时长 Fix Dur、注视率 Fix Rate、首次注视时间 AOI TFF,越接近 Human 越好)、显著图(NSS↑、IG↑、AUC↑)。
主实验¶
| 数据集 | 模型 | TC ↑ | DTW ↓ | LEV ↓ | NSS ↑ | IG ↑ | AUC ↑ |
|---|---|---|---|---|---|---|---|
| Focus100 | Human | 0.46 | 30.93 | 1.03 | - | - | - |
| Focus100 | DReyeVENet | 0.23 | 49.23 | 1.43 | 3.749 | 9.041 | 0.920 |
| Focus100 | SCOUT | 0.22 | 51.76 | 1.45 | 4.152 | 9.440 | 0.933 |
| Focus100 | ViNet | 0.23 | 49.68 | 1.41 | 4.310 | 9.471 | 0.938 |
| Focus100 | ART(本文) | 0.22 | 42.31 | 1.23 | 4.864 | 9.728 | 0.945 |
| MAAD | Human | 0.42 | 2.65 | 0.10 | - | - | - |
| MAAD | ViNet | 0.20 | 4.20 | 0.16 | 5.733 | 10.264 | 0.949 |
| MAAD | SCOUT | 0.19 | 5.91 | 0.18 | 4.191 | 9.735 | 0.952 |
| MAAD | ART(本文) | 0.46 | 2.70 | 0.10 | 4.926 | 9.778 | 0.953 |
ART 在两个数据集的原始序列对齐(DTW/LEV)上全面领先,且在 MAAD 上 TC(0.46)甚至与 Human(0.42)持平、DTW/LEV 几乎贴上人类水平。显著图三项在 Focus100 上全 SOTA——这点尤其关键:多个 baseline 是专门为显著图任务设计的,而 ART 没有任何显著性监督,纯靠建模原始注视动力学就把显著图也做赢了,说明原始动力学里本就编码了底层的注意力结构。
扫视动力学上的对比更直观:Focus100 上 Human 的 Fix Rate 是 1.61 fix/s、Fix Dur 0.44 s,ART 为 1.64 fix/s、0.41 s,几乎重合;而 SCOUT/ViNet/DReyeVENet 的 Fix Rate 只有 0.05~0.07 fix/s——它们几乎产生不出连续的注视段,注视行为完全不像人。
消融实验¶
| Processor | Time | Head | TC ↑ | DTW ↓ | LEV ↓ | 说明 |
|---|---|---|---|---|---|---|
| ART | 20 | ODN | 0.22 | 42.31 | 1.23 | 完整模型 |
| HGT | 20 | ODN | 0.21 | 42.72 | 1.28 | ART→HGT,关系不入注意力,略降 |
| HEAT | 20 | ODN | 0.13 | 59.50 | 1.47 | ART→HEAT,序列合理性大幅下滑 |
| ART | 20 | MDN(k=10) | 0.14 | 44.78 | 1.30 | ODN→固定 10 分量 MDN,明显变差 |
| ART | 20 | MDN(k=20) | 0.14 | 45.69 | 1.32 | 固定 20 分量同样差 |
| ART | 8 | ODN | 0.17 | 43.46 | 1.26 | 时间窗缩到 8,对齐变差 |
| ART | 1 | ODN | 0.17 | 42.35 | 1.24 | 时间窗缩到 1 |
关键发现¶
- ODN 是性能主心骨:把对象自适应的 ODN 换成固定分量数的标准 MDN,TC 从 0.22 直接掉到 0.14——固定分量数无法随场景复杂度伸缩,证实「让混合容量等于节点数」这一设计的价值。
- ART 的关系注意力有效:换成 HGT 只小降,但换成 HEAT 后 TC 砍半(0.22→0.13)、DTW 暴涨,说明把相对亲和力注入注意力对生成可信注视序列确有贡献。
- 更长时间上下文更好:时间窗 \(T\) 从 20 缩到 8 或 1,TC 都从 0.22 降到 0.17,长时间依赖对捕捉注视动力学有帮助。
- 无监督却赢专门模型:ART 不用显著性监督就在显著图指标上超过专为该任务设计的 baseline,暗示原始注视动力学本身蕴含了注意力的底层结构。
亮点与洞察¶
- 把"看哪里"重新定义成"一个智能体在场景图里怎么演化":注视节点和物体节点平等参与消息传递,注视历史与环境历史共同条件化下一步——这把注意力建模从「静态预测」升级成「动力系统仿真」,是范式层面的迁移。
- ODN 的权重天然可解释:注视节点权重高=维持注视、环境节点权重高=跳转,用一个混合权重就把 fixation 和 saccade 两种眼动统一了,且分量数随场景物体数自适应,非常优雅。
- "在原始数据上直接学生成过程"绕开了脆弱的中间步骤:不做注视点过滤,反而能同时导出轨迹/扫视/显著图三种表示且都 SOTA,提示我们很多任务里「先离散化再建模」可能是在自找麻烦。
- ART 的关系注入可迁移:把任意 \(d\) 维关系向量编码进图注意力的 key/value,这套机制不限于注视,对轨迹预测、场景图推理等需要建模「相对关系」的任务都可复用。
局限与展望¶
- 作者承认:Focus100 是实验室受控环境采集(被试看屏幕做危险感知测试),并非真实在路驾驶,迁移到真实驾驶时注视行为可能有差异。
- ART 依赖上游感知栈(YOLOv8 检测、YOLOPv2 可行驶区域、monodepth2 深度、vgg16 外观),上游的检测/深度误差会直接传播到注视预测——端到端鲁棒性是隐患。
- 没有显式建模驾驶意图,而意图(如准备左转)会强烈调制注意力分配;作者把它列为自然的后续方向。
- ⚠️ 自己补充的局限:评测把每条生成序列与「最近的 ground-truth」配对再平均,这种 best-match 策略可能高估对齐质量;且 DTW/LEV 对序列长度敏感,跨数据集(MAAD vs Focus100)的绝对数值不可直接比大小,只能在同数据集内横比。
相关工作与启发¶
- vs 视频显著性方法(ViNet / DReyeVENet / SCOUT / GLC):它们产出聚合的概率热图,丢掉了注视的时间动力学,Fix Rate 只有 0.05~0.07 fix/s 几乎无连续注视;本文显式 rollout 原始轨迹,注视率贴近人类(1.64 vs 1.61),且无监督就在显著图指标上反超它们。
- vs 唯一的驾驶扫视路径工作 [39](CNN-Transformer + 逆强化学习):它预测离散注视点序列、无时长,且依赖注视点过滤;本文在连续原始注视上建模、保留平滑追随等动力学,并能免训练导出扫视路径。
- vs 静态图像自由观看的扩散注视生成 [45]:[45] 用扩散模型在静态图上生成连续注视;本文首次把连续注视序列生成搬到任务驱动的视频/驾驶场景。
- vs 交通物体轨迹预测的图基仿真(如 [44] 的异构交通图 + 图 Transformer):本文沿用异构时空图 + 图 Transformer 框架,但首次把驾驶员注意力本身作为一个专设节点纳入仿真,并提出 ART 的相对亲和力编码,是 GBS 在人类注意力建模上的首次应用。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 首次把图基仿真用于视频/驾驶注视建模,注视节点 + ART + 自适应 ODN 三处设计都有原创性。
- 实验充分度: ⭐⭐⭐⭐☆ 两数据集 ×三维度指标 + 完整消融,但仅实验室数据、缺真实在路验证。
- 写作质量: ⭐⭐⭐⭐⭐ 动机层层推导清晰,公式与图示完整,三种表示统一的故事讲得很顺。
- 价值: ⭐⭐⭐⭐⭐ 统一框架 + 新数据集 Focus100,对驾驶安全与人类注意力时序建模都有实用价值。