Project SMILE Winner of SAP TechEd 2015

We won the Las Vegas Demojam with an application we built in just 32 hours. We presented it on stage to give you an idea of what it can do but we didn’t give you a complete picture of exactly what went into it.

The Brief

Our brief was to reduce employees engaging in bad habits that will harm their health at work. We built an application that provided an offering to the end employee as a native mobile app, a web interface for the company health therapist, a sensor for the desk to capture the data and a backend to tie all this together with analysis capabilities. The purpose was to monitor the following employee attributes:

  • Temperature of Employee
  • Movement of Employee at desk
  • Hydration of Employee

The Hardware

Keytree_SMILE_Demojam_thermopileThe key capture of the data was the hardware selection. We settled on a thermopile. Thermopile sensors monitor temperatures of what they are looking at by analysis the infra-red being emitted. It performed 64 unique temperature measurements 15 times per second which was read by an Arduino UNO before the raw data was pushed to SAP HANA. To give you an idea of data scales this gives us approximately 960 readings per second and just shy of 83 millions unique temperatures per day. The actual electronic circuit itself required the addition of passives, regulators, pull ups and a few other components so when we built it on a breadboard it did look like a tangle of wires but it did provide clean data.

For the purposes of the demo we mounted the sensor on top of a LG HD webcam and then coordinated the field of view of the webcam with the field of view of the sensor so that we were able to demonstrate what the hardware was actually doing. For actual use the webcam would not be required.

We also put in Bluetooth ibeacon technology to allow user validation at a particular desk. This means that the user has the SMILE app installed when they come near their device can see the ibeacon and then automatically sign them in when they are close to the sensor.

The Logic

With all of this data being captured from the hardware the processing and analysis is the next stage of the application. On each frame we look for significant areas. A significant area is defined as a region of temperature readings that differs from the ambient temperature and is of a particular size. To do this we actually pulled an image processing technique for blob detection and analysis, these blobs were then compared to known entities or signatures of entities so we had a signature of a human face that was between 35-40 degrees and of a particular size and we had similar for cold and hot drinks. Each of these detected signatures have a calculated weighted center point, magnitude and maximum value. At this stage we have detection of a human being present and their temperature. With some research we discovered that the forehead is a reasonably accurate body temperature, but is on average two degrees below the core body temperature as it is the skin surface temperature we are monitoring but the forehead has blood flow close to the surface.

With the rate at which the sensor provides data we look at the difference between frames. Once these blobs start to be analyzed in movement we were able to calculate their interactions. So now we have the movement of an individual’s head at a desk and then when a drink is put to their mouth.

For the organisation level we are not interested in the individual values of these we just want one metric to measure the health of an employee so these metrics are combined into a single SMILE score ranging from 0 to 100 of how healthy the individual is and then it can be averaged over the course of a day. So SAP HANA has taken 83 million data points and worked out one value of how healthy a person is.

As an additional level we took the temperature of an individual over time and compared it with known temperature variance of certain illnesses such as influenza so that a person can be warned if they should go and preemptively get themselves checked out by the doctor.

The Backend

We needed to tie all of the application together in a fast reliable way. We set out with NodeJS using the SAP HDB connector, websockets (via Socket IO) and rest service (via HTTP). This gave us a platform that can connect data streams over the full duplex connection methods or run one of requests all connected to the data stores in SAP HANA.

One of the aspects we did foresee early on is that writing the raw SQL statements to pull data from our HANA model which was created in the SAP HANA Tools for Eclipse wasn’t going to be as fast as it needed to be. Therefore, we wrote a library that creates the statements much like Squel does for MySQL but for HANA. This library was more time consuming to get working for the first few queries we needed in this application but then it meant that we could perform retrievals and queries in HANA using a hand full of lines of code in NodeJS.

The rest service used express library with our own middleware tier to process requests.

The web sockets used socket io so that machines can join particular data feeds and streams of data using a pub/sub and room methodology.

The User Experience

