树莓派4B爽上流安装python3的OpenCV(人脸检测识别—门禁“环境搭建篇”)

article/2025/11/5 4:11:55

树莓派4B安装OpenCV3.4.0人脸检测识别—门禁“环境搭建篇”

  • 前言
  • 一、准备工作
    • PC端软件
  • 二、搭建树莓派环境
    • 拓展TF内存卡
      • Tips:换源(python软件源)
    • 修改树莓默认Python版本
    • 扩展交互空间
  • “进击”的工具包们
    • OpenCV编译工具
    • OpenCV图像包
    • OpenCV视频I/O包
    • OpenCV-gtk2.0
    • 优化函数包
  • 编译Cmake部分(受苦的开始)
    • 设置编译参数
      • 可能遇到的第一个坑
    • 预备,编译
    • 那就来盘点一下各种错误重要
      • 空间不足
      • 缺失文件类型的错误
      • 修改库文件
    • 最后的编译
  • 配置OpenCV到Python环境变量
    • 更新环境变量

前言

在上一篇帖子树莓派4无痛安装OpenCV+python3中,详细介绍 从零开始的树莓派NOOBS系统安装及配置教程,那从这篇文章,我将会详细讲解如何搭建人脸识别门禁所需要的环境,这部分则是是否实现OpenCV人脸检测识别的关键部分,很多人在搭建环境后编译OpenCV遇到很多报错假死爆内存的问题,这里我将详细介绍一步步讲解我们可能会遇到的报错问题,我会尽肯能的将遇到的bug一一列举解决以便后人一条过
自己在萌新时被这些bug反复摩擦

一、准备工作

