1. 第一视角视频意图理解:当MLLM遇上凝视数据
厨房里,你正盯着橱柜寻找面粉,突然手机响起视频通话——这个日常场景中,你的凝视轨迹已经暴露了"找东西"的意图。这种第一视角下的意图理解,正是多模态大语言模型(MLLM)需要攻克的新战场。传统第三人称视频分析就像隔岸观火,而第一视角视频配合眼动数据,相当于给AI装上了"读心术"传感器。
我们团队在复现NIPS 2025这篇论文时发现,现有MLLM基准测试存在两个致命盲区:一是过度依赖上帝视角的第三人称视频,二是完全忽略了人类90%的意图都写在眼睛里的生物学事实。EgoGazeVQA基准的建立,本质上是在教AI像侦探一样,通过"眼球运动+环境线索"的组合拳来还原用户真实意图。举个例子:当视频显示手伸向刀具而凝视聚焦西红柿时,人类能瞬间理解"准备切番茄"的意图,但现有MLLM却可能误判为"整理刀具"。
2. 凝视数据的价值挖掘:从坐标到意图的转化链
2.1 凝视数据的三重价值维度
凝视点坐标(x,y)看似简单,实则包含三层信息金矿:
- 空间维度:凝视坐标与视频物体的映射关系(如凝视点持续落在微波炉按钮区)
- 时间维度:凝视轨迹的动态模式(如快速扫视冰箱内部→停顿在牛奶盒→移向咖啡机)
- 因果维度:凝视与动作的时序逻辑(如先凝视门把手再伸手)
我们在处理Ego4D数据集时,需要特别注意凝视数据的预处理:
python复制def normalize_gaze(gaze_points, frame_size):
"""将原始凝视坐标归一化为[0,1]区间"""
return [(x/frame_size[0], y/frame_size[1]) for x,y in gaze_points]
注意:不同数据集的眼动仪采样频率差异很大(EGTEA Gaze+是30Hz,而EgoExo4D达到120Hz),必须统一降采样到视频帧率(通常30fps)
2.2 数据标注中的视觉-语言对齐
原始数据集的标注往往与凝视无关。我们开发了半自动标注流程:
- 用CLIP计算视频帧与凝视区域的视觉embedding
- 基于凝视轨迹生成候选问题(如"用户为什么看向这个位置?")
- 人工校验时重点关注三类场景:
- 凝视停留超过300ms的感兴趣区域(AOI)
- 快速扫视后的突然停顿
- 重复性凝视模式(如在厨房来回寻找物品)
标注过程中最易踩的坑是"伪相关凝视"——看似凝视目标物实则注视其后方。这时需要结合头部姿态数据进行校正,我们开发了基于OpenPose的滤波算法来排除这类噪声。
3. EgoGazeVQA基准构建实战
3.1 多源数据集融合策略
三大数据集的特性差异就像不同品牌的传感器:
| 数据集 | 场景特点 | 凝视数据质量 | 动作复杂度 |
|---|---|---|---|
| Ego4D | 日常生活 | 中等(头戴设备) | 高 |
| EgoExo4D | 社交互动 | 高(实验室环境) | 中 |
| EGTEA Gaze+ | 厨房活动 | 高(固定场景) | 低 |
我们的融合策略是:
- 统一时间轴:用视频音频轨对齐不同采样率的数据
- 空间校准:对移动视角数据应用SLAM重建3D场景
- 质量过滤:剔除凝视追踪丢失率>15%的片段
3.2 问答对生成中的对抗设计
为避免MLLM生成的问题过于简单,我们引入对抗机制:
- 视觉干扰:在非凝视区域插入相似物体(如把盐罐放在糖罐旁边)
- 时序干扰:截取凝视前3秒的视频让模型预测注视目标
- 因果干扰:展示错误动作-凝视组合让模型识别矛盾
例如一个典型对抗样本问题:
"用户拿起刀后凝视冰箱而非砧板,最可能的原因是?"
正确答案应是"准备取冷藏食材",而模型容易误判为"开始切菜"。
4. 凝视引导提示的三种武器库
4.1 文本提示(GazeT)的编码艺术
原始凝视坐标(0.43,0.72)对模型毫无意义。我们设计了一套语义映射模板:
code复制"[GAZE] 用户在第{frame}帧注视{object}(相对位置:{position})"
其中position采用时钟方位描述(如"4点钟方向边缘"),这比纯坐标准确率提升27%。实现代码片段:
python复制def gaze_to_text(gaze, detections):
obj = nearest_object(gaze, detections)
position = clock_position(gaze, obj['bbox'])
return f"注视{obj['name']}({position})"
4.2 视觉提示(GazeV)的视觉增强
简单的红点标注会导致注意力分散。我们的优化方案:
- 动态光圈效果:凝视点半径随停留时间增大
- 轨迹渐隐:历史凝视点以透明度衰减显示
- 热力图叠加:对频繁注视区域生成高斯模糊蒙版
实操技巧:OpenCV中实现动态凝视标记时,建议用cv2.circle配合透明度渐变,比直接绘制更节省显存。
4.3 序列凝视显著性(GazeS)的时空编码
将整个视频段的凝视数据转化为3D热力图:
- 空间维度:用2D高斯核生成单帧显著性图
- 时间维度:通过LSTM编码凝视移动模式
- 融合输出:使用3D卷积生成时空立方体
这种方法在长视频理解中特别有效,比如判断"用户是否在系统性地搜索物品"。
5. 模型适配中的实战经验
5.1 不同规模模型的表现差异
我们在7个模型上的测试发现有趣现象:
- 小模型(<7B参数):GazeV效果最好,可视化提示更直观
- 中模型(7B-13B):GazeT开始显现优势,文本理解能力增强
- 大模型(>13B):GazeS表现最优,能处理复杂时空模式
5.2 LoRA微调的特殊技巧
针对凝视数据微调时需要注意:
- 秩的选择:时空数据需要更高秩(我们测试发现rank=64最佳)
- 适配层选择:QKV矩阵必调,而注意力层可以冻结
- 学习率策略:采用余弦退火配合warmup
实测有效的LoRA配置示例:
yaml复制target_modules: ["q_proj","k_proj","v_proj"]
rank: 64
lora_alpha: 32
dropout: 0.1
6. 第一视角理解的未来战场
虽然当前最佳模型(Qwen2.5-VL-72B)在简单任务上已达人类水平,但在复杂场景如厨房活动的准确率仍不足60%。我们总结出三个亟待突破的方向:
- 多模态记忆机制:人类会记住"糖罐通常放在右边柜子",而现有MLLM每次都要重新解析场景
- 物理常识建模:理解"凝视冰箱→取牛奶"的因果链需要日常生活常识
- 实时推理优化:当前模型处理1分钟视频平均需要8秒,远达不到实时交互要求
在部署到智能眼镜原型时,我们发现模型对抖动画面的鲁棒性不足。一个实用技巧是在输入端添加运动模糊数据增强,这使户外场景的准确率提升了15%。另一个反直觉的发现是:有时降低凝视数据的精度反而能提升效果——因为人类眼动本身就有噪声,过度clean的数据反而让模型过拟合。
