在一台PC上使用多个Kinect v2

时间:2017-02-22 14:55:45

标签: c# kinect-sdk kinect-v2

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

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

提前感谢任何输入。

4 个答案:

答案 0 :(得分:1)

使用Microsoft SDK,您无法在一台PC上使用多个Kinect2:

  

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

Kinect API Overview

我们尝试过类似的东西,但最后我们选择了客户端/服务器 - 解决方案,其中额外的Kinects连接到客户端PC。但是,即使在这里你需要小心,如果在同一个房间使用那些Kinects - 传感器可能从其他发射器获取光! (见这里,例如:Interference between multiple Kinects)。

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

  

远程桌面
  如果使用远程桌面访问Kinect,则必须将远程桌面音频设置更改为“在远程计算机上播放”。如果不这样做,运行时将无法看到音频设备,并且可能不允许连接到Kinect。 (2.0 SDK and Developer Known Issues

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

答案 1 :(得分:0)

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

这可能需要比插入它们更多的处理能力,但它应该有效,特别是如果你试图将它们用于两个不同的程序。

答案 2 :(得分:0)

仅适用于虚拟机的Kinect for Windows(不包括xbox one的kinect和带适配器的360的kinect)

答案 3 :(得分:0)

我目前正在对此进行研究。我发现了这篇文章,许多人对此感到沮丧。经过一段时间的研究,我最终遇到了以下问题:

https://abhijitjana.net/2011/09/23/development-with-kinect-net-sdk-part-v-developing-application-using-multiple-kinect-devices/

似乎他找到了一种修改现有kinect SDK以支持多种kinect的聪明方法。在2011年这几乎是不可行的,但是借助2019年的技术,我们可以实现这一目标。

仅供参考,Microsoft今年将发布kinect v4,所以我可能会浪费时间!