树莓派4(略有磨损
显示器(Mico HDIM)
PS:这里我们强烈建议您准备显示器,在某些突发情况(局域网突然不稳定)会导致VNC断联,假死,无响应等

PC端软件

putty
SSH
VNC Viewer(建议使用远程桌面软件方便后期编译查看情况)
VNC

FileZila(方便与树莓派传输文件)
FileZila

二、搭建树莓派环境

拓展TF内存卡

Warning:搭建OpenCV环境,树莓派至少16GTF卡,需要拓展TF的存储空间至整个TF卡空间

查看当前树莓派空间分配

df -h #查看当前树莓派空间分配

在这里插入图片描述
继续输入

sudo raspi-config

在这里插入图片描述
在这里插入图片描述
确定finish保存回车ENTER(树莓派会重新启动)

sudo reboot #也可以手动重启

Tips:如果出现以下情况:
在这里插入图片描述
此当前不支持您的分区布局工具,您可能正在使用NOOBS,在这种情况下,您的根文件系统已经扩展。

Tips:换源(python软件源)

之前的文章虽然已经 换源(清华)但是在我们搭建环境过程中为了能更稳定 不白给 我们再次换源,但这次只换Python软件源即可

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple #清华源
pip install pip -U
sudo reboot #重启树莓派

在这里插入图片描述
单独换源结束,现在进入正题:
在此我将安装Python3的OpenCV3环境

修改树莓默认Python版本

打开我们的终端输入

python

在这里插入图片描述
我发现默认版本是Python2.7.16(输入Ctrl + Z退出python环境)
继续输入

python3

在这里插入图片描述
python3版本为3.7.3**,所以修改默认版本(python)为python3.7
输入sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
Keep goingsudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
在这里插入图片描述
在此输入python发现修改默认版本成功

扩展交互空间

安装OpenCV3编译部分是最头痛的,Up主自己在编译中很多次都会卡在40%左右假死挂起然后报错,部分报错原因可能是由于交互空间不足导致的,在之前树莓派3B上尝试了很多次都假死挂起(内存太小),在此我们先增大Swap交互空间
在终端中输入

free -m #查看当前内存

在这里插入图片描述
继续输入

sudo nano /etc/dphys-swapfile

CONF_SWAPSIZE = 改为1024
在这里插入图片描述
Ctrl + OEnterCtrl + X保存退出
继续输入

sudo /etc/init.d/dphys-swapfile restart

在这里插入图片描述
OK增大Swap交互空间成功
本次使用的树莓派4(2GB)方便起见我改数值为1024+512,大家根据自身使用配置情况可以进一步修改
在这里插入图片描述

“进击”的工具包们

你需要安装下载以下的工具包们:libjpeg-dev libatlas-base-dev libjpeg-dev libtiff5-dev libpng12-dev libqtgui4 libqt4-test libjasper-dev
不着急,一个个来

OpenCV编译工具

sudo apt install build-essential
sudo apt install cmake
sudo apt install git
sudo apt install pkg-config

OpenCV图像包

sudo apt-get install libtiff5-dev #tif格式图像工具包
sudo apt-get install libjasper-dev #JPEG-2000图像工具包
sudo apt-get install libjpeg8-dev #jpeg格式图像工具包
sudo apt-get install libpng12-dev #png图像工具包

OpenCV视频I/O包

sudo apt-get install libavcodec-dev
sudo apt-get install libv4l-dev
sudo apt-get install libavformat-dev
sudo apt-get install libswscale-dev

OpenCV-gtk2.0

sudo apt-get install libgtk2.0-dev #安装gtk2.0

优化函数包

sudo apt-get install libatlas-base-dev gfortran #安装优化函数包

以上依赖环境包安装好以后就开始准备配置Cmake参数
本次安装OpenCV3.4.0版,是从GitHub上Git clone的方式下载

编译Cmake部分(受苦的开始)

新建目录从 Github 克隆 OpenCV 和 OpenCV contrib 库

mkdir ~/opencv_build #在opencv里新建build文件夹
cd ~/opencv_build

新建build的文件夹存放cmake编译时产生的临时数据
在这里插入图片描述
之后git clone

wget -O opencv-4.0.0.zip https://github.com/Itseez/opencv/archive/4.0.0.zip
#下载opencv 4.0.0包

这里下载很慢很慢,毕竟是国外网站,而且下载一般报错很正常(换源没用 )耐心等待http回应
请添加图片描述
个人建议会点魔法的尽量使用魔法
请添加图片描述
最后安装下载完是这样子
请添加图片描述

接着需要下载opencv-contrib包文件

wget -O opencv_contrib-4.0.0.zip https://github.com/Itseez/opencv_contrib/archive/4.0.0.zip #下载opencv包

请添加图片描述
最后下载完成…
这里网络不好的小伙伴我提供一个完整的资源下载(包含opencv4.0.0、opencv_contrib-4.0.0)OpenCV4.0.0安装环境
请添加图片描述

unzip opencv-4.0.0.zip
unzip opencv_contrib-4.0.0.zip
#解压文件

请添加图片描述

设置编译参数

在文件解压完毕后,保证文件路径没有问题:向我这样的结构:/opencv4.0.0/build/以下的操作均需要在build的这个文件夹进行:
接下来准备设置编译参数,编译的语句安全起见要加 sudo

sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \-D CMAKE_INSTALL_PREFIX=/usr/local \-D OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv/opencv_contrib-4.0.0/modules \#根据自己contrib中modules文件夹的地址进行配置-D INSTALL_PYTHON_EXAMPLES=ON \-D INSTALL_CXX_EXAMPLES=ON \-D OPENCV_GENERATE_PKGCONFIG=ON \-D BUILD_EXAMPLES=ON ..

这里是编译的代码的详细

CMAKE_BUILD_TYPE #编译方式
CMAKE_INSTALL_PREFIX #安装目录
OPENCV_EXTRA_MODULES_PATH #加载额外模块
INSTALL_PYTHON_EXAMPLES #安装官方python例程
BUILD_EXAMPLES #编译例程
OPENCV_GENERATE_PKGCONFIG : #配置pkg-config , OpenCV 4 默认下生成”opencv4.pc“
-D INSTALL_C_EXAMPLES=ON	#如果需要C语言的编程案例在末尾加上

开始编译:
在这里插入图片描述
设置编译参数完成看到结尾像这样,没有报错且都为done的时候,编译部分结束
在这里插入图片描述
到这里,在成功编译的情况下建议把编译的文件夹进行一个备份:(/build

cd ..
cp -r build ./buildres  #在当前目录备份build为buildres文件夹

可能遇到的第一个坑

但是吧…在这个步骤中,可能会出现一个错误:
在这里插入图片描述
这种情况是文件编译出错,我自己第一次编译也是一直失败
可能出现的原因:
1.下载的opencv以及opencv-contrib文件不完整,尤其是git clone下的文件,可能文件丢失
建议重新下载
2.在编译的时候,没有添加“sudo”,在Linux中,sudo是高权限的指令
尝试添加sudo,并且删除原编译的build文件夹中的所有文件后重新编译

预备,编译

请添加图片描述
请添加图片描述
一次编译到这里是真的NB!!!(反正我安装了差不多4次的opencv,没有一次能一次顺利的编译完成)
请添加图片描述
正常来说,脸白一点,一次完整的编译成功!!!雀食欧皇
(一次编译成功的重要原因是你的opencv和opencv-contrib文件很完整,也就是你连接GitHub的网速好,或者下载的哪个文件完整度较高)
不然…基本就会在编译中,会报错缺失文件

那就来盘点一下各种错误重要

空间不足

换32GB吧,16GB可能少点的话编译雀食很危险,32GB最保险
**重要提示:**内存卡一定要看看是不是已经扩充到整个磁盘:
请添加图片描述
在这里插入图片描述
这是一张32GB的卡,在第一次编译因为没有扩充到整个磁盘,导致空间不足
扩充磁盘的方法:文章开头有提到
在这里插入图片描述

缺失文件类型的错误

这个报错是很常见的了,原因前文也提到了,就是opencv和opencv-contrib两个文件不完整
具体表现在:
缺失以下的文件:
请添加图片描述
那就缺什么下载什么,这里提供以上文件的完整包——下载
在这里插入图片描述
和上图差不多的报错,将缺失的文件放到
opencv_contrib/modules/xfeatures2d/src/(记得是opencv-contrib这个文件夹里)

修改库文件

这是我心态崩的一次安装opencv了
在编译到99%报错了直接原地爆炸
请添加图片描述
注意看这里:
在这里插入图片描述
意思是我们缺失这个文件“test_detectors_regression.impl.hpp"
解决这个问题首先要看看我们是否有这个文件
在终端中输入

find -name test_detectors_regression.impl.hpp

或者去这个路径

/Users/bigboss/Documents/CodeHouse/OpenCV4.0.0/OpenCV4.0.0/opencv-4.0.0/modules/features2d/test/test_descriptors_regression.impl.hpp

看看这个文件是否存在
若有这个文件则打开opencv/CmakeLists.txt文件中,插入

include_directories("modules")

至于插入的位置,位置在构建前就行,举例
在这里插入图片描述

最后的编译

执行

sudo make -j4 2>&1 | tee make.log

请添加图片描述
请添加图片描述
通过!!!
接着执行

sudo make install

请添加图片描述
finally 终于成功安装了!!!!

配置OpenCV到Python环境变量

在整个安装完OpenCV环境下,打开终端进行测试
输入 : Python 进入Python的运行环境
输入import cv2 如果没有错误的话说明可以正常运行opencv的环境了,提示找不到库时候,说明需要将opencv的环境配置到Python中

退出Python环境,在终端输入

cd /usr/local/python/cv2

进入到Python cv2的文件下,继续输入ls 查看当前的文件夹下的文件
在这里插入图片描述
有一个文件夹是Python-3.7 ,进入这个文件夹 /usr/local/python/cv2/python-3.7(根据自己的文件版本进行调整)
在这里插入图片描述
这个文件夹里面有一个文件 cv2.cpython-37m-arm-linux-gnueabihf.so将这个文件复制到这个路径下**/usr/local/lib/python3.7/dist-packages**

sudo cp cv2.cpython-37m-arm-linux-gnueabihf.so /usr/local/lib/python3.7/dist-packages

在这里插入图片描述

更新环境变量

sudo ldconfig

打开bash.bashrc配置文件

sudo nano /etc/bash.bashrc

进去后,在末尾加入:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig       
export PKG_CONFIG_PATH

在这里插入图片描述
重启树莓派sudo reboot now 结束!!!
最后检测一下
在这里插入图片描述
测试代码

import cv2
import numpy as npimg = cv2.imread(“你测试的图片路径”)
cv2.namedWindows(“TestImage”)
cv2.imshow("TestImage",img)
cv2.waitKey(0)
cv2.destoryAllWindow()

测试成功!!!
在这里插入图片描述
感谢观看到现在,这篇文章是截稿一年前写的,当时自己对OpenCV一无所知,树莓派Linux系统的入门小白,现在也不过学到一点皮毛,当时也是折腾了整整一星期的时间吧,中间踩了太多的坑,一度想放弃,当时最后还是坚持下来,完整的安装下来整个OpenCV,因为当时遇到的问题没有及时总结,导致自己的文章写了一半就断了,现在我是找了一个新的储存卡,重头开始,一步步再来一遍,希望自己这一遍的安装,对你有帮助,感谢你看到这里,祝你好运!!!


http://chatgpt.dhexx.cn/article/lJPkViZQ.shtml

相关文章

【方法】树莓派开机使用教程(看这个就够了)

文章目录 Ⅰ、安装树莓派系统Ⅱ、连接树莓派一、接外设直接当作电脑来用二、远程连接1、有网线1)ssh远程连接2)使用xrdp远程桌面3)使用VNC远程连接树莓派桌面 2、无网线 Ⅲ、一些常用指令 Ⅰ、安装树莓派系统 【更新】现在官方提供了直接的镜像写入方案,就可以不需…

