×

使用QuickFeather开发工具包和SensiML

消耗积分:0 | 格式:zip | 大小:1.27 MB | 2023-02-08

王燕

分享资料个

描述

概述

边缘人工智能涉及将机器学习模型加载到微控制器上,使它们能够对更广泛的数据做出比传统编程设备更“智能”的决策。这个项目是关于如何使用 QuickLogic 的 QuickFeather 开发工具包和一套 SensiML 工具开始使用这项技术来收集数据、创建模型和部署它。对于科学家、工程师和业余爱好者等解决气候变化等重大问题的人来说,这是一个非常有用的工具。如果您对此感兴趣,请查看当前的挑战气候变化竞赛,鼓励每个人使用带有 SensiML 的 QuickFeather 来解决诸如减少能源消耗或早期野火警告等问题。

快羽

QuickFeather 开发套件是一款令人印象深刻的设备,它将大量功能集成到一个小尺寸中。以下是一些规格:

  • QuickLogic EOS S3 处理器(Zephyr OS 全面支持的第一个支持 FPGA 的 Arm Cortex-M4F MCU)
poYBAGPjBUyAcovCAABgCHIlVwk505.png
 

外部连接:

  • 16Mb 闪存
  • mCube MC3635加速度计
  • 英飞凌DPS310压力传感器
  • 英飞凌 IM69D130 PDM 数字麦克风

所有这些都具有标准 Feather 规范的占地面积和布局。

设置硬件

在开始任何其他操作之前,您需要让 QuickFeather 成为最新的二进制文件,这只需几个步骤即可完成。首先,从这里下载最新的.bin文件,并确保选择用于简单流收集的文件,而不是MQTT-SN 文件。然后使用下载 TinyFPGA 程序员应用程序,然后安装 Python 库。它需要 Python 3.6 或更高版本,因此请记住这一点。git clonegit clone --recursive https://github.com/QuickLogic-Corp/TinyFPGA-Programmer-Application.gitpip3 install tinyfpgab

pYYBAGPjBX6AHSa7AACknV3c_6E959.png
 

.bin之前的文件放入您刚刚保存克隆的文件夹(它应该包含tinyfpga-programmer-gui.py)后,通过 USB 插入设备并按下 QuickFeather 上的“重置”按钮,然后在五秒钟内按下“用户”按钮。这会导致 LED 开始闪烁绿色,表示开发板处于上传模式。运行命令python tinyfpga-programmer-gui.py --port COMX --m4 quickfeather-simple-stream-data-collection.bin --mode m4通过 USB 闪存二进制文件,其中COMXQuickFeather 的 COM 端口。程序上传完成后,按“重置”按钮加载新应用程序。LED 应闪烁蓝色五秒钟,完成后熄灭。

设置 SensiML 数据捕获实验室

SensiML Data Capture Lab (DCL) 可以从设备中捕获数据并将其传输到主机,然后可以在主机上进一步处理和导出数据。首先,创建一个新帐户下载 DCL 软件,然后登录。

 
 
 
poYBAGPjBYqASnOZAAHhjY_0uEM177.png
 
1 / 2
 

Simple Streaming 捕获模式需要使用 QuickFeather 上的 UART 引脚,因此将 USB 连接到 TTL 串行适配器,如下所示:

poYBAGPjBY-AMwD4AAHGmKbs0o0935.png
 

其中橙色突出显示的引脚是适配器的 RXD 引脚,紫色的引脚是适配器的 TXD 引脚。它通过 . 的波特率进行通信460800

在 DCL 中,通过给它命名并将它保存在某处来创建一个新项目。

poYBAGPjBZeAUhTbAAAl_inUDd8889.png
 

然后从“Label Explorer”模式切换到“Capture”模式。DCL 使用 SSF 文件形式的插件,告诉它如何与设备通信。在此处下载用于 QuickFeather 的文件(确保选择用于简单流式处理的文件)并使用编辑->导入设备插件并选择刚刚下载的 SSF 文件来添加它。在右上角,你会看到传感器配置是空的,所以点击添加新传感器按钮,选择 QuickFeather Simple Stream 插件,使用“Motion”捕获源,采样率为每秒 105 个样本,然后确保选中“加速度计”。继续并将其保存为“传感器 1”。

 
 
 
pYYBAGPjBZuAFR48AAA0uIyPf7I649.png
 
1 / 3
 

一些有用的功能

Data Capture Lab 具有一些不错的功能,使其用途极为广泛。可能最重要的一个是能够从几乎任何连接了任何传感器的板上捕获数据的能力,而不必等待它获得官方支持。这可以通过创建一个指定该板的功能和配置的自定义 SSF 文件来实现。您还可以选择将元数据添加到您的捕获中,它可以用作标签,例如根据更具体的参数拆分训练数据或区分训练和测试数据集。最后,可以通过多种不同的方式查看收集到的数据,例如将轴拆分为单独的图形,或将捕获的数据拼接在一起。还有更多功能,因此要了解更多信息,请访问此页面

