CanonicalPhys: Pose-Robust Remote Photoplethysmography via Canonical-Space Priors

Computer Vision and Pattern RecognitionMachine Learning

Summary

The authors identify that deep learning methods for measuring heart rate from face videos work well when the face is looking straight ahead but struggle when the head is turned. They explain this happens because the same pixel captures different parts of the face at different angles, breaking important assumptions. To fix this, they introduce CanonicalPhys, which aligns the face to a standard pose before processing, allowing certain helpful assumptions to hold. This improves accuracy across different head poses without adding extra model complexity.

Authors

Hui Wei, Seyedata Jodeiri Seyedian, Xiaobai Li, Guoying Zhao

Abstract

Deep remote photoplethysmography (rPPG) attains sub-bpm heart-rate error on frontal, stationary faces yet degrades sharply under head pose: on MMPD, the state-of-the-art FactorizePhys backbone's MAE grows $1.60\times$ from frontal ($|\text{yaw}|{<}15^\circ$) to large-yaw ($|\text{yaw}|{\geq}45^\circ$) frames. We argue that pose is a \emph{coordinate-structural} nuisance rather than a data-augmentation problem: in image coordinates the same pixel maps to different anatomy at different poses, blocking three priors otherwise natural for rPPG, namely the dichromatic reflection model, pulse-phase invariance across skin regions, and the POS/CHROM chromaticity projection, each of which presumes a stable anatomy-to-pixel mapping. We introduce \textbf{CanonicalPhys}, which prepends a differentiable four-point homography that fixes four facial anchors at canonical positions; in this canonical frame the three priors become expressible as a per-pixel Lambertian weight, a cross-ROI temporal consistency loss, and knowledge distillation from windowed POS, none of which adds trainable parameters over the backbone. At an identical parameter count, CanonicalPhys reduces MMPD's frontal-to-large-yaw MAE degradation from $1.60\times$ to $1.33\times$ and flattens the mild-yaw bin from $1.32\times$ to $1.07\times$ (across CanonicalPhys variants), with matched cross-dataset MAE reductions of up to $32\%$ on pose-rich targets. Code: https://github.com/infraface/CanonicalPhys