[Optimoz] gesture recognition with a hidden markov model

sharp at solutions.net.pl sharp at solutions.net.pl
Sat Oct 29 14:02:57 EDT 2005



Aaron Lenfestey wrote:
> Hi,
> 
> Coding up the model is not hard.  Also, inference in HMMs can be done
> in linear time, which means that, in the big O sense, its not any more
> computationally demanding than the current gesture recognizer. 

well, this is one of most serious questions. The big O sense is one 
thing, but still performing 3 math operations vs 30 for a single atom of 
the operation, no matter if it grows linearly or not, means more CPU 
time. Gestures are mostly written in javascript which is definitely not 
a fast language, and they are badly CPU-heavy on weaker computers, 
sometimes working poorly with some other apps running in the background 
or lots of animation going on the screen.
I found the mozgest project after two semesters of image recognition, 
three semesters of signal analysis, and lots of automatics which has 
quite a bit of overlap with these problems too, and I learned quite 
advanced techniques of them all. The project surprised me twice. First, 
when I realised there's no C/C++ recognizer backend and that whole logic 
is done in js. How the hell such difficult problems as shape recognition 
could be handled in such an inefficient language in reasonable time? And 
then second surprise/realization, which explained the first - extreme 
simplicity of the recognition model, nowhere near the simplest what I 
was learning in the course of my studies, and not requiring any of the 
heavy MIPS I had to use in the thesis work at the end of the Image 
Recognition project. Not THAT heavy, mind you, but I'd estimate 2-5s of 
runtime of a javascript program on some 300MHZ CPU, NOT acceptable as 
user interface. While mine were like some 1000 operations times linear 
growth of sample number, Optimoz has like, 10.

If you are sure this method is simple and lightweight enough, I'm all 
for joining in. More reliable recognition would be great, and sometimes 
grabbing larger chunk of data and then performing more advanced analysis 
on it takes shorter than performing simple analysis on smaller chunks in 
the realtime. But sometimes it doesn't, so... well, decide :)


More information about the Optimoz mailing list