We used X-Box Kinect sensor, Kinect Adapter, a computer, a Jawbone wearable watch, and an Apple Watch.
Main Algorithm
The main algorithm is using openCV to calculate the pixel-wise difference between adjacently-recorded images, using Jawbone data as reference data, and machine learning over image difference and corresponding sleep depth.
Data Collection
We collected 10 nights of data of a person's consecutive sleeping images, along with the Jawbone-recorded sleep-cycle data and Apple Watch heart rate data.
Achievements
Over machine learning, we found a neatly strong correlation between sleeping image change intensity with the Jawbone sleep depth. We obtained a set of coefficients after machine learning, used these coefficients onto real-time sleeping images, and were able to determine the optimal time to wake our user up.