2011-12-08 7 views
3

私が作っているAndroidアプリでは、ユーザーが携帯電話を手にしているときに検出したいと思いますが、フリスビーを投げるときのようにジェスチャーを行います。私はこれを実装するいくつかのアプリを見てきましたが、Web上でサンプルコードやチュートリアルを見つけることができません。加速度計で身体的な動きを検出する

これはどうやってやればいいのか、いくつか考えれば素晴らしいことでしょう。

サンプルコードやチュートリアルへのリンクではさらに優れています。

答えて

3

加速度計は、3Dベクトルのストリームを提供します。あなたの携帯電話が手元にある場合、その方向は地球重力の反対であり、サイズは同じです。秋には、ベクトル値が0

は、ユーザーがそれをスローせずに、いくつかのジェスチャーを行った場合(宇宙ステーションにweighlessnessなどのプロセス)に行く場合は、ユーザーがすることができます場合は

を(この方法は、あなたが携帯電話の方向を決定することができます)、directonがシフトします振幅が上昇し、次に落ちてから再び上昇する(ユーザーが移動を停止したとき)。それがどのように見えるかを判断するには、加速度計のデータを記録し、希望のジェスチャーを実行することによっていくつかの調査を行うことができます。

加速度計はかなり騒がしいことに注意してください。意味のある結果を得るために近くの値を平均化する必要があります。

私は、ジェスチャにマッチする実行可能なアプローチの1つは、ヒューマンモーメントがイメージ認識に使用されるような不変の瞬間であると考えています - 時間の経過に伴う加速度計ベクトルは4次元空間を定義し、スケーリング/回転不変モーメントのセットが必要です。そのようなセットを設計することは容易ではありませんが、複雑なことは複雑ではありません。

あなたがあなたの瞬間を得た後、ベクトルをクラスターにマッチングするための標準的なテクニックを使用することができます。 (私たちのjavaocrプロジェクトの "moments"と "cluster"モジュールを参照してください)

PS:2次元空間を生成し、その場でjavaocrを使って分析することができます。

関連する問題