19

私の目標は、太陽の黒点に取り付けられた加速度計からの単純なジェスチャーを認識することです。ジェスチャは、デバイスを回転させたり、いくつかの異なる動きでデバイスを動かしたりするのと同じくらい簡単です。現在、このデバイスには加速度計しかありませんが、ジャイロスコープを追加することで、より簡単/より正確になるかどうかを検討しています.

これを行う方法についての推奨事項はありますか?Javaで利用可能なライブラリはありますか? おすすめのサンプル プロジェクトを確認しますか? おすすめの用紙は?

太陽のスポットは、システムの迅速なプロトタイプを作成するのに役立つ Java プラットフォームです。これは Java を使用してプログラムされており、コンピューターに接続された基地局にコマンドを中継することができます。ハードウェアの仕組みをさらに説明する必要がある場合は、コメントを残してください。

4

4 に答える 4

22

加速度計は、重力による一定の加速度に加えて、デバイスがユーザーによって受ける加速度とノイズを記録します。

無関係なノイズをできる限り取り除くために、サンプルをローパス フィルター処理する必要があります。最悪のノイズは、一般に、人為的に発生する可能性のある加速度よりも高い周波数です。

デバイスがユーザーによって加速されていない場合、唯一の力は重力によるものであるため、空間での姿勢を推測できます。さらに、総加速度が 1g から大幅に変化する場合、それはユーザーがデバイスを加速したことが原因であるに違いありません。重力の最後の既知の推定値を差し引くことで、ユーザーがデバイスをどの方向にどれだけ加速しているかを大まかに推定できるため、既知のジェスチャのリストとの照合を開始できるデータを取得できます。

単一の 3 軸加速度計を使用すると、現在のピッチとロール、および直線でのデバイスの加速度も検出できます。加速度から重力を引いたものを積分すると、現在の速度の推定値が得られますが、推定値はノイズのために現実から急速にずれていきます。デバイスが加速されていないポイントを提供し、推定をリセットして重力の方向を確実に推定できるように、ジェスチャーの前/間/最中のユーザーの行動について推測し、UI を介してユーザーをガイドする必要があります。位置を見つけるために再度統合しても、有用な時間にわたって有用な結果が得られる可能性はほとんどありません。

2 つの 3 軸加速度計が離れている場合、または 1 つといくつかのジャイロがある場合は、(加速度ベクトルを比較するか、ジャイロから直接) デバイスの回転を検出することもできます。角運動量を数秒間積分すると、積分を開始したときと比較して現在のヨーの推定値が得られますが、これも急速に真から外れます。

于 2008-10-13T21:17:57.310 に答える
7

誰も既存のライブラリについて言及していないように見えるため、OP の要求に従って、次 のようになります

。http : //www.wiigee.org/測定値。これは、隠れマルコフ モデル[1] を使用して実現されます。 どうやらThorn Technologiesという会社によって大きな効果を得るために使用されたようで、彼らはここで彼らの経験について言及しています: /または、 FastDTW ( https://code.google.com/p/fastdtw/ ) を検討することもできます。通常のDTWよりも精度が低い





[2] だけでなく、計算コストも低くなります。これは、組み込みシステムやモバイル デバイスに関しては大きな問題です。

[1] https://en.wikipedia.org/wiki/Hidden_​​Markov_model
[2] https://en.wikipedia.org/wiki/Dynamic_time_warping

編集: OP は、彼がプロジェクトを完了したコメントの 1 つで言及しています。$1 Recognizerのバリアントを使用して、現場で 90% の精度とサブミリ秒の計算時間。彼はまた、ローテーションは彼のプロジェクトの基準ではなかったと述べています.

于 2014-11-02T11:45:39.150 に答える
5

まだ言及されていないのは、実際のジェスチャー認識です。これは難しい部分です。データをクリーンアップした後 (ローパス フィルター処理、正規化など) は、まだほとんどの作業を行う必要があります。

隠れマルコフモデルを見てください。これは最も一般的なアプローチのようですが、それらを使用するのは簡単ではありません。通常、前処理ステップがあります。最初に STFT を実行し、結果のベクトルを辞書にクラスタリングしてから、それを HMM にフィードします。Java lib の Google コードで jahmm を見てください。

于 2009-07-02T03:39:34.273 に答える
1

重力と回転のベースラインをリセットする必要があることについてのムーンシャドーのポイントに追加します...

デバイスが測定ベースラインをリセットするための安定した静止時間 (デバイスに作用する唯一の力が重力である場合) を期待しない限り、システムは最終的にめまいに相当するものを発症します。

于 2008-10-21T22:46:25.757 に答える