Development Update 1(02/15/2015):
Development Update 2(02/22/2015):
Integrated OpenCV 2.4.9 Libraries into our Android Project. Tested out samples from the OpenCV website. Successfully detected face from the video stream captured. We also calculated the average value of the pixel intensities in the region of face. These values were logged in a text file and were passed as input to MATLAB. We did a frequency domain analysis on MATLAB.
Main concentration this week was on implementation of Independent Component Analysis (ICA). We are yet to implement this on Android but we tested it out on MATLAB. We put in the average values obtained from Red, Green, Blue channels and calculated corresponding "Source" signals using ICA. Using the second source signal corresponding to the Green channel we again did the frequency response.
The following video and shows us recording the Log message on the computer.
Development Update 3(03/01/2015):
Development Update 4(03/06/2015):
Following is the frequency response,(The person did a short sprint to increase his heart beat to 100 beats per second.)
We implemented Interpolation on Android. We have implemented a Cubic Spline Interpolation technique for this project. This is basically improving our samples by a user defined factor (say 4). Our number of samples has increased from 50 to 200. Next, our focus is on a Band Pass filter. We are going through the 5th order Butterworth Band Pass filtering technique.
We implemented a 5th order Butterworth Band Pass Filter on Android. We calculated the coefficients for various sampling frequencies in the heart beat range. Next, we implement Independent Component Analysis (ICA) on the received signals to pull out the source signal corresponding to the heart rate. We have implemented this on Android. We have also generated the Frequency Response by taking the Discrete Fourier Transform (DFT) of the most dominant signal. We have plotted the same on MATLAB and results are quiet appealing.
The following is the frequency responses of a normal and raised heart rates:
The frequency spikes are shifted with the increase in the heart rate. But, we have a clear peak in the signal.
Our next steps is to incorporate these techniques and effectively calculate the heart rate even if there were a relative motion between the user and the mobile device.
Development Update 5 (03/10/2015):
Instead of calculating the Discrete Fourier Transform (DFT), we are using Peak Detection for the following reasons:
1. From the frequency domain plot of the signal,we observed that there was no clear peak which we could relate to heart rate,
even though in time domain we could make out that we were getting a signal similar to a typical heart rate.
2. There were other frequency components in the signal which had similar frequencies.
Instead we use Peak Detection and detect Peaks in a given Window Size and we manually set a stringency level to filter out noise.
A video demonstration is shown below: