在一台 PC 上使用多个 Kinect v2

Using Multiple Kinect v2 on one PC

我目前正在尝试使用多个 Kinect v2.0 作为我论文的一部分。我四处查看了这个主题,我知道 usb 带宽的问题,所以我目前使用的两个 Kinects 在不同的 usb 控制器上。

我遇到的问题是,作为 GetDefault() 函数 (2.0 SDK) 的一部分,顾名思义,它只是获取默认的 Kinect。有没有办法确定 'get' 哪个 Kinect 或 'default' 哪个 Kinect? (我知道 SDK 只允许一个,但我正在探索让一个单独的应用程序处理每个 Kinect 的想法)。

提前感谢您的任何意见。

使用 Microsoft SDK,您没有机会在一台 PC 上使用多个 Kinect2:

Sensor Acquisition and Startup
Kinect for Windows supports one sensor, which is called the default sensor. The KinectSensor Class has static members to help configure the Kinect sensor and access sensor data.

Kinect API Overview

我们尝试了类似的方法,但最终我们选择了 client/server-Solution,其中额外的 Kinect 连接到客户端 PC。但是,即使在这里,如果在同一房间内使用这些 Kinect,您也需要小心 - 传感器可能会从其他发射器接收光! (参见此处,例如:Interference between multiple Kinects)。

在 client/server-solution 上工作时需要记住的另一件事 - Kinect 不能很好地处理远程桌面连接:

Remote Desktop
If you are accessing the Kinect using Remote Desktop, You must change the remote desktop audio settings to "play on remote machine". If you do not do this, the runtime will not be able to see the audio device, and may disallow connection to the Kinect. (2.0 SDK and Developer Known Issues)

您可以选择的另一种方法是使用 OpenKinect, which is supposed to support multiple cameras (here, here, here, ...) 但这一切似乎也不太容易实现。此外,在我们的测试过程中,我们注意到使用官方 Microsoft SDK 或开源库时深度值不同,因为官方 SDK 中发生了很多黑盒魔法。

您是否考虑过运行在您的机器上并行运行虚拟机?只需让虚拟机忽略其中一个 kinects 所在的 USB 端口,这样虚拟机就被迫使用另一个。

这可能需要比插入它们更多的处理能力,但它应该可以工作,尤其是当您尝试将它们用于两个不同的程序时。

Kinect for windows 仅支持虚拟机,(不包括 kinect for xbox one 和 kinect for 360 with adapters)