EgoHRV: Continuous Heart Rate Variability Estimation from Egocentric Systems for Autonomic Response and Skill Assessment
Organizations: Department of Computer Science, ETH Zürich, Zürich, Switzerland
Abstract
Egocentric vision systems capture human behavior from visible cues, but overlook physiological indicators of autonomic states such as stress, engagement, and attention. Heart rate variability (HRV) is a widely used noninvasive marker of autonomic regulation under stress. HRV reflects small timing differences between successive heartbeats and has so far been out of reach for egocentric platforms, where motion and noise in gaze video mask exactly this fine-grained timing. We propose EgoHRV, a method that estimates HRV as well as heart rate (HR) from the gaze cameras that are already integrated into egocentric headsets. Our pipeline combines a 3D backbone with a novel low--high decomposition module that extracts the blood volume pulse (BVP) signal from gaze video. Our cross-domain pretraining aligns the frequency-domain representations of contact-based and camera-derived signals. This alignment gives EgoHRV the temporal precision to recover HRV from the subtle fluctuations in gaze video. EgoHRV achieves state-of-the-art accuracy for HR and HRV estimation from egocentric video, and its uncertainty-aware design improves downstream behavioral modeling. Integrating our HRV estimates and confidence measures into EgoExo4D's proficiency estimator raises accuracy by 17.8%. Beyond skill, continuous HRV estimation also opens egocentric systems to stress- and arousal-aware estimation tasks. Code: https://github.com/eth-siplab/EgoHRV
Figures & tables
Appendix figures & tables8 assets
Supplementary material from the paper’s appendix.
Appendix
| Component | Specification |
|---|---|
| Input | (from 3D backbone). |
| Low-pass | Box filter (AvgPool/Conv) with , stride , pad : . |
| High-pass | . |
| Head lo | Conv1D ( , ) GELU Conv1D ( ). Output . |
| Head hi | Conv1D ( , ) GELU Conv1D ( ). Output . |
| Fusion gain | Learnable scalar (initialized to ). |
| Component | Specification |
|---|---|
| BVP encoder–decoder ( ) | |
| Input | (FFT magnitude of BVP segment). |
| Downsampling | Four sequential blocks: (1) Conv1D ( , ) BN ReLU; (2) Conv1D ( , ) BN ReLU; (3–4) additional down paths with concatenated pooled inputs (kernel , stride ). |
| Upsampling | Three symmetric decoder stages with linear interpolation (scale factor 2) followed by concatenation and Conv1D–BN–ReLU blocks ( , ). |
| Output (mean head) | Conv1D ( , ) Linear (128 1) . |
| Global pooling | AdaptiveAvgPool1D(1) Linear( ) to form BVP embedding. |
| Component | Specification |
|---|---|
| Inputs | Per-timestep HR and log-variance ; tensors . Stack to . |
| Projection | Linear applied at each time step ( ). |
| Temporal encoder | TransformerEncoder, 2 layers; each layer: , nhead , dim_feedforward , dropout , batch_first True. |
| Attention pooling | Learned scores via Linear ; masked softmax over ; weighted sum physiology vector . |
| Fusion | Concatenate ViT CLS ( ) with . |
| Head | Linear for prediction. |
| Device | Time (ms) | Windows/s | Real-time factor | Peak mem. (MB) |
|---|---|---|---|---|
| RTX 4090 | 5.75 | 173.9 | 74 | |
| CPU (10 threads) | 447.7 | 2.23 | – |