|
MLC(Machine Learning Core) 功能可以将一些跑在MCU上的算法(如TinyML)迁移到传感器中,从而实现MCU休眠时传感器可以持续检测某一·特定动作组,这个学习处理的过程依靠决策逻辑树构成 集体的信息可以参考ST官网资料 https://www.st.com/content/st_com/en/MEMS-Sensors-Ecosystem-for-Machine-Learning.html 本文主要讲解如何在MEMS Studio上进行MLC过程 首先选择我们使用的板卡 具体配置过程可以参考我的第一篇帖子
配置完传感器之后 我们使用MEMS Studio的数据采集功能 分别采集两种不同动作的数据 每个动作保存3组 记得打上时间戳 后面有用 保存好的数据如下图
shake和standby分别对应抖动时候和静止板卡时候的数据,用户可以根据自己不同的情况多定制几种不同的功能
我们电机advance feature里面的MLC选项卡,分别导入我们的数据 注意是分别导入 我们先点击browse 将我们的数据加载进选项框中,然后再右面输入栏中输入我们的数据标签 然后再点击load 这样我们对于某一个动作的数据集就会被加载进去了 不要一股脑的选中所有数据全部加载进去
加载完数据之后 我们开始配置窗口长度以及量程 配置的选项可以参考我们在初始化时侯的选项,每一项对应着选择就好
接着 我们点击下面的AREF generation 配置我们的滤波器(filters) 这个滤波器是重要的 可以对我们的原始信号就行处理
滤波器一般会配置每个轴,可以选择平均值滤波 高通低通滤波器等,一般选择平均值滤波可以平滑扰动信号 滤波器配置完成之后 我们就可以选择我们的特征数据(features)了,MLC的特征数据选择可以选择某几个统计学特征,如MEAN:均值,表示在给定的时间窗口内计算的传感器数据的平均值。 VARIANCE:方差,表示数据的分散程度,反映数据在给定时间窗口内的变化。 ENERGY(能量): 计算信号在给定时间窗口内的总能量。它反映了信号强度,通常用于识别较强或较弱的活动。 PEAK_TO_PEAK(峰峰值):峰峰值特征计算的是信号在给定时间窗口内的最大值和最小值之间的差异。这个特征可以帮助检测信号的最大振幅
上述选项配置完成后 我们确定生成设备树arrf文件
然后点击 “Generate Decision Tree” 按钮以生成决策树。这个按钮基于之前通过 ARFF 文件加载的数据和特征生成了一个分类模型(决策树),用于识别不同的动作或状态。
这个界面有一个关键的参数即Kappa统计量,它是一种用于衡量分类器在考虑偶然因素时的准确性度量。这里显示为 0.307479,虽然分类准确度高,但 Kappa 值可能表明结果受到数据分布或样本量的影响。 ● 0.81 - 1.00:几乎完美的分类一致性。 ● 0.61 - 0.80:很好的分类一致性。 ● 0.41 - 0.60:中等分类一致性。 ● 0.21 - 0.40:较低的分类一致性。 ● 0.00 - 0.20:几乎没有一致性(接近随机猜测)。 我们可以查看决策树模型
这个模型清晰的展示了不同行为执行的动作 还可以查看模型输出信息
还记得之前我们说的 录log时候要打上时间戳吗? 我们在debug界面中 导入我们录制的log数据 导入传感器配置文件,
耐心等待一会加载完成,就可以在我们刚刚训练好的模型上面运行记录的log数据 查看分类效果,类似我们在炼丹时候的训练集和验证集,来验证我们模型的识别效果
由于刚才我们的MLC模型只训练了两种状态 所以MLC_OUT只有0X00和0XFF两种状态 总的来说 MEMS Studio给我们提供了一套非常完成且简单易用的传感器解决方案,方便用户来评估功能以及分析数据,无代码开箱即用的设计大大缩减了开发进程,并且支持非常多的传感器。 另外ST提供的跨平台开发驱动包也很好用类似Linux驱动的设计框架可以很方便的让我们把驱动移植到各个平台中使用 而不仅仅是限制于MCU平台 |
微信公众号
手机版