Skip to content

Desktop implementation of Remote Photoplethysmography – Measuring heart rate using facial video.

License

Notifications You must be signed in to change notification settings

gaviriar/heartbeat

 
 

Repository files navigation

ArgParser: Measuring heart rate using remote photoplethysmography (rPPG)

N|Solid

This is a simple implementation of rPPG, a way to measure heart rate without skin contact. It uses a video recording or 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 our publications on the topic:

Demo

https://go.yuri.at/streaming-ffmpeg-with-nodejs-on-web-sockets-to-html/

Dependencies

The following libraries are required to run HeartBeat:

  • OpenCV
  • [G3Log] - needs to be installed

They must be installed on the system such that headers and libraries are found on the compiler's standard search path.

Installation

Compile the source code for your system, providing a number of required linker flags. This works with opencv 3.4.1 on macOS:

$ g++ -std=c++11 -lopencv_core -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_objdetect -lopencv_video -lopencv_videoio -lavcodec ArgParser.cpp opencv.cpp RPPG.cpp Baseline.cpp -o ArgParser

Alternative compilation for Ubuntu. Works with opencv 3.1:

$ g++ -std=c++11 ArgParser.cpp opencv.cpp RPPG.cpp Baseline.cpp `pkg-config --cflags --libs opencv` -o ArgParser

or using CMake

mkdir build
cmake ..
make

License

GPL-3.0

About

Desktop implementation of Remote Photoplethysmography – Measuring heart rate using facial video.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 94.9%
  • CMake 5.1%