一种基于虚拟摄像头、NDI、OBS以及yolo的多机视觉目标检测方案

近来为了实现某种实时展示效果,笔者希望通过一套方案实现在两台主机上分别运行仿真平台以及视觉深度学习算法。透过对当下较为流行的几种方案的调研,笔者最后决定了采用OBS采集并透过NDI协议在局域网内进行广播,再将NDI推到虚拟摄像头上透过yolo进行目标检测的方案。

该方案使用的工具#

  • obs studio 29.1.0

  • obs-ndi

  • ndi tools

  • yolo v5

  • 同一网域内的两台主机

方案大致工作管线#

主机1(运行仿真平台)#

仿真平台 -> obs studio -> ndi广播

主机2(运行预测算法)#

ndi广播 -> ndi tools -> 虚拟摄像头 -> yolo

方案实现#

  1. 在主机1上正确安装并配置 obs studio

    在官网正确安装 obs studio 并正确配置

    准备好用于推流的内容

  2. 在主机1上正确安装并配置 obs-ndi

    从https://github.com/obs-ndi/obs-ndi上下载并安装,注意runtime和obs-ndi插件都要安装

    正确安装之后按理可在 obs 的 tools 中找到ndi广播的选项

    设置从 ndi 上进行广播

  3. 在同一网域内的主机2上正确安装并配置 ndi tools

https://ndi.video/tools/ndi-tools/ 即可下载ndi tools

打开之后选择 webcam

选择用于推送的 ndi

可以看到画面预览

接下来将虚拟摄像头作为物理摄像头启动yolo即可,将source修改为ndi使用的虚拟摄像头,因设备而异

python detect.py --weights yolov5s.pt --source 0

可以看到yolo已经正常运作

总结#

这种方案主要适用于快速部署一个多主机的视觉检测展示,可以将yolo换成其他的目标检测模型。如果网域在一定程度上低延迟,实时交互是可以做到的。


此软件“仅限学习交流,不能用于商业用途”如用于商业用途,请到官方购买正版软件,追究法律责任与本站无关!

我们每月需支付高额服务器费用,捐赠将保证服务器有更好的配置和稳定运行;非常感谢您的捐赠支持。
(资源收集整理维护不易,敬请珍惜并感谢开发者。)