树莓派实现垃圾分类【深度学习图像识别】:keras+tensorflow

树莓派实现垃圾分类【深度学习图像识别】:keras+tensorflow

系统环境:2020-08-20-raspios-buster-armhf-full
工程要求:Tensorflow 1.14.0 + Keras 2.2.4 + Python 3.7

1.配置好ssh和vnc之后,换源:

第一步,先备份源文件

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak

第二步,编辑系统源文件

sudo nano /etc/apt/sources.list

第三步,将初始的源使用#注释掉,添加如下两行清华的镜像源。Ctrl+O ++ Ctrl+X
【注意】这里的树莓派系统是Raspbian-buster系统,在写系统源链接时要注意是buster,网上很多教程都是之前stretch版本,容易出错!

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

第四步,保存执行如下命令 sudo apt-get update,完成源的更新软件包索引。

sudo apt-get update&&upgrade

第五步,还需要更改系统源

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

用#注释掉原文件内容,用以下内容取代:用#注释掉原文件内容,用以下内容取代:

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

第六步,配置换源脚本,更改pip源
新建文件夹:

mkdir ~/.pip
sudo nano ~/.pip/pip.conf

在pip.conf文件中输入以下内容:

timeout=100
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
extra-index-url= http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=
        pypi.tuna.tsinghua.edu.cn
        mirrors.aliyun.com

2.python虚拟环境配置

首先进行系统软件包更新

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

然后更新自带的pip,由于Raspbian自带的pip3为9.0.1版本,较为老旧,我们使用以下命令来更新pip3:

python3 -m pip install --upgrade pip  

尝试在更新完pip3后,键入命令:

pip3 list

新建个文件夹(虚拟环境用)

cd Desktop
mkdir tf_pi
cd tf_pi

安装虚拟环境这个好东西

python3 -m pip install virtualenv

增加环境变量,使得该好东西可以用起来

sudo chmod -R 777 /root/.bashrc
sudo nano ~/.bashrc

export PATH=/home/pi/.local/bin/:$PATH  

放到最后,添加环境变量

source ~/.bashrc

成功了之后:整一个虚拟环境

virtualenv env
source env/bin/activate

此处插入图片

3.安装tensorflow1.14.0

用电脑下载:(链接)python3.7版本只能安装1.14.0-Buster版本的TensorFlow
link
此处插入图片
用U盘将这个文件拷到树莓派上,建一个bag文件夹存放
此处插入图片
安装依赖包:

sudo apt install libatlas-base-dev

安装一些环境

sudo apt-get install -y libhdf5-dev libc-ares-dev libeigen3-dev
python3 -m pip install keras_applications==1.0.8 --no-deps
python3 -m pip install keras_preprocessing==1.1.0 --no-deps
python3 -m pip install h5py==2.9.0
sudo apt-get install -y openmpi-bin libopenmpi-dev
sudo apt-get install -y libatlas-base-dev
python3 -m pip install -U six wheel mock

安装tensorflow

cd env
cd bag
pip3 install tensorflow-1.14.0-cp37-none-linux_armv7l.whl

此处插入图片
这里要安装二十分钟。。。出错了再来一遍就好了。。
测试是否成功并查看版本:

python
import tensorflow as tf
tf.__version__

此处插入图片

4.安装keras

安装一些依赖

sudo apt-get install libhdf5-serial-dev
pip3 install h5py
sudo apt-get install gfortran
sudo apt install libopenblas-dev
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pillow
sudo pip3 install pybind11

第一个下载numpy:第一次的时候发现安装成功但调用失败了,我觉得是numpy版本过高导致出错了
下载keras还是tensorflow的时候会自动下载numpy(之前已存在,它会先卸载再安装高版本的numpy,之前不存在,它会直接安装高版本的numpy),所以要先下载keras,再卸载numpy,然后再安装低版本的numpy
看一下子numpy版本,太高了
此处插入图片
重新安装

pip3 uninstall numpy
pip3 install numpy==1.16.0

第二个下载scipy【直接pip安装百分之九十九的可能都会失败。所以先下载再安装。。。先下载这个链接复制到树莓派上,然后解压到指定文件夹/home/pi/Desktop/tf_pi/env/lib/python3.7/site-packages下】
link
此处插入图片

cd /home/pi/Desktop/tf_pi/env/bag
tar -zxvf scipy-1.5.4.tar.gz -C /home/pi/Desktop/tf_pi/env/lib/python3.7/site-packages

然后进到这个文件夹里开启安装:【花里胡哨的各种代码配置呀啥的,会安装三十分钟左右】

cd /home/pi/Desktop/tf_pi/env/lib/python3.7/site-packages/scipy-1.5.4
python setup.py install

此处插入图片
pip3 list看一看:【太六了,终于成功了】
此处插入图片
再使用这个命令安装keras:

pip3 install keras\=\=2.2.4

请注意;由于在virtualenv里面,一定一定要避免sudo pip3 install,否则会安装到默认路径下!发现keras安装到 _默认 环境了,所以调用不成功,pip list没有
此处插入图片
此处插入图片
解决办法重新安装

<font color=red>pip3 install keras\=\=2.2.4</font>

此处插入图片
安装好了之后记得reboot重启一下子。

5.开始测试;import keras前面加import os就能忽略提示。

因为keras可以配合很多框架,我们用的tf所以会有backend的提示
进入虚拟环境:

cd ~/Desktop/tf_pi
source env/bin/activate
python
import tensorflow as tf
tf.__version__
import keras
print(keras.__version__)

此处插入图片
工作以来遇到的问题,64位基地系统安装tensorflow没有成功,我觉得问题如下:
①tensorflow与64位linux系统
②python语言与arm7与板载硬件cpu博通BCM2711和版本对应问题
③各类依赖与arm的硬件对应
此处插入图片

上一篇:Ubuntu 系统下如何安装pip3工具


下一篇:爬虫之SCRAPY