步骤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

- 打开摄像头采集图像,或上传提前准备好的图片到不同分类下
- 数据采集完成后,点击训练,训练完毕后测试效果
- 效果测试正常后,下载模型,得到model.zip压缩包,解压得到.json和.bin模型文件。
注:最新平台支持直接下载onnx模型,可直接下载onnx模型然后跳过后面的"步骤3转换为通用模型"直接进入步骤4.


步骤3 转换为通用模型
- 打开网址:https://www.openinnolab.org.cn/pjlab/project?id=647dc2a0d6c5dc73107c7449&sc=630d8bd4bba1fd64f1f0a5dc#public
- 点击网页右上角“克隆”按钮,将此模板项目克隆到个人账号下的项目
- 将克隆后的项目文件夹中的mode.json,model.onnx,model.weights.bin三个文件依次删除

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

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

- -显示”服务已连接“时,点击“运行所有”按钮,程序就会将刚才上传的模型文件转换为onnx

- -等待几分钟运行结束提示已经转换为onnx模型,回到项目文件列表,点击刷新列表按钮,即可得到转换后的model.onnx文件,点击下载按钮将文件下载到电脑上。

步骤5 在行空板上安装xedu库
注:此步骤是将xedu的python库装到行空板上,不是装电脑上,因此需要在所有行空板上执行一次且只需要一次即可,跟使用的电脑没有关系。
- 联网。由于代码在行空板上运行,因此需要在行空板上安装xedu库,因此需要让行空板先连接WiFI可以上网,行空板联网教程:https://www.unihiker.com.cn/wiki/webmenu

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


- 行空板通过USB线连接电脑,待行空板开机准备完成后,点击菜单中的“连接远程设备”,连接行空板,直到连接成功(终端后面显示“行空板”说明连接成功)
注意:行空板开机之后需要约40秒才能连接,如果遇到连接 出现问题,查看官方文档常见问题按提示解决( [https://www.unihiker.com.cn/wiki/FAQ)](https://www.unihiker.com.cn/wiki/FAQ)

- 切换到“代码”版块,保证当前Mind+已经连接到行空板(终端后面显示”行空板“),然后点击“库管理”,窗口左上角应该显示“行空板”,如果没有显示则回到上一步先连接行空板。
- 在PIP模式中输入```xedu-python```,选择“清华大学”源,后点击运行,此时将通过网络将xedu库安装到当前连接的行空板上,等待运行结束(提示“命令运行完成”)之后返回“模块”编程界面。
注意:
1、需要保证此窗口左上角显示“行空板”,如果没有显示,说明上一步连接行空板未成功,此时安装则是将库安装到了电脑而非行空板。
2、如果下方窗口显示多行Requirement alread satisfied:xxxx,说明库已经被安装了,无需安装。
3、下方窗口以WARNING开头的一行提示是警告,不是错误,不需要管。
4、如果下方窗口显示多行Warning: Retrying.................[Errno -3]......,说明未按照上一步正确让行空板连接WiFi,没有连接WiFi无法安装库,回到4.1操作。

步骤6 在Mind+中加载xedu积木用户库
注:此步骤是将xedu库的图形化积木库装到电脑上,因此只要需要用Mind+编写xedu的程序的时候就需要操作。
- 在用户库中搜索xeduhub,加载XEduHub库,加载后返回,可以在积木区看到。
注:
1、用户库会保存到Mind+的项目文件(.mp)中,因此如果打开了一个含有xeduhub库的项目文件,则会自动从项目文件中加载到Mind+,无需去用户库搜索。
2、如果弹出提示要安装依赖库,由于4.1已经安装到行空板了,因此此处点击”取消“即可。
步骤7 加载模型
复制onnx模型文件到项目中,此处同时复制了一张测试用的图片,方便接下来的案例演示

步骤8 编写程序运行
编写程序-图片推理
- 编写 程序如下,使用xeduhub扩展,使用MMEdu模型,使用自定义模型,文件名填写上一步上传的模型文件名
- 使用上一步上传的测试图片作为待检测图片
- 创建一个变量,按照”训练模型”时的顺序输入标签编号对应的名称
- 从推理结果中提取“标签”的序号,然后从列表中取出对应的值
> 注:如果运行程序提示ModuleNotFoundError: No module named 'XEdu',说明xedu库未正确安装或当前未连接行空板,重复按本文4.1章节操作解决。

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

编写程序-摄像头实时识别
- 使用摄像头识别的程序,注意需要先将摄像头插到行空板USB口上,并尽量保持摄像头背景不发生变化
- 扩展中添加OpenCV扩展
- 编写程序,打开摄像头,从摄像头中抓取图片,然后给xedu推理,最后用unihiker显示到屏幕上

步骤9 常见问题
运行程序时提示ModuleNotFoundError: No module named 'XEdu'怎么办?
解决方法:说明当前连接的行空板上xedu库未正确安装或当前未连接行空板,回到本文4.1章节操作解决。

安装库时提示Warning: Retrying.................[Errno -3]......怎么办?
解决方法:说明行空板未连接WiFi,没有连接WiFi无法安装库,回到本文4.1章节操作。

安装库时提示Requirement alread satisfied:xxxx怎么办?
解决方法:说明当前库已经被安装了,无需重新安装,关闭窗口即可。

安装库时提示WARNING:You are using pip version....怎么办?
解决方法:WARNING开头的提示语都是警告,不是报错,不用管。

安装库时提示ReadTimeoutError:HTTPSConnectionPool...Read timed out.怎么办?
解决方法:网络连接不通畅,可以切换此窗口右上角源后再次尝试。

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