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 torchimport torch.nn as nnclass EgoHRVPipeline (nn.Module): """ EgoHRV: 从眼动视频到HRV的两阶段pipeline Stage 1: 跨域预训练 - 在接触式BVP数据上训练频域编码器 Stage 2: 推理 - 将冻结的编码器应用于眼动视频重建的BVP 核心创新:频域(Fourier幅度谱)跨域迁移 - 丢弃相位,只保留幅度 → 消除传感器位置差异 """ def __init__ (self ): super ().__init__() self .backbone = ThreeDBackbone() self .low_high_decomp = LowHighDecomposition() 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: 不确定性估计 """ features = self .backbone(gaze_video) bvp_signal = self .low_high_decomp(features) bvp_fft = torch.fft.rfft(bvp_signal).abs () encoded = self .frequency_encoder(bvp_fft) 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 :
graph TD
A[现有DMS摄像头] --> B[面部rPPG → HR]
A[现有眼动摄像头] --> C[眼动BVP → HRV]
B --> D[心率监测]
C --> E[心率变异性分析]
D --> F[压力/疲劳/认知负荷评估]
E --> F
style C fill:#e8f5e9
style E fill:#e8f5e9
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 ): visual_state = self .visual_dms(video_frame) hrv_metrics = self .egohrv(gaze_frame) 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从”行为检测”进化到”状态感知”。