回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页
best-icon

行空板机器学习图像分类案例之手势识别 中等

头像 Forgotten 2024.10.29 75 0

步骤1 流程

注:本文来自Mind+适用于行空板的用户库:https://gitee.com/liliang9693/ext-xedu-hub

 

- 1、使用浦育的在线可视化工具训练模型得到模型文件
- 2、使用浦育的在线算力将上一步得到的模型文件转换为.onnx格式的通用模型
- 3、在Mind+中使用xedu-hub图形化扩展进行推理 得到结果

步骤2 训练模型

打开浦育网站,点击”AI体验“,打开”图像分类“:

https://www.openinnolab.org.cn/pjlab/aifrontlab

 

image-20240527161220730.png

- 打开摄像头采集图像,或上传提前准备好的图片到不同分类下
- 数据采集完成后,点击训练,训练完毕后测试效果
- 效果测试正常后,下载模型,得到model.zip压缩包,解压得到.json和.bin模型文件。

注:最新平台支持直接下载onnx模型,可直接下载onnx模型然后跳过后面的"步骤3转换为通用模型"直接进入步骤4.

 

image-20240527153020180.png

 

image-20240527153103755.png

 

步骤3 转换为通用模型


- 打开网址:https://www.openinnolab.org.cn/pjlab/project?id=647dc2a0d6c5dc73107c7449&sc=630d8bd4bba1fd64f1f0a5dc#public

- 点击网页右上角“克隆”按钮,将此模板项目克隆到个人账号下的项目
image-20240527153138202.png

 

- 将克隆后的项目文件夹中的mode.json,model.onnx,model.weights.bin三个文件依次删除

image-20240527153318261.png

- 将上一步训练模型得到的model.zip解压得到的model.json和model.weights.bin两个文件上传到平台目录中

image-20240527153252779.png

 

- 双击main.ipynb,然后点击“连接”按钮,选择“CPU版“,等待启动完成

image-20240527153406255.png

 

  • -显示”服务已连接“时,点击“运行所有”按钮,程序就会将刚才上传的模型文件转换为onnx
image-20240527153456777.png
  • -等待几分钟运行结束提示已经转换为onnx模型,回到项目文件列表,点击刷新列表按钮,即可得到转换后的model.onnx文件,点击下载按钮将文件下载到电脑上。
image-20240527153609153.png

 

 

 

 

步骤5 在行空板上安装xedu库


 注:此步骤是将xedu的python库装到行空板上,不是装电脑上,因此需要在所有行空板上执行一次且只需要一次即可,跟使用的电脑没有关系。

 

- 联网。由于代码在行空板上运行,因此需要在行空板上安装xedu库,因此需要让行空板先连接WiFI可以上网,行空板联网教程:https://www.unihiker.com.cn/wiki/webmenu

 

image-20240527164751077.png

 

- 打开Mind+,保证右上角Python模式,左上角为“模块”界面,点击左下角“扩展”,在“官方库”中加载”行空板“

image-20240527160859232.png
image-20240529202331713.png


