一种基于虚拟摄像头、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上正确安装并配置 obs studio
在官网正确安装 obs studio 并正确配置

准备好用于推流的内容

在主机1上正确安装并配置 obs-ndi
从https://github.com/obs-ndi/obs-ndi上下载并安装,注意runtime和obs-ndi插件都要安装
正确安装之后按理可在 obs 的 tools 中找到ndi广播的选项

设置从 ndi 上进行广播

在同一网域内的主机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的多机视觉目标检测方案的更多相关文章
- 基于Intel OpenVINO的搭建及应用,包含分类,目标检测,及分割,超分辨
PART I: 搭建环境OPENVINO+Tensorflow1.12.0 I: l_openvino_toolkit_p_2019.1.094 第一步常规安装参考链接:https://docs.op ...
- vivi虚拟摄像头驱动程序
一.vivi虚拟摄像头驱动 基于V4L2(video for linux 2)摄像头驱动程序,我们减去不需要的ioctl_fops的函数,只增加ioctl函数增加的必要的摄像头流查询等函数: #inc ...
- V4L2(二)虚拟摄像头驱动vivi深入分析【转】
转自:http://www.cnblogs.com/tureno/articles/6694463.html 转载于: http://blog.csdn.net/lizuobin2/article/d ...
- tmpfs:一种基于内存的文件系统
tmpfs是一种基于内存的文件系统, tmpfs有时候使用rm(物理内存),有时候使用swap(磁盘一块区域).根据实际情况进行分配. rm:物理内存.real memery的简称? 真实内存就是电脑 ...
- 一种基于Qt的可伸缩的全异步C/S架构服务器实现(流浪小狗,六篇,附下载地址)
本文向大家介绍一种基于Qt的伸缩TCP服务实现.该实现针对C/S客户端-服务集群应用需求而搭建.连接监听.数据传输.数据处理均在独立的线程池中进行,根据特定任务不同,可安排负责监听.传输.处理的线程数 ...
- 一种基于Qt的可伸缩的全异步C/S架构server实现(一) 综述
本文向大家介绍一种基于Qt的伸缩TCP服务实现.该实现针对C/Sclient-服务集群应用需求而搭建. 连接监听.传输数据.数据处理均在独立的线程池中进行,依据特定任务不同,可安排负责监听.传输.处理 ...
- macOS平台下虚拟摄像头的研发总结
一.背景介绍 虚拟摄像头,顾名思义,就是利用软件技术虚拟出一个摄像头硬件设备供用户使用.当我们需要对视频图像进行处理再输出时,虚拟摄像头就具备非常大的价值了.关于如何在Windwos上实现一个虚拟设备 ...
- HAProxy详解(三):基于虚拟主机的HAProxy负载均衡系统配置实例【转】
一.基于虚拟主机的HAProxy负载均衡系统配置实例 1.通过HAProxy的ACL规则配置虚拟主机: 下面将通过HAProxy的ACL功能配置一套基于虚拟主机的负载均衡系统.这里操作系统环境为:Ce ...
- 【原创】Apache和基于虚拟主机的Tomcat集群方案
最近建设了北京某政府机构的网站,网站前段使用Apache做负载均衡,后端使用Tomcat做的集群,基于虚拟主机的方式访问,并且实现了静态资源和动态资源的分离. 开始的建设方案有两种,一种是使用apac ...
- 虚拟摄像头vivi的测试(二)
(前一部分的基础操作来源于作者:LingXiaokai 的 Ubuntu 9.10 下如何使用笔记本摄像头以及虚拟摄像头vivi的测试) 自己仅对实际操作中需要注意的点进行阐述 一.先在Ubuntu ...
随机推荐
- R数据分析:净重新分类(NRI)和综合判别改善(IDI)指数的理解
对于分类预测模型的表现评估我们最常见的指标就是ROC曲线,报告AUC.比如有两个模型,我们去比较下两个模型AUC的大小,进而得出两个模型表现的优劣.这个是我们常规的做法,如果我们的研究关注点放在&qu ...
- 中电金信召开“源启 AI+”人工智能应用场景与发展培训暨业务研讨会
近年来,国务院国资委把加快发展人工智能放在国资央企全局工作中统筹谋划,作为产业焕新行动和启航行动部署的主要方向,制定印发行动计划,组织召开中央企业人工智能专题推进会,开展"AI+" ...
- 【C#】【平时作业】习题-11-ADO.NET
目录 选择题 简述并举例说明 什么是ADO.NET? 什么是连接字符串? connection对象的作用? commmand对象的作用? dataAdapter对象的作用? DataReader对象的 ...
- 【YashanDB知识库】Oracle pipelined函数在YashanDB中的改写
本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7802940.html?templateId=1718516 [问题分类]功能使用 ...
- bridge模式下 所有容器的 网关 都是 宿主机docker0网卡的ip
bridge模式下 所有容器的 网关 都是 宿主机docker0网卡的ip
- sudo kill -HUP 10146
systemctl status docker systemctl reload docker
- LiquibaseException java.lang.ClassCastException: class java.time.LocalDateTime cannot be cast to class java.lang.String
https://forum.liquibase.org/t/liquibaseexception-java-lang-classcastexception-class-java-time-locald ...
- Qt/C++编写手机版本视频播放器和Onvif工具(可云台和录像)
一.前言 用Qt+ffmpeg写播放器很多人有疑问,为何不用Qt自己的多媒体框架来写,最重要的原因是Qt自带的目前都依赖具体的本地解码器,如果解码器不支持,那就是歇菜的,最多支持个MP4格式,而且在手 ...
- [转]Vue3.0和Vue2.0的区别
Vue3.0和Vue2.0的区别默认进行懒观察(lazy observation).在 2.x 版本里,不管数据多大,都会在一开始就为其创建观察者.当数据很大时,这可能会在页面载入时造成明显的性能压力 ...
- kubernetes系列(八) - 控制器的资源清单定义
1. ReplicaSet 1.1 ReplicaSet资源清单 1.2 selector 2. Deployment 2.1 Deployment资源清单 2.2 其他相关操作 2.2.1 应用ya ...