一句话指定看哪个人,首个端到端视线模型把临床越界集误差砍半

Gaze Target Estimation Anywhere with Concepts

Xu Cao, Houze Yang, Vipin Gunda, Zhongyi Zhou, Tianyu Xu, Adarsh Kowdle, Inki Kim, James M. Rehg

CVPR 2026 Code and Benchmark

cs.CV, cs.AI

2026-08-12

UIUC 提出 PGE 任务与 GazeAnywhere 模型,用一句话或一个点指定要分析的人,端到端估计视线;临床越界集 L2 误差 0.090,约为最强 3B 两阶段管线的一半,推理快约 12 倍。

这篇在解决什么

视线目标估计(gaze target estimation)回答一个问题:这张图里的人在看哪。听起来简单,在真实场景里却很脆。主流做法是一条多阶段管线:先检测画面里的人,再用一个人头/人脸外接框(head box)把目标锁定,最后根据裁出的头部区域估视线。每一阶段都要喂显式输入,人头框、姿态、深度,任何一个错了,后面全错。拥挤人群、昏暗光照、儿童这种脸本来就难检测的对象,最容易触发这种级联失败。

还有一层被忽视的短板:没法用自然语言指定要分析的人。近年确实出现了端到端的 bottom-up 方法,一次性吐出画面里所有人的视线,但它们缺身份关联,能告诉你「每个人在看哪」,答不了「穿红衬衫那个男孩在看哪」。要把视线绑到具体某个人,还是得退回外部检测器加后处理,级联误差又回来了。

本文补的就是这个空:提出 PGE(Promptable Gaze Target Estimation)任务,用文本或视觉提示指定对象,再端到端估视线。

方法

GazeAnywhere 是为 PGE 设计的第一个模型,一次前向同时完成找人、判在不在画面里、估视线。提示有两种:文本,按外貌、位置、姿态、动作四类组织(如「穿红衬衫的男孩」);或视觉,给一个坐标点。

架构上,视觉编码器(DINOv3-L 的 ViT)和文本编码器(dino.txt)都冻结,只训练投影层、一摞 transformer 检测器块、三个解码头。文本 token、图像 patch token、一个 head token(负责定位头)、一个 presence token(负责判目标是否在画面内)拼成一条序列送进检测器融合。三个头分别输出:64×64 的视线热图(卷积上采样,BCE 配高斯目标,σ=3)、人头框(FFN 回归 [x,y,w,h],L1 加 GIoU)、画面内外二分类(focal loss),联合训练。

两个设计选择值得展开。第一,为什么冻结编码器。消融显示,解冻图像或文本编码器性能明显掉,DINOv3 的预训练特征对这任务已经够鲁棒,解冻反而过拟合、特征漂移。第二,为什么把定位头和估视线放进同一个梯度回路。消融显示,加上 head loss 同时改善了视线估计和 presence 判别;把「找头」和「看哪」绑在一起,正是为了干掉两阶段管线里那层级联误差。

结果

作者自建 Gaze-Co 数据集:12 万条带提示标注的图文对,69.6% 来自 GazeFollow、19.6% 来自 VideoAttentionTarget、10.8% 来自 ChildPlay,概念短语由 Gemini 2.5 Pro 生成、人工抽检,错误率压到 ≤1%。在此之上比四个测试集。

主结果(GazeAnywhere-DINOv3-L,870M 参数):

测试集指标GazeAnywhere最强两阶段基线
GazeFollow-ConceptAUC↑0.9580.954
VAT-ConceptAP↑0.8790.861
ChildPlay-ConceptAP↑0.9060.914
Child-SC(OOD)L2↓0.0900.172

最强两阶段基线是 Gaze-LLE 配 RexSeek,一个 3B 参数的检测器。两个细节比表格本身更说明问题。一是速度:GazeAnywhere 每图 96 毫秒,那个 3B 基线要 1183 毫秒,快约 12 倍;换成 CLIP-L 编码器的轻量版只要 35 毫秒。二是它追平了 oracle:把真实人头框直接喂给 Gaze-LLE 的 AUC 上界是 0.961,GazeAnywhere 不给头框就到 0.958。最大的领先在临床越界集 Child-SC(儿童社交沟通评估视频),L2 误差 0.090 对 0.172,约砍半。

得诚实说,不是每个指标都碾压。ChildPlay 的 AP 上 3B 基线 0.914 略高于 GazeAnywhere 的 0.906(但 L2 上 GazeAnywhere 反过来更优,0.098 对 0.119);GazeFollow AUC 的优势也只有 0.004。干净的领先集中在速度、OOD 泛化和追平 oracle 这三处。通用 VLM 直接做视线差得多,Qwen3-VL-8B 和 Gemini 2.5 Flash 在 VAT 上 AP 只有 0.65、0.66,L2 翻倍。

作者还把模型当工具接进 MLLM,做成 GazeAnywhere Agent,在 DigiLens ARGO 眼镜上做实时社交视线分析,每分钟视线偏移 MAE 从裸用 MLLM 的 9.2 降到 2.3。

为什么重要

视线估计第一次从「必须先给人头框」的工程负担里松绑,用户一句话或一个点就能指定对象,部署门槛大降。端到端砍掉了级联误差的来源,在拥挤、儿童、临床这类难场景更稳,而这恰恰是现有开放词汇检测器最不稳的地方:最强 OVD OWLv2 在 Child-SC 的儿童头脸检测准确率只有 70%。落点上,AR 实时社交分析、发育筛查(自闭症谱系相关的社交沟通评估)都是现成的场景,尤其后者的私有数据不能上云,本地模型是刚需而非选配。

局限与存疑

作者自己承认,文本提示仍有内在歧义,要靠结构化分类约束;Child-SC 这类私有数据不能过云 MLLM,所以本地化是必须的。更值得追问的有两点。其一,GazeAnywhere 仍然依赖冻结视觉编码器「认得人」的能力,论文没充分测试当画面里的人编码器根本认不出(极端遮挡、极远距离)时端到端会不会同样崩。其二,GazeFollow、VAT 上的优势幅度很小,部分 SOTA 仗着 Child-SC 这个只放指标、不公开数据的私有集,独立复现困难。论文把自己定位成「迈向临床的一步」,不是现成的临床工具,这个分寸是诚实的。

术语

原文与代码

相关论文

全部论文解读