Keytree_SMILE_native_iphone_applicationThis experience was a custom designed and custom UX native mobile app which was geared around give user’s goals. For instance, that you need to drink water 5 times a day or you need to move more than a particular threshold. The iPhone app connects to the data feeds from the backend analysis directly on the web sockets when the app is running and via apple push notifications (APNS) when it isn’t. The mobile device receives notifications when you check in to the sensor (using the iBeacon), your temperature, movement and hydration which are shown in real-time within the app and actions performed such as when you take a drink so no need to touch the screen for it to be acknowledged.

The Organisation Experience

Keytree_SMILE_DashboardFor this we went with a Web UI built in ReactJS which consumed the websocket and rest services for data acquisition. This data was then delivered to the UI within graphs, floor plans and alert lists so it was easy to see what was going on.

This means that easily a organization health therapist can see which desks people are at, their temperature and any notifications that are of concern for instance a user has drunk too much coffee or someone is too stationary.

The End Result

The complete solution provides a comprehensive health system for an organization with benefits and motivations for both the individual users and the organization.

In the 32 hours we build a mobile native app, web interface, electronic hardware and SAP HANA data model (with a custom built library on top). We are looking at taking this hardware forward and making it into a product and give everyone a chance to SMILE.

Bookmark and Share

HANADeck – Demojam 2013 concept

At Keytree labs we have been working hard at for SAP Demojam 2013. We are putting forward two ideas and our first one.

HANADeck is virtual reality experience powered by the Oculus Rift, Leap Motion and Microsoft Kinect. This means that a user can walk around and manipulate with their hands a virtual reality space. For this use case we are using the National Grid pylon database. A service engineer can inspect the data associated with any tower on the network remotely.

Bookmark and Share

Teensy 3.0, Launchpad, Arduino and Raspberry Pi

Over the past year or so there has been an explosion of electronic development boards so you can build your own DIY projects and feed the hobbyists desires. I have been no exception and have quite a few boards including the Raspberry Pi, Arduino, LaunchPad from Texas Instruments and the latest addition of the Teensy 3.0. I have added a bit about each board and how I have used them.

Continue reading “Teensy 3.0, Launchpad, Arduino and Raspberry Pi” »

Bookmark and Share

Useful Links for Voice Recognition

As we have seen more and more applications and devices using voice recognition especially on Android and iOS and because I have been working with applications that use voice recognition I have put together some links that maybe useful for applications using voice recognition. I have used several of these for applications including the project glass inspired work.

µSpeech (muSpeech)

This library is for arduino and provides an interface for voice recognition using the Arduino, which does voice recognition in a way different from most high powered voice recognition methods. It calculates the complexity of the signal is determined by taking the absolute derivative of the signal multiplying it by a fixed point saclar and then dividing it by the absolute integral of the signal. This project is hosted on github so go take a look.
http://arjo129.github.com/uSpeech/

Dragon Naturally Speaking

Developed by Nuance this is one of the most advanced voice recognition offerings out there. The SDKs are available for client use or as a server side service.
http://www.nuance.co.uk/for-developers/dragon/index.htm

Microsoft Speech API

Offered by microsoft and integrated into kinect for windows parts (tutorial here), it provides voice recognition of a word or phrase from a set list.
http://msdn.microsoft.com/en-us/library/dd266409.aspx

AT&T Watson Speech Recognition

This offering by AT&T provides full voice recognition from a cloud based offering but uses advanced category indication to help Watson identify what you are saying. ie you can tell it if the category is business and it refines it’s recognition.
http://www.research.att.com/projects/WATSON/index.html?fbid=_wsE6gQcLDc

iSpeech

Part of one of the most successful apps on android, iOS and Playbook iSpeech provides a Text to Speech cloud service that is easy to use and integrate. They offer mobile SDKs to get you up and running quickly.
http://www.ispeech.org/

SpeechFX

This recognition SDK performs continuous recognition giving you full voice trasncoding.
http://www.speechfxinc.com/voicein.html

Voxler

Provides speech recognition for 25 major languages.
http://www.voxler.fr/index.php/what-we-do/speech-recognition-sdk

Sphynx Voice Recognition

This is a good open source voice recognition solution.
http://cmusphinx.sourceforge.net/

 

Bookmark and Share