项目概述

本模型使用 Wio Terminal 内置的加速度计,识别反转(turn),挥动(wave),静止(idle)动作。
这是一项使用基于规则的编程很难解决的任务。
因为人们每次做动作的方式都不完全一样,若使用编程方法,我们把不同的人不同的动作方式考虑进去,那将是成百上千条不同的规则。实际上这仍是理想化情况,仍有很多人不同的动作未被考虑到,速度,角度。频率,方向等任一因素的轻微变化都需为其建立新的规则,但机器学习可以轻松地处理这些变化。

期望效果

如下所示,Wio Terminal 实时展示当前对Wio Terminal的动作的识别结果。反转(turn),挥动(wave),静止(idle)其中一种。
image.png

材料准备

为实现以上效果,我们需要:
硬件需求:Wio Terminal
连接方式:
内置加速度计动作识别 - 图2
(图)

项目步骤

  1. 创建与选择模型
  2. 数据采集
  3. 训练与部署
  4. 使用与编程

项目步骤

1.创建与选择模型

1. 创建“内置加速度计识别动作”模型

点击“创建与选择模型”,点击“内置加速度计识别动作”,如下图步骤1,2:
image.png
根据命名要求输入名称。
image.png
点击“确认”。
image.png
点击确定后会自动跳转到数据采集界面。

2.查看模型

image.png

2.采集数据

1.默认标签

image.png
image.png

2. 连接设备并在 Codecraft 中上传默认采集数据程序

Wio Terminal连接就位后,在 Codecraft 的界面,点击 image.png,位置如下图所示。此操作将上传默认采集数据程序。
image.png
会出现“上传”的弹出窗口,如下图所示。
选择目前的Wio Terminal对应的串口号(未必如图中的COM20),点击“确定”按钮。
image.png
弹窗提示正在上传,请稍后…
image.png
上传时间通常数十秒钟,完成后会看到下图所示的“上传成功”画面。如下图所示。
image.png
点击“我知道了”关闭上图的上传成功弹窗,回到编程界面。

内置加速度计动作识别 - 图14 注意

对于网页版的 Codecraft ,如果没有安装或者运行设备助手,可能会出现下图中还没有打开设备助手的提示。 image.png 这种状况可以参考:下载、安装和使用“设备助手”的内容。

3. 采集数据

在右上角有数据采集步骤介绍,根据介绍指示采集数据。
image.png

注意:

  1. Wio Terminal按键位置。
  2. 动图gif已加速,实际动作可稍微放慢。
  3. 请注意红字提示
  4. 当你把鼠标移至描述文字上,会有更详细内容介绍

image.png
根据Wio Terminal屏幕显示开始收集数据和结束收集。
image.png表示正在收集数据。
image.png
image.png表示收集完毕。
image.pngimage.png
Wio Terminal 显示收集完毕即可停止采集数据,CodeCraft仍在拼命加载中,是将数据从WioTerminal传至CodeCraft仍需1~2s。
待数据采集完毕。
image.png
点击“训练与部署”。image.png

4. 采集自定义标签的数据

采集自定义标签的数据与采集默认标签步骤相似

  • 添加或修改标签
  • 上传采集数据程序
  • 采集数据
  1. 添加或修改标签
  • 添加

在标签的界面,点击 image.png,位置如下图所示。
image.png
输入标签名,点击确认,如下图步骤1,2.
image.png
添加成功后标签栏有新的标签“shake”
image.png

  • 修改标签

或通过修改标签名,将其中一个默认标签修改成自定义标签名:
鼠标单击需修改的标签,会出现修改标签的弹窗,进行修改即可
image.png
修改后源标签会替换成已修改的标签名
image.png

  1. 上传采集数据程序
    选择其中一个积木,如下图,将选择“turn”的积木改成选择“shake”。
    image.png
    更改成功后如下图红框。
    image.png
    点击“上传”,上传采集数据程序
    image.png
    选择目前的Wio Terminal对应的串口号(未必如图中的COM20),点击“确定”按钮,如下图步骤1,2
    image.png
    弹窗提示正在上传,请稍后…
    image.png
    上传时间通常数十秒钟,完成后会看到下图所示的“上传成功”画面。如下图所示。
    image.png
    点击“我知道了”关闭上图的上传成功弹窗,回到编程界面。

3.训练与部署

1.设置神经网络及参数

选择适合的神经网络规模:小中大型其中一个
设置参数,设置训练周期数(大于0的数),学习率(0~1的数),最低置信度(0~1的数)
image.png

2.开始训练模型

点击“开始训练”
image.png
开始训练,界面会提示“拼命加载中”。
image.png

“拼命加载中”持续时间因选择神经网络规模(小型中型大型),训练周期数的不同而持续时间不同,会因网络规模的增大所需时间加长,训练周期数的增大时间加长,所以请耐心等待。

也可通过观察“日志输出”推理还需等待时间。如下图,已完成“Epoch:12/30”说明总共需训练30轮,已训练了12轮。
image.png
加载完成后,能在“输出日志”中看到“模型训练任务已完成”。
image.png

3.观察模型性能选择理想模型

在“模型训练报告”界面,可观察训练的成绩,包括模型的准确性,损失,模型在Wio Terminal上的性能。
如果训练成绩不理想,可以返回训练模型第一步,选择其他规模的神经网络,或者调整参数的设置,再次训练,直到获得一个成绩理想的模型。
内置加速度计动作识别 - 图42

4. 部署理想模型

在“模型训练报告”界面,点击“部署模型”。
image.png
image.png
弹窗提示部署完成,点击“确认”后,自动跳转到“使用与编程”界面。
image.png

4.使用与编程

1. 编写模型使用程序

在“使用与编程”界面,点击“模型使用”即可使用已经部署的模型
image.png
image.png
编写如下程序即可尝试使用你的模型
image.png

2. 上传程序到Wio Terminal

点击“上传”按钮。
image.png
选择目前的Wio Terminal对应的串口号(未必如图中的COM20),点击“确定”按钮。
image.png
首次上传时间较长,且随模型复杂程度上传时间增长,请耐心等待。小模型上传时间大约为4分钟。
image.png

3. Wio Terminal测试模型效果


效果说明:
即使训练模型分数达到很高仍不代表模型就是好的模型,训练模型的分高而实际使用预测效果差的现象被称为过拟合(overfitting),相当于模型生硬记忆背诵了训练数据集的细节,在面临新的数据时不会做题了,是机器学习训练模型会遇到的问题。
解决此问题的办法:

  • 增加数据集
  • 降低学习率

再重新训练模型。

保存

点击“SuperMaker”。
image.png
修改名称,点击保存。
image.png
image.png
在我的作品可以查看保存的作品
image.png
点击“turn1”即可查看对应作品。
image.png