0

私は学校からの線形回帰方程式を持っています。これは、データポイントのセットが線形関数に十分近いかどうかを示す1〜-1の値を示します。

ここに画像の説明を入力してください

そしてここで与えられた方程式

http://people.hofstra.edu/stefan_waner/realworld/calctopic1/regression.html

ラインのベストフィットの下で。これらを使用して、3空間(x、y、z)のポイント(前方、後方、左、右、上、下)に基づいて簡単なジェスチャ検出を行いたいと思います。最初に、それらが3次元のうちの2つの線上にあるかどうかを確認し、次にその線の傾きがゼロまたは無限大に近づいたかどうかを確認します。

これは、機能的なジェスチャ認識に十分な速度ですか?そうでない場合、誰かが代替アルゴリズムを提案できますか?

4

1 に答える 1

1

私があなたの質問を正しく理解していれば、(1)ここで説明する計算はおそらく十分に速いでしょう、(2)それは実際にはあなたが望むことをしないかもしれません、そして(3)実際には遅くなるもの実装は他の場所にあります。

だから、あなたはこれをすることを提案していると思います。(1)3次元空間における...何か...(おそらくユーザーの手)の位置を数回連続して特定します。(2)(たとえば){x、y}と{x、z}のそれぞれについて、各点の2つの座標を調べ、相関係数(式で説明されているもの)を計算して、+-に近いかどうかを確認します。 1.1。(3)両方の相関係数が+ -1に近い場合、ポイントはほぼ直線上にあります。その線の勾配を計算します(相関係数の式と同様の式を使用します)。(4)勾配が両方とも0または+-無限大に非常に近い場合、線は1つの軸にほぼ平行です。これは、認識しようとしている場合です。

1:十分に速いですか?おそらく、毎秒50フレーム程度でサンプリングしている可能性があり、ジェスチャの実行に1秒かかる場合があります。つまり、50のポジションのオーダーになります。したがって、必要な算術演算の総数はおそらく数百です(適度な数の平方根を含む)。最悪の場合、低速のARMプロセッサなどでエミュレートされた浮動小数点でこれを実行している可能性があります。その場合、各算術演算には数百サイクルかかる可能性があるため、全体が100kサイクルになる可能性があります。これは、100MHzで動作する非常に低速なプロセッサの場合は約1ミリ秒になります。この計算にかかる時間に問題はありません。

2:それは正しいことですか?それが正しい計算であるかどうかは明らかではありません。たとえば、ユーザーの手がx軸に沿って数回すばやく前後に移動するとします。それはあなたに良い結果を与えるでしょう。それはあなたが望むものですか?ユーザーが必要なジェスチャを試みたが、わずかに間違った角度で移動したとします。あなたは否定的な結果を得るかもしれません。それらがx軸に沿って少し移動し、次にy軸に沿って少し移動するとします。次に、{x、y}、{x、z}、および{y、z}平面への投影はすべてテストに合格します。これらはすべて、あなたが望まないかもしれない結果のようです。

3:実際のコストはどこにあるのでしょうか。これはすべて、すでに(x、y、z)座標を持っていることを前提としています。それらを取得することは、おそらくそれらを処理するよりも費用がかかるでしょう。たとえば、ある種のカメラベースのシステムを使用している場合は、フレームごとに重要な画像処理が行われます。または、加速度計からのデータを統合している可能性があります(ちなみに、これは厄介な不正確な位置結果をもたらす可能性があります)。位置データを取得するために、フィルタリングやその他の計算を行っている可能性があります。このような計算を実行するコストは、そもそも座標を取得するコストよりも大幅に少ないと思います。

于 2012-04-25T14:08:32.440 に答える