- 前言:搞了两个星期的环境配置,包括相关硬件的检测,主要针对问题是opencv的安装、一些包的安装、python环境的卸载安装、因为之前网上的很多教程因为时间太久、版本不对应、包下载超时等问题导致安装失败,所以写了这一片文章,来讲解一下我经历的坎坷,希望有所帮助。
- 更新一下我使用的树莓派烧录器树莓派系统烧录器
树莓派的选择:
- 本人购买的是树莓派官方的一款产品,树莓派4B 4G的标准套餐,考虑到性能、散热、安全性等问题选择了这一款。
- 风扇到底要不要装?
- 如果需要长时间的运行,并且能够承受风扇的噪音,装上风扇还是可以的。(贴纸面对着主板就可以!)
- 平常开发三个散热片就足够用了。
- 联网问题:根目录创建文件(简单)
- 新建SSH文件名文件(不需要写内容)
- 新建wpa_supplicant.conf文件名文件内容如下:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=GB
network={
ssid="wifi名称"
psk="wifi密码"
key_mgmt=WPA-PSK
}
- 或者连上网线进行连接,获得ip地址
树莓派镜像选择
我开始选择的是
- 换源
- 使用原来的镜像源安装速度为十几k一秒,速度非常慢,而且还会经常出现延时错误,导致安装失败。
- 更换国内的镜像源,目前很多线上的教程换源都没有效果的原因就是操作系统的版本不一样,所以换源没有一点效果,有的教程会说明使用的操作系统版本的源,其他版本无效,有的不说,这就导致很多人站在这里踩坑,我也是卡了好长时间
- 又尝试把源该回去,重新安装安装了很多次依然失败。
- 原因:首先是超时,还有就是树莓派现在很多软件版本不对应,低版本下载依然失败
- 安装opencv-python这个包
- 失败了无数次,原因有下载速度慢、找不到地址、有的包找不到地址、包的版本不对,多次下载低版本还是不行
- 深受网上教程的迫害,安装低版本的python3.7,再安装opencv,因为系统自带的python版本是python3.9所以需要进行python的降级安装,这里有一篇我写的教程可以参考一下如果有需要:树莓派自带的python3.9->python3.7系统自带的python版本有两个,使用卸载命令无法完全删除python版本,导致后续安装结束pip找不到路径,pip是python的库管理器
a.删除所有的python、python3、pip、pip3的文件夹
b.重新安装,安装成功,但是最后校验pip的时候还是显示pip(python3.9)
c.本着相信别人已经成功的原则,使用python3.7的环境安装opencv,结果还是失败,尝试了无数次,包括给pip换源,下载速度有所提高但是依然是失败,原因有找不到包路径、网络问题、版本问题自动降阶安装低版本还是失败。。。
重新选择新的镜像源:
- 控制树莓派
- 连接树莓派一般需要进行远程控制连接的,之前的操作系统可以使用ssh登录,可以进行命令行形式的操作,但是启动摄像头和红外测温显示需要在屏幕上进行,想着远程连接也可以操作,但是不能够使用windows自带的远程工具连接,我下载了nomachine在树莓派上安装启动,但是无法正常连接,输入密码之后就蓝屏一直卡着,我也没有继续换其他的远程工具,所以为了解决之前的这个问题还有环境的问题我换了个系统版本。
- 安装小插曲,重装系统之后不能够登录到树莓派,wifi可以从路由器上检测到连接了但是无法登录,ssh我是开了,然后发现是重装系统pi用户给删掉了,所以不存在该用户,然后我就又重装了,查阅发现树莓派镜像烧录器可以设置用户、密码、wifi、开启ssh等信息在重装系统的时候给设置进去。
- 换源:
- pip换源
- pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/
- pip config set install.trusted-host mirrors.aliyun.com
- 安装opencv-python
- pip install opencv-python
- 安装成功
- 原因:之前安装的时候我去查过清华源里面的文件,因为32位系统和64位系统安装的包是不一样的,我下载下来到根目录安装也没成功,版本问题的较多。
- 运行项目文件
- 缺什么包安装什么包,这一个过程比较顺利,因为没有给操作系统换源所以使用apt安装的时候速度会很慢。
- 解决了所有的包的问题之后发现仍然报错,看了很多教程仍然无法解决,分析了程序源码之后发现是找不到图片的问题,但是程序中不涉及图片丢失的问题那就是摄像头的问题,硬件的问题,检测不到摄像头,或者说摄像头无法调用
- 至此环境安装成功
测温模块问题和摄像头问题后续在与大家探讨,这里分享几个有用的网站,针对安装树莓派环境的:
自带opencv的树莓派镜像,安装了tensorflow-1.14.0,可以远程桌面等等,需要拿走配套有镜像说明
链接:https://pan.baidu.com/s/1EnxiShuxy7MRoZsp8dqM8A?pwd=7ig3
提取码:7ig3
装完之后如果出现缺少keras模块的时候不要直接用sudo pip3 install keras这样的命令安装,这样安装的keras会有于tensorflow版本不匹配的问题就是下面的错误:
Traceback (most recent call last):
File "main.py", line 5, in <module>
from mask_check_pred import *
File "/home/pi/cewen/mask_check_pred.py", line 4, in <module>
from keras.models import model_from_json
File "/usr/local/lib/python3.7/dist-packages/keras/__init__.py", line 21, in <module>
from keras import models
File "/usr/local/lib/python3.7/dist-packages/keras/models/__init__.py", line 18, in <module>
from keras.engine.functional import Functional
File "/usr/local/lib/python3.7/dist-packages/keras/engine/functional.py", line 26, in <module>
from keras import backend
File "/usr/local/lib/python3.7/dist-packages/keras/backend.py", line 32, in <module>
from keras import backend_config
File "/usr/local/lib/python3.7/dist-packages/keras/backend_config.py", line 33, in <module>
@tf.__internal__.dispatch.add_dispatch_support
AttributeError: module 'tensorflow.compat.v2' has no attribute '__internal__'
解决办法使用这个命令解决:sudo pip3 install keras==2.2.5
这个是该系统安装的tensorflow1.14.0对应的keras版本,如果出现以上类似问题,也可以按照该方法去寻找对应的keras版本来安装,即可解决
如果报如下错误:
Using TensorFlow backend.
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
Traceback (most recent call last):
File "main.py", line 5, in <module>
from mask_check_pred import *
File "/home/pi/cewen/mask_check_pred.py", line 4, in <module>
from keras.models import model_from_json
File "/usr/local/lib/python3.7/dist-packages/keras/__init__.py", line 3, in <module>
from . import utils
File "/usr/local/lib/python3.7/dist-packages/keras/utils/__init__.py", line 24, in <module>
from .vis_utils import model_to_dot
File "/usr/local/lib/python3.7/dist-packages/keras/utils/vis_utils.py", line 7, in <module>
from ..models import Model
File "/usr/local/lib/python3.7/dist-packages/keras/models.py", line 10, in <module>
from .engine.input_layer import Input
File "/usr/local/lib/python3.7/dist-packages/keras/engine/__init__.py", line 8, in <module>
from .training import Model
File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 24, in <module>
from . import training_arrays
File "/usr/local/lib/python3.7/dist-packages/keras/engine/training_arrays.py", line 8, in <module>
from scipy.sparse import issparse
File "/usr/local/lib/python3.7/dist-packages/scipy/sparse/__init__.py", line 228, in <module>
from .csr import *
File "/usr/local/lib/python3.7/dist-packages/scipy/sparse/csr.py", line 10, in <module>
from ._sparsetools import (csr_tocsc, csr_tobsr, csr_count_blocks,
ImportError: numpy.core.multiarray failed to import
原因:这个错误提示显示您的Scipy库需要的NumPy版本与当前安装的版本不兼容。同时,Keras库也无法导入numpy.core.multiarray模块。
运行命令:
sudo pip3 install numpy==1.16.5
sudo pip3 install scipy==1.4.1
即可解决,注意在sudo下安装就需要运行的时候sudo python3 main方法,也要记得pip3和pip 不同,python3于python不同
清华源镜像站:https://mirrors.tuna.tsinghua.edu.cn/help/raspbian/
- 这样直接在这个里面选择与在教程上随意更换操作系统版本的镜像源是完全不同的
关于摄像头无法拍照的问题查看: RPi Camera (I)
- 32位操作系统如果原来的控制摄像头的命令方式不能用,那么就需要安装另一种控制方式:安装Raspicam