如何在树莓派上安装配置 OpenCV ?

在本指南中,我们将引导您完成在树莓派上设置 OpenCV 的过程。

成功将 OpenCV 安装到树莓派上需要几个不同的步骤,并且需要一定的耐心。

对于那些不知道 OpenCV 是什么的人。它是一个旨在处理实时计算机视觉的不同编程功能的库。

使用计算机视觉,您可以实时解释图像和视频。使您可以相对轻松地执行诸如运动检测和面部识别之类的任务。

树莓派是开始学习 OpenCV 的绝佳平台,并且还可以用作价格适中的小型设备。

设备清单

这是我们为树莓派 OpenCV 教程推荐的所有设备。

推荐的

  • 树莓派 1、 2 、 3 或 4

  • Micro SD 卡

  • 电源

  • Ethernet Cord 或 * WiFi dongle (Pi 3 和 4 具有内置 WiFi)

  • 树莓派相机或 * USB WebCam

可选的

  • 树莓派外壳

本教程已使用最新版本的 Raspbian Buster 进行了测试。如果您运行的是 Raspbian 的旧版本,则可以使用我们的指南升级到 Buster 。

为 OpenCV 安装软件包

在本节中,我们将引导您完成安装所有编译和运行 OpenCV 软件所需的软件包的过程。

由于 OpenCV 在树莓派上需要许多软件包,因此我们将通过几个步骤安装它们。

1 在继续之前,我们应该先更新任何现有的软件包。

您可以通过运行以下两个命令来更新当前安装的软件包。

sudo apt update
sudo apt upgrade

2 现在,我们可以开始安装 OpenCV 编译所需的所有软件包的过程。

首先,运行以下命令。此命令将安装包含编译 OpenCV 代码所需工具的软件包。

sudo apt install cmake构建必需的 pkg -config git

3 接下来,我们将安装软件包,这些软件包将为 OpenCV 添加对不同图像和视频格式的支持。

使用以下命令将这些库安装到您的树莓派中。

sudo apt install libjpeg -dev libtiff-dev libjasper-dev libpng-dev libwebp-dev libopenexr-dev
sudo apt install libavcodec -dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libdc1394-22-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev

4 我们的下一步是使用以下命令安装 OpenCV 界面所需的所有软件包。

sudo apt install libgtk -3-dev libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5

5 这些下一个软件包对于 OpenCV 在树莓派上以适当的速度运行至关重要。

您可以通过运行以下命令来安装这些软件包。

sudo apt install libatlas -base-dev liblapacke-dev gfortran

6 我们需要安装的第二批软件包与 OpenCV 用于管理数据的分层数据格式 (HDF5) 有关。

使用以下命令将 HDF5 软件包安装到您的 Pi 。

sudo apt install libhdf5 -dev libhdf5-103

7 最后,我们可以使用以下命令安装最后几个软件包。

这最后几个软件包将使我们能够在树莓派上编译支持 Python 的 OpenCV 。

sudo apt install python3-dev python3-pip python3-numpy

在继续下一节之前,请确保所有软件包都已成功安装。

准备要编译 OpenCV 的树莓派

1 现在已经安装了在树莓派上编译 OpenCV 所需的所有软件包,在开始编译过程之前,我们需要做一些准备工作。

现在,我们将需要暂时增加交换空间的大小,以帮助在树莓派上编译 OpenCV 的过程。

当设备的物理 RAM 用完时,操作系统将使用交换空间。尽管交换内存比 RAM 慢很多,但在某些情况下它仍然很有用。

通过运行以下命令开始修改交换文件配置。

sudo vim /etc/dphys-swapfile

2 在此文件中时,我们需要查找并替换以下行。

CONF_SWAPSIZE = 100

用。。。来代替

CONF_SWAPSIZE = 2048

更改后,按 CTRL + X,然后按 Y ,然后按 Enter ,保存文件。3 在更改交换文件配置后,我们需要使用以下命令来重新启动其服务。
sudo systemctl restart dphys -swapfile

