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

一种基于虚拟摄像头、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换成其他的目标检测模型。如果网域在一定程度上低延迟,实时交互是可以做到的。

posted @ 2023-05-09 11:19  Uzuki  阅读(415)  评论(0编辑  收藏  举报