Windows Kinect SDK 1.5 で Kinect を使用してゲームを開発しています。Kinect カメラを机の上に置き、Kinect に向かって横向きに立っています。図1 、図2のように選手の骨格を表示したい。
図1
図2
これらには、Kinect Skeleton Stream によって検出された関節の位置が必要です。しかし、ほとんどの場合、プレイヤーが横向きに立っていると、後ろに隠れている関節が Kinect によって検出されません。図 1 に示すように、腕を重ねたときに、隠れている腕の関節が画面に表示されないようにします。左腕の関節を表示したいだけです。もう 1 つの状況は、図 2 に示すように通常の方法で腕を置いたときに、両方を表示したい場合です。
私のアイデアは、位置情報と関節の追跡状態を使用して、腕が体の別の部分の後ろにあるかどうかを判断することです (オーバーラップには、腕と腕、腕と体、腕と頭、腕と脚など、さまざまな種類があります)。 . しかし、Kinect によって追跡されない関節を表示しないだけでは十分ではないと思います。2 つの手首、2 つの肘、2 つの肩の間の距離を計算することで、2 つの腕が重なっているかどうかを検出できるかもしれません。2 つの手首と 2 つの肘の間の距離がすべてしきい値内にある場合、両方の腕のオーバーラップがあり、追跡された腕のスケルトンのジョイントを表示できます。
しかし、腕が体の他の部分と重なる方法がたくさんあるという別の問題があり、足もそうです. したがって、このソリューションでは、表示前に非常に多くのしきい値とチェックが必要です。また、このソリューションの効果についてはわかりません。
この問題を解決するためのよりクールなアイデアはありますか?