当前位置:首页|资讯|深度学习|机器学习|GitHub

【深度学习】树莓派Zero w深度学习模型Python推理

作者:人工智能大讲堂发布时间:2023-09-13

在机器学习开发过程中,当模型训练好后,接下来就要进行模型推理了,根据部署环境可分为三类场景:

边缘计算:一般指手机,嵌入式设备,直接在数据生成的设备上进行推理,因为能避免将采集到的数据上传到云端,所以实时性非常好。

端计算:介于云和边缘设备之间的计算平台,个人PC可以归为这一类。

云计算:指云计算平台,具有强大的计算和存储能力,通过服务释放AI能力。

在之前跟大家分享的AI工具中,都是在PC上进行推理,也就是属于端设备推理。


今天,我将为大家演示如何在边缘设备上进行推理。

要准备毕业设计的小伙伴可以作为参考。

我选择的边缘设备是树莓派的Zero w开发板,硬件配置参数如下:


这里多说一点,对于ARM芯片,要区分芯片系列与CPU架构。不同的CPU架构对应不同的指令集,如果涉及从源码编译需要考虑CPU架构。

常见ARM芯片系列和架构

我们选择的Raspberry Zero w属于ARM11系列,ARMv6 CPU架构,支持wifi。

常见树莓派开发板CPU型号

由于本项目涉及到的软件比较多,我帮大家整理到一起了。

关注微信公众号:人工智能大讲堂,后台回复【rsb】获取模型和所有安装包。

开始吧。

准备硬件

除了开发板外,还需要USB电源,摄像头,miscro SD卡,以及读卡器。某宝上可以买到,然后按下图连接

准备推理框架

按理讲,硬件就绪后,接下来应该安装操作系统了,为什么要先说推理框架呢?也是出于无奈啊!

我选择的推理框架是tensorflow lite,但它对于ARMv6没有现成的pip安装包,也就是没办法通过下面的命令安装推理运行时。

有两种解决方法。

第一种是安装好树莓派操作系统后自己准备编译环境,然后从源码编译tensorflow lite whl安装包。


第二种则是去网上找现成的针对ARM v6架构的安装包。

我选择了第二种。

开源的力量是强大的,我在Github上真就找到了一个针对ARM v6架构的whl安装包,虽然是完整的tensorflow安装包,但可以通过导出tensorflow lite来使用推理功能。

安装包下载连接

这里需要注意,该pip安装包是在python3.7环境下编译的,所以树莓派开发板也要安装自带python3.7的操作系统,这也是为什么先确定推理框架的原因。

准备操作系统

接下来就要找自带python3.7的树莓派操作系统。

除了python3.7外,另一个需要考虑的因素是内存,我们本次选择的Raspberry Zero w内存只有500M,为了运行效率,选择操作系统时建议选择不带桌面的Lite版本。

对于内存比较大的开发板,则可以选择带桌面的操作系统,甚至可以选择带预装各种软件环境的操作系统。

幸好,我在Archive找到python3.7的操作系统。

操作系统下载链接

下载后保存到另一台电脑硬盘中等待使用。

接下来要通过树莓派自带的工具Raspberry pi Imager将操作系统烧录到miscro sd卡中。

将sd卡放入读卡器,插到另一台电脑USB接口上。

启动刻录软件

1.选择操作系统->使用自定义镜像

2.选择SD卡

3.设置

3.1勾选设置主机名,输入主机名

3.2勾选开启SSH服务,选择使用密码登录

3.3勾选设置操作系统用户名和密码,输入用户名和密码

3.4勾选配置WIFI,设置热点名和登录密码(可以用手机热点)


4.烧录

烧录成功后,将miscro sd卡插到树莓派sd卡插槽上,连接电源就可以开机了。

远程连接树莓派

由于没有桌面环境,所以需要另一台电脑远程连接到树莓派上,此时Raspberry Zero w支持wifi就起到作用了,安装操作系统时我们会配置网络,树莓派启动后主动连接热点,另一台电脑也连接到同一个热点,就可以远程了。

通过手机热点查看树莓派IP地址。

另一台电脑连接同一个手机热点。

启动另一台电脑的Windows PowerShell。

输入ssh 树莓派用户名@树莓派IP

光有远程还不够,还需要能够在两个系统之间传输文件,推荐在另一台电脑中安装WinSCP。

启动WinSCP,输入树莓派主机名,用户名和密码。


安装软件

安装tensorflow


安装完成后通过下面命令查看是否安装成功

如果报类似下面这样的错误

可以尝试通过下面命令解决


安装OpenCV

根据环境的不同,可能有些已安装,可能还缺少其他安装包,根据情况安装。

也可以把上面的版本去掉,安装最新版本。

开始推理

软硬件都准备好后,就可以开始进行推理了。

准备tflite模型

由于tensorflow lite仅支持tflite格式的模型,如果你使用其他框架训练的,需要转换成tflite格式。

由于我的目的是为了演示如何在嵌入式设备上运行推理,所以选择什么模型不重要。

我给大家准备了一个水果分类和检测的模型,关注微信公众号:人工智能大讲堂,后台回复【rsb】获取模型和前面所有安装包。

模型在model文件夹下,cls_model.tflite为分类模型,det_model.tflite为目标检测模型。

分类模型类别标签


目标检测模型类别标签

打开摄像头

树莓派开发板通过外接摄像头来拍摄图像。

选择Interface Options—camera,选择yes,将摄像头权限开启,我们便可以使用树莓派进行摄像头拍照了。

在命令行执行如下命令测试,如果看到文件夹中新增了image.jpg文件,则代表配置成功。


开始推理


最终结果




Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1