知乎视频www.zhihu.com
四、深度学习部署
4.1 单片机简介
4.1.1 硬件简介
树莓派zero w
在用树莓派部署深度学习过程中,我们选用树莓派zero w作为主要设备,树莓派zero w是树莓派系列最为基础的设备,搭载树莓派linux系统下,可以很好的运行程序。同时它还包括了wifi模块与蓝牙模块,方便pc与树莓派之间数据的传输。
树莓派zero主要参数如下:博通 BCM2835 芯片 1GHz ARM11 core
512MB LPDDR2 SDRAM
一个 micro-SD 卡槽
一个 mini-HDMI 接口,支持 1080p 60hz 视频输出
Micro-USB 接口用于供电和数据传输
MicroUSB数据线,8G内存的MicroSD卡,用于烧制linux系统镜像
树莓派zero相比于其他型号树莓派,性能略有差异,但是仍可以胜任模型部署。
摄像头
因为在训练模型过程中,我们对图片没有过高要求,仅采用较小像素图片进行训练,所以在实际使用时,我们使用500万像素摄像头进行拍摄,在实际使用中能够充分的发挥其作用。
3.5寸显示屏
显示屏采用串口外接3.5寸显示屏,主要用于展示图像分类与目标检测的具体结果,屏幕为LCD显示屏,具有触摸功能,可以对系统进行具体的操控。
4.1.2 软件环境
我们使用了Raspberry Pi OS + python3.7作为我们的软件环境。
Raspberry Pi OS环境自带python2.X版本,但是我们深度学习框架需要3.X以上的版本,所以需要在Linux系统中配置python环境。
在python官网下载后,选择源码安装,在通过xshell拷贝到linux系统中。通过文件传输将下载的压缩包上传后,通过yum-y命令安装依赖包和tar命令解压源码包。
./configure --prefix=/home/python3
使用该命令为将要添加的python安装环境变量,在建立一个sh文件添加环境变量进去之后重载一下,linux系统下的python环境就配置完成了
4.2 树莓派环境搭建
4.2.1 Raspberry Pi OS系统配置
1.系统下载
我们使用Raspberry Pi Imager在SD卡上进行快速安装,首先在树莓派官网下载Raspberry Pi Imager:
下载完成后,我们打开安装器,选择Raspberry Pi OS系统,并选择对应的SD卡进行系统安装。
等待下载结束后,我们便得到了一张装有树莓派系统的SD卡。
2.文件配置
我们将SD卡插入树莓派,并按照系统提示完成系统的安装:
接下来我们还需要对系统进行简单的配置。root账户设置
首先设置root账户密码:
sudo passwd root
接下来我们编辑文件,配置root远程登录的权限:
nano /etc/ssh/sshd_config
打开文件后,在文档末尾添加:
PermitRootLogin yes PermitEmptyPasswords no PasswordAuthentication yes
添加完成后,用ctrl+o 保存,ctrl+x 退出。摄像头连接树莓派
首先将摄像头与树莓派相连,接着在命令行中输入:
sudo raspi-config
选择Interface Options—camera,选择yes,将摄像头权限开启,我们便可以使用树莓派进行摄像头拍照了。
在命令行执行如下命令:
raspistill -t 2000 -o image.jpg
如果看到文件夹中新增了image.jpg文件,则代表配置成功。
4.2.2 Tensorflow2安装
tensorflow lite支持树莓派3及以上的版本,如果使用的是以上版本的树莓派,则可以到以下网址进行tensorflow lite的下载和安装。
由于树莓派zero不支持tensorflow lite,我们必须下载完整的Tensorflow2包,再从中调用Tensorflow lite模块。
以下是树莓派zero安装tensorflow2的具体方法。首先我们需要下载tensorflow2的arm编译版本,在tensorflow arm编译版本下载可以找到对应支持的版本。
因为我们使用的是python3.7,所以我们在树莓派命令行中输入:
wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.2.0/tensorflow-2.2.0-cp37-none-linux_armv6l.whl
下载完成后对文件进行重命名:
mv tensorflow-2.2.0-cp37-none-linux_armv6l.whl tensorflow-2.2.0-cp37-abi3-linux_armv6l.whl
然后使用pip3安装对应的.whl文件
sudo pip3 install tensorflow-2.2.0-cp37-abi3-linux_armv6l.whl
等待程序安装好后,我们便可以在树莓派zero上使用Tensorflow2了。输入如下命令进行测试:
python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([100, 100])))"
如果出现了正确的输出,则代表tensorflow2安装成功。
4.2.3 OpenCV安装
OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库,我们利用OpenCV操作树莓派进行拍照和图像的预处理。OpenCV在树莓派zero上的安装方法具体如下。
首先在命令行输入以下内容,安装必要的环境配置:
sudo apt-get -y install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get -y install libxvidcore-dev libx264-dev
sudo apt-get -y install qt4-dev-tools libatlas-base-dev
接下来我们使用pip3安装OpenCV:
pip3 install opencv-python==3.4.6.27
等待安装成功后,我们便可以使用