Акселерометърът ви предоставя поток от 3d вектори. В случай, че телефонът ви е в помощ, посоката му е противоположна на земната гравитация и размерът е същият. (по този начин можете да определите ориентацията на телефона)
Ако потребителят позволи ако падне, стойността на вектора ще отиде на 0 (процесът като безтегловност на космическа станция)
Ако потребителят направи някакъв жест, без да го хвърля, посоката ще се измести и амплитудата ще се повиши, след това ще спадне и след това ще се повиши отново (когато потребителят спре движението). За да определите как изглежда, можете да направите някои изследвания, като запишете данни от акселерометъра и изпълните жестове по желание.
Имайте предвид, че този акселерометър е доста шумен - ще трябва да направите известно осредняване на близките стойности, за да получите значими резултати.
Мисля, че един работещ подход за съпоставяне на жеста биха били инвариантните моменти (като моментите Hu, използвани за разпознаване на изображения) - векторът на акселерометъра във времето дефинира 4-измерно пространство и ще ви трябва набор от инвариантни моменти на мащабиране/въртене. Проектирането на такъв комплект не е лесно, но изчисляването не е сложно.
След като получите вашите моменти, можете да използвате стандартни техники за съпоставяне на вектори с клъстери. (вижте модулите „moments“ и „cluster“ от нашия проект javaocr: http://javaocr.svn.sourceforge.net/viewvc/javaocr/trunk/plugins/ )
PS: може да се измъкнете само със скорост с течение на времето, което създава двуизмерно пространство и може да бъде анализирано с javaocr на място.
person
Konstantin Pribluda
schedule
08.12.2011