2012-02-14 2 views
0

様々な身体部位の位置を記録しています。私たちのハードウェア(Microsoft Kinect)は、人体の20関節の位置を提供します。また、約30 fpsでデータを提供します。位置には、その特定の関節のX、Y、Z座標も含まれます。特定のジェスチャーは約3〜4秒です。のフレーム数は80から120まで変化します。私たちの問題は、このデータを保存して取り出し、処理することです。次のように私たちの用語は次のとおりです。以下のシナリオでは、どのような設計が良いでしょうか?

フレーム:検討中のすべての関節のスナップショット サンプル:すべてのフレームのコレクション特定のジェスチャーのため

問題は、私たちが実験していると私たちはどのように多くの関節を知りませんでプロジェクトで使用するデータ。だから固定されていません。

ここで、データを格納するという特定の問題について考えてみましょう。 SQLクエリは、次のメソッドを使用して生成されます。 http://pastebin.com/ga114cQm

ご覧のとおり、問題はコードの繰り返しが多いことです。データを前処理しなければならない別の問題でも、同じことが起こります。 6つのジョイントだけが前処理されているにもかかわらず、メソッドの長さは多すぎます。 こちらをご覧ください:http://pastebin.com/JVKWNDmZ

動作していますが、私はそれが好きではありません。また、配列を直接使用するのではなく、オブジェクトを塗りつぶすようなカプセル化を使用すると、どれくらいのパフォーマンスが得られますか?これはリアルタイムのジェスチャ認識システムであるため、多くの遅延はありません。

質問があまり明確でない場合は、わからない部分を教えてください。私は非常に大きな質問をしたくなかったので、私は問題全体を要約しようとしました。

+0

**あなたが**着用したデータを**使用してください。保管しないでください。それを行う時間はありません。ジェスチャーを認識しなければならない場合は、ジェスチャー自体に含まれていないものはすべて破棄してください。 – vulkanino

+0

@vulkaninoはい、私たちはそれを正確に認識しています。しかし、私たちはトレーニング目的のためにその日付を保存する必要があります。 – shahensha

答えて

0

データベースに値を格納するSQL INSERT命令を作成するだけで問題が解決しない場合、コードは意味をなさない。

あなたは、DBにストアドプロシージャを作成するコードでパラメータを設定するなど、プロシージャを呼び出すことができます:オープンDB接続を維持し、速度を最適化するには

SqlCommand cmd = new SqlCommand("InsertKinectData", conn); 
cmd.CommandType = CommandType.StoredProcedure; 
cmd.Parameters.Add(new SqlParameter("@SkeletonX", sd.Position.X)); 
//... 
cmd.ExecuteNonQuery(); 

、再作成しないでくださいSqlCommandもパラメータも、到着するとすぐに新しい値でパラメータを設定し、直後にSPを呼び出します。

関連する問題