[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