This is a simple JavaScript implementation of rPPG, a way to measure the pulse rate without skin contact. It uses a live feed of the face to analyse subtle changes in skin color.
Here's how it works:
- The face is detected and continuously tracked
- Signal series is obtained by determining the facial color in every frame
- Heart rate is estimated using frequency analysis and filtering of the series
If you are interested in the specifics, feel free to have a read of my publications on the topic:
- Remote Photoplethysmography: Evaluation of Contactless Heart Rate Measurement in an Information Systems Setting
- Using Contactless Heart Rate Measurements for Real-Time Assessment of Affective States
- Remote heart rate measurement using low-cost RGB face video: A technical literature review
Test the live demo directly in your browser: Demo
Currently, tracking is disabled. Works best if there is no subject motion.
See also my C++ implementation and YouTube Demo.
I replace the face detection function to FaceAPI project. It makes the process faster!
GPL-3.0