Kinect设备与网络摄像头产生冲突

我正在做一个涉及Kinect设备和另一个USB摄像头的项目。 kinect部分和网络摄像头部分分别构建并按预期工作,但仅在整合步骤期间,我发现每次将我的KECTECT设备插入同一台计算机时,我的摄像头都无法工作。

Kinect设备使用Microsoft Kinect SDK运行,并且使用OpenCV连接网络摄像机,该设备使用DirectShow来简化连接。

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

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

每当Kinect设备与网络摄像头同时连接时,是什么导致Directshow混乱网络摄像头连接? 有没有什么办法可以让我在网络摄像头的问题上检查Directshow?


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

那么该怎么办?

我在这里有两个较旧的双XEON工作站(HP和Dell),它们使用同一个Intel 88201芯片组和一个增强型主机和多个通用设备。 无法在通用主机上加载增强型驱动程序。 一款较新的Acer笔记本电脑拥有多台增强型主机,我可以通过网络摄像头流式传输视频,并同时显示来自Kinect的数据流。

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

SD PiXCL自动化技术,加拿大。

链接地址: http://www.djcxy.com/p/81091.html

上一篇: Kinect device causes conflict with Webcam

下一篇: Read/write on a pen drive using libusb: libusb