gpt4 book ai didi

python-3.x - 使用多摄像头检测 Tensorflow 对象

转载 作者:行者123 更新时间:2023-12-04 15:51:37 25 4
gpt4 key购买 nike

我试过 GitHub 代码 Object-Detector-App

这适用于具有 1 秒延迟的单个摄像头,但是当我为多个摄像头尝试时,(两个,三个......)
为此,我为每个摄像头的图形和 session 创建了多个线程,我得到的高延迟取决于摄像头的数量。
a) 我使用的是 NVIDIA Quadpro GP100 并且相机输入是 HD(1920x1080)
b) 我正在使用 SSD_VI_COCO_11_06_2017

我在 tensorflow 中研究了线程和队列的概念,我用谷歌搜索了很多,但找不到实用的方法。

我想知道我是否以正确的方式处理多个摄像头进行物体检测,或者有没有更好的方法?

最佳答案

首先确保您从多个摄像头读取帧而没有延迟。如果将 opencv 与 python 包装器一起使用,请注意 read() 的底层实现对于 USB 网络摄像头和 ip 摄像头的工作方式不同。 USB 摄像头可以轻松堆叠,而 ip 摄像头可能需要 python 线程和队列才能有效地读取帧。

除非您需要那么大的图像,否则在将它们输入 feed dict 之前调整它们的大小。

使用该 GPU 应该可以轻松实现 30+ FPS。常见问题是加载图形并为每个推理启动一个新 session 。如果使用一个 GPU,则无需为每个摄像头打开一个新的图形/ session 。在循环外打开一张图和一个 session ,并在一个循环中推断来自所有相机的图像。这可以一个接一个地进行,也可以分批进行。例如。将四个形状 (1, 512, 512, 3) 的图像堆叠到一个形状 (4, 512, 512, 3) 的单个阵列中,并且所有四个图像的推理将并行发生,前提是 GPU 可以将它们放入内存中。

它可能看起来像这样:

加载图表并打开 session

为每台相机启动线程,读取帧并填充队列

启动一个推理线程,从队列中读取帧,然后依次或批量推理帧

关于python-3.x - 使用多摄像头检测 Tensorflow 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47220393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com