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

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

  1. 基于Intel OpenVINO的搭建及应用,包含分类,目标检测,及分割,超分辨

    PART I: 搭建环境OPENVINO+Tensorflow1.12.0 I: l_openvino_toolkit_p_2019.1.094 第一步常规安装参考链接:https://docs.op ...

  2. vivi虚拟摄像头驱动程序

    一.vivi虚拟摄像头驱动 基于V4L2(video for linux 2)摄像头驱动程序,我们减去不需要的ioctl_fops的函数,只增加ioctl函数增加的必要的摄像头流查询等函数: #inc ...

  3. V4L2(二)虚拟摄像头驱动vivi深入分析【转】

    转自:http://www.cnblogs.com/tureno/articles/6694463.html 转载于: http://blog.csdn.net/lizuobin2/article/d ...

  4. tmpfs:一种基于内存的文件系统

    tmpfs是一种基于内存的文件系统, tmpfs有时候使用rm(物理内存),有时候使用swap(磁盘一块区域).根据实际情况进行分配. rm:物理内存.real memery的简称? 真实内存就是电脑 ...

  5. 一种基于Qt的可伸缩的全异步C/S架构服务器实现(流浪小狗,六篇,附下载地址)

    本文向大家介绍一种基于Qt的伸缩TCP服务实现.该实现针对C/S客户端-服务集群应用需求而搭建.连接监听.数据传输.数据处理均在独立的线程池中进行,根据特定任务不同,可安排负责监听.传输.处理的线程数 ...

  6. 一种基于Qt的可伸缩的全异步C/S架构server实现(一) 综述

    本文向大家介绍一种基于Qt的伸缩TCP服务实现.该实现针对C/Sclient-服务集群应用需求而搭建. 连接监听.传输数据.数据处理均在独立的线程池中进行,依据特定任务不同,可安排负责监听.传输.处理 ...

  7. macOS平台下虚拟摄像头的研发总结

    一.背景介绍 虚拟摄像头,顾名思义,就是利用软件技术虚拟出一个摄像头硬件设备供用户使用.当我们需要对视频图像进行处理再输出时,虚拟摄像头就具备非常大的价值了.关于如何在Windwos上实现一个虚拟设备 ...

  8. HAProxy详解(三):基于虚拟主机的HAProxy负载均衡系统配置实例【转】

    一.基于虚拟主机的HAProxy负载均衡系统配置实例 1.通过HAProxy的ACL规则配置虚拟主机: 下面将通过HAProxy的ACL功能配置一套基于虚拟主机的负载均衡系统.这里操作系统环境为:Ce ...

  9. 【原创】Apache和基于虚拟主机的Tomcat集群方案

    最近建设了北京某政府机构的网站,网站前段使用Apache做负载均衡,后端使用Tomcat做的集群,基于虚拟主机的方式访问,并且实现了静态资源和动态资源的分离. 开始的建设方案有两种,一种是使用apac ...

  10. 虚拟摄像头vivi的测试(二)

    (前一部分的基础操作来源于作者:LingXiaokai 的 Ubuntu 9.10 下如何使用笔记本摄像头以及虚拟摄像头vivi的测试) 自己仅对实际操作中需要注意的点进行阐述 一.先在Ubuntu ...

随机推荐

  1. Python中所有子图标签Legend显示详解

    在数据可视化中,图例(legend)是一个非常重要的元素,它能够帮助读者理解图表中不同元素的含义.特别是在使用Python进行可视化时,matplotlib库是一个非常强大的工具,能够轻松创建包含多个 ...

  2. dockercompose配置ulimit

    在 Docker Compose 文件中设置 ulimit 的方法如下: 在 Docker Compose 文件的 services 块中,为您要设置 ulimit 的服务添加 ulimits 子块, ...

  3. The method's class, springfox.documentation.builders.RequestHandlerSelectors, is available from the following locations:

    *************************** APPLICATION FAILED TO START *************************** Description: An ...

  4. Linux打印显示时间

    Linux打印显示时间具体使用参数如下: 1.输出当前年月日echo $(date +%F)2.输出当前时间(时分)echo $(date +%R)3.输出当前时间(时分秒)echo $(date + ...

  5. Java 中的这个绝对值有点不绝对啊!

    现象 假如有如下代码定义了一个方法 test(),它入参可以任何一个 int 类型的整数,那么它输出结果可能是什么? public class Test { public static void te ...

  6. Qt/C++编写跨平台的推流工具(支持win/linux/mac/嵌入式linux/安卓等)

    一.前言 跨平台的推流工具当属OBS最牛逼,功能也是最强大的,唯一的遗憾就是多路推流需要用到插件,而且CPU占用比较高,默认OBS的规则是将对应画布中的视频画面和设定的音频一起重新编码再推流,意味着肯 ...

  7. Qt数据库应用18-横向纵向排版

    一.前言 近期用户提了个需求,需要打印一个文档,要求其中部分页横向排版部分页面纵向排版,这个在之前的通用打印导出pdf类中是不具备的,通用的打印导出pdf只能统一设置一个排版方式,要么横向要么纵向,而 ...

  8. 创建用于预测序列的人工智能模型,用Keras Tuner探索模型的超参数。

    上一篇:<创建用于预测序列的人工智能模型(五),调整模型的超参数> 序言:在完成初步的模型研发后,接下来的重点是探索和优化超参数.通过合理调整超参数(如学习率.动量参数.神经元数量等),可 ...

  9. 使用Halcon软件和圆形标定板进行相机标定的步骤和教程

    直接给出使用Halcon软件和圆形标定板进行相机标定的教学视频链接: 55-相机标定4-DLT,张正友标定法,Halcon标定算子

  10. RL中on-policy和off-policy的本质区别/重要性采样

    本随笔的图片都来自UCL强化学习课程lec5 Model-free prediction的ppt (Teaching - David Silver ). 回忆值函数的表达式: \[v_\pi(s) = ...