我目前正在尝试使用多个 Kinect v2.0 作为我论文的一部分。我仔细研究了这个主题,我知道 USB 带宽的问题,所以我目前使用的两个 Kinect 位于不同的 USB Controller 上。
我遇到的问题是,作为 GetDefault()
函数 (2.0 SDK) 的一部分,顾名思义,它只是获取默认的 Kinect。有没有办法确定要“获取”哪个 Kinect 或确定哪个 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 连接到客户端 PC。但是,即使在这里,如果在同一房间内使用这些 Kinect,您也需要小心 - 传感器可能会从其他发射器接收光! (参见此处,例如:Interference between multiple Kinects)。
在使用客户端/服务器解决方案时,您需要牢记的另一件事 - 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 ,它应该支持多个摄像头( here , here , here ,...)但这一切似乎也不太容易实现。此外,在我们的测试过程中,我们注意到使用官方 Microsoft SDK 或开源库时深度值不同,因为官方 SDK 中发生了很多黑盒魔法。
关于c# - 在一台 PC 上使用多个 Kinect v2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42394919/