yolo系列检测网络 如何实现多线程检测
在yolo系列的检测中,想要同时完成多个摄像头并行检测,这种需求要怎么完成
谢谢你的提点我感觉还是很有收获的。我的不同标签摄像头可能还得选择不同的检测模型,所以我就像是否可以这样实现。
(camera_tag,frame)
在选择检测网络时,根据需要分成两个队列。(因为我的现在的模型中,对应俯视角度检测,和平视角度检测的 两个模型)
(camera_tag,frame)
,(camera_tag,detction_infomation)
感谢大佬指点
可以的,实现思路基本就是生产者消费者模型,这样网络能对输入图像进行统一检测,也便于根据负载调节 batch 等参数的大小。
两个检测线程肯定比一个检测线程慢。
多线程我学得并不深,现在的 CPU 一般都是多核的,在理想情况下程序的多个线程可以在不同的核心中并行执行,提高程序的运行速度。但在 Python 中,有 GIL 的存在,导致 Python 程序在运行时实际上是单线程执行的。
因此 Python 中一般使用多进程完成并发任务,实际用起来跟多线程差不多。但多进程下使用队列通信会不会涉及到数据拷贝,以及数据拷贝带来的开销是否比多进程的好处更低,这个就需要实际对比确认了。
你可以都试试,也可以搜索一下有没有进程间共享存储区的方法,来避免拷贝。