バックグラウンド
XNA C#+Kinectを使用して物理教育プラットフォームを作成しています。ユーザーは、次のようなオブジェクトを使用してシーンを設定できます。
- 球
- ブロック
- 飛行機
明らかに楽しいことは、さまざまなジェスチャを使用してオブジェクトを表現することです。飛行機が一番簡単そうなので、そこから始めたいと思います。
オブジェクトを入力するフローは次のようになります。
- オブジェクトの選択(ジェスチャ認識による)
- オブジェクトをスケーリングします
- オブジェクトを回転させます
- オブジェクトを配置します
私の考え
これが私の考えです。上半身の6つの関節を追跡します。
- 左+右手首
- 左+右肘
- 左+右肩
このポイントのセットが同一線上にある場合、つまり両方の腕が水平に保持されている場合、これは平面の入力ジェスチャであると言えます。
私のアイデアを使用する場合は、ポイントがどの程度共線であるかを判断する必要があります。たとえば、一連のポイントの「共線性」を区間[0、1]の浮動小数点数として返すアルゴリズムなどです。次に、たとえば、0.9を超えるものはすべて平面として受け入れられ、エラーの余地があります。
また
または、以下のリンクに記載されているように、「テンプレートベースの姿勢検出」のアイデアは素晴らしいと思います。
しかし、私が理解していることから、これはあらゆるジェスチャーの一般的な学習アルゴリズムのようです。最初にKinectを試すために、自分で何かを書く傾向があります。
質問
それで...ポイントのセットの「共直線性」の程度を決定する既存のアルゴリズムを知っている人はいますか?