1

kinect 駆動の .net アプリを構築しています。kinect の検出距離を制限することはできますか?

キネクトによって制御されるインタラクティブなショッピング ウィンドウがあるように、地面の X マークを踏んだ人だけを検出したい、またはセンサーから 3 メートル離れた人を検出したいとします。誰かが 3 メートルより近くにいる場合、またはそれより遠ざかっている場合、その人は検出されません。

ほとんどのコードは C# から翻訳されていますが、私はコーディングに VB.Net を使用しています。

ありがとう。

4

2 に答える 2

3

SkeletonFrameReady コールバックには、foreachアクティブなスケルトンをステップ実行するためのループ (または類似のもの) が含まれている可能性があります。また、それらが積極的に追跡されているかどうかも確認する必要があります。

foreach (Skeleton skeleton in _skeletons) {

    // some extra setup stuff here...

    if (skeleton.TrackingState != SkeletonTrackingState.Tracked)
      return;

    // the Kinect is actively tracking the skeleton at this point

    ...
}

この時点でやりたいことはZ、人の位置を確認することです。参照として使用する関節を選択します。頭、腰、または脊椎をお勧めします。位置が希望の位置にある場合はZ、引き続きスケルトンを操作します。

foreach (Skeleton skeleton in _skeletons) {
    ....

    if (skeleton.TrackingState != SkeletonTrackingState.Tracked)
      return;

    if (skeleton.Joints[JointType.Spine].Position.Z < _minValue || skeleton.Joints[JointType.Spine].Position.Z > _maxValue)
      return;

    // if you reach this point, the person is standing a certain distance from the Kinect.  Not too close, not too far away.

}

位置の範囲を確認する必要がありますZ。狭い範囲でもかまいませんが、Kinect がユーザーを無視せずに少し移動できる十分なスペースをユーザーに与える必要があります。

更新:Positionからプロパティを使用することもできますSkeleton。Kinect の FOV 内のスケルトン全体の計算されたポイントへの単一の x/y/z 参照があります。

于 2012-11-25T03:59:59.120 に答える
0

検出されたすべてのスケルトンを調べ、そのスケルトンを、中央のジョイントのZ位置がXマークの距離にあるメインスケルトンとして設定します。60cmの公差を考慮してください。

于 2012-11-29T21:34:39.200 に答える