1

私はOSCeletonProcessingをいじっていて、スケルトンを追跡して何かをすることに成功しました。

私が疑問に思っているのは、「lost_user」メッセージが処理に送信される遅延時間を変更する方法があるかどうかです。 ユーザーが画面から離れたらすぐに追跡を停止する必要があるため、別のユーザーの操作を受け入れることができるため、これは私が達成しようとしていることに非常に時間がかかっています。(多くの人が遊びたがるインスタレーションを想像してみてください)。

ヘルプ/ヒントをいただければ幸いです。

ジョン

4

1 に答える 1

2

OSCeletonのソースからわかる限り、kinectの経験が最小限である限り(OSCeletonを使用したことはありません)、そのコードを変更してそれを行う方法はありません。それは、ドライバーまたはkinect自体(?)によって、さらに低く処理されるもののようです。

しかし、あなたはそれに縛られる必要はありません。私が正しく理解していれば、問題を回避するためのいくつかの方法を提案します。

まず、最新のドライバーと例ではマルチユーザーをサポートする必要があります。つまり、メインユーザーを調整するだけです。ソースからわかることから、新しいユーザーが検出されたときに、処理中にoscメッセージとID番号が表示されます。到着した新しいユーザーをそれぞれarrayListに入れて、最新のユーザーに依存せずに処理を実行する方法を見つけることができます。

それでもユーザーごとのことを考えている場合、またはマルチユーザーサポート(READMEのどこにも記載されていません)について間違えた場合は、ユーザーがそのエリアを離れたかどうかを確認できます。たとえば、ユーザーの特定の関節またはすべての関節が、受信した最後の10〜20のoscメッセージで移動したかどうかを確認できるような、明確な答えを得ることができません。これはおそらく、このジョイントの位置を10〜20のアイテム配列に格納し、アイテムが異なるかどうかをチェックしながら継続的に更新することを意味します。配列内のすべての項目が同じである場合、ユーザーは少し移動していないため、おそらく考慮に入れるべきではありません。

最後になりましたが、他のソリューションに切り替えることができます。約1年前に使っていたのが「SynapseforKinect」で、今も古くなっているようです。使用できる最新の処理ライブラリはSimpleOpenNIと呼ばれ、マルチユーザートラッキングを備えており、ジョイントを提供するために中間プログラムを実行する必要はありません。

これがお役に立てば幸いです

于 2012-10-21T23:28:41.217 に答える