EgoHRV:从眼动摄像头提取心率变异性——无需生理传感器的驾驶员自主神经系统监测

论文信息

项目 内容
标题 EgoHRV: Continuous Heart Rate Variability Estimation from Egocentric Systems for Autonomic Response and Skill Assessment
arXiv arXiv:2608.18711 (2026年8月19日)
领域 cs.CV, eess.SP
关键词 egocentric vision, HRV, rPPG, gaze video, cross-domain pretraining
核心 从内置眼动摄像头提取HRV,4秒窗口,无需额外传感器

核心突破

EgoHRV证明了眼动追踪摄像头的内置红外摄像头可以恢复心率变异性(HRV)——这意味着驾驶员的自主神经系统状态(压力/疲劳/认知负荷)可从现有DMS硬件直接获取,无需任何额外传感器:

指标 EgoHRV 传统rPPG 接触式PPG
时间分辨率 4秒窗口 60秒平均 实时
IBI MAE 105.91ms ~200ms <10ms
低不确定性IBI MAE 39.58ms - -
硬件需求 眼动摄像头(已有) 面部摄像头 腕带/胸带
额外BOM $0 $0 $15-30

方法详解

1. 两阶段架构

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
import torch
import torch.nn as nn

class EgoHRVPipeline(nn.Module):
"""
EgoHRV: 从眼动视频到HRV的两阶段pipeline

Stage 1: 跨域预训练 - 在接触式BVP数据上训练频域编码器
Stage 2: 推理 - 将冻结的编码器应用于眼动视频重建的BVP

核心创新:频域(Fourier幅度谱)跨域迁移
- 丢弃相位,只保留幅度 → 消除传感器位置差异
"""

def __init__(self):
super().__init__()
# Stage 1: 3D backbone + 低高频分解
self.backbone = ThreeDBackbone()
self.low_high_decomp = LowHighDecomposition()

# Stage 2: 频域编码器(在接触式BVP上预训练后冻结)
self.frequency_encoder = UNetEncoder(
input_channels=1,
feat_dim=64
)
self.ibi_predictor = IBIPredictor(feat_dim=64)

def forward(self, gaze_video):
"""
Args:
gaze_video: 眼动摄像头视频 (B, T, C, H, W)

Returns:
ibi: 预测的inter-beat-interval
log_var: 不确定性估计
"""
# 1. 3D backbone提取时空特征
features = self.backbone(gaze_video)

# 2. 低高频分解(分离运动噪声和脉搏信号)
bvp_signal = self.low_high_decomp(features)

# 3. Fourier幅度谱(丢弃相位)
bvp_fft = torch.fft.rfft(bvp_signal).abs()

# 4. 预训练编码器推理(冻结)
encoded = self.frequency_encoder(bvp_fft)

# 5. IBI预测 + 不确定性
ibi, log_var = self.ibi_predictor(encoded)

return ibi, log_var


class LowHighDecomposition(nn.Module):
"""
低高频分解模块:可学习的自适应滤波器

分离:
- 低频:脉搏信号(0.5-4Hz对应30-240bpm)
- 高频:运动噪声

通过门控残差连接融合
"""

def __init__(self):
super().__init__()
self.low_filter = nn.Conv1d(1, 1, 15, 1, 7)
self.high_filter = nn.Conv1d(1, 1, 5, 1, 2)
self.gate = nn.Sigmoid()

def forward(self, x):
low = self.low_filter(x)
high = self.high_filter(x)
gate = self.gate(low.mean(dim=-1, keepdim=True))
return low + gate * high


class PhysFusion(nn.Module):
"""
PhysFusion: 不确定性感知的HRV+视频融合

用预测的log_var作为不确定性权重
下游任务(驾驶技能评估)提升17.8%
"""

def __init__(self, feat_dim=64, num_heads=4):
super().__init__()
self.attention = nn.MultiheadAttention(
feat_dim, num_heads, batch_first=True
)
self.uncertainty_weight = nn.Linear(1, feat_dim)

def forward(self, video_features, hrv_features, log_var):
# 不确定性加权:高不确定性窗口降权
weight = torch.exp(-self.uncertainty_weight(log_var))
weighted_hrv = hrv_features * weight

# 跨模态注意力融合
fused, _ = self.attention(
video_features, weighted_hrv, weighted_hrv
)

return fused

