An exploration of tools to extract physiological features (heart rate, blinks, ...) from webcam recordings, that can be used in online experiments.
We compared the algorithms available in the NeuroKit package for remote physiology with other established implementations, against a ground truth of true physiological data.
We analyzed two subjects. It doesn't work at all. No correlation whatsoever between real and estimated PPG. Either I'm doing something wrong or 🤷. Please halp.
Researchers who agreed to share their data underwent an 8-min resting state paradigm (using the Replicable Resting-state Task in jsPsych). Faces were recorded using the laptop's commercial webcam (30 Hz), and physiological signals (ECG, PPG, RSP) were recorded using BITalino (1000 Hz).
The "true" heart rate was computed from the PPG signal using NeuroKit.
See preprocessing.py
.