- 行空板通过USB线连接电脑,待行空板开机准备完成后,点击菜单中的“连接远程设备”,连接行空板,直到连接成功(终端后面显示“行空板”说明连接成功)

 

 注意:行空板开机之后需要约40秒才能连接,如果遇到连接 出现问题,查看官方文档常见问题按提示解决( [https://www.unihiker.com.cn/wiki/FAQ)](https://www.unihiker.com.cn/wiki/FAQ)

image-20240529200638136.png

 

- 切换到“代码”版块,保证当前Mind+已经连接到行空板(终端后面显示”行空板“),然后点击“库管理”,窗口左上角应该显示“行空板”,如果没有显示则回到上一步先连接行空板。

image-20240531151907564.png
 
image-20240531152124664.png

- 在PIP模式中输入```xedu-python```,选择“清华大学”源,后点击运行,此时将通过网络将xedu库安装到当前连接的行空板上,等待运行结束(提示“命令运行完成”)之后返回“模块”编程界面。

 注意:
 1、需要保证此窗口左上角显示“行空板”,如果没有显示,说明上一步连接行空板未成功,此时安装则是将库安装到了电脑而非行空板。
 2、如果下方窗口显示多行Requirement alread satisfied:xxxx,说明库已经被安装了,无需安装。
 3、下方窗口以WARNING开头的一行提示是警告,不是错误,不需要管。
 4、如果下方窗口显示多行Warning: Retrying.................[Errno -3]......,说明未按照上一步正确让行空板连接WiFi,没有连接WiFi无法安装库,回到4.1操作。
 image-20240531151407404.png

image-20240531171833049.png

 

步骤6 在Mind+中加载xedu积木用户库

注:此步骤是将xedu库的图形化积木库装到电脑上,因此只要需要用Mind+编写xedu的程序的时候就需要操作。

 


- 在用户库中搜索xeduhub,加载XEduHub库,加载后返回,可以在积木区看到。

 注:
 1、用户库会保存到Mind+的项目文件(.mp)中,因此如果打开了一个含有xeduhub库的项目文件,则会自动从项目文件中加载到Mind+,无需去用户库搜索。
 2、如果弹出提示要安装依赖库,由于4.1已经安装到行空板了,因此此处点击”取消“即可。

image-20240531155458003.png

image-20240527164855434.png

image-20240529195843379.png
 

 

步骤7 加载模型

复制onnx模型文件到项目中,此处同时复制了一张测试用的图片,方便接下来的案例演示

 

image-20240527160259151.png

步骤8 编写程序运行


编写程序-图片推理

- 编写 程序如下,使用xeduhub扩展,使用MMEdu模型,使用自定义模型,文件名填写上一步上传的模型文件名

- 使用上一步上传的测试图片作为待检测图片

- 创建一个变量,按照”训练模型”时的顺序输入标签编号对应的名称

- 从推理结果中提取“标签”的序号,然后从列表中取出对应的值

 

 > 注:如果运行程序提示ModuleNotFoundError: No module named 'XEdu',说明xedu库未正确安装或当前未连接行空板,重复按本文4.1章节操作解决。
 image-20240531151431312.png
 

image-20240527160659897.png

编写程序-行空板屏幕显示

 

- 将结果显示到行空板屏幕上的程序及效果:

image-20240527174053748.png

 

编写程序-摄像头实时识别

 

- 使用摄像头识别的程序,注意需要先将摄像头插到行空板USB口上,并尽量保持摄像头背景不发生变化

- 扩展中添加OpenCV扩展
- 编写程序,打开摄像头,从摄像头中抓取图片,然后给xedu推理,最后用unihiker显示到屏幕上
 

 

image-20240527180703114.png

 

 

步骤9 常见问题

运行程序时提示ModuleNotFoundError: No module named 'XEdu'怎么办?

解决方法:说明当前连接的行空板上xedu库未正确安装或当前未连接行空板,回到本文4.1章节操作解决。

image-20240531151431312.png

 

安装库时提示Warning: Retrying.................[Errno -3]......怎么办?

解决方法:说明行空板未连接WiFi,没有连接WiFi无法安装库,回到本文4.1章节操作。

image-20240531151407404.png

 

安装库时提示Requirement alread satisfied:xxxx怎么办?

解决方法:说明当前库已经被安装了,无需重新安装,关闭窗口即可。

image-20240531160149806.png

 

安装库时提示WARNING:You are using pip version....怎么办?

解决方法:WARNING开头的提示语都是警告,不是报错,不用管。

 

image-20240531160149806.png

 

安装库时提示ReadTimeoutError:HTTPSConnectionPool...Read timed out.怎么办?

解决方法:网络连接不通畅,可以切换此窗口右上角源后再次尝试。

image-20240531171927383.png

 

其他出错怎么办?

- Python中,如果出错,则会在“终端”中打印信息,因此,排查错误主要依耐“终端”输出的信息
- 可以将出错信息复制关键词 ,在行空板官方文档中搜索查找是否有对应解决方案:[行空板官方文档](https://www.unihiker.com.cn/wiki/FAQ)
- 可以将“自动生成”的代码和“终端”输出的信息,发给各种大语言模型分析问题,例如chatGPT、文心一言、讯飞星火等
- 加入行空板官方群查找解决办法

评论

user-avatar