树莓派开箱+上手python小游戏

树莓派开箱&上手python小游戏 树莓派开箱&上手python小游戏安装所需设备烧录系统使用NOOBS方式烧录失败下载官方系统镜像文件烧录成功 配置WiFi和SSH一、WiFi配置二、使用PuTTY登录到树莓派 上手Python小游戏乌龟赛跑小游戏 树莓派开箱&上手python小游戏 记录第一…

【树莓派】系统刷机教程

简介 树莓派(Raspberry Pi)是一款小型的专门为学习而设计的ARM开发板,支持Raspbian,Ubuntu Mate, Ubuntu Server等多种Linux操作系统。接下来就简单的讲解下如何烧录树莓派系统。 准备环境 准备一张8G以上存储大小的…

codeforse比赛:Noobs Round #2 (Div. 4) by Rudro25

菜鸡也就只配打打这种难度的比赛o(╥﹏╥)o 点这—>题目传送门 A题:Directional Move(模拟) 题目大意:一个人初始是面向东边,现在给你一个二进制字符串,如果当前字符串是‘0’,则他向右转9…

树莓派之老的方式重刷Raspbian系统-2015

##简述 Raspbian之前没使用过,设置了一些网络的东西,后面发现有设置总是不能完成啊,严重影响了想实现的功能,找了许多办法没解决,不得已,觉得自己之前修改的配置太多,应当是哪里该出问题咯&…

