语言: C#

git: https://github.com/dngoins/Kinectv2HeartRate

README.md (中文)


适用于Windows v2心率库的Kinect

此应用程序是一个.Net WPF应用程序,它使用R统计编程语言引擎版本> 3.12。此应用程序需要在运行应用程序的系统上安装R引擎。 R可以从这里安装:http://cran.r-project.org/ WPF应用程序利用Kinect RGB,IR和Face数据流来确定面部周围的区域,并计算随时间变化的空间平均亮度。然后将平均值除以它们各自的标准偏差以提供单位方差值。这些值是输入ICA算法所必需的。这些值将保存到csv文件中,以便使用其他机器学习技术和算法进行处理。




本文使用googletrans自动翻译,仅供参考, 原文来自github.com



Kinect for Windows v2 Heart Rate Library

This application is a .Net WPF application which uses the R Statistical programming language engine version > 3.12. This application requires the R engine to be installed on the system running the application. R can be installed from here: http://cran.r-project.org/ The WPF application utilizes the Kinect RGB, IR, and Face streams of data to determine a region around the face and calculate a spatially averaged brightness over time. The averaged values are then divided by their respective standard deviations to provide a unit variance value. These values are required for feeding into ICA algorithms. The values are saved into a csv file for processsing with other Machine Learning techniques and algorithms.

The basic approach is simple. When a person's heart pumps blood, the volume of blood is pushed through various veins and muscles. As the blood pumps through the muscles, particularly the face, the more light is absorbed, and the less brightness the a web camera sensor picks up. This change in brightness value is very minute and can be extracted using matematical tricks. The change in brightness is periodic. In otherwords, a signal or wave. If we can match the signal/wave to that of a blood pulse, we can calculate the heart rate.

In order to match the change in brightness to a blood pulse we use the Independent Component Analysis (ICA) concept. This concept is the cocktail party concept and is the basis for finding hidden signals within a set of mixed signals. If you have two people talking in a crowded room, and you have microphones placed at various locations around the room, ICA algorithms let you take a mixed sample of signals, such as sound waves, and calculates an estimated separattion mixture of components. If you match the separate components to the orignal signal of a person speaking you have found that person in the crowded room.

This ICA concept is also known as blind source separation, and this project uses the JADE algorithm for R, to provide the separation matrix of commponents for the R,G, B, IR mixture of data. The separate components then have their signals extracted using a fast Fourier transform to find a matching frequency range of a heart rate.