<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Candara;
        panose-1:2 14 5 2 3 3 3 2 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>Hi,<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>My name is
Paul-Valentin Borza (<a href="http://www.borza.ro">http://www.borza.ro</a>) and
I’m working on my Bachelor of Computer Science Thesis – Motion Gestures: An
approach with continuous density hidden Markov models. I’ve designed and
implemented in c++ </span><span style='font-family:"Candara","sans-serif"'>continuous
density hidden Markov models for the data measured by a 3-Axis ±3G
accelerometer (the Nintendo Wii Remote over Bluetooth)</span><span
style='font-family:"Candara","sans-serif"'>.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>There are
several alternatives to motion (accelerometer) gestures like:<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>Dynamic
Time Warping and<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>Hidden
Markov Models<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>I’ve tried
them both; hidden Markov Models wins the race and provides much better results.
I don’t expect everyone to be familiar with probability and statistics notions,
but </span><span style='font-family:"Candara","sans-serif"'>one can simply see
a hidden Markov model such as a collection of states connected by transitions.
Each state is characterized by two sets of probabilities: a transition
probability, and either a discrete output probability distribution (used in
HMMs) or continuous output probability density function (used in CDHMMs) which,
given the state, defines the conditional probability of emitting each output
symbol from a finite alphabet or a continuous random vector.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>There are
several key algorithms that have to be used in these models:<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>Forward-Backward
(computes the probability of an observation sequence – the XYZ values)<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>Viterbi (explains
the observation sequence – into states)<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>Viterbi
Beam Search (improved Viterbi – runs faster)<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>Baum Welch
(trains a continuous density hidden Markov model)<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>Once the
models are created and trained, there are three types of recognitions:<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>Isolated
recognition (the user presses a button, makes a gestures, releases the button
and the gesture is recognized) – Viterbi Beam Search<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>Connected
recognition (the user presses a button, makes several gestures, releases the
button and those several gestures are recognized) – 2-Level<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>Online
recognition (the user just makes a gesture as the accelerometer is monitored
constantly and the gestures are recognized on the fly) – this is the one that
should be used on mobile devices<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>I’ll stop
here with the theory. If someone needs further clarification, please ask.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>I believe I
have the required skills to build the Accelerometer Gestures Idea for the
Google Summer of Code.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>Gestures
will be an innovation in mobile phones. Just imagine the scenario where your
phone is on the table and it's ringing... You pick the phone, see who's calling
and you take your phone to your ear to talk (the phone answers the call
automatically). The answer mobile gesture is exactly this: you take your phone
to your ear. Remember that this is an involuntary action that you always
perform. Pressing the green answer button will no longer be needed.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>It's almost
like the phone is reading you mind!<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>Plus, the user
can create his/her own custom gestures.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>I already
have a working solution for the Nintendo Wii Remote as described earlier and it
should be easy to port on OpenMoko.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>What do you
think?<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-family:"Candara","sans-serif"'>Thanks<o:p></o:p></span></p>

</div>

</body>

</html>