MAIN INFORMATIONS about the Project
MEMBERS
Quentin Bitschené Anthony Da Mota Hugo Martinez
Title of the Project : Reconnaissance de profil de mouvements à partir de l'accéléromètre
Name of the members of the Group
- Firstname: Bitschené
- Lastname: Quentin
- Class: IHM
- Mail: bitschen@polytech.unice.fr
- Firstname: Da Mota
- Lastname: Anthony
- Class: IHM
- Mail: anthony.damota06@gmail.com
- Firstname: Martinez
- Lastname: Hugo
- Class: IHM
- Mail: hugo.83300@gmail.com
Equipments
- Model: HTC 8S
- Personal phone: NON
- IMEI: 353760058901069
Content of the Project
Abstract
This project consists in programming a Widows Phone application with C# using sensors and learning algorithm. We choosed the accelerometer as our sensor.
The main goal of our project is to detect 4 kind of movement :
- Static
- Walking
- Fast walking
- Running
To do that we will use the combination between the measures we can get from the accelerometer and the use of the K-means clustering algorithm on those measures.
The accelerometer allow us to get 3 measures : X, Y and Z. Those 3 values represent the acceleration in a three dimensions space. In the project we use the Accelerometer object which allows us to get all those informations, it's our API, and it comes from the namespace Microsoft.Devices.Sensors.
We want to get two clusters that allow us to determine an average of the amplitude and frequency of our movement. To do that we use the alglib library that contains an implementation of the Kmeans algorithm, that implementation is really easy to use and is entirely configurable (you can chose the number of dimension of your sample for example).You can find it at the following URL : http://www.alglib.net/. We use this algorithm to create two clusters which will help us to find out the movement's type.
It s the répartition of the points in those two clusters that permits to determine which kind of movement the user is doing. We determined.
We choosed to show the variation of the accelerometer to the user through two interface elements :
- Three textblocks to show the actual values
- Three vectors to show graphically the variations of those values
The user chose when he wants to start the record and when when to stop it with the start and stop button. When the user presses the start button, we begin to record. We store the accelerometer's value every 20 ms in an Array. Then when the user presses stop, we put all the data we got into the Kmeans algorithm configuration and then we execute it.
When the execution is finished, we show all clustering informations to the user in a Popup :
- number of points that have been recorded
- the repartition of the points between the two clusters
- the movement induced by the analysis of those informations
We didn't have time to, but we could associate the movement recognition with some actions in our application. We could for example make the elements of our interface bigger when the user is running to make it easier for him to use the application. This would be really interesting cause it would associate what we have done in Windows Phone with our knowledge in interface's conception.
SOFTWARE PACKAGES of the Project
- README File
Link to the README: https://docs.google.com/document/d/1VWLJIBOdrdHiR0M7Tp0Q6bCRVHusTTiygcD3gESofao/edit?usp=sharing
- Project zip file
https://drive.google.com/file/d/0Bwx2Jhz4oCg5VHJHMTVHZjhydU0/view?usp=sharing
- All required softwares
You just need to install the WP8.1 SDK and Visual Studio 2013
HOW TO USE IT
Our projetct is really easy to use :
- Go on your windows phone's application menu
- Chose GestureRecognizer application
- Push the start button to start the recording
- Do whatever you want, like walking, running, or just stand there.
- Push the stop button and you get the clusters informations and detection's result.
RESULTS
The main result of this project is that we are now able to detect some specific speed of movement like walking or running, but besides that, the realisation of this project made us learn :
- How to develop a Windows Phone application on Visual Studio
- How to create an interface with .xaml files
- Developping in C# Silverlight
- How to exploit datas from phone sensors (Accelerometer in this case)
- How to use Kmeans algorithm to make clusters and use clusters informations to detect movements.