1

我正在玩OSCeletonProcessing并成功地跟踪骨架并做一些事情。

我想知道是否有任何方法可以更改将“lost_user”消息发送到处理的延迟时间。 这需要很长时间才能实现我想要实现的目标,因为我需要在用户离开屏幕后立即停止跟踪,这样我就可以接受另一个用户的交互。(想象一个很多人都想玩的装置)。

任何帮助/提示将不胜感激。

乔恩

4

1 回答 1

2

据我从 OSCeleton 的源代码和我对 kinect 的最少经验(我从未使用过 OSCeleton)可以看出,没有办法修改该代码来做到这一点。这似乎是由驱动程序或 kinect 自身(?)处理的甚至更低的事情。

但是,您不必为此束缚自己,如果我理解正确,我会建议几种绕过问题的方法。

首先,最新的驱动程序和示例应该支持多用户,这意味着您可以只安排谁是您的主要用户。从我可以从源代码中得知,当检测到新用户以及 ID 号时,您确实会在处理中收到一条 osc 消息。您可以将每个到达的新用户放入一个 arrayList 中,并找出一种不依赖最新用户的方法来做事。

如果您仍然在追求用户后的用户,或者我误解了多用户支持(自述文件中没有提到),您可以检查自己是否有用户离开了该区域。尽管您无法获得这样的明确答案,但您可以检查例如,用户的特定关节或所有关节是否在最近收到的 10-20 条 osc 消息中移动。这可能意味着将这个关节的位置存储在一个 10-20 项数组中并不断更新,同时还要检查项是否不同。如果数组中的所有项目都相同,则您的用户没有移动一点,因此可能不应该考虑在内。

最后但同样重要的是,您可以切换到其他解决方案。我大约一年前使用的是“ Synapse for Kinect ”,现在看起来也过时了。您可以使用的最新版本是一个名为SimpleOpenNI的处理库,它绝对具有多用户跟踪功能,您不需要运行任何中间程序来为您提供关节。

我希望这有帮助

于 2012-10-21T23:28:41.217 回答