Funpack第九期-使用automl实现特定声音监测系统
使用automl(qeexo)在sensortile.box上实现了简易的特定声音监测系统
标签
STM32
SensorTile.box
funpack第九期
AutoML
james
更新2021-06-22
881

Funpack第九期-使用automl实现特定声音监测系统

大家好, 我叫james, 是一名hacker. 平时喜欢研究一些可编程的小东西.

1 实现功能

第九期funpack活动的开发板是来自ST的SensorTile.box. 搭载了一颗arm cortex m4 mcu. 本期笔者使用AutoML, 实现了特定声音的监测.

2 设计思路

第九期可以选择三个任务: 1. 实现物理量测量立方体; 2. 实现随身环境监测系统; 3. 使用神经网络实现特定声音监测系统.

我选择了第三个. 可能一开始会觉得第三个比较难, 但是经过认真比较挑选实现路径, 选择用AutoML实现, 其实可以不用编程就能实现.

为了更明确地区分项目中需要不同技能的任务, 笔者将任务分解为"ML实现", "软件实现"和"硬件实现"三部分, 本期不需要"软件实现"和"硬件实现", 具体如下:

  • ML实现

使用qeexo在线服务, 实现包括训练, 验证, 测试的数据采集, 建模, 转换等步骤, 最终得含有训练模型的固件, 直接烧录到板子上.

  • 软件实现

任务三无须编写代码. 但是为了完整性, 我用emacs实现了一个简单的上位机软件, 可以读取串口数据判断声音类型.

  • 硬件实现

本期无须硬件开发.

3 环境搭建

不同于使用tensorflow等机器学习框架, 采用AuotoML可以实现全流程自动化, 不用自己搭环境.

4 ML实现

ML基本步骤: 建模 -> 采数 -> 训练 -> 转换 -> 测试 以上步骤均在automl在线完成.

使用Qeexo进行数据采集首先会在sensortile上烧录数据采集固件

FsYdaUO6XtV-lsazAtjX3_lDGzGF

qeexo支持对采集到的数据进行可视化

Fn_ZnoWKiauoaM1lW_lCvVCrpp9Y

 

 

数据采集完成后选择合适的模型, 这里笔者选择了CNN卷积神经网络模型, 模型选择完成后进行训练

FrIIasPW3emqnWEUJHzQMzTo4fO9

FjqDo9DWywC3URcnNjjVYSQTJNS6

 
最后, 看一下模型训练结果, 一些参数图表
FjXHRy1K5tHV1LW2B9zwBRH_pFB4
 
 
以下为利用UMAP工具映射的图, 可以看到相似的训练数据在位置上聚集
Frg7w7j_7kmoFmW8VZ18V_QLwHdJ
 
这些参数图表将会成为验证训练效果的工具
 
5 软件实现

iot软件无须自己编写, 以下为上位机重要代码段

5.1 uart输入分析和判断
(defun sensortile-result (p o)
  (show-result
   (let* ((tokens (split-string o "[ \n:,]+"))
          (alpha (string-to-number (nth 2 tokens)))
          (beta (string-to-number (nth 3 tokens)))
          (gamma (string-to-number (nth 4 tokens))))
     (print (list tokens alpha beta gamma))
     (cond ((> alpha 0.6) "Doh")
           ((> beta 0.6) "listening")
           ((> gamma 0.6) "Whistle")
           ("Knock")))))


以下为效果演示截图:

首先将训练好的板子插到电脑上, 然后运行上位机程序, 进入监听状态: Fq_nQL5G39Qp4USEtOnsVDSwrOdt
板子听到吹口哨等声音就会显示出来:

FqDKXns855w4LEts-2DinPqyK2tZ
6 硬件实现

本期没有硬件变动.

7 心得体会
  1. automl在试验算法和数据的时候非常好用, 但是如果想深度定制, 仍然需要软件开发工作.
  2. 机器学习很好玩儿, 但仍然不是万金油.
8 常见问题
  • qeexo安装 qeexo安装过程需要单独dfu-util, 还需要建立软连接, 客户端安装便利程度可能还需要提升.
9 Code&Future

https://github.com/picospuch/eetree-funpack-workshop/tree/phase-nine

后续继续学习AutoML, 这个配合主频较高的mcu还是很有用的, 可以让嵌入式应用更"智能"

最后,感谢硬禾学堂和得捷电子,让我接触到了st传感器开发板,让我能在业余时间参与更多有趣项目的学习,也感谢群的小伙伴提供很多种实现题目功能的思路,感谢大家一路的折腾与陪伴,谢谢!

团队介绍
james is a hacker
团队成员
james
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号