在机器学习开发过程中,当模型训练好后,接下来就要进行模型推理了,根据部署环境可分为三类场景:
边缘计算:一般指手机,嵌入式设备,直接在数据生成的设备上进行推理,因为能避免将采集到的数据上传到云端,所以实时性非常好。
端计算:介于云和边缘设备之间的计算平台,个人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文件,则代表配置成功。
开始推理
最终结果
bili_52290356715 2023-08-02