如何在Raspberry PI3上实时运行openCV算法

问题描述:

我正在研究Raspberry PI,Raspbian Jessie嵌入式Linux平台,其中已安装Python 2.7,并且我拥有必须实时运行的OpenCV算法并且必须在同一图像上应用多个HAAR级联分类器。有什么方法可以减少这些操作的时间吗?如多线程,例如?如何在Raspberry PI3上实时运行openCV算法

我也听说过GPU计算,但我不知道从哪里开始。

谢谢你的帮助。

+0

实时?你是否介意更新你的帖子,关于什么是你的**'CV_image.dtype' **,**'CV_image.shape' **以及什么是你的RPi /过程控制回路稳定性阈值目标 - R/T -loop-maxRoundTripTime [ms]?谢谢。 – user3666197

+0

haar级联分类器检测方法通常非常昂贵。如果你的图片或最大对象尺寸不是很小,我怀疑你甚至可以在一个树莓派3上“实时”运行一个级联分类器。 – Micka

如果您还没有这样做的话,你应该考虑以下几点:

  1. 缩小图像大小所需要的最小尺寸识别每个分类的目标对象。如果不同的对象需要不同的分辨率,您甚至可以使用原始图像的一组副本,并使用不同的大小。

  2. 确定每个分类器的搜索区域,从而减少搜索区域。例如,如果您正在搜索人脸地标,则可以在运行人脸检测器并找到包含人脸的矩形后,为左眼,右眼,鼻子和嘴巴定义搜索区域。

我不是很确定优化是否会非常有用,因为OpenCv已经做了一些硬件优化。

OpenCv with OpenCL并行处理可以使用你,因为树莓pi 3是四核。我不认为这些主板附带的GPU足够强大。您可以尝试Qualcomm的DSP进行计算机视觉和神经网络。 Nvidia的Tegra GPU是另一种选择。

+0

在所有应有的尊重,**你真的运行在RPi上以实时模式提供的任何解决方案?如果是的话,用什么'.dtype'-s,'.shape' -s什么是你的R/T-loop-maxRTT [ms] + openCV图像处理管道**(函数调用列表)** ?** – user3666197

+0

如何定义几毫秒,10毫秒,100毫秒,1000毫秒或FPS的实时? RPi不适用于矩阵操作,因此在选择RPi之前需要完成一些维度。任何具体原因?简单的功能跟踪我的i7 mac书消耗100s秒 –

+0

对不起我认为我的mac书上的毫秒 –