如何将OAK相机当做网络摄像头使用?

编辑:OAK中国
首发:oakchina.cn
喜欢的话,请多多⭐️✍

▌前言

Hello,大家好,这里是OAK中国,我是助手君。

这个月有好几个朋友想把OAK当UVC相机用,本期内容就来谈谈怎么用吧!

OAK相机也可以用作网络摄像头。要启用此功能,你可以运行DepthAI演示uvc应用程序或使用UVC功能分支。确保使用USB3线,否则在某些情况下,USB2不工作

▌使用DepthAI演示脚本

首先,安装DepthAI。

如果使用QT GUI,请在此选择UVC应用程序。

如何将OAK相机当做网络摄像头使用?_第1张图片

或者,直接从终端运行:

python3 depthai_demo.py --app uvc

▌使用UVC特征分支

【教程】如何将OAK-D-Lite作为一个网络摄像头使用?

视频链接:B站-OAK中国

# Skip cloning if you already have depthai-python repo
git clone https://github.com/luxonis/depthai-python.git
cd depthai-python
# Navigate to the custom branch
git checkout gen2_uvc
python3 examples/install_requirements.py
python3 examples/rgb_uvc.py

现在,你可以打开你最喜欢的会议应用程序,如Zoom或Slack,然后在网络摄像头选择菜单中选择Luxonis Device: UVC Video Contr

▌变通办法

目前,上述方法存在一些问题。即使在Linux上,UVC节点目前并不适用于所有应用程序。因为UVC代表USB Video Class,使用UVC管道打开OAK PoE系列的设备是不行的。另一个已知问题是在Windows操作系统上使用UVC管道不起作用,因为UVC描述符。以下是解决方法:

1.Python虚拟相机

一种选择是使用虚拟相机,如pyvirtualcam模块。你需要pip安装包并安装它的依赖项(如链接中所述)。这里有一个演示代码:

import pyvirtualcam
import depthai as dai
# Create pipeline
pipeline = dai.Pipeline()
cam = pipeline.create(dai.node.ColorCamera)
cam.setColorOrder(dai.ColorCameraProperties.ColorOrder.RGB)
cam.setPreviewSize(1280,720)
xout = pipeline.create(dai.node.XLinkOut)
xout.setStreamName("rgb")
cam.preview.link(xout.input)
# Connect to device and start pipeline
with dai.Device(pipeline) as device, pyvirtualcam.Camera(width=1280, height=720, fps=20) as uvc:
    qRgb = device.getOutputQueue(name="rgb", maxSize=4, blocking=False)
    print("UVC running")
    while True:
        frame = qRgb.get().getFrame()
        uvc.send(frame)

2.OBS转发UVC数据流

我们注意到,在一些应用上,比如Discord或Google Meet,Luxonis Device: UVC行不通。一种解决方法是使用OBS代理该流并使用OBS内部的虚拟摄像机。我运行的是Linux,为了使虚拟摄像机工作,我必须安装sudo apt install v4l2loopback-dkms(这也在安装说明中提到)。

(二)如何将OAK相机当做网络摄像头使用?OBS转发UVC数据流

视频链接:B站-OAK中国

这段视频将向你展示如何做到这一点。

3.OBS捕获cv2窗口

另一种解决方案是将视频流数据传输到主机,并捕获cv2.imshowOBS内的窗口:

  • 在depthai-python repo内部,运行python3 examples/ColorCamera/rgb_video.py。这将打开一个显示1080P视频流的新窗口。
  • 在OBS中,在源菜单下,单击+,添加新源。
  • 点击Window Capture (Xcomposite)选项,然后选择video
  • 然后,你可以点击Start Video Camera在OBS内部,使用来自OAK PoE设备的视频作为网络摄像头源。

(三)如何将OAK PoE相机当做网络摄像头使用?

视频链接:B站-OAK中国

▌参考资料

https://docs.oakchina.cn/en/latest/
https://www.oakchina.cn/selection-guide/


OAK中国
| OpenCV AI Kit在中国区的官方代理商和技术服务商
| 追踪AI技术和产品新动态

戳「+关注」获取最新资讯↗↗

你可能感兴趣的:(OAK使用教程,python,OAK相机,opencv)