2

我目前正在尝试使用多个 Kinect v2.0 作为我论文的一部分。我环顾四周,知道 USB 带宽的问题,所以我目前使用的两个 Kinect 位于不同的 USB 控制器上。

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

提前感谢您的任何意见。

4

3 回答 3

1

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

传感器采集和启动
Kinect for Windows 支持一种传感器,称为默认传感器。KinectSensor 类具有帮助配置 Kinect 传感器和访问传感器数据的静态成员。

Kinect API 概述

我们尝试了类似的事情,但最终我们选择了客户端/服务器解决方案,其中额外的 Kinect 连接到客户端 PC。但是,即使在这里你也需要小心,如果这些 Kinect 是在同一个房间里使用的——传感器可能会从其他发射器接收光!(参见此处,例如:多个 Kinect 之间的干扰)。

在使用客户端/服务器解决方案时需要记住的另一件事 - Kinect 不能很好地处理远程桌面连接:

远程桌面
如果您使用远程桌面访问 Kinect,您必须将远程桌面音频设置更改为“在远程机器上播放”。如果您不这样做,运行时将无法看到音频设备,并且可能不允许连接到 Kinect。(2.0 SDK 和开发者已知问题

您可以选择的另一种方法是使用OpenKinect,它应该支持多个摄像头(hereherehere、...),但这似乎也不是那么容易实现的。此外,在我们的测试中,我们注意到使用官方的 Microsoft SDK 或开源库时深度值是不同的,因为官方 SDK 中发生了很多黑盒魔法。

于 2017-02-22T15:38:36.803 回答
0

Have you considered running a virtual machine in parallel on your machine? Just have the virtual machine ignore the USB port that one of the kinects is on so the virtual machine is forced to use the other one.

This may require way more processing power than just plugging them in, but it should work, especially if you are trying to use them for two different programs.

于 2017-07-10T18:24:48.867 回答
0

Kinect for windows are only supported for virtual machines, (not including kinect for xbox one and kinect for 360 with adapters)

于 2017-12-07T13:55:49.177 回答