通过重新启动服务,我们迫使它重新创建交换文件。

4 接下来,我们继续将所需的两个 OpenCV 存储库克隆到树莓派中。

运行这两个命令将从其 git 存储库中检索 OpenCV 的最新可用版本。

git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

由于这些存储库很大,因此可能需要一些时间才能克隆到您的树莓派。

在树莓派上编译 OpenCV

1 首先,在克隆的”** opencv “文件夹中创建一个名为”** build ****” 的目录,然后将工作目录更改为该目录。

mkdir〜/opencv/build
cd〜/opencv/build

在此文件夹中,我们将在您的树莓派上编译 OpenCV 。

2 现在我们位于新创建的 build 文件夹中,我们现在可以使用 cmake 准备 OpenCV 以便在树莓派上进行编译。

运行以下命令以生成所需的 makefile 。

cmake -D CMAKE_BUILD_TYPE =发布\
    -D CMAKE_INSTALL_PREFIX =/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH =〜/opencv_contrib /模块\
    -D ENABLE_NEON =开\
    -D ENABLE_VFPV3 =打开\
    -D BUILD_TESTS = OFF \
    -D INSTALL_PYTHON_EXAMPLES =关闭\
    -D OPENCV_ENABLE_NONFREE =打开\
    -D CMAKE_SHARED_LINKER_FLAGS = -latomic \
    -D BUILD_EXAMPLES = OFF ..

3 一旦 make 文件成功完成生成,我们现在终于可以通过运行以下命令继续编译 OpenCV 。

我们使用参数 - j $(nproc) 来告诉编译器为每个可用处理器运行一个编译器。

这样做将大大加快编译速度,并使树莓派上的每个内核都可以编译 OpenCV 。

使-j $(nproc)

请注意,编译过程可能会花费大量时间。在我们的树莓派 4 上,此过程大约需要 1 个小时才能完成。

4 编译过程完成后,我们可以继续安装 OpenCV 。

对我们来说幸运的是,这是一个相当简单的过程,需要您运行以下命令。

sudo 使安装

此命令将自动将所有需要的文件复制到需要的位置。

5 现在,我们还需要重新生成操作系统库链接缓存。

如果不运行以下命令,树莓派将无法找到我们的 OpenCV 安装。

sudo ldconfig 

编译后清理

1 现在我们已经完成了 OpenCV 的编译,我们不再需要这么大的交换文件。

让我们使用以下命令再次编辑交换文件配置。

sudo vim /etc/dphys-swapfile

2 在此文件中,您需要查找并更改以下行。

CONF_SWAPSIZE = 2048

用。。。来代替

CONF_SWAPSIZE = 100

完成后,按 CTRL + X,然后按 Y ,然后按 Enter ,保存文件。

3 现在,我们的最终清理任务要求我们重新启动交换文件服务。

重新启动服务会将文件大小从 2GB 减小到 100 MB。

sudo systemctl restart dphys -swapfile

在树莓派上测试 OpenCV

1 要测试现在是否已将 OpenCV 安装到我们的树莓派中,我们将使用 Python 3 安装。

通过运行以下命令启动 Python 终端。

python3

2 在 Python 中时,我们现在可以使用以下命令导入 OpenCV Python 模块。

通过导入模块,我们可以首先检查 OpenCV 是否甚至可以在我们的 Pi 上加载。

导入 cv2 

3 现在导入了 OpenCV 模块,我们应该能够检索其版本。

要获取 OpenCV 的版本,请使用以下命令。

cv2 .__ version__

4 如果现在一切正常,并且 OpenCV 已成功安装到您的树莓派中,那么您应该在命令行中看到类似以下的文本。

'4.1.2'

希望此时您将启动并运行 OpenCV 。

如果您对此树莓派 OpenCV 教程遇到任何问题或有任何反馈,请与我联系。

分享到