树莓派4安装OpenCV4.1.1从零开始全过程

笔者在2019年双十一入手了树莓派4b,当然我自己也是新手,想在计算机视觉做点东西时,但在安装OpenCV上面却爬了不少坑,因此特地总结了一下,希望能帮助那些利用树莓派4b+OpenCV 4.1.1的maker。前面的准备内容可以跳过,主要针对新手,网上挺多教程的。

一、 准备

笔记本(笔者没买专用的显示屏)、网线(SSH连接)
树莓派4b(4G内存版本)、32G的tf卡(安装系统)、树莓派的电源适配器(5V、3A)

1.1 给树莓派开发板安装镜像

我们这里假设tf卡是一张空白的内存卡。介绍这些步骤,是因为我当时经常出问题,有时候没别的办法,就只能重装系统。

1.1.1 格式化tf卡

我用的是买树莓派时卖家给的软件SD Formatter 4.0。格式化完成后,存储大小就会由256M变成正常大小。
树莓派4安装OpenCV4.1.1从零开始全过程_第1张图片

1.1.2 给tf卡安装系统

我用的是买树莓派时卖家给的软件Win32DiskImager-0.9.5-binary。导入系统镜像,再点击write。这个系统镜像在国内从官网上下载非常慢,还容易失败。图中版本的系统的百度云
链接:https://pan.baidu.com/s/1pW4xZg6PpCMdi1RShBIBhw
提取码:chfs
树莓派4安装OpenCV4.1.1从零开始全过程_第2张图片

1.1.3 给tf卡添加SSH文件或SSH文件夹

进行SSH连接时,要么建立SSH文件夹,要么建立SSH文本文档,不过需要将.txt后缀去掉
在这里插入图片描述

1.2 通过网线进行树莓派和笔记本的SSH连接

相当于就是笔记本与树莓派通过网线连接。笔记本连接WiFi,更改无线网络设置(可以百度一下),使笔记本无线网络与树莓派进行网络共享。

1.2.1 网络设置

树莓派4安装OpenCV4.1.1从零开始全过程_第3张图片

1.2.2 SSH连接

首先IP扫描。这个Advanced IP Scanner软件比在cmd中的敲arp -a命令好用。
树莓派4安装OpenCV4.1.1从零开始全过程_第4张图片
然后,用putty连接。将IP地址输入进去点击下面Open即可。进入之后,输入登陆用户名pi,密码raspberry
树莓派4安装OpenCV4.1.1从零开始全过程_第5张图片

1.3 基本设置

1.3.1 中文设置

进入配置界面

sudo raspi-config

进入第4项 Location options
然后,选择第1项
树莓派4安装OpenCV4.1.1从零开始全过程_第6张图片
将显示语言设置为中文。需要注意的是,按下空格键,出现括号里面出现"星",才算被选中。然后回车,选择zh_CN.UTF-8那一项。
树莓派4安装OpenCV4.1.1从零开始全过程_第7张图片树莓派4安装OpenCV4.1.1从零开始全过程_第8张图片

1.3.2 开关设置

进入第5项Interfacing Options,打开摄像头、SSH、VNC(这三个必须的)等。即每项进入后,进行使能enable,确认
在这里插入图片描述

1.3.3 显示设置和扩容

进入第7项Advanced Options
然后再进入第5项Resolution ,如果不设置这一项,VNC不显示桌面。我选的是85那个,网上说,只要不是第一个就行。
树莓派4安装OpenCV4.1.1从零开始全过程_第9张图片
接着,扩展一下容量。进入第7项Advanced Options,再进入第1项
在这里插入图片描述
查看容量可用df -h命令。
接着输入如下命令进行重启。

sudo reboot

二、 给树莓派安装OpenCV4.1.1

2.1.一些可能遇到的问题

2.1.1 建议32G空间以上的tf卡

笔者用过16Gtf卡,结果编译到81%时,tf卡空间不足了。
树莓派4安装OpenCV4.1.1从零开始全过程_第10张图片
32Gtf卡安装opencv完成后,仅剩13.5G。
树莓派4安装OpenCV4.1.1从零开始全过程_第11张图片

2.1.2 VNC文件管理对话框闪退

VNC桌面,有时候点文件管理的时候,文件管理对话框可能闪退,解决办法如下:

sudo apt-get install --reinstall pcmanfm

2.1.3 虚拟内存(重要)

不修改的话,可能后面会编译到一半闪退,查看虚拟内存

free

在这里插入图片描述

sudo nano /etc/dphys-swapfile

