机器学习核心(MLC)是传感器ASIC中的一个硬连线核心,具有开发人工智能算法的功能。巨大的优势是降低了整个系统的功耗,因为一些事件检测和分类不需要主微控制器,所有的计算和决策都是在传感器级别进行的。在这篇知识文章中,我们将展示如何使用ST汽车级ASM330LHHX,利用我们的Unico GUI,为汽车应用程序构建基于决策树分类器的机器学习算法,这将提供一个简单的即插即用解决方案。在开始之前,你需要什么?

1.软件

我们在这篇知识文章中使用的软件工具是Unico GUI,图形用户界面(可用于Linux、MacOS和Windows),支持广泛的传感器,并允许构建MLC程序(即使没有任何板连接=离线模式)和生成传感器配置文件(UCF文件)。

2.硬件

这个STEVAL-MKI109V3将在本教程中用于配置MEMS传感器和评估传感器输出。此外,它还具有一些高级功能,例如:

  • 可编程电压电源

  • 电流消耗测量

  • 和通信协议,可以在SPI和I²C之间更改

STEVAL-MKI109V3可以与不同的DIL24适配器板一起使用。在本教程中,我们将使用STEVAL-MKI212V1,它是用于ASM330LHHX,具有嵌入式机器学习核心的汽车应用IMU。

有关更多硬件详细信息,请访问:
  • MEMS传感器ST资源页
  • 探索MEMS传感器中的机器学习核心的ST资源页面
  • 申请说明AN5296开机器学习核心嵌入ASM330LHXX型
 

3.如何构建MLC配置

作为第一步,在PC上启动Unico GUI,并选择适配器板STEVAL-MKI212V1,其中包含ASM330LHHX,这是本知识文章中使用的带有嵌入式机器学习核心的汽车IMU。

在Unico GUI主窗口中,通过单击选项选项卡,可以配置主加速度计和陀螺仪设置。对于本例,已选择:

  • AXL-2g满量程和104Hz输出数据速率

  • 陀螺仪-250dps满刻度和104Hz输出数据速率

点击顶部栏上的“开始”按钮,我们将启用装卸工MKI109V3以及我们的电脑。

 

点击绘图工具时,我们可以实时可视化来自传感器的数据。

 
 

要开始记录,需要按下“加载/保存选项卡”,选择要保存的参数,在这种情况下,只需要加速度和角速率数据,然后需要键入日志的文件名,并获取所有类的数据。

 

已经记录的类以及将使用本知识文章的ML算法检测的类是:

  • 不动的

  • 移动

  • 千斤顶

  • 崩溃

 
 

一旦获取了所有日志,建议分析每个类的日志并对其进行清理。本例中使用了Microsoft Excel。

在分析数据日志时,可能会注意到:

  • 主要的变化是加速度计的X轴和Y轴

  • 与加速度计相比,陀螺仪不提供额外的信息

因此,可以仅使用加速度计数据配置MLC,并选择加速度计X和Y轴上的一些特征(如峰间均值方差)。
下一步是导入在的MLC工具中获取的数据日志
Unico GUI。在MLC工具的“数据模式选项卡”中,点击“浏览”按钮可以选择相应的数据日志文件(同一类可以同时选择多个文件)。

 

 

对于导入的所有数据日志和每个类,都需要分配一个标签,即与该数据关联的类。
正确导入所有日志后,单击“配置”选项卡,然后继续创建决策树和配置文件。
配置用于
asm330小时:

  • 机器学习核心的104 Hz数据速率(与用于获取数据日志的数据速率相同)

  • 仅加速度计数据

    • 2g满刻度

    • 104Hz数据速率

  • 不需要陀螺仪,因为在分析数据时,很明显它不能为该应用程序提供额外的信息

 

然后,需要通过选择1个决策树和104个样本的窗口长度来进行配置。window参数指定机器学习核心每次必须识别类时阐述的样本数。它可以是从1到255,并且MLC结果的延迟将与这个数字相关。在这种情况下,数据速率为104Hz,窗口中的104个样本获得1秒的等效时间窗口。

在本例中跳过了过滤器配置部分,这意味着没有对输入数据使用过滤器。
在功能配置部分,可以选择在构建决策树时使用哪个功能。
由于从数据日志中可以清楚地看出,加速度计X和Y轴上存在一些变化,因此可以在这些轴上以及加速度计范数上选择一些特征(如均值、方差、能量、峰值2峰值)。

 

 

现在,该工具正在生成arff文件,该文件包含选定的特征,在之前定义的1秒窗口中使用提供的所有标记数据进行计算。

 

然后,我们需要决定哪些数值描述不同的类(这些值是MLC的输出,可以在我们设备的MLC_SRC寄存器中读取)。我们正在使用以下值:

  • 0表示静止

  • 4用于运动/驾驶

  • 8用于自升式

  • 12表示碰撞

现在可以按照配置过程构建决策树,它使用了之前通过单击“生成”按钮定义的一些功能,或者可以导入由外部工具生成的决策树。在下一节中,可以选择不同的过滤器,但对于本例,已跳过此部分。最后,该工具可以生成具有机器学习核心配置的UCF文件asm330小时,以将决策树嵌入到传感器配置中。自装卸工MKI109V3带ASM330LHHX DIL24适配器(装卸工MKI212V1)已经连接到PC,它允许直接对设备进行编程,并评估此配置。


 

最后,可以检查MLC是否正常工作。该算法必须检测所有4个记录的类。
在汽车静止的情况下,我们看到输出0,意思是“静止”。

 

 

向前和向后移动汽车,MLC输出变为4。
 

当轿厢侧向提升时,MLC输出变为8。


最后,当汽车撞上另一辆汽车时,MLC检测到类别“碰撞”,其值为12。


在这篇知识文章中,我们展示了如何在中使用MLC检测四个不同的类ASM330LHHX,但目前的消费是多少?为了激活MLC,在本例中只需要大约10µA。这是机器学习核心的额外电流,必须添加到传感器电流消耗中。不同的配置是可能的——识别不同的类别——选择不同的数据速率——或者使用不同的数据(例如仅加速度计数据,或者加速度计+陀螺仪)。在表中,您可以看到我们在GitHub公司同一设备的存储库。