nocos学习

springCloud Alibaba-来源:哔哩哔哩-黑马程序员 服务注册项目中添加依赖主类添加开启nacos的注解application.yml 配置服务地址和名称nacos客户端中查看获取注册中心信息查看服务提供者的具体地址 nocos官方文档 nocos-github下载地址 spring.io-springcloudalibab…

树莓派安装NOOBS失败

今天装树莓派按照官网装NOOBS偷了懒,直接用电脑自带的格式化工具进行SD卡格式化了,我选的是“快速格式化”,导致之后树莓派启动是出现故障。 看错误提示说格式化SD卡时出现了问题,之后看到原来在格式化时要选择 Overwrite fo…

树莓派新手通过NOOBS一键安装系统

买回来的树莓派,入手把玩,首先给其赋能安装操作官方推荐的raspbain系统。你需要准备一台电脑和一个容量至少为8GB的SD卡和一个读卡器。 第一步:下载格式化工具 SD Association’s Formatting Tool ,将SD卡格式化为FAT格式 直接点…

安装配置树莓派的最佳工具——NOOBS

本文由 极客范 - 开了光的喜羊羊 翻译自 Jason Fitzpatrick。欢迎加入极客翻译小组,同我们一道翻译与分享。转载请参见文章末尾处的要求。 如果你想找一种最简单的方式启动你的树莓派,不用再左顾右盼啦!树莓派基金会开发的 New Out Of Box So…

