
如何开始使用ST AIoT Craft 开发您的物联网解决方案 意法半导体员工 发布时间:2024-12-05上午8:00 - 编辑时间:2025-01-08上午10:40 编辑者:Laurids_PETERSEN 总结 本文展示了如何开始使用ST AIoT Craft工具,从而利用意法半导体智能传感器中的高级边缘AI功能开发您的物联网解决方案。 这款全新工具的出现将为意法半导体智能传感器带来更加流畅、便捷和人性化的AI编程体验。 简介 凭借ST AIoT Craft工具,您可以尝试使用各种集成在意法半导体智能传感器中的高级边缘AI功能。 您将学习如何编程MEMS惯性传感器和IMU中的机器学习内核 (MLC) 引擎,该功能可在微控制器睡眠模式下对加速度(或振动)和旋转模式进行分类,实现节能。 ST AIoT Craft将收集已标记的传感器数据,并将其用于训练MLC引擎。您可使用门户网站(建议使用Chrome浏览器)或配套移动应用提供的意法半导体评估板对得到的结果进行验证。您无需将ST AIoT Craft下载到本地电脑,即可在浏览器中直接运行。 1. 必备的硬件条件 2. 设置ST AIoT Craft 工具演示 让我们了解一下ST AIoT Craft工具的工作原理。 为此,我们可以先从一个现有的项目示例开始评估。 请单击以下链接访问该工具:https://staiotcraft.st.com/index.html。 图1.ST AIoT Craft 主页 您只需单击右上角的[Readme] 按钮,即可访问ST AIoT Craft文档页面。以下是一些示例: 返回到主页,单击[Try it out] 按钮进入该工具,如图1所示。 注意: ,此时您尚未登录web应用,原因是登录并非强制要求。 您可以找到意法半导体准备的实际项目示例,其中涵盖了各种工业用例和娱乐用例。 单击智能资产跟踪项目示例。系统随即会弹出一个带有简短说明的窗口。 图2. 智能资产跟踪项目 单击位于[Try out] 按钮右侧的三个竖点。然后单击[View details] 。 您可以看到,该项目示例仅仅开发了一个名为smart_asset_tracking的AI模型。该AI模型的目标是SensorTile.box PRO套件以及带有机器学习内核的IMU LSM6DSV16X。 该模型是一款具有四个类别(静止_直立、静止_非直立、移动、摇晃)的分类器;它既是决策树,也是AI模型,因此必须利用数据进行训练。该AI模型将面向四个类别(静止_直立、静止_非直立、移动、摇晃)展开训练。 您可通过web应用在网络上对此AI模型进行评估,也可通过移动应用继续推进相关流程。 如果您选择了移动应用的体验方式,则系统会显示一些二维码。特别需要注意的是,您可以在右侧找到移动应用的安装二维码。 图3.ST AIoT Craft 移动应用 我们即将推出一篇专栏文章,帮助那些感兴趣的用户进一步了解ST AIoT Craft移动应用。 下面我们将集中讲解,如何通过web应用直接在网络上对该AI模型进行评估。 可以考虑将SensorTile.box PRO作为本实践环节所使用的开发板。 您需要刷写与该web应用相兼容的固件以评估AI模型。该固件也将在数据记录阶段用于创建数据集。 第一步,单击[Update the firmware] 以更新SensorTile.box PRO的固件。 您需要遵循以下三个步骤:
图4. 利用SensorTile.box PRO 进入DFU 模式
此时web应用将下载固件二进制文件,并将该文件的内容流传输到开发板。 此时浏览器应该能够检测到所连接的SensorTile.box PRO。如果并未检测到,则需要手动将其选中。固件更新完成后,您即可与开发板建立连接。 单击位于屏幕右下方的[Connect device] 按钮。 连接建立后,系统将下载AI模型并将其发送到SensorTile.box PRO,再由固件应用据此对传感器进行编程。 尤其需要注意的是,如您所见,加速度计已通过以下特定设置使能:
系统会将来自加速度计的数据发送至机器学习内核,再由机器学习内核将其分为以下四个类别:摇晃、移动、静止_非直立、静止_直立。 3. 开始评估阶段 单击[Start] 按钮。 具体状态需要根据SensorTile.box PRO的位置和运动情况进行识别。
图5. 评估AI 模型 您只需单击[Stop] 按钮,即可终止对该AI模型的评估。系统将显示如下视图: 此时,您可以决定继续探索[Explore other projects] 部分中的其他兼容项目,例如“Fan Coil Monitoring”和“Drilling Machine”。 或者,您也可以单击黄色的[Clone project] 按钮,在工作区中克隆该项目。注意: 执行此操作需要用户通过登录流程进行身份验证。 您还可以选择单击[View project details] ,方法与之前的操作相同。 现在,我们来看看经过评估的AI模型是如何训练出来的。 为此请单击黄色的[Train] 按钮,进入训练视图。 在训练过程中,我们需要使用数据。如下图所示,位于最左侧的“训练数据”模块**有64个数据文件,数据的总采集时间为1353.99秒: 图6. 训练数据 我们已经采集了这四个类别的数据,且数据集中的数据量非常均衡。 由于该数据只包含了加速度计数据,您只能使用加速度计向机器学习内核发送数据。 在训练过程中,系统会自动从数据中提取滤波器和特征。您可以选择提取这些滤波器和特征的具体方式。有以下三个选项可供选择:[Default] 、[Best] 和[Fastest]。请为本示例选择[Default] 。 图7. 滤波器和特征 在对AI模型进行训练之后,其分类准确率达到了97.96%。 图8. 分类准确率 您可以单击[Download configuration files] 按钮,以下载该训练过程的结果。该操作将启动用于开发板编程的.ucf文件下载。此外,您还可以使用.h文件来开发自己的固件应用。 单击位于最右侧[Results] 框中的蓝白按钮,即可将结果展开。 这样,您就可以检查混淆矩阵等统计信息以及其他指标了。其他指标包括实例、正确分类实例、错误分类实例和卡巴统计量。 图9. 结果MLC 单击位于“Results MLC”窗口右上角的[x] 按钮,关闭该窗口。单击主标题MLC配置smart_asset_tracking附近的灰色[Back] 按钮,以返回上一视图。 您也可以单击位于右上角的[Clone] 按钮,在工作区中克隆该项目。 克隆需要用户身份验证,因此系统会将您重定向至myST登录网页。 输入凭据后,您只需调用演示程序“smart_demo”,然后单击“OK”即可完成克隆。此时项目已克隆到工作区中。如下图所示,您在进入项目区域后就会看到项目“smart_demo”。 4. 创建您自己的项目 单击[New Project] 以创建新项目。该新项目的目标是检测开发板的不同运动。 图10. 我的项目工作区 将新项目命名为“movements_detector”,然后单击“OK”。 因为该新项目是空的,所以我们需要创建一个模型,但在此之前我们需要采集一个数据集。移动到“我的数据集”部分,如下图所示。您可以在这里找到smart_demo数据集,该数据集是您在克隆smart_tracking项目的时候一并克隆的。 您可以单击[Open details] 按钮查看该数据集,以了解应用处理该数据集的具体方式。 图11. 我的数据集 - 打开详细信息 下一个视图将显示该数据集;您可以用自述文件对其进行记录。 默认情况下,自述文件为空。我们可以通过单击[Edit] 按钮,并编写如下示例来对其进行自定义: # Dataset my dataset 单击[Save] 。 位于右侧的是通用元数据,其中包括数据集ID、数据集类型、数据集(包含107个数据记录)、数据集大小、数据集中获取到的类别以及用于采集数据集的开发板。 您还可以选择名为[Data logs] 的选项卡,以查看这些文件。 您可以查看一组.csv文件,每个文件对应一个类别。您可以单击位于右侧的[Open data visualizer] 以查看相关数据,如下图所示。 图12. 打开与摇晃类别行相对应的数据可视化工具按钮 单击[Start with default charts] 。 该文件仅包含加速度计数据,且您可以对视图进行自定义。例如,您可以放大数据并移动时间刻度。 您可以单击[Add new chart] 按钮并添加新图表。系统随即会弹出一个窗口。您可以在其中选择将[lsm6dsv16x - Accelerometer] 作为传感器,并将[x] 作为尺寸。对于颜色和样式,请选择[Blue color] 作为[Line Color] ,并选择[Dashed] 作为[Line Style] 。单击[Save] 以保存这些设置。所生成的图表将会同步: 图13. 我的数据集 - 添加新图表 您可以单击位于“My datasets”部分右上角的[New Dataset] 按钮以创建新数据集。 将其命名为“movement_dataset”。在“类别”中输入您检测到的运动,例如垂直、水平和空闲。单击确定。 单击位于“My datasets”部分上方的[Import data] 按钮以导入数据。您可以选择从现有的.csv文件导入数据,也可以选择记录数据。 请选择继续记录数据。单击[Log data from board] 按钮。检查开发板是否已连接到PC,否则请将其连接到PC并与PC进行配对。完成这一步骤后,单击位于右上角的[Connect device] 按钮。 通过扩展[Sensor Settings] 菜单来配置传感器的设置。选择LSM6DSV16X IMU的加速度计(FS = 8 g且ODR = 60 Hz)。 图14. 我的数据集 - 记录数据以创建新数据集 现在,您即可开始获取临时存储在PC本地文件系统中的数据。然后,您可以将该数据上传到云端。 如需继续操作,请单击[Start] 按钮。您需要选择用来存储数据的文件夹。单击弹出窗口中的[View files, Save Changes] 。您可为每个类别(空闲、水平和垂直)采集20秒数据。 在数据采集期间请不要移动SensorTile.box PRO。20秒过后,单击空闲标签,以停止针对该类别的数据采集。 单击蓝色水平标签,开始采集水平运动数据。在采集数据的20秒钟内,一直用手水平移动开发板,使其进行水平运动。然后单击水平标签以停止采集数据。 图15. 我的数据集 - 记录水平状态的数据 单击蓝色垂直标签,开始采集垂直运动数据。在采集数据的20秒钟内,一直用手垂直移动开发板,使其进行垂直运动。然后依次单击垂直标签和[Stop] 按钮,以停止采集数据。 系统随即弹出您的数据采集摘要窗口。正如您在弹出窗口的下部所看到的那样,您面向空闲、水平和垂直等三个不同的类别采集了一个均衡的数据集。 图16. 数据采集摘要 现在您就可以导入数据了。为此,请单击蓝色按钮[Confirm and import] 。 相关数据已经上传并以二进制格式保存在本地。 所以此时云端将对数据进行解压缩,并生成一组.csv文件,每个文件对应一个类别。 此时转换即告结束。如果您访问“数据日志”部分,就能够看到一组CSV文件,每个文件对应一个类别。如需查看与水平类别相关的数据记录,请单击位于表格相应行中右侧的带有条形图的符号[Open data visualizer] 图17. 我的数据集 - 可视化采集到的水平类别数据 如果要裁剪数据记录的开头和/或结尾,可以单击剪刀按钮。如需最终完成该操作,请单击[Crop selection] ,然后单击弹出窗口中的[Crop data] 。 5. 训练AI 模型 移动到“我的项目”部分,查看我们之前创建的名为movements_detector的项目。单击该项目,然后单击[New model] 按钮创建一个模型。由于您已将SensorTile.box PRO作为目标连接到PC,请在[Evaluation board] 部分中选择其名称。选择“MLC v2”作为智能传感器名称。调用“movements_model”模型,并将movements_dataset选为数据集。相关类别继承自该数据集。如需最终完成新模型的创建,请单击[ok]。 接下来,单击[Train] 按钮以训练该模型。 该数据集在三个类别中的样本分布均衡。在“传感器”部分中,选择加速度计。可将滤波器和特征设置为提取方法的默认值。如需开始训练,请单击[Run MLC Configuration] 按钮。 在训练阶段,系统会从数据中提取滤波器和特征。 随后系统会生成决策树,并将决策树转换成.ucf文件。该.ucf文件将用于评估,并将移至用户工作区下方。 从结果上来看,该模型对数据进行了过度拟合(分类准确率为100%)。您可以单击“Results”框内的白色图标,以查看混淆矩阵。现在,您可以单击[Results] 框中的[Try MLC] 按钮,在SensorTile.box PRO上对模型进行评估。 请选择“在线选项”,原因是SensorTile.box PRO已经与PC连接并完成了配对。单击位于右下角的[Connect device] 按钮。web应用会自动在SensorTile.box PRO上刷写AI模型。 该步骤完成后,单击[Let's start!] 按钮运行AI模型。 系统会自动使能该加速度计,其设置与数据记录阶段使用过的设置以及LSM6DSV16X内部的机器学习设置相同。 以下是一个评估示例:检测到开发板处于水平放置状态。 如果将开发板的位置从水平改为垂直,则系统会检测到垂直类别。 如果开发板保持不动,则系统会检测到空闲状态。 单击[Stop] 按钮以停止评估阶段。 总结 在本文中,我们向您简要介绍了ST AIoT Craft工具。目前许多意法半导体智能传感器都采用了机器学习内核 (MLC) 引擎,而ST AIoT Craft则能够教会您为该引擎编程的具体方法。其中尤为重要的是,它将教会您如何训练AI模型。您可以在门户网站上使用意法半导体评估板(例如SensorTile.box PRO)对得出的结果进行验证,而无需将该工具下载到本地PC上。接下来我们将发布更多关于ST AIoT Craft工具其他功能的文章,敬请期待! 相关链接 |