我目前正在尝试使用多个Kinect v2.0作为我论文的一部分。我已经查看了这个主题,我知道usb带宽的问题,所以我目前使用的两个Kinect是在不同的usb控制器上。
我遇到的问题是,作为GetDefault()
函数(2.0 SDK)的一部分,正如其名称所示,它只是获取默认的Kinect。有没有办法确定哪个Kinect'获得'或确定哪个Kinect是'默认'? (我知道SDK只允许一个,但我正在探索使用单独的应用程序处理每个Kinect的想法。)
提前感谢任何输入。
答案 0 :(得分:1)
使用Microsoft SDK,您无法在一台PC上使用多个Kinect2:
传感器采集和启动
Kinect for Windows支持一个传感器,称为默认传感器。 KinectSensor类具有静态成员,可帮助配置Kinect传感器和访问传感器数据。
我们尝试过类似的东西,但最后我们选择了客户端/服务器 - 解决方案,其中额外的Kinects连接到客户端PC。但是,即使在这里你需要小心,如果在同一个房间使用那些Kinects - 传感器可能从其他发射器获取光! (见这里,例如:Interference between multiple Kinects)。
在使用客户端/服务器解决方案时,您需要记住的另一件事 - Kinect无法很好地处理远程桌面连接:
远程桌面
如果使用远程桌面访问Kinect,则必须将远程桌面音频设置更改为“在远程计算机上播放”。如果不这样做,运行时将无法看到音频设备,并且可能不允许连接到Kinect。 (2.0 SDK and Developer Known Issues)
您可以选择的另一种方式是使用OpenKinect,它应支持多个摄像头(here,here,here,...)但所有这些似乎也不容易实现。此外,在我们的测试中,我们注意到使用官方Microsoft SDK或开源库时深度值不同,因为官方SDK中发生了很多黑盒魔术。
答案 1 :(得分:0)
您是否考虑过在您的计算机上并行运行虚拟机?只需让虚拟机忽略其中一个kinects所在的USB端口,这样虚拟机就会被迫使用另一个。
这可能需要比插入它们更多的处理能力,但它应该有效,特别是如果你试图将它们用于两个不同的程序。
答案 2 :(得分:0)
仅适用于虚拟机的Kinect for Windows(不包括xbox one的kinect和带适配器的360的kinect)
答案 3 :(得分:0)
我目前正在对此进行研究。我发现了这篇文章,许多人对此感到沮丧。经过一段时间的研究,我最终遇到了以下问题:
似乎他找到了一种修改现有kinect SDK以支持多种kinect的聪明方法。在2011年这几乎是不可行的,但是借助2019年的技术,我们可以实现这一目标。
仅供参考,Microsoft今年将发布kinect v4,所以我可能会浪费时间!