树莓派 Learning 001 装机 ---之 1 安装NOOBS系统

树莓派安装NOOBS系统 (使用的树莓派板卡型号:Raspberry Pi 2 Model B V1.1)(板卡的型号在板子正面的丝印层上印着,你可以看到。) RASPBERRY PI 2 MODEL B官方介绍网站:https://www.raspberrypi…

NoC简介

目录 一、什么是NoC 二、NoC的优势 三、什么是路由 四、NoC的种类 一、什么是NoC NoC(network on chip),片上网络 想要了解NoC,首先需要知道什么是SoC SoC(System on Chip)片上系统,具有…

树莓派入门(四)—— 使用NOOBS为树莓派4B安装系统

首先,使用《树莓派入门(三)—— 使用win32DiskImager为树莓派安装系统》中的方法就可以实现Raspbian系统的安装,所以本文不是必须掌握的,由于Noobs也是官方推荐的工具,而且是一个很不错的工具,所…

Raspberry pi,一个好玩的派:第四季 NOOBS

今天换个玩法,不继续深入探索Raspbian系统了,研究一下官网推荐的另一种安装方法NOOBS。 那么什么是NOOBS呢?它是专为Raspberry pi打造的简单易用的图形界面的操作系统管理工具。全称为:New Out Of the Box Software 官方截图如下…

【树莓派】树莓派4无痛安装系统(NOOBS篇)

【树莓派】树莓派3Pi4无痛安装系统(新手NOOBS篇) 前言一、准备工作桌面端软件 二、系统下载TF卡准备工作 四、树莓派部分五、VNC & SSH(远程桌面)SSH简单测试SSH服务 换源Tips补充 前言 此篇文章面向对象:刚刚接触…

【树莓派】使用NOOBS安装树莓派系统

【树莓派】使用NOOBS安装树莓派系统 通过NOOBS进行安装 什么是NOOBS New Out Of Box Software (NOOBS)(NOOBS)是Raspberry Pi的一个简单的操作系统安装管理器。 下载sd卡格式化安装器 下载地址为 https://www.sdcard.org/downloads/formatter_4/ 下载…

油猴脚本管理器使用指南

油猴脚本管理器,爬虫,破解,优化脚本让你的浏览器充满各种可能。本文详细介绍了油猴的各种安装方法,包括脚本的查找和使用。 下载油猴 你可以在油猴官网,下载所有主流浏览器的扩展。 推荐你使用微软最新的 Edge 浏览器&…

一个超简单的油猴脚本!

一个超简单的油猴脚本! 对于油猴脚本神驰已久,一直没有时间研究,找了几篇博客一看,发现简单的脚本实现起来并不难!初次学习,模仿了一个CSDN一键点赞评论的demo脚本,感谢原作者! 原博文链接: 如…

Tampermonkey油猴脚本安装及入门

一、简介 油猴脚本是是一款免费的浏览器扩展和最为流行的用户脚本管理器,它适用于 Chrome, Microsoft Edge, Safari, Opera Next, 和 Firefox,通过它可以让浏览器实现各种各样的扩展功能,和浏览器扩展的作用类似。比如获去链接重定向、微博页…

油猴脚本的使用和安装

1.下载tampermonkey,这个google浏览器插件,插件可以去百度搜索下载。 或者进入Tampermonkey.net下载,第二种方法里点击下载按钮访问的是Google需要科学上网 2.在谷歌浏览器地址栏输入chrome://extensions/ 勾选开发者模式,火狐浏览…