C/C++教程

基于ARM架构开发板——树莓派4B上源码编译安装OpenCV和OpenCV contrib

本文主要是介绍基于ARM架构开发板——树莓派4B上源码编译安装OpenCV和OpenCV contrib,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

本文主要记录笔者在树莓派4B安装opencv的过程,算是对这段时间的一个学习总结,也方便其他新手入门,如有侵权,请及时联系我删除。
在此特别感谢OpenCV团队、树莓派实验室和我的两位学长,我的这次安装也是根据他们写的博文和建议完成的,他们在这次安装给我提供了重要的帮助,我从中我学习了很多新知识。
参考资料:
https://www.cnblogs.com/tanshengjiang/p/13861494.html
https://mp.weixin.qq.com/s/dWrDBMqHqAl4iBVAS50_uA(opencv中国团队官方文档)
https://docs.opencv.org/master/d0/d76/tutorial_arm_crosscompile_with_cmake.html(opencv官方文档,有一定英语水平可以看这个)
https://blog.csdn.net/simonforfuture/article/details/101716181
https://www.deciphertechnic.com/install-opencv-python-on-raspberry-pi/

好了,正文开始:
环境:树莓派4B python 3.7 基于Debian的树莓派官方系统(Raspbian Buster系统),可以到官网(https://www.raspberrypi.org/downloads/raspberry-pi-os/)下载。

1.安装之前先更新一下环境

sudo apt-get update
sudo apt-get upgrade
sudo rpi-update

2.安装一下必要的依赖

sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk2.0-dev libgtk-3-dev
sudo apt-get install libatlas-base-dev gfortran

3.安装开发工具(python3和pip)

sudo apt-get install python3 python3-setuptools python3-dev
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py

4.下载OpenCV3.4.1和OpenCV-contrib的包
笔者这里安装的是4.5.3版本

wget -O opencv.zip https://github.com/Itseez/opencv/archive/4.5.3.zip
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/4.5.3.zip
unzip opencv-4.5.3.zip
unzip opencv_contrib-4.5.3.zip

下载完直接解压,如果这样下载比较慢的话,可以到网站直接下载。

5.安装opencv需要的库

pip3 install numpy

这一步笔者没有安装到超级用户,大家可以自行选择

6.开始进行编译Opencv,一般编译都是使用cmake自动编译生成makefile

cd ~
mv opencv_contrib-4.5.3 opencv-4.5.3/
cd ~/opencv-4.5.3
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D BUILD_opencv_xfeatures2d=OFF \ # 这个模块开启时会自动下载一些模型,有些模型在国外服务器,如果用不到里面的算法,这里不推荐打开。
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D ENABLE_NEON=ON \ # NEON指令是针对ARM平台的加速指令,在ARMv7及以上支持
      -D WITH_TENGINE=ON \ # Tengine是专门针对ARM平台的DNN后端,能够加速DNN模块,此选项打开之后需要保持开发板联网
      -D OPENCV_GENERATE_PKGCONFIG=ON \ # 此选项方便调用OpenCV库
      -D OPENCV_ENABLE_NONFREE=ON \
      -D OPENCV_PYTHON3_INSTALL_PATH=/usr/lib/python3/dist-packages \ # 这里需要修改成你的开发板上对应的位置
      -D OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv-4.5.3/opencv_contrib-4.5.3/modules \ # 这里需要修改成你的opencv_contrib所在目录
      -D PYTHON_EXECUTABLE=/usr/bin/python3.7 \ # 这里需要修改成你Python3所在的目录,将会自动安装python版本的OpenCV库
      -D BUILD_EXAMPLES=ON ..

增加swap空间
将swap大小从100MB增加到1024MB,可以方便OpenCV使用Pi的4个核进行编译
vim /etc/dphys-swapfile
找到 CONF_SWAPSIZE 这个变量,将100改成1024,然后保存退出。使用如下命令重启:

sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start

7.编译安装opencv
这个过程比较漫长,我大概编译安装了四个多小时。

make -j4
sudo make install
sudo ldconfig  

编译完成后记得 ,将swap大小从1024MB改回100MB

vim /etc/dphys-swapfile
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start

8.上面的步骤完成后,可以测试一下OpenCV是否安装成功。
Python:

import cv2
print(cv2.__version__) 

如果能够正确打印OpenCV版本,恭喜你,安装成功!
9.测试运行

cd ~/opencv-4.5.3/samples/cpp/example_cmake/build

编译一下先cmake .. 再make

./opencv_example

当你从屏幕中看到一张帅气的脸,说明安装成功!(注:需要摄像头才能看到帅气的脸)!
或者,你也测试运行一下世界上最快的人脸检测算法libfacedetection给出的OpenCV DNN的例子,看看OpenCV是否安装成功:
https://github.com/ShiqiYu/libfacedetection/tree/master/example/opencv_dnn/cpp

这篇关于基于ARM架构开发板——树莓派4B上源码编译安装OpenCV和OpenCV contrib的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!