GazeOnce360: Fisheye-Based 360° Multi-Person Gaze Estimation with Global-Local Feature Fusion¶
会议: CVPR 2026
arXiv: 2603.17161
代码: https://caizhuojiang.github.io/GazeOnce360/ (Project Page)
领域: 人体理解
关键词: 视线估计, 鱼眼相机, 多人场景, 双分辨率融合, 合成数据
一句话总结¶
本文提出 GazeOnce360,一个端到端的双分辨率 CNN 模型,用于从单个朝上放置的桌面鱼眼相机进行 360° 多人视线方向估计,同时构建了首个面向该场景的大规模合成数据集 MPSGaze360,在精度和速度两方面均大幅超越现有多阶段方法 GAM360。
研究背景与动机¶
视线估计在人机交互、协作分析、VR 等领域有广泛应用。现有单人视线估计方法已较为成熟(MPIIGaze、ETH-XGaze 等数据集驱动),但真实场景往往涉及多人。
现有多人视线估计的痛点:(1) 前向相机视场角有限,需要多台同步设备才能覆盖全部方向;(2) 已有尝试(如 GAM360)使用鱼眼相机,但采用多阶段流水线(检测人脸 → 透视投影 → 单独估计),计算昂贵、容易累积误差,且全景拼接可能在边界处裂开人脸导致检测遗漏。
本文的切入点是:朝上放置的鱼眼相机天然覆盖 360° 全景,一台设备即可捕获所有方向的人。但鱼眼图像存在严重的几何畸变和透视变化,且缺乏公开的多人朝上鱼眼视线数据集。于是作者从数据(合成数据集)和模型(端到端双分辨率架构)两方面同时解决这些问题。
方法详解¶
整体框架¶
GazeOnce360 要解决的是:单张朝上的鱼眼图里同时出现好几个朝向各异的人,怎么一次性把每个人的人脸框、头部姿态和视线方向都估出来,而不走"检测人脸→透视投影→逐人估计"那套又慢又会累积误差的多阶段流水线。它的做法是把整张图同时喂给两条分辨率不同的分支:全局分支在低分辨率下看整幅鱼眼图,负责定位人在哪、检测人脸框并提供空间上下文,并在高层特征上叠一层旋转卷积来抵消鱼眼里人脸的任意朝向旋转;局部分支在高分辨率下只盯着被裁出来的人脸区域,专门抠虹膜、瞳孔这些视线最依赖的精细眼部特征。两路特征用交叉注意力对齐融合后,再由一组多任务头同时回归人脸框、头部姿态、视线向量以及人脸/眼部关键点。整个网络是 anchor-based 的检测+回归结构,端到端一次前向跑完,训练时用 GT 框去裁局部分支、测试时改用预测框。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["单张朝上鱼眼图(含多人)"] --> B["全局分支(512×512)<br/>低分辨率定位人 + 检测人脸框"]
B --> C["旋转卷积<br/>FPN 顶层注入旋转不变性"]
C -->|预测框 / 训练用 GT 框裁剪| D["局部分支(1024×1024)<br/>高分辨率精抠虹膜·瞳孔"]
C --> E["双分辨率特征融合<br/>全局作 Q、局部作 K/V<br/>+ 空间掩码交叉注意力"]
D --> E
E --> F["多任务头<br/>人脸框 / 头部姿态 / 视线向量<br/>人脸·眼部关键点(MPSGaze360 监督)"]
关键设计¶
1. 旋转卷积:让高层特征对鱼眼里的人脸旋转免疫
鱼眼相机从桌面往上拍,画面里不同方位的人会绕着图像中心呈现几乎任意角度的旋转——同一张脸,朝东的人和朝南的人在图上是两个旋转过的姿态。标准 CNN 只有平移不变性,碰到这种旋转就得靠数据硬背,泛化很差。旋转卷积的做法是把一个卷积核额外复制成四个正交旋转版本(0°/90°/180°/270°),对四个方向各自的特征响应做加权平均,相当于让同一组权重去匹配任意朝向的局部结构,从而把旋转不变性直接编码进卷积本身。它只挂在 FPN 顶层、作用于语义最强的高层特征,开销可控。一个值得注意的对比是:作者也试过用可变形卷积(DCN)去吸收畸变,但效果反而更差(10.39° vs 11.05°),说明鱼眼畸变的主要矛盾是"旋转"而非一般意义上的空间形变,针对性地建模旋转才对症。
2. 双分辨率特征融合:用低分辨率定位、高分辨率抠眼睛,再交叉注意力对齐
视线方向几乎完全取决于虹膜和瞳孔这些极细小的眼部线索,理论上分辨率越高越准;但把整幅鱼眼图都按高分辨率处理又非常浪费——画面里绝大多数像素是背景和躯干,跟视线无关。这个设计把这对矛盾拆开:全局分支在 512×512 下提取空间布局、负责"人在哪、脸框在哪",局部分支在 1024×1024 下只对裁出的人脸区域做精细编码、负责"眼睛怎么转"。两路特征通过交叉注意力融合,以全局特征作 Query、局部人脸特征作 Key/Value:
并加一个空间掩码,把注意力强制限制在对应人脸区域内,避免一个人的全局位置去乱配到别人的眼部特征。消融显示这套方案的精度几乎追平"全程 1024 高分辨率"(8.968° vs 8.945°),速度却快了 22%(16.23 vs 13.30 FPS),等于用低分辨率全局图省掉了大部分无效计算。
3. 多任务监督 + 合成数据集 MPSGaze360:用渲染数据换来真实世界拿不到的像素级标注
朝上鱼眼这个视角有个绕不过去的现实障碍:真人场景里几乎不可能给"从下往上看的多人瞳孔中心"打出精确标注,没有数据就训不出端到端模型。作者干脆用 Unreal Engine 5 + MetaHuman 把数据合成出来——MPSGaze360 含 23,496 张鱼眼图,每帧 1–7 人、覆盖 69 种人物模型,先以五个正交透视视角渲染、再按等距模型投影成鱼眼图像,从而能输出 3D 视线向量、2D 人脸/眼部关键点、人脸框、3D 头部姿态等一整套像素级精确标注。这些标注不只是训练 GT,更被当作辅助任务一起监督:尤其是眼部关键点,消融里它是单项贡献最大的因素(12.14° → 8.89°),因为逼网络显式定位瞳孔,等于给视线回归喂了最直接的几何先验。合成→真实的可行性此前已被 GazeGene 等工作验证,本文在真实鱼眼图上的定性结果也能产出合理视线。
损失函数 / 训练策略¶
多任务联合损失:\(\mathcal{L} = \lambda_1\mathcal{L}_c + \lambda_2\mathcal{L}_b + \lambda_3\mathcal{L}_d + \lambda_4\mathcal{L}_h + \lambda_5\mathcal{L}_g + \lambda_6\mathcal{L}_{fl} + \lambda_7\mathcal{L}_{el}\),其中 \(\mathcal{L}_c\) 为平衡交叉熵分类损失,其余均为 Smooth L1 损失。训练 150 epochs,Adam 优化器,初始 lr=\(10^{-3}\),在 30 和 100 epoch 衰减。
实验关键数据¶
主实验¶
| 方法 | 视线误差(°) ↓ | 调整后视线误差(°) ↓ | FPS ↑ |
|---|---|---|---|
| GAM360 (多阶段) | 18.96 | 18.76 | 4.23 |
| GazeOnce360 | 10.39 | 9.99 | 16.23 |
| 提升 | -8.57 | -8.77 | +12.00 |
消融实验¶
| 配置 | 精度↑ | 召回↑ | 视线误差(°)↓ | FPS↑ | 说明 |
|---|---|---|---|---|---|
| 基线(无RotConv,无关键点) | 0.984 | 0.993 | 12.14 | — | 基线 |
| +RotConv | 0.992 | 0.993 | 11.14 | — | 旋转不变性降低1° |
| +RotConv+眼部关键点 | 0.994 | 0.994 | 8.89 | — | 眼部监督贡献最大 |
| 单分辨率(512) | 0.996 | 0.992 | 16.50 | 20.49 | 低分辨率精度差 |
| 单分辨率(1024) | 0.998 | 0.993 | 8.945 | 13.30 | 高精度但慢 |
| 双分辨率(512+1024) | 0.999 | 0.993 | 8.968 | 16.23 | 精度≈高分辨率,速度+22% |
| RotConv vs DCN | — | — | 10.39 vs 11.05 | — | RotConv 优于 DCN |
关键发现¶
- 眼部关键点监督是提升视线精度的最大贡献因素(12.14° → 8.89°,降低了 26.8%)
- 旋转卷积明确优于可变形卷积,说明鱼眼畸变的核心问题是旋转而非一般的空间变形
- 模型在跨场景+跨身份设置下视线误差仅从 8.945° 升至 10.39°,泛化性良好
- 纯合成数据训练的模型在真实鱼眼图像上也能产生合理的视线预测
亮点与洞察¶
- 问题定义有价值:单台桌面鱼眼相机实现 360° 多人视线估计,在智能会议室、服务机器人等场景有明确应用前景
- 端到端方案 vs 多阶段流水线:精度提升近 2 倍,速度提升近 4 倍
- 合成数据生成管线设计完善,从 UE5 MetaHuman 到鱼眼投影模型,可复现可扩展
局限与展望¶
- 目前仅在合成数据上训练和评估,真实场景的定量结果缺失(只有定性可视化)
- MPSGaze360 规模相对有限(23K 图像,69 种人物),多样性可能不足以覆盖真实场景的复杂性
- 鱼眼投影只采用了等距模型,实际部署中不同镜头的畸变模型差异较大
- 远距离人物的眼部分辨率仍然很低,高分辨率裁剪的效果可能打折扣
相关工作与启发¶
- GazeOnce(前置相机多人视线估计)的鱼眼扩展版,继承了 anchor-based 多任务设计
- 旋转卷积在鱼眼感知中的成功可迁移到其他鱼眼任务(如鱼眼检测、分割)
- Sim-to-Real 策略的可行性得到了验证,未来可通过域适应或域随机化进一步提升泛化
评分¶
- 新颖性: ⭐⭐⭐⭐ 问题定义新颖,但各技术组件(旋转卷积、双分辨率、合成数据)均非首创
- 实验充分度: ⭐⭐⭐ 仅合成数据评估,缺少真实数据定量对比和更多基线方法
- 写作质量: ⭐⭐⭐⭐ 结构清晰,图示丰富,数据集生成流程讲述详尽
- 价值: ⭐⭐⭐⭐ 鱼眼视线估计的首个端到端方案,有明确的实用场景