Kinect设备导致与网络摄像头冲突

时间:2014-07-18 21:42:43

标签: opencv kinect webcam directshow

我正在做一个涉及kinect设备和另一个USB网络摄像头的项目。 kinect部分和网络摄像头部分是单独构建的,并且按预期工作,但只有在集成步骤中我才发现每次将我的kinect设备插入同一台计算机时,我的网络摄像头都无法工作。

使用Microsoft Kinect SDK运行Kinect设备,并使用OpenCV连接网络摄像头,OpenCV使用DirectShow来促进连接。

我尝试使用其他程序,如virtualdub和其他方式通过Directshow访问网络摄像头,每次在Kinect拔出时都能正常工作,并在插入Kinect时停止工作。

我认为这可能与网络摄像头的电量不足有关,但Directshow能够识别网络摄像头而无法获取视频流。网络摄像头和kinect设备也位于计算机的两个不同侧面,因此它们不会彼此接近电流。网络摄像头没有外部电源,只能使用USB线运行,但我也尝试使用外部供电的USB集线器运行网络摄像头,问题仍然存在。

每次Kinect设备与网络摄像头同时连接时,导致Directshow搞乱网络摄像头连接的原因是什么?有没有办法让我检查有关网络摄像头问题的Directshow?

1 个答案:

答案 0 :(得分:0)

这是一个部分答案。问题是您的PC有一组USB主机控制器。您可以在"通用串行总线控制器"中的设备管理器中查看列表。树。您的PC将只有一个" USB2增强型主机控制器"以及几个" USB通用主机控制器"条目。加载设备时,Windows内核决定需要哪个主机控制器并且适合该设备。例如,打印机具有低带宽需求,并且通用主机很好。所有摄像头和Kinect设备都需要增强型主机,因此网络摄像头和Kinect最终都在同一主机上。 Kinect LED闪烁,即使没有明显的进程正在使用它,所以我怀疑Kinect驱动程序正在使用一些(或很多)USB带宽。在连接USB数据包监控应用程序之前,我无法确定。如果Kinect使用带宽,这可以解释为什么您的DirectShow应用程序可以访问网络摄像头。

那该怎么办?

我在这里有两个较旧的双XEON工作站(惠普和戴尔),它们使用相同的英特尔88201芯片组,一个增强主机和多个通用。无法在通用主机上加载增强驱动程序。较新的Acer笔记本电脑有多个增强型主机,我可以从网络摄像头流式传输视频,同时显示来自Kinect的视频流。

唯一的解决方案是支持增强型驱动程序的另一个PCI或PCI-e USB2或USB3卡。我在我的网站上准备了一份提供更多细节的技术说明。

S D. PiXCL Automation Technologies,Canada。