3477| 8
|
用微机器学习做手势辨识 |
本帖最后由 gada888 于 2022-9-30 22:28 编辑 这是即tinyML开篇之后的实战篇篇一。开篇那个帖子列出了微机器学习所需要用的软硬件和跑通流程。感兴趣的可以去参考一下。这一篇进入实作内容。来一个手势辨识。 这次硬件仍然用WIO terminal作为主控。 Wio Terminal 是一款专门用于 IoT 与 TinyML 的多功能开发板 – 包含了 ATSAMD51P19 晶片并以 ARM Cortex-M4F 为核心 (20MHz),已支援多种针对微控制器的 ML推论框架。 它包含:光感测器,麦克风, LCD,加速度感测器,可连接多达300种传感 软件仍然用Arduino和Edge Impulse来编译代码,,Edge负责提供python转换的的C++代码,arduino负责改写C++代码,最后把生成的arduino C代码上传到WIO去。 TinyML 的 tiny 代表 ML 模型已针对低功耗的微型装置进行最佳化,但是 Arduino初级系列的各种 MCU 的算力不足。所以用了ARM系列的大算力MCU来干活, TinyML的常见应用如下: 声音场景 热词侦测 影像辨识 气味分析 等等 这次做剪刀、石头、布的光线遮断样式不同来区分,做一个很小的数据集,每个种类做10个样本。一共30个样本。虽然样本量极小,有欠拟合的风险,但是可以通过增加样本来进行调整。 需要执行以下命令 Wio Terminal 注册Edge Impulse PC端安装Arduino IDE 2.0 导入 wio terminal 开发板 https://files.seeedstudio.com/ar ... o_boards_index.json Node.js 1.6 安装edge impulse CLI tool 上传资料 npm install -g edge-impulse-cli 1. Wio terminal 上传单笔资料到 Edge Impulse 2. 把资料整理到不同类别,反覆操作 3. 设计 Impulse:资料处理、定义模型 4. 测试神经网路效能、修改、重复 5. 汇出神经网路档案 6. 透过 Arduino IDE 烧录至 Wio 7. Wio 执行离线推论,完成! Edge Impulse的训练流程如下 Impulse design Create impulse Raw data NN Classifier Retrain model Live classification Deployment 接下来面对自己写代码还是用Seeed的官方firmware。后者可以更快的上手。以上传firmware为例 先上传 firmware 再于 cmd 中执行 edge-impulse-daemon --clean 清除设定后进入新的专案(需要重新登入) 然后由EdgeImpulse网站Data acquision的下拉式选单 选择许多wio 已支援的传感 透过 cli 工具上传 把手放于光线传感上方 (wio 背面) 确认 upload.ino 已上传 开启 cmd,输入:edge-impulse-daemon --clean 填入帐号密码、连接com port 以及资料 label 名称 其他手势依序操作 edge-impulse-data-forwarder 指令会沿用前次设定 在edge网站收集和管理资料 单笔原始资料的设置如下 我们收集了训练模型所需的数据样本。然后送入神经网络,并对数据进行预处理。有时我们只是重新缩放数据,可以将 0 到 1000 范围内的值转换为 0 到 1 范围内的值 - 因为神经网络处理较小的数字比处理较大的数字表现更好。 TinyML 中使用的神经网络参数数量小(数字神经元之间的连接),所以我们经常还应用更复杂的预处理技术从 Raw 中提取所谓的特征数据,这加快了训练过程。 神经网络由输入层,隐藏层和输出层组成,大家先了解个大概,细讲1个小时讲不完。简单说,神经网络通过自己的框架把输入的数据的特征找出来。 下面建立impulse 选择机器学习框架,一个即可 生成impulse 神经网络架构 更多的训练 生成的神经网络的python代码是可以手动修改的。前提,你要了解你的神经网络的架构。 检查训练结果 测试资料的单笔结果 进行优化 汇出神经网络到需要的平台 如果认为训练的模型精度不够,那就多加一维来进行训练,通常90%以上精度就OK了。 #define FREQUENCY_HZ 把上述代码插入到static_buffer.ino里面去。然后上传,就得到最后的结果了。static_buffer.ino是从edgeimpulse里导出的给arduino的.zip文件里的。 完成之后,在WIO上用手演示,会在arduino的COM看到预测结果 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed