6

Kinectの深度データを使用し、ブロブ検出を行ってユーザーの手を見つけるプログラムを作成しました。ただし、ユーザーの手を使ってマウスを操作すると、体の部分を完全に静止させるのが苦手なためか、非常にぎくしゃくします。

過去10回のポジショニングに基づいて位置を平均化しようとしましたが、実際にはジャーキネスを防ぐことなく、ラグタイムが発生しました。これまで私が使用した最善の解決策は、ピクセルの変化が両方向で10未満の場合、カーソルを動かさないことです(つまり、どちらかの方向で10ピクセルの変化が生じると移動します)。これは問題ありませんが、それでも少しぎくしゃくしていて、精度が低いため、インターフェイスが不格好になります。

マウスがそれほどぎくしゃくしないように、人間の形の安定性の欠如をどのように補うことができますか?

4

3 に答える 3

2

これは、いずれにせよ、ラグと安定性の間のトレードオフになります。

データを確認してください。Kinectの解像度が低いためにジャークが発生する場合があります。その場合、ジャーク距離は、Kinectカメラにどれだけ近いかによって決まります。遠すぎると、カメラの解像度が低くなり、1つまたは2つのピクセル間でバウンドし続けます(ステレオカム)。

あなたは平均を計算し、動きのしきい値を設定することによって正しい方向に考えています。最後の10ポジションの平均を計算したとすると、30fpsの解像度では0.33秒の遅延が発生します。

最後の5つ(実験)のみを平均し、平均の代わりに平均値を計算することもできます。

ちょっとした考え; 動きが単独で発生することはめったにないため、平均化/平均に使用されるサンプルの数を減らすときのしきい値を設定できます。

于 2011-01-28T20:20:35.437 に答える
1

あなたのサンプルレートは何ですか?10ポジションは、100分の1秒になる可能性があります。最後の10秒または3秒を平均化することをお勧めします。

于 2011-01-28T20:04:28.440 に答える
1

ブロブ検出を行う前に、デプスマップにメディアンフィルターを適用しようとしましたか?フィンガートラッキングのデモでそれを使用したところ、安定性が大幅に向上しました。

3〜5の帯域幅で最良の結果が得られました(5はfpsを少し殺しますが、非常にスムーズです)。

于 2011-01-28T23:04:04.350 に答える