Imaging-photoplethysmogram-extraction-pulse-rate-estimation

版本 1.4.2.2 (2.7 MB) 作者: Anton
Tools for imaging photoplythysmogram extraction and processing
1.1K 次下载
更新时间 2021/5/2

Imaging photoplethysmogram (iPPG) is a technique for remote non-contact pulse rate measurement. iPPG is usually acquired from facial or palm video.
This package provides tools for iPPG signal extraction and processing. The rhesus monkeys iPPG data from [1] are used as a test dataset.
INPUT: video file.
OUTPUT: iPPG signal; estimated pulse rate.
CONTENTS:
1. extract_color_channels_from_video extracts colour signal from the video. Colour signals are computed as values of red, green and blue colour component averaged over Region of Interest (ROI) for each video frame. ROI can be selected either manually for the first frame (if only limited amount of motion is expected) or set automatically using the Viola-Jones algorithm (for iPPG extraction from human face only!). This function optionally excludes from ROI non-skin and corrupted pixels.
2. compute_ippg implements iPPG extraction methods considered in [2] (including the recently introduced CHROM and POS methods) as well as some iPPG pre- and post-processing techniques.
3. ippg_extraction_example- basic (minimal) example of using the package for estimation of pulse rate from the iPPG extracted from a video.
4. dataset_analysis - extended example of using the package for the data from [1].
5. Signal processing techniques implemented as separate m-files: wavelet_filter, wavelet_init_scales, smoothness_priors_detrending, std_sliding_win.
6. Functions for pulse rate estimation from iPPG signal:
6.1. DFT_pulse_rate_estimate uses Discrete Fourier Transform to compute average pulse rate.
6.2. wavelet_pulse_rate_estimate uses Continuous Wavelet Transform to estimate pulse rate.
7. Useful functions for comparing iPPG-based pulse rate with the ground truth:
7.1. bland_altman_plot - draws Bland Alman plot for the data.
7.2. compute_SNR - computes Signal-to-Noise Ratio (SNR) of the iPPG signal given the true pulse rate.
7.3. assess_estimation_performance - computes a number of estimation quality metrics, including root-mean-square error, mean absolute error, Pearson correlation, etc.
8. Dataset folder contains the dataset used for testing the package. The dataset was recorded from rhesus monkeys, therefore pulse rate is higher than for humans (100-250 BPM), please refer to [1] for details.
9. dataset_description.docx contains a brief description of the dataset.
Additional functionality will be added later.

ACKNOWLEDGEMENTS:
I would like to thank Gasper Slapničar for extensive testing and improving the code.
I would like to thank Dr. Cardoso for posting the jadeR.m script, which I use to implement ICA-based iPPG extraction.

REFERENCES
[1] Unakafov AM, Moeller S, Kagan I, Gail A, Treue S, Wolf F. Using imaging photoplethysmography for heart rate estimation in non-human primates. PLoS ONE 2018;13(8): e0202581. https://doi.org/10.1371/journal.pone.0202581
[2] Unakafov AM. Pulse rate estimation using imaging photoplethysmography: generic framework and comparison of methods on a publicly available dataset. Biomedical Physics & Engineering Express. 2018;4(4):045001.

引用格式

Unakafov AM. Imaging photoplethysmogram extraction&pulse rate estimation (https://www.mathworks.com/matlabcentral/fileexchange/67527), MATLAB Central File Exchange (2018). Retrieved December 12, 2018.

Unakafov AM. Pulse rate estimation using imaging photoplethysmography: generic framework and comparison of methods on a publicly available dataset. Biomedical Physics & Engineering Express. 2018;4(4):045001.

Unakafov AM, Moeller S, Kagan I, Gail A, Treue S, Wolf F. Using imaging photoplethysmography for heart rate estimation in non-human primates. PLoS ONE 2018;13(8): e0202581. https://doi.org/10.1371/journal.pone.0202581

MATLAB 版本兼容性
创建方式 R2016a
与 R2012a 及更高版本兼容
平台兼容性
Windows macOS Linux
致谢

参考作品: Bland Altman Plot

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

无法下载基于 GitHub 默认分支的版本

版本 已发布 发行说明
1.4.2.2

See release notes for this release on GitHub: https://github.com/AntonUnakafov/Imaging-photoplethysmogram-extraction-pulse-rate-estimation/releases/tag/1.4.2.2

1.4.2.1

Misleading examples is removed

1.4.2.0

Misleading example for using compute_SNR is removed from the file

1.4.1.0

1. A GitHub repository for the package is created.
2. A minor error in DFT_pulse_rate_estimate.m is corrected (the weight of the lowest frequency component in the pulse rate range was erroneously divided by 2).

1.4.0.0

1 Bug related to iPPG signal sign has been fixed.
2 Automatic face detection with Viola-Jones algorithm has been updated and is ready to use.
I would like to thank Gasper Slapničar for extensive testing and improving the code!

1.3.0.1

description updated

1.3.0.0

1. Extraction of colour signal from the video is added, that is now one can use the package to extract iPPG directly from video.
2. A minimal example demonstrating the sequence of iPPG extraction and processing steps is added.
3. Comments and descrip

1.2.0.2

Description updated

1.2.0.0

Dataset description added

1.1.0.0

Description updated

1.0.0.0

要查看或报告此来自 GitHub 的附加功能中的问题,请访问其 GitHub 仓库
要查看或报告此来自 GitHub 的附加功能中的问题,请访问其 GitHub 仓库