示例项目

因为这个项目只是为了入门,所以我们不会涉及软件中的一些更高级的功能,但我们将介绍最相关的功能。生成的数据集会很小,这对这个项目来说很好,因为我们只对确定是否有运动或板是否静止感兴趣。

捕获数据

设置电路板后,继续并在找到正确的串行端口(用于 USB 到 TTL 串行转换器的端口!)后单击 DCL 中的“连接”和“扫描设备”按钮。如果它最初不起作用,请尝试拔下转换器并重新插入,或者断开连接并重新连接。

poYBAGPjBZ6AeAfTAACRDdWG4tg584.png
 

在该窗格下方有一个用于添加标签和元数据的部分。我添加了我的两个标签:restmovement然后对于元数据,我添加了 aClass并选择了两个值:TrainTest,表示每次捕获是用于训练还是用于测试。

 
 
 
pYYBAGPjBaSAPaR1AACOyE0uYvM275.png
 
1 / 2
 

转换数据集

通过按下Record底部的按钮捕获我的数据后,我需要稍微清理一下并确保只有代表我试图隔离的特征的数据才能进入,即运动中没有“休息”数据。

poYBAGPjBa6AfsNQAADwmI4kiiM072.png
 

这可以通过转到左上角的 Project Explorer 选项卡并双击要修改的捕获来完成。然后,您可以通过在要保留的区域上按住右键单击的同时拖动鼠标来添加段。执行此操作的次数越多,添加的段就越多。

pYYBAGPjBbyAN8UeAAF6Txexp8s845.png
 

您可以在右上角区域看到它们。这还允许您通过为每个标签创建段并更改标签来在同一捕获中捕获不同的标签。

poYBAGPjBcSAbZcEAAC_6JFjfTo562.png
 

前往“文件”->“关闭文件”后,是时候使用 Analytics Studio 从捕获的数据生成模型了。请记住,保存在 DCL 中的数据会自动上传并存储在云中,尽管它可能需要一些时间才能刷新和显示。

训练模型

我们首先在 Web 浏览器中转到Analytics Studio并选择在 DCL 中创建的项目。

poYBAGPjBcaASQQhAAC4vpKHvss064.png
 

要训​​练模型,我们必须首先以查询的形式告诉 Analytics Studio 我们要使用哪些数据。这可以通过单击Prepare Data选项卡并输入名称、会话、标签、相关元数据、传感器以及绘制方式来完成。保存后数据集应该出现在右侧,我们可以看到每个标签中有多少段。

pYYBAGPjBcuAdw3zAADOyj85caM051.png
 

可以通过转到Build Model选项卡并输入名称、刚刚创建的查询、窗口大小(使其与传感器的捕获率大小相同)、优化指标(f1-score 是最平衡的)来构建管道,和分类器大小,它限制了模型的大小,非常适合加载到 ROM 受限的芯片上。单击Optimize将完成并构建模型,根据数据集的大小,可能需要一段时间才能完成。

 
 
 
poYBAGPjBdCAKCIMAAD718T1VJA432.png
 
1 / 2
 

部署

此过程的最后一步是部署,它以知识包的形式出现。将它们视为容纳您的模型及其相关数据的容器。它们分为三种类型:二进制(预构建,只需闪存到电路板并运行)、库(轻松将其添加到您的项目并与 API 接口)或源代码。对于这个项目,我们将只构建一个二进制文件,因此在Download Model选项卡中选择您刚刚优化的管道,以及以下目标设备设置:

  • 硬件平台:QuickFeather 1.5.0
  • 目标操作系统:FreeRTOS
  • 格式:二进制
  • 数据源:传感器 1(板载加速度计)
  • 输出:简单流式传输(通过 UART 引脚)
poYBAGPjBdKALadwAABxT4gnuVI994.png
 

还要注意类图。在这个项目中,一个方法的结果,一个1方法movement的结果下载 zip 文件并将二进制文件解压缩到包含先前用于刷新 Simple Stream 固件的 Python 文件的同一文件夹。在 QuickFeather 返回上传模式后,运行与之前相同的命令,只是这次替换为知识包二进制文件的名称。打开带有波特率的串行监视器将显示模型的分类输出,如下所示,它可以工作!2restquickfeather-simple-stream-data-collection.bin460800

 
 
 
poYBAGPjBdeATWYeAAAn6mDBCho463.png
 
1 / 2休息时
 

下一步

如果您对在边缘使用机器学习感兴趣,请查看挑战气候变化竞赛并索取免费的 QuickFeather 板。然后查看一些文档,看看您可以添加哪些传感器和/或组件来帮助解决我们当前面临的最重要的问题之一。

 
 

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !