【问题标题】:Kinect hangs up suddenly after working pretty well a few seconds. How can I fix it?Kinect 在运行良好几秒钟后突然挂断。我该如何解决?
【发布时间】:2012-09-20 14:44:35
【问题描述】:

我尝试在我的 Mac 上使用“Kinect for Windows”。环境设置似乎进展顺利,但似乎有些问题。当我开始一些示例时,例如

OpenNI-Bin-Dev-MacOSX-v1.5.4.0/Samples/Bin/x64-Release/Sample-NiSimpleViewer

或其他,示例应用程序启动并且在开始时似乎运行良好,但几秒钟后(10 到 20 秒),应用程序屏幕中的移动停止并且不再工作。似乎应用程序无法从 Kinect 获取数据,从某个时间点过去了几秒钟。

我不知道是库还是它们的依赖,或者 Kinect 的硬件本身出了问题(至于硬件,隐形坏了之类的),我真的很想知道如何检测它。

谁能告诉我如何解决这个问题?

我的环境如下图:

  • Mac OS X v10.7.4(MacBook Air,core i5 1.6Ghz,4GB 内存)
  • Xcode 4.4.1
  • Windows 版 Kinect
  • OpenNI-Bin-Dev-MacOSX-v1.5.4.0
  • Sensor-Bin-MacOSX-v5.1.2.1
  • 我在这里按照关于 libusb 的说明进行操作:http://openkinect.org/wiki/Getting_Started#Homebrew

当我尝试使用 libfreenect(我知道它与 OpenNI+SensorKinect 是分开的)时,它的示例应用程序显示“找到的设备数量:0”,这对我来说毫无意义,因为我确实将我的 Kinect 连接到了 MBA... )

【问题讨论】:

  • 我认为您的问题是:“我尝试在我的 Mac 上使用“Kinect for Windows”。”它适用于 Windows,而 Mac 不是 Windows。
  • @TonyTheLion 感谢评论,但实际上在 Mac 或 Windows 上都没有关系。 “Kinect for Windows”意味着它是为开发者准备的,而不是用于 Xbox。官方不支持 Windows 以外的平台,但得益于 OpenNI 和 SensorKinect,您可以在 Mac 和 Linux 等平台上使用 Kinect。
  • 我想托尼想说的是,你不能在 OSX 上使用 Kinect for Windows 驱动程序+库。 (如果需要,您可以在 Mac 上使用 Bootcamp 和 Windows7)。 Libfreenect 独立于 OpenNI。当您说 OpenNI 时,我想您的意思是:SensorKinect、OpenNI 和 NITE。您在使用 libfreenect 时遇到的错误可能意味着 libfreenect 驱动程序有问题(它与 OpenNI 使用的 SensorKinect 以及您可以运行 OpenNI 示例的原因不同)。我已经设法在 osx 上同时使用 libfreenect 和 OpenNI(尽管是在 10.6.8 上)...
  • 谢谢@GeorgeProfenza,我知道它们是分开的。我知道你可以在 Mac 上使用 OpenNi for Mac 和 SensorKinect for Mac 运行这些示例,尽管只有不稳定的版本可用,正如我在一些网页和一些关于 Kinect Hacking 的书籍中看到的那样。问题是,它们在开始启动示例时似乎工作得很好,但几秒钟后它们停止工作,似乎无法从 Kinect 获取数据(因为他们说“读取失败:等待新数据时发生超时!”停止运动后在控制台上。)而且,我不知道这个问题的原因是什么......
  • 我明白了。无论驱动程序/库如何,您是否都会遇到减速(仅 OpenNI 示例或任何其他 kinect 示例会发生这种情况)?

标签: kinect openni openkinect


【解决方案1】:

除非您启动到 Windows,否则忘记 Kinect for Windows。

关于 libfreenect 和 OpenNI,在大多数情况下您会使用其中之一,因此请考虑您需要哪些功能。

如果是基本的 RGB+深度图像(可能还有电机和加速度计)访问 libfreenect 是您的选择。

如果您需要 RGB+深度图像和骨骼跟踪以及(手)手势(但没有电机、加速度计访问),请使用 OpenNI。请注意,如果您使用不稳定(开发)版本,您应该使用Avin's SensorKinect Driver

干净安装 OpenNI 最简单的方法。

此外,如果有帮助,您可以使用像 Processing 或 OpenFrameworks 这样的创意编码框架。

  • 对于处理我推荐SimpleOpenNI
  • 对于 OpenFrameworks,您可以使用与 libfreenect 或 ofxOpenNI 相关联的 ofxKinect。下载 FutureTheatre Kinect Workshop wiki 上打包的 OpenFrameworks,因为它包括插件和一些非常好的示例。

【讨论】:

  • 我正在考虑使用 Avin 的 SensorKinect,这样我就可以使用 OpenNI 和 NITE。我显示 libfreenect 的控制台消息以提供有关我的问题的更多信息,而不是因为我正在考虑使用它。
  • 只有 OpenNI 样本会减慢甚至是 libreenect 样本吗?
  • SensorKinect 和 NITE 的样本在几秒钟后停止工作,而对于 libfreenect,样本无法打开,说没有连接 kinect
  • 你试过自己编译一个基本的例子吗?这是否也有减速或只是 OpenNI 附带的预编译示例?您能否快速尝试编译 Processing+SimpleOpenNI 示例或 openframeworks+ofxOpenNI 示例?我不确定是样本、库还是设备本身的问题
  • 不,我只是使用了分布在 OpenNI 的网站和 Avin 的 github 页面上的 binareis。好的,我会尝试编译,稍后在这里告诉你:)谢谢
【解决方案2】:

当您将 Kinect 设备连接到机器时,您是否为其提供了外部电源?该设备将显示为仅通过 USB 电源连接到计算机,但由于需要外部电源,因此无法传输数据。

您还使用什么 Kinect 传感器?如果它是新的 Kinect 设备(专为 Windows 设计),它们可能具有不同的设备签名,这可能会导致 OpenNI 驱动程序播放。我不是 100% 的,但我只用 XBox 360 传感器尝试过 OpenNI。

【讨论】:

  • 是的,提供了外部电源,作为证明,它实际上可以工作十秒钟。我正在使用 Kinect for Windows,它无法连接到 Xbox。它供开发人员使用,我使用的是每个驱动程序的最新版本。
猜你喜欢
  • 1970-01-01
  • 2020-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-18
  • 2012-03-15
  • 2021-06-17
相关资源
最近更新 更多