更改虚拟内存,将100改成2048,如下图所示。记得Ctrl+O ,Enter,Ctrl+X
树莓派4安装OpenCV4.1.1从零开始全过程_第12张图片
重启相关服务

sudo service dphys-swapfile restart

再用free命令查看
在这里插入图片描述

2.2 摄像头Picamera

查看摄像头启动成功没

vcgencmd get_camera

如下图显示,则表示设置成功
树莓派4安装OpenCV4.1.1从零开始全过程_第13张图片

2.3 更换国内源(非常重要)

本小节参考的博客
链接:https://blog.csdn.net/zqxdsy/article/details/102574239
不换源的话,直接使用官网源,下载速度真的慢,还不一定下得全,会导致各种出错。

首先,更换软件源

sudo nano /etc/apt/sources.list

将原来的地址用“#”注释掉,换成清华源(也可以换成其他源,比如中科大源),用下面内容替代。接着Ctrl+O,回车, Ctrl+X退出

 deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
 deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib

树莓派4安装OpenCV4.1.1从零开始全过程_第14张图片
还要更换系统源

sudo nano /etc/apt/sources.list.d/raspi.list

用#注释掉原文件内容,用以下内容取代,然后Ctrl+O回车 Ctrl+X:

deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui

树莓派4安装OpenCV4.1.1从零开始全过程_第15张图片

2.4 更新

sudo apt-get update

树莓派4安装OpenCV4.1.1从零开始全过程_第16张图片

sudo apt-get upgrade

过程中需要有的地方需要按y,按下y即可;还有的地方需要press q就按下q好了
树莓派4安装OpenCV4.1.1从零开始全过程_第17张图片

2.5 安装numpy

sudo pip3 install numpy

2.6 安装依赖包

sudo apt-get install build-essential cmake git pkg-config -y 
sudo apt-get install libjpeg8-dev -y
sudo apt-get install libtiff5-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libpng12-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y(注意最后一个包的数字“4”后面是“L”)
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y

注意:如果每一条命令执行完后,如果出现未完成情况,就重新执行一次,否则到了后面编译步骤,会因为依赖包未下载完整而出错

2.7 下载两个OpenCV压缩文件

下载两个压缩包到树莓派的/home/pi/Downloads目录下,有以下几种方法:
(我用的方法三,两个压缩包的百度网盘
链接:https://pan.baidu.com/s/1SqHJwRkKqoRsmDP-gZ9hEg
提取码:3swp)
1)法一:

cd /home/pi/Downloads
wget https://github.com/Itseez/opencv/archive/3.4.0.zip
wget https://github.com/Itseez/opencv_contrib/archive/3.4.0.zip

下载之后,把第一个压缩包重新命名为opencv-3.4.0.zip,把第二个压缩包重新命名为opencv_contrib-3.4.0.zip

2)法二:Vnc进去运行:(用git工具clone到所需目录可能出错)

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

3)法三:直接访问网址

https://github.com/Itseez/opencv/archive/4.1.1.zip
https://github.com/Itseez/opencv_contrib/archive/4.1.1.zip

4)法四:
访问https://opencv.org/releases/ 从github下载,这个网址可以知道最新版本

5)法五:
使用Xftp 6 连接树莓派,用户就是IP地址,把压缩包拖到树莓派的/home/pi/Downloads目录下,这个方法最简单,便捷。
Xftp 6 下载网址:

https://www.netsarang.com/zh/downloading/?token=MHlpUm9TTnVISDRmZzJrTW1XN2U1d0BvTWZkSlIzY3dMUnFrcERIR0ZVdHpR

因为我用的法三,利用软件File Zilla,在右侧树莓派home/pi目录下创建Downloads文件夹并打开,将左侧笔记本上两个压缩包传输到home/pi/Downloads目录下
树莓派4安装OpenCV4.1.1从零开始全过程_第18张图片

2.8 解压两个OpenCV压缩文件

cd /home/pi/Downloads
unzip opencv-4.1.1.zip
unzip opencv_contrib-4.1.1.zip

2.9 设置编译参数

cd /home/pi/Downloads/opencv-4.1.1
mkdir build
cd build

2.10 设置CMAKE参数

注意:检查所有PATH路径是否在你本地存在,以下是我的树莓派的路径
注意,下面这是一行命令(包括最后那俩点儿),需要耐心等待十五分钟左右

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/home/pi/Downloads/opencv_contrib-4.1.1/modules -D BUILD_EXAMPLES=ON -DCMAKE_SHARED_LINKER_FLAGS='-latomic' -D WITH_LIBV4L=ON PYTHON3_EXECUTABLE=/usr/bin/python3.7 PYTHON_INCLUDE_DIR=/usr/include/python3.7 PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.7m.so PYTHON3_NUMPY_INCLUDE_DIRS=/home/pi/.local/lib/python3.7/site-packages/numpy/core/include ..

