这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 「上海晶珩」「EDATEC」在树莓派64位OS上安装OpenCV4.5

共1条 1/1 1 跳转至

「上海晶珩」「EDATEC」在树莓派64位OS上安装OpenCV4.5

菜鸟
2023-04-12 14:05:30     打赏

介绍

Raspberry Pi正在向64位操作系统发展。在一年左右的时间内,32位操作系统将被更快的64位版本完全取代。
树莓基金会最近发布了一个不仅仅是功能性的测试版。安装说明可在此处找到。本指南是指导在Raspberry Pi 4上的64位操作系统上安装OpenCV 4.5.x。
您可以在OpenCV的GitHub页面上找到4.5.x版本的发行说明。
OpenCV Lite
寻找更小的 OpenCV ?我们的OpenCV Lite安装可能正是您所需要的。只是很基本的安装,为您节省了大量内存。
OpenCV 4.5.1
2020年 12月 22 日,OpenCV 发布了 5.1.4 版本。 此版本中最重要的改进是G-API框架和RISC-V端口。两者都不会影响Raspberry Pi。这就是为什么我们没有此版本的特殊安装指南。如果您希望使用4.5.0 以上版本,请在下载过程中随意选择版本号从 4.5.0 到4.5.1 。
OpenCV 4.5.2
2021 年 4 月 2 日,OpenCV 发布了 4.5.2 版本。在此处的日志文件中查找版本重大变更。在 imgproc、videoio 和 DNN 模块中进行了重要更改。在下载过程中,请随意将版本号从 4.5.0 更改为4.5.2。
OpenCV 4.5.3
2021 年 7 月 5 日,OpenCV 发布了 4.5.3 版本。除了各种错误修复和改进外,最重要的变化是DaSiamRPN跟踪器,这是一个GPU FFmpeg后端,用于CUDA后端中的videoio和MatMul支持。更多信息在这里。
OpenCV 4.5.4
2021 年 10 月 11 日,OpenCV 发布了 4.5.4 版本。主要变化是 DNN 模块的持续改进。当然,还有错误修复和改进。更多信息在这里。
OpenCV 4.5.5
2021 年 12 月 25 日,OpenCV 发布了 4.5.5 版本。同样,最大的变化是对 DNN 模块的改进。当然,还有错误修复和改进。更多信息在这里。
您应该知道有一个问题。Python3 安装脚本修改不正确。它会将所有库放在错误的目录中,Python 找不到它们。通过将 -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages 添加到构建中,库就会存储在正确的文件夹中。问题解决后,我们将删除此解决方法。这是GitHub上的错误报告。
OpenCV 4.6.0
2022 年 7 月 7 日,OpenCV 发布了 4.6.0 版本。除了对 DNN 库的更改和改进之外,最重要的更改是对 GCC 15 和 Clang 5 编译器的支持。同样值得注意的是对FFmpeg 5.0的支持。
我们必须使用额外的行 -D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages。
从 Python 3.12 开始,dist-packages 文件夹中的安装被弃用,取而代之的是site-package文件夹。

版本检查

在Raspberry 64位操作系统上安装OpenCV 4.5之前,您应该首先检查您的版本。运行命令 uname -a 并使用下面的屏幕打印验证您的版本。

您还需要使用命令 gcc -v 检查您的C++编译器版本。它还必须是 aarch64-linux-gnu 版本,如屏幕截图所示。如果您使用的是 64 位操作系统,但您的 gcc 版本与上面给出的版本不同,请使用最新版本重新安装整个操作系统。这里有指南:在树莓派4上安装 64 位操作系统 。您必须有一个 64 位 C++ 编译器,因为我们将从头开始构建所有库。否则,在64位机台上构建32版本是没有意义的。

交换检查

