树莓派计算机视觉,如何在Raspberry Pi上编译安装OpenCV

在本指南中,我记录了下如何在树莓派上安装和配置OpenCV。

Raspberry-Pi-OpenCV-Thumbnail.jpg

将OpenCV安装到Raspberry Pi上需要几个的步骤和一些耐心。

OpenCV是一个函数库,旨在处理实时计算机视觉。

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

树莓Pi是一个很好的开始学习OpenCV的平台,同时也是一个经济实惠的小型设备。

设备清单

下面是树莓派OpenCV教程的所需设备,点击链接可以直达特别优惠购买。

建议

可选

我使用最新版本的Raspbian Buster进行了测试。如果你正在运行旧版本的Raspbian,你可以使用我的指南升级到Buster

安装OpenCV编译所需的软件包

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

由于OpenCV在Raspberry Pi上需要很多包,通过几个步骤来安装这些包。

1. 在继续之前,首先更新存在的软件包。

运行以下两个命令更新当前安装的软件包。

sudo apt update
sudo apt upgrade

2. 现在可以开始安装OpenCV编译所需的所有包了。

运行下面的命令。该命令将安装包含编译OpenCV代码所需工具的包。

sudo apt install cmake build-essential pkg-config git

3. 接下来,安装OpenCV添加支持不同图像和视频格式的包。

使用以下命令将这些库安装到Raspberry Pi上。

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在Raspberry Pi上的运行速度至关重要。

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

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

6. 需要安装的第二批软件包与OpenCV用来管理数据的数据格式(HDF5)有关。

使用下面的命令安装HDF5包到Pi上。

sudo apt install libhdf5-dev libhdf5-103

7. 最后,可以使用下面的命令来安装最后几个包。

最后这几个包可以在Raspberry Pi上编译支持Python的OpenCV。

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

在进入下一节之前,请确保所有的软件包都安装成功。

为编译OpenCV对Raspberry Pi做些配置

1. 现在已经安装了在Raspberry Pi上编译OpenCV所需的所有包,在开始编译之前,需要做一些准备工作。

需要临时增加交换空间的大小,以便在Raspberry Pi上编译OpenCV。

当设备的物理RAM用完后,操作系统就会使用交换空间。虽然交换内存的速度比RAM慢很多,但在某些情况下还是很有帮助的。

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

sudo nano /etc/dphys-swapfile

2. 在这个文件中,需要找到并替换以下一行:

寻找

CONF_SWAPSIZE=100

替换为

CONF_SWAPSIZE=2048

更改后,按CTRL+X后按Y再按Enter键保存文件。

3. 由于已经对swapfile的配置进行了修改,需要利用下面的命令来重新启动它的服务。

sudo systemctl restart dphys-swapfile

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

4. 接下来,把需要的两个OpenCV仓库克隆到我们的Raspberry Pi上。

运行这两个命令将从他们的git仓库中获取OpenCV的最新可用版本。

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

由于这些资源库相当大,它们可能需要一些时间来克隆到Raspberry Pi。

在Raspberry Pi上编译OpenCV。

1. 先在克隆的 “opencv “文件夹内创建一个名为 “build “的目录,然后将工作目录改为它。

 mkdir ~/opencv/build
cd ~/opencv/build

在这个文件夹中,在Raspberry Pi上编译OpenCV。

2. 现在进入了新创建的build文件夹中,可以使用cmake来准备在Raspberry Pi上编译OpenCV。

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

cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
    -D ENABLE_NEON=ON \
    -D ENABLE_VFPV3=ON \
    -D BUILD_TESTS=OFF \
    -D INSTALL_PYTHON_EXAMPLES=OFF \
    -D OPENCV_ENABLE_NONFREE=ON \
    -D CMAKE_SHARED_LINKER_FLAGS=-latomic \
    -D BUILD_EXAMPLES=OFF ..

3. 当make文件成功完成生成后,终于可以运行下面的命令来编译OpenCV了。

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

这样做将大大加快编译过程,并让Raspberry Pi上的每个内核都能从事编译OpenCV的工作。

make -j$(nproc)

请注意,编译过程可能需要相当长的时间。在我的Raspberry Pi 4上,这个过程大约需要1小时才能完成。

4. 当编译过程完成后,就可以继续安装OpenCV了。

需要运行以下命令。

sudo make install

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

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

如果不运行以下命令,Raspberry Pi将无法找到OpenCV。

sudo ldconfig

编译后的清理工作

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

用下面的命令来编辑交换文件的配置。

sudo nano /etc/dphys-swapfile

2. 在这个文件中,需要找到并修改以下一行:

寻找

CONF_SWAPSIZE=2048

替换为

CONF_SWAPSIZE=100

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

3. 现在最后的清理任务需要重新启动交换文件服务。

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

sudo systemctl restart dphys-swapfile

在Raspberry Pi上测试OpenCV

1. 为了测试OpenCV是否已经安装到Raspberry Pi上,要利用Python 3。

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

python3

2. 在Python中时,可以使用下面的命令导入OpenCV Python模块。

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

import cv2

3. 随着OpenCV模块的导入,应该能够检索到它的版本。

要检索OpenCV的版本,使用以下命令。

cv2.__version__

4. 如果现在一切都如常,并且OpenCV已经成功地安装到Raspberry Pi上,应该会看到命令行中出现类似下面的文字。

'4.1.2'

希望到这里,你已经成功在树莓派上编译安装了OpenCV。

如果在这个Raspberry Pi OpenCV教程中遇到了任何问题或有任何反馈,欢迎在下面留言。

平均: 5 / 5. votes: 1

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » 树莓派计算机视觉,如何在Raspberry Pi上编译安装OpenCV

赞 (3)

评论

1+4=