树莓派4安装OpenCV4.1.1从零开始全过程_第19张图片

2.11.编译

cd /home/pi/Downloads/opencv-4.1.1/build
make

注意:保证树莓派有至少5G的存储空间,建议本命令用树莓派桌面上的命令行工具运行,而不要使用无线远程ssh连接。因为执行命令时间太长,中途如果ssh断线的话无法得知是否已经安装完毕。
注意:静待五个小时的编译。注意,在此期间,树莓派要供电充足,不要运行其它任务,以免因为内存不够什么的幺蛾子报错。

2.12 编译中会出现的报错

2.12.1 有可能遇到的报错

有的错误是因为前面你的网速或者其他原因导致在步骤2.4中sudo apt-get upgrade更新不完整,也有可能是步骤2.6中,有些依赖包未下载完整
解决办法:重新回到步骤2.4,再进行一次

2.12.2 遇到的报错1

我遇到的这几个报错的解决办法是参考链接博客:https://blog.csdn.net/qq_43762614/article/details/102760414
树莓派4安装OpenCV4.1.1从零开始全过程_第20张图片
解决办法:将以下百度网盘里的文件复制到/home/pi/Downloads/opencv_contrib-4.1.1/modules/xfeatures2d/src 路径

链接:https://pan.baidu.com/s/1m1K272GEzC89z61RWltLLA
提取码:kqkq
树莓派4安装OpenCV4.1.1从零开始全过程_第21张图片
接着继续

make

2.12.3 遇到的报错2

opencv_contrib-4.1.1某个cpp类型文件中缺少头文件,在该文件夹找不到
树莓派4安装OpenCV4.1.1从零开始全过程_第22张图片
解决办法:
第一步,在VNC文件管理中/home/pi/Downloads/opencv-4.1.1/modules/features2d/test路径下,下面两个文件进行复制
树莓派4安装OpenCV4.1.1从零开始全过程_第23张图片
第二步,将上面两个文件粘贴到/home/pi/Downloads/opencv_contrib-4.1.1/modules/xfeatures2d/test路径下
树莓派4安装OpenCV4.1.1从零开始全过程_第24张图片
第三步,打开下面这个文件
树莓派4安装OpenCV4.1.1从零开始全过程_第25张图片
树莓派4安装OpenCV4.1.1从零开始全过程_第26张图片
第四步,将头文件引用改成下图所示
树莓派4安装OpenCV4.1.1从零开始全过程_第27张图片
接着继续

make

2.12.4 遇到的报错3

也是头文件缺失
树莓派4安装OpenCV4.1.1从零开始全过程_第28张图片
解决办法:同样的步骤
第一步,复制
树莓派4安装OpenCV4.1.1从零开始全过程_第29张图片
第二步,粘贴
树莓派4安装OpenCV4.1.1从零开始全过程_第30张图片
第三步,打开下面文件
树莓派4安装OpenCV4.1.1从零开始全过程_第31张图片
树莓派4安装OpenCV4.1.1从零开始全过程_第32张图片
第四步,修改头文件引用
树莓派4安装OpenCV4.1.1从零开始全过程_第33张图片

接着继续

make

2.12.5 遇到的报错4

树莓派4安装OpenCV4.1.1从零开始全过程_第34张图片
解决办法:同样的操作
第一步,复制
树莓派4安装OpenCV4.1.1从零开始全过程_第35张图片
第二步,粘贴
树莓派4安装OpenCV4.1.1从零开始全过程_第36张图片
第三步,打开下面文件
树莓派4安装OpenCV4.1.1从零开始全过程_第37张图片
第四步,添加头文件引用(前面是修改,这个是需要添加)
树莓派4安装OpenCV4.1.1从零开始全过程_第38张图片

2.13 make

接下来的编译就没遇到问题了
树莓派4安装OpenCV4.1.1从零开始全过程_第39张图片

cd /home/pi/Downloads/opencv-4.1.1/build
sudo make install

2.14 测试

cd ~
python3
import cv2

出现如下界面,则表示安装成功
树莓派4安装OpenCV4.1.1从零开始全过程_第40张图片

结语:好了,安装过程就到这里了,反正遇到问题,多思考,多查资料,现在网络这么发达,总能找到解决办法的,感谢各位大佬的帮助

你可能感兴趣的:(树莓派4b,OpenCV)