10分钟实现运动分析AI模型部署STM32F407ZGT6/手机上
·
前言
- 本文主要是手把手教你如何利用 Edge Impulse 建立一个运动分析的 AI 模型,最后部署到手机/MCU上。
- 本文并不会介绍为什么这样做,如果深度学习相关内容,可以自己去买《边缘人工智能—丹尼尔·西图纳亚克 珍妮·普朗克特》这本书,或者是YouTube/B站学习相关 TinyML 内容。

正文
连接设备
-
我们进入 https://www.edgeimpulse.com/ 登录账号后按照下图创建一个新项目。


-
打开微信扫描下面二维码


- 后续你手机里面会出现这个界面

收集数据
- 按照图中内容建立模型

- 可以按照需求,进行样本采集,我这里是每个类别有10个样本数据。

- 样本数据分割,按照下面步骤,将数据进行随机分割。

- 最终可以看到数据分成了训练集和测试集。

特征选择
-
创建模型,可能会弹出下面这个框,因为我们部署到手机上和STM32F407ZGT6 上,因此这里选择 M4。

-
添加特征处理方法,可以看到下面有两个推荐的方法,我们只需要添加第一个通用的,第二个IMU的这个不用加(去年好像没有,今年看到有这个,就加着试试,结果部署到手机上的时候发现这个是Syntiant 目标平台特有的)


-
添加神经网络模块,因为我们是免费用户,直接使用他们提供的神经网络模块即可。

4. 按照下图进行保存。

- 特征提取。


- 最终会出现这个框图表示提取到的特征信息分布。

- 如果你添加了 IMU 的这个特征提取方法,可以尝试更换看看有什么区别。

- 会发现效果确实好了很多,但某些地方仍具有区分不清楚的情况。(需要注意,后面编译的时候要在Create Impulse界面删除IMU的这个特征提取办法,不然会导致后续部署出问题)

- 如果你是Syntiant 芯片,我们可以参照下图修改提取用IMU的方式提取特征,不过因为我们是手机做演示,因此不用修改。(一定记得删除IMU的那个特征提取办法,不然部署会有问题,再次强调)

模型训练
训练
- 这里可以根据情况调整模型,我这里直接默认,最终开始训练,看到训练结果看起来还是非常完美的。

测试
- 我们按照下图方式测试最终的模型效果,会发现准确率还是相对可观的(可以通过其他办法再进行提高)

模型部署
部署手机上
云端分析
- 如果手机断联,按照之前的连接方式进行重新连接。之后按照下图进行操作,手机上就会手机10s数据,期间你可以左右,上下,画圈等操作。

- 10s结束后,采集到的数据将会显示在网页中,你可以左右滑动来看最终的结果。

本地运行
-
按照下图进行操作,然后手机上就可以运行自己训练的模型了。

-
最终进行四次采样,可以看到四次采样的效果如下,其猜测概率相对还是比较准确的,都在60%以上。

部署 STM32
参考
更多推荐


所有评论(0)