FocusGate:可靠性门控的视线预测线索融合
arXiv 2610.08663 论文解读与DMS应用
论文信息
- 标题: Knowing When to Trust a Prior: Reliability-Gated Cue Fusion for Video Gaze Prediction
- 链接: arXiv:2610.08663
- 时间: 2026年10月
核心创新
FocusGate 是一个门控集成框架,融合多个无视线训练先验(gaze-free priors),其成员可选择”弃权”(abstain)。每帧门控读取散焦图的三个形状统计量,选择在该帧上估计器优于随机水平的帧,拒绝的帧恰好退化为基线。
一句话总结: 不是所有帧都适合用先验估计视线——FocusGate学会了”何时该信任”先验,只在可靠帧上使用。
与AttentiveGaze的对比
| 维度 |
AttentiveGaze |
FocusGate |
| 方法 |
学习不确定性 |
规则门控+弃权 |
| 先验来源 |
训练数据 |
无视线先验 |
| 适用 |
有标注训练 |
无标注场景 |
| 互补性 |
✅ |
✅ |
在DMS中的应用
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 39 40 41 42 43 44 45 46 47 48
| import numpy as np
class FocusGateDMS: """ FocusGate 在DMS中的应用 场景:当DMS视线模型不可靠时(遮挡/极端光照), 使用gaze-free先验作为补充,但只在可靠帧上使用 信号链: 1. 主视线模型输出预测 2. FocusGate判断当前帧是否适合先验补充 3. 适合 → 融合先验+主模型 4. 不适合 → 仅使用主模型(降低权重) """ def __init__(self): self.prior_ensemble = [] self.gate_threshold = 0.3 def should_use_prior(self, frame_features: dict) -> bool: """ 判断当前帧是否适合使用先验 基于散焦图的三个形状统计量: 1. 峰度(kurtosis) 2. 偏度(skewness) 3. 熵(entropy) """ kurtosis = frame_features.get('defocus_kurtosis', 0) skewness = frame_features.get('defocus_skewness', 0) entropy = frame_features.get('defocus_entropy', 0) score = 0.3 * kurtosis + 0.3 * abs(skewness) + 0.4 * entropy return score > self.gate_threshold def fuse(self, main_gaze: np.ndarray, prior_gaze: np.ndarray, frame_features: dict) -> dict: """融合主模型和先验""" if self.should_use_prior(frame_features): alpha = 0.3 fused = (1 - alpha) * main_gaze + alpha * prior_gaze return {'gaze': fused, 'source': 'fused', 'reliable': True} else: return {'gaze': main_gaze, 'source': 'main_only', 'reliable': False}
|
参考资源
总结: FocusGate的”弃权”机制是DMS安全部署的重要补充——不是每帧都需要给出预测,知道”何时不该预测”同样重要。与AttentiveGaze的不确定性量化和本论文的校准方法形成三重安全保障。