本文主要记录笔者在树莓派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