下一个检查是内存交换的大小。它必须足够大以支撑构建。
版本 4.5.2
OpenCV 版本 4.5.2 需要更多的内存。如果您有具有4或8 GB内存的Raspberry Pi 4,则没有任何更改。仅当您拥有具有 2 GB RAM 的树莓派 4 时,您才需要增加 zram 配置文件中的交换空间。请按照您在安装64位操作系统时已经知道的说明进行操作。



通过将比率增加到三倍,您将获得 1.8 GB 的额外交换空间。这对于构建OpenCV 4.5.2就足够了。

版本 4.5.0 - 4.5.1
OpenCV 版本 4.5.0 或 4.5.1 至少需要总共 5.5 GB 的内存。如果您根据我们的指南安装了 64 位操作系统,这应该没有问题。

如果你有一个没有安装 zram.sh 的Raspberry Pi 4,你可能已经安装了最初安装的dphys-swapfile。在这种情况下,您必须增加默认的 100 MB 交换空间。使用板载 4 GB RAM 的树莓派,您必须增加到最大 2048 GByte。但是,使用只有 2 或 1 GB RAM 的树莓派,您会遇到麻烦。

要超过通常在 /etc/dphys-swapfile 中找到的 2048 MB 限制,您必须首先在 /sbin/dphys-swapfile 中增加此最大值。下面的幻灯片演示了所有内容。


EEPROM检查

最后是检查EEPROM软件版本。Raspberry Pi 3在SD卡上安装了所有操作软件。另一方面,Raspberry Pi 4也部分从两个EEPROM启动。这些EEPROM在工厂进行PCB组装后进行编程。Raspberry 基金会最近为这些 EEPROM 发布了新的和改进的软件。这与OpenCV无关,但与散热有关。在我们的一个视觉应用中,只需更新EEPROM的内容,CPU的热量就会从65°C(149°F)下降到48°C(118°F)。而且,如您所知,较低的 CPU 温度将延长您的 Pi 寿命。有关详细信息,请参阅此文章。
使用以下命令检查并在需要时更新 EEPROM。以下是说明。

注意

一些警告的话。不要使用 pip3 在树莓派上安装 OpenCV。也不要使用 sudo apt-get 安装。所有版本都不是最新的,当然也不是 64 位。安装 OpenCV 4.5 的唯一正确方法是从源代码构建它。

显卡内存

如此处所述,物理 RAM 芯片由 CPU 和 GPU 同时使用。 如有必要,请使用以下菜单检查并将容量更改为至少 128 MB。





安装脚本

在Raspberry Pi上安装OpenCV并不复杂。凭借其 60 个命令行,它更像是一项管理任务。这就是我们创建一个安装脚本的原因,该脚本可以一次执行本指南中的所有命令。如果需要,请使用它,它应该不会引起任何问题。 整个安装需要一个半小时才能完成。 它从安装依赖项开始,以 ldconfig 结束。
如果您想使用 Qt5 GUI 美化您的 OpenCV,请按照 GitHub 页面上或以下部分中的说明进行操作。
OpenCV 4.5.5

OpenCV 4.5.4

OpenCV 4.5.3

OpenCV 4.5.2

OpenCV 4.5.1

OpenCV 4.5.0

清洁和移除 dphys-swap 应该按照这些说明手动完成。

依赖

不使用脚本?这是完整指南。
OpenCV软件使用其他第三方软件库。必须先安装这些。有些带有Raspberry 64位操作系统,有些可能已经安装。安全总比后悔好,所以这里是完整的列表。仅根据该过程安装最新的软件包。

Qt5

Qt是一个开源工具包,用于开发跨平台图形用户界面。它也适用于Raspberry Pi。该软件可用于美化OpenCV窗口和其他用户界面,如滑块和复选框。对于OpenCV的工作来说,这绝对不是强制性的,只是为了修饰外观。 可以说,使用Qt5会使OpenCV的速度减慢几个百分点。如果您选择最快的应用程序,请不要使用它。



如果您希望在 OpenCV 中启用 Qt5 支持,则必须下载库,如以下命令所示。 下一步是在生成过程中设置 -D WITH_QT标志。