2. 跨域预训练原理

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
"""
跨域预训练核心思想:

1. 在大规模接触式BVP数据集(WildPPG, DeepPPG)上训练
- 输入:BVP信号的Fourier幅度谱
- 目标:ECG推导的IBI
- 损失:负对数似然(输出均值+log方差)

2. 冻结编码器,应用于眼动视频重建的BVP
- 只使用幅度谱(丢弃相位)
- 消除传感器位置差异(接触式vs摄像头)
- 频域特征对运动噪声更鲁棒

关键发现:频域比时域更适合跨域迁移
"""

pretraining_config = {
"source_domain": "Contact BVP (WildPPG, DeepPPG)",
"target_domain": "Egocentric gaze video → reconstructed BVP",
"transfer_method": "Fourier magnitude spectrum",
"phase": "Discarded (eliminates sensor-site mismatch)",
"encoder": "U-Net (frozen after pretraining)",
"loss": "NLL: -0.5 * (1 + log_var - (target - pred)^2 / exp(log_var))",
"window": "4.3 seconds",
"key_insight": "频域幅度谱在接触式和摄像头BVP间具有更好的域不变性"
}

实验结果

HRV估计性能

方法 IBI MAE (ms) HR MAE (bpm) SDNN误差 RMSSD误差 时间分辨率
EgoHRV 105.91 5.2 12.3 15.1 4s
EgoHRV (低不确定性) 39.58 2.1 5.8 7.2 4s
baseline (时域) 210.5 15.3 35.2 42.1 60s
rPPG (面部) 150.2 8.7 20.5 25.3 10s

下游任务(技能评估)

配置 准确率 提升
仅视频 68.5% baseline
视频+HR 74.2% +5.7%
视频+HRV (EgoHRV) 86.3% +17.8%
视频+HRV(低不确定性窗口) 89.1% +20.6%

IMS开发启示

1. 零成本HRV监测

EgoHRV的核心价值:从已有的DMS/眼动追踪摄像头提取HRV,BOM成本$0:

2. 驾驶员状态评估体系

HRV指标 生理意义 驾驶状态 检测窗口
SDNN↓ 自主神经调节能力↓ 疲劳/压力 4s
RMSSD↓ 副交感神经活动↓ 压力/焦虑 4s
HR↑ 交感神经激活 紧张/路怒 4s
HRV↓+HR↑ 交感主导 高认知负荷 4s
HRV↓+HR↓ 疲劳模式 困倦 4s

3. 与现有IMS模块融合

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
class EgoHRVDMSIntegration:
"""
EgoHRV + 视觉DMS融合架构

利用现有DMS摄像头实现:
- 视觉层:疲劳/分心/视线检测(已有)
- 生理层:HRV压力/认知负荷监测(新增,零BOM)
- 融合层:多维度驾驶员状态评估
"""

def assess_driver_state(self, video_frame, gaze_frame):
# 视觉DMS(已有)
visual_state = self.visual_dms(video_frame)
# {fatigue_level, distraction_score, gaze_zone, head_pose}

# EgoHRV(新增)
hrv_metrics = self.egohrv(gaze_frame)
# {heart_rate, sdnn, rmssd, stress_index, cognitive_load}

# 融合评估
if visual_state.fatigue_level > 0.6 and hrv_metrics.sdnn < baseline:
return "SEVERE_FATIGUE", "LEVEL_3_WARNING"
elif hrv_metrics.stress_index > 0.7:
return "HIGH_STRESS", "COMFORT_MODE_ADJUST"
elif visual_state.distraction_score > 0.5:
return "DISTRACTED", "LEVEL_1_WARNING"
else:
return "NORMAL", "MAINTAIN"

4. 量产路线

阶段 方案 难度 时间
P0 面部rPPG提取HR ★★★ 6个月
P1 眼动摄像头BVP重建 ★★★★ 9个月
P2 跨域预训练部署 ★★★ 12个月
P3 不确定性融合下游任务 ★★ 15个月

关键局限性

局限 详情 缓解
单一数据集 仅在egoPPG-DB验证 需要多数据集验证
室内场景 缺乏户外/强光测试 需要实车测试
IBI MAE 105ms 远大于ECG金标准 低不确定性窗口39ms可用
眼动摄像头要求 需要内置眼动红外摄像头 高端DMS已有

总结

EgoHRV是驾驶员生理监测的重要突破——证明了HRV可从已有的眼动追踪摄像头中提取,4秒时间分辨率远超传统60秒平均。对IMS的核心启示:DMS摄像头的价值远未被充分利用——除了视线追踪和面部表情分析,同一摄像头还可提取HRV,实现零额外成本的驾驶员压力/疲劳/认知负荷监测。结合视觉和生理信号的融合架构,将使DMS从”行为检测”进化到”状态感知”。