首页 文章

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

提问于
浏览
0

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

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

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

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

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

1 回答

  • 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自动化技术公司 .

相关问题