【问题标题】:How to run opencv on on a microcontroller?如何在微控制器上运行 opencv?
【发布时间】:2021-02-06 01:52:03
【问题描述】:

我对电子领域和控制器知之甚少。 但是我想知道如何将opencv程序与红绿灯结合起来? 我知道答案是微控制器,但我只知道有一个编译器 AVR 可以将 C 编译为十六进制,然后使用微控制器。

但 OpenCV(我认为我不会在 C 上运行)是高级别的,可能无法与 AVR 一起使用。

那么我应该怎么做才能将机器视觉程序(通过 OpenCV 和 C++)与交通红灯的计时器结合起来?

  • 由于某些原因,更改我的编程语言和库对我来说非常困难。
  • 我的程序必须是实时的。
  • 如果有另一个系统(不是控制器和...),它的成本并不高,可以运行 opencv 程序,我可以使用它。

如果您需要更多详细信息,请告诉我。

【问题讨论】:

  • Opencv on TI microcontroller 的可能重复项
  • 很明显我以前读过那个问题,但是回答那个问题的人说它会运行得很慢,但是实时对我来说非常重要 + 特别是我说我想要这个交通红灯,所以也许有更好的答案!
  • 您打算如何将相机连接到微控制器?
  • 这样的交通红灯必须使用什么处理能力和内存?定义实时:帧率、图像大小?
  • 您可以尝试使用 ROS.org 与信号量通信,同时在普通 linux 机器上运行 openCV,而不是让 openCV 在 µC 上工作。

标签: c++ opencv microcontroller


【解决方案1】:

答案不是微控制器。太低一级了。获取带有 DSP(数字信号处理器)的 ARM SoC(片上系统)。它们很常见。例如,树莓派中使用的 BCM2835。根据 Broadcom 的说法,它应该可以处理 220 兆像素/秒。

【讨论】:

  • 如果你在 Pi 上编译 OpenCV,它会自动利用 Broadcom 吗?
  • @cjm2671:你是否 Pi上编译它并不重要,重要的是你是否 Pi编译它。我不确定 OpenCV 是否真的使用了 DSP,特别是使用了哪些算法(DSP 有很大的不同,你不能只翻转一个编译器开关就可以神奇地获得额外的性能)
  • 好的,在 Pi 上编译 OpenCV 3 将近 20 小时后,我将开始实验,看看性能如何!谢谢!
  • so.. @cjm2671 表现如何?另外,你用的是哪个版本的pi?谢谢!
  • 许多 ARM 将 OpenCL 支持作为 OpenCV 支持的核心构建的一部分
【解决方案2】:

我最初将此问题报告为possible duplicate,但您提出了一些其他需要解决的问题。

OpenCV 自 2.0 版 起提供 C 接口 以及 C++ 接口。所以理论上,可以使用 C 编译器配置和构建 OpenCV,但我不知道这项任务背后的难度,因为我自己从未做过。请注意,大多数 C++ 接口仅编码为 C 接口的包装器。

关于实现实时处理,这完全取决于您设备的处理能力以及您选择在您的设备中使用的算法解决方案。

我们最近在this thread 讨论了实时处理和 OpenCV。

【讨论】:

  • 我认为 1.1 版只是一个 C 接口
  • 但它不是独立的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-30
  • 2020-07-20
  • 2020-07-01
  • 2012-03-02
  • 2019-06-08
  • 1970-01-01
  • 2011-02-24
相关资源
最近更新 更多