项目概述
本模型使用 Wio Terminal 内置的光传感器,识别手势:石头(rock),剪刀(scissors),布(paper)。
这是一项使用基于规则的编程很难解决的任务。
因为人们每次做手势的方式都不完全一样,若使用编程方法,我们把不同的人不同的手势方式考虑进去,那将是成百上千条不同的规则。实际上这仍是理想化情况,仍有很多人不同的手势未被考虑到,速度,角度。频率,方向等任一因素的轻微变化都需为其建立新的规则,但机器学习可以轻松地处理这些变化。
总所周知,用相机传感器结合机器学习来识别手势是可能的,即使图像被缩小了很多。但使用光传感器,相当于仅使用了相机一个像素点来识别手势是完全不同水平的挑战。让我们通过此项目迎接挑战。
期望效果
期望实现的效果如下所示,Wio Terminal 实时展示当前对Wio Terminal的手势动作的识别结果。石头(rock),剪刀(scissors),布(paper)其中一种。
材料准备
为实现以上效果,我们需要:
硬件需求:Wio Terminal
连接方式:
(图)
项目步骤
- 创建与选择模型
- 数据采集
- 训练与部署
- 使用与编程
项目步骤
1.创建与选择模型
1. 创建“内置光传感器识别手势”模型
点击“创建与选择模型”,点击“内置光传感器识别手势”,如下图步骤1,2:
根据命名要求输入名称
点击“确认”
点击确定后会自动跳转到“数据采集”界面2.查看模型
2.采集数据
1.默认标签
2. 连接设备并在 Codecraft 中上传默认采集数据程序
Wio Terminal连接就位后,在 Codecraft 的界面,点击 ,位置如下图所示。此操作将上传默认采集数据程序。
会出现“上传”的弹出窗口,如下图所示。
选择目前的Wio Terminal对应的串口号(未必如图中的COM20),点击“确定”按钮
弹窗提示正在上传,请稍后…
上传时间通常数十秒钟,完成后会看到下图所示的“上传成功”画面。如下图所示。
点击“我知道了”关闭上图的上传成功弹窗,回到编程界面。
注意
对于网页版的 Codecraft ,如果没有安装或者运行设备助手,可能会出现下图中还没有打开设备助手的提示。 这种状况可以参考:下载、安装和使用“设备助手”的内容。
3. 采集数据
在右上角有数据采集步骤介绍,根据介绍指示采集数据
注意:
- 注意Wio Terminal按键位置
- 动图gif已加速,实际动作可稍微放慢
根据Wio Terminal屏幕显示开始收集数据和结束收集。
表示正在收集数据
表示收集完毕
Wio Terminal 显示收集完毕即可停止采集数据,CodeCraft仍在拼命加载中,是将数据从WioTerminal传至CodeCraft仍需1~2s。
待数据采集完毕
4. 采集自定义标签的数据
采集自定义标签的数据与采集默认标签步骤相似
- 添加或修改标签
- 上传采集数据程序
- 采集数据
- 添加或修改标签
- 添加标签
在标签的界面,点击 ,位置如下图所示。
在弹窗中输入标签名,点击确认,如下图步骤1,2.
添加成功后标签栏有新的手势标签“ok”
- 修改标签
或通过修改标签名,将其中一个默认标签修改成自定义标签名:
鼠标单击需修改的标签,会出现修改标签的弹窗,进行修改即可
修改后原标签会替换成已修改的标签名
2. 上传采集数据程序
选择其中一个积木,如下图,将选择“rock”的积木改成选择“ok”
更改成功后如下图红框
点击“上传”,上传采集数据程序
选择目前的Wio Terminal对应的串口号(未必如图中的COM20),点击“确定”按钮,如下图步骤1,2
弹窗提示正在上传,请稍后…
上传时间通常数十秒钟,完成后会看到下图所示的“上传成功”画面。如下图所示。
点击“我知道了”关闭上图的上传成功弹窗,回到编程界面。
3.训练与部署
1.设置神经网络及参数
选择适合的神经网络规模:小中大型其中一个
设置参数,设置训练周期数(大于0的数),学习率(0~1的数),最低置信度(0~1的数)
2.开始训练模型
点击“开始训练”
开始训练,界面会提示“拼命加载中”。
“拼命加载中”持续时间因选择神经网络规模(小型中型大型),训练周期数的不同而持续时间不同,会因网络规模的增大所需时间加长,训练周期数的增大时间加长,所以请耐心等待。
也可通过观察“日志输出”推理还需等待时间。如下图,已完成“Epoch:62/500”说明总共需训练500轮,已训练了62轮。
加载完成后,能在“输出日志”中看到“模型训练任务已完成”
3.部署模型
在“模型训练报告”界面,点击“部署模型”。
弹窗提示部署完成,点击“确认”后,自动跳转到“使用与编程”界面。
4.使用与编程
1.编写模型使用程序
在“使用与编程”界面,点击“模型使用”即可使用已经部署的模型
编写如下程序即可尝试使用你的模型
2. 上传程序到Wio Terminal
点击“上传”按钮。
选择目前的Wio Terminal对应的串口号(未必如图中的COM20),点击“确定”按钮。
首次上传时间较长,且随模型复杂程度上传时间增长,请耐心等待。小模型上传时间大约为4分钟。
3. Wio Terminal测试模型效果
效果说明:
即使训练模型分数达到很高仍不代表模型就是好的模型,训练模型的分高而实际使用预测效果差的现象被称为过拟合(overfitting),相当于模型生硬记忆背诵了训练数据集的细节,在面临新的数据时不会做题了,是机器学习训练模型会遇到的问题。
解决此问题的办法:
- 增加数据集
- 降低学习率
再重新训练模型。
保存
点击“SuperMaker”
修改名称,点击保存
保存成功后可在“我的作品”中查找。
点击“rocks”即可查看对应作品。