下载OpenCV

安装完所有第三方软件后,可以下载OpenCV本身。需要两个包;基本版本和其他。下载后,您可以解压缩文件。请注意文本框中的换行。这两个命令以 wget 开头,以 zip 结尾。
OpenCV 4.5.5

OpenCV 4.5.4

OpenCV 4.5.3

OpenCV 4.5.2

OpenCV 4.5.1

OpenCV 4.5.0

虚拟环境

现在是时候决定是否使用虚拟环境进行OpenCV安装了。我们不使用虚拟环境。相反,如果需要,我们只需交换SD卡即可。但是,安装虚拟环境也是可以的。所有说明均在 32 位 OpenCV 指南中给出。

TensorFlow

将TensorFlow和OpenCV导入Python可能会引发错误:无法在静态TLS块中分配内存。
此行为仅在 aarch64 系统上发生,并且是由未满足 OpenMP 内存要求引起的。有关更多信息,请参阅 GitHub #14884。


有几种解决方案。最简单的方法是在开始时导入 OpenCV,如上所示。
另一种是通过设置 -DBUILD_OPENMP 和 -DWITH_OPENMP 标志 OFF 来禁用 OpenMP。在可能的情况下,OpenCV现在将使用默认的pthread或TBB引擎进行并行化。
我们不推荐它。并非所有 OpenCV 算法都会自动切换到 pthread。我们的建议是先将OpenCV导入Python。

构建编译

在我们开始实际构建库之前,还有一小步要走。您必须创建一个可以找到所有构建文件的目录。

现在是迈出重要一步的时候了。在这里,你告诉CMake什么,在哪里以及如何在你的Raspberry上制作OpenCV。涉及许多标志。你会认出的最多。您可能会注意到 -D WITH_QT=OFF 行。此处禁用了 Qt5 支持。如果选择将 Qt5 软件用于 GUI,请设置 -D WITH_QT=ON。 我们通过排除任何(Python)示例或测试来节省空间。
-D 标志之前只有暴露的空间,没有制表符。 顺便说一下,最后两个点不是错别字。它告诉 CMake 在哪里可以找到它的 CMakeLists.txt(大型配置文件);一个目录向上。
OpenCV 4.5.5

OpenCV 4.5.4

OpenCV 4.5.3

OpenCV 4.5.2

OpenCV 4.5.1

OpenCV 4.5.0

希望一切顺利,CMake 附带了一个类似于下面屏幕截图的报告。

编译

完成所有编译指令后,可以使用以下命令开始生成。这将需要一段时间(最少 1:30)。

$ make -j4

希望您的构建与下面的构建一样成功。

现在要完成,使用以下命令将所有生成的软件包安装到系统的数据库中。

检查

现在是时候检查您在 Python 中的安装了。您可以使用命令,如下面的屏幕所示。这一切都不言自明。显然,如果您在虚拟环境中安装了 OpenCV,则需要首先使用命令 workon 激活此环境。

OpenCV 将安装到 /usr/local 目录下,所有文件都将复制到以下位置:

清空

首先要做的是将交换空间重置回其原始的 100 MB,如果您安装了 dphys-swapfile。闪存只能写入有限数量的周期。最后,它会磨损您的SD卡。因此,明智的做法是将内存交换保持在最低限度。此外,它还会减慢您的应用程序速度。这就是为什么我们更喜欢使用 zram,如 树莓派 4 64 位操作系统指南中所述。

如果磁盘空间不足,可以考虑删除 ~/opencv 和 ~/opencv_contrib 文件夹。通过命令 sudo make install,您已将所有标头和库复制到磁盘上的适当位置。不再需要 ~/opencv/build/ 文件夹中的原始文件。当然,例如,如果您启用了示例的构建,则无法删除文件夹,因为这也会删除这些示例。 这只是一个提示,节省了大约 1.5 GB 的空间。





关键词: 树莓派     嵌入式     物联网     工业计算机     工控机     OS         

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]