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

hege112902/heartbeat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Heartbeat: 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

Dependencies

The following libraries are required to run Heartbeat:

  • OpenCV

  • ffmpeg

  • Note: On Ubuntu 16.04, it works with opencv 3.1

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, e.g.:

$ g++ -std=c++11 -lopencv_core -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_objdetect -lopencv_video -lopencv_videoio -lavcodec -lavformat -lavutil -lswscale  Heartbeat.cpp FFmpegDecoder.cpp FFmpegEncoder.cpp opencv.cpp RPPG.cpp Baseline.cpp -o Heartbeat

Alternative compilation for Ubuntu

$ g++ -std=c++11 Heartbeat.cpp FFmpegDecoder.cpp FFmpegEncoder.cpp opencv.cpp RPPG.cpp Baseline.cpp `pkg-config --cflags --libs opencv` -lavcodec -lavformat -lavutil -lswscale  -o Heartbeat

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++ 98.5%
  • Makefile 1.5%