TinyML应用开发实战

TinyML降低了将AI添加到边缘的复杂性,支持将数据流回云的新应用程序令人望而却步。目前正在使用TinyML的一些应用程序示例如下:

那么构建一个TinyML应用程序需要什么?

构建TinyML应用程序涉及的技能组合包括硬件工程、嵌入式编程、软件工程、机器学习、数据科学和有关您正在构建的应用程序的领域专业知识。构建应用程序所需的步骤可以分为四个部分:

Nano33BLESense还具有多种板载传感器,可用于您的TinyML应用程序。在本教程中,我们使用的是运动传感器,它是一个9轴IMU(加速度计、陀螺仪、磁力计)。

对于无线电源,我们使用了Adafruit锂离子电池组。如果您没有电池组,您仍然可以使用适当长度的微型USB电缆为电路板供电来完成本教程。虽然在有线时收集手势数据并不那么有趣。请参阅下图将电池连接到Nano33BLESense。

对于这个项目,我们将收集5种不同手势的数据以及一些负面情况的数据,我们将其标记为未知。我们要收集数据的5个拳击手势是Jab、Overhand、Cross、Hook和Uppercut。

我们还将收集左右手套的数据。给我们总共10个不同的分类。为了简化事情,我们将构建两个单独的模型,一个用于右手套,一个用于左手套。本教程将重点介绍左手套。

TinyML项目的第一个挑战通常是弄清楚如何从传感器中获取数据。根据你的需要,可以选择Wi-Fi、BLE、串行或LoRaWAN。或者,你可能会发现将数据存储到内部SD卡并在之后传输文件是收集数据的最佳方式。在本教程中,我们将利用板载BLE无线电从Nano33BLESense传输传感器数据。

要配置网关以连接到您的传感器:

网关将从你的设备中提取配置,并准备好开始转发传感器数据。可以通过转到TestStream选项卡并单击StartStream按钮来验证它是否正常工作。

我们创建了一个模板项目来帮助你入门。该项目预先填充了手势标签和元数据信息,以及一些预先录制的示例手势文件。将此项目添加到你的帐户:

上传项目后,你可以开始捕获传感器数据。对于本教程,我们将通过TCP/IP从网关将数据流式传输到数据捕获实验室。通过网关从DataCaptureLab连接到Nano33BLESense:

现在数据正在流入数据捕获实验室,我们可以开始捕获手势数据集。

点击停止录制后,捕获的数据将保存在本地并与云项目同步。您可以通过转到ProjectExplorer并双击新创建的文件来查看该文件。

要实时对传感器数据进行分类,你需要决定将传感器流的多少和哪一部分提供给分类器。在边缘设备上,由于RAM有限,只能使用少量数据缓冲区,因此变得更加困难。为应用程序识别正确的分割算法可以通过限制执行的分类次数以及通过识别手势的开始和结束来提高准确性来节省电池寿命。

分割算法的工作原理是从传感器获取输入并缓冲数据,直到它们确定找到了新的段。那时,他们将数据缓冲区向下传递给管道的结果。最简单的分割算法是滑动窗口,它不断地将一组数据提供给分类器。但是,对于离散手势识别,滑动窗口有很多缺点,比如在没有事件的情况下进行分类。这会浪费电池并冒着将事件拆分到多个窗口的风险,这会降低准确性。

我们通过围绕传感器数据中的事件创建分段来识别数据捕获实验室中的事件。当您打开文件并定义事件所在的位置时,段会显示为一对蓝线和红线。

DataCaptureLab有两种标记事件的方法:Manual和Auto。在手动模式下,你可以手动将片段拖放到图表上,以识别传感器数据中的事件。自动模式使用分段算法根据可自定义的参数自动检测事件。对于本教程,我们将在自动模式下使用分段算法。我们用于确定事件的分段算法也将作为固件的一部分进行编译,以便设备上的模型将被提供与训练时相同的数据段。

我们已经根据迄今为止收集的数据集为这个项目创建了一个分割算法。要对新捕获的数据文件执行自动事件检测:

注意:如果事件与文件中的真实片段不匹配,您可能需要调整分割算法的参数。

请记住,自动事件检测仅检测已发生的事件,并不能确定已发生的事件类型。对于检测到的每个事件,你都需要为它们应用标签。要做到这一点:

1、在摘要选项卡中打开拳击手套手势演示项目

2、转到测试模型选项卡

3、从型号名称下拉列表中选择您的型号

4、通过单击选择一个或多个捕获文件

5、单击ComputeAccuracy按钮以使用所选模型对捕获进行分类

当你点击ComputeAccuracy按钮时,分割算法、预处理步骤和TensorFlow模型将被编译到一个知识包中。然后使用编译的知识包计算你选择的每个捕获的分类结果和准确性。单击单个捕获的结果按钮以查看所有检测到的事件的分类以及它们与地面实况标签的比较情况。

现在你已经离线验证了模型,是时候看看它在边缘的表现如何了。为此,我们将模型下载并闪存到Nano33BLESense。

下载库后,我们将构建固件并将其上传到Nano33BLESense。对于此步骤,你将需要Nano33知识包固件。为了编译固件,我们使用带有PlatformIO插件的VisualStudioCode。要使用此固件编译模型并刷新Nano33BLESense:

1、打开你的终端并运行:

4、将文件从libsensiml复制到nano33_knowledge_pack/lib/sensiml,这将覆盖存储库中包含的文件。5、将文件从知识包项目复制到nano33_knowledge_pack/src/

6、切换到VSCode中的PlatformI/Oextension选项卡

7、使用微型USB电缆将Nano33BLESense连接到计算机。

8、单击PlatformI/O选项卡中nano33ble_with_tensorflow下的上传和监控。

当设备重新启动时,它将启动并且模型将自动运行。

我们希望这篇博客为你提供了开始使用TensorFlowLiteForMicrocontrollers和SensiMLAnalyticsToolkit构建端到端TinyML应用程序所需的工具!

THE END
1.网关和路由器的区别网关和路由器的区别:本质区别、使用方式、功能不同。网关和路由器的区别 本质区别 网关这种设备主要是用来连接两种不同的网络。同时,网关还能够同时与两边的主机之间进行通信。但是两边的主机是不能够直接进行通信,是必须要经过网关才能进行通信。网关的工作是在应用层当中。路由器是属于网络层设备,通常是以包为单位https://baijiahao.baidu.com/s?id=1738322541857035497&wfr=spider&for=pc
2.网关离线是什么意思爱问知识人网关离线是指在网络连接中,将该连接的ip和dns设为自动获取。网关就是一个网络连接到另一个网络的关口https://iask.sina.com.cn/b/6ipbcouAGYQ.html
3.设备离线22什么意思60秒读懂世界设备离线22是什么意思?全面解析设备离线问题及解决方案 本文将详细解析设备离线22的含义,并针对不同场景下的设备离线问题提供相应的解决方案,帮助您快速恢复设备在线状态。 一、设备离线22的含义 设备离线22,通常指的是设备在网络连接方面出现了问题,导致设备无法正常连接到网络。其中,“22”可能代表一个特定的错误代码https://blog.yyzq.team/post/462170.html
4.边缘计算网关是什么意思边缘计算网关作用有哪些→MAIGOO知识边缘计算网关是什么意思 边缘计算网关作用有哪些 摘要:网关是网络互连设备,边缘计算网关就是用于边缘计算的中间节点,可以将传统中心化的数据处理过程移到离用户更近的地方完成,还可以通过标准容器在边缘计算网关设备上运行,具有数据采集、数据处理、数据存储、保障数据安全、远程管理、应用开发等作用,广泛应用于物联网、https://www.maigoo.com/goomai/301102.html
5.EasyNTS上云网关断电重启后设备离线是什么原因?EasyNTS上云网关是我们推出的一整套智能云组网产品,包含组网运维功能和多协议视频流拉转推功能。根据需求分为独立的软件产品、软硬一体的硬件产品。它可以解决内网设备上云、内网业务上云、资源数据分发、设备集中管理和低成本管控与运营,建立人与设备、设备与设备、网络与网络的安全连接。 https://blog.csdn.net/weixin_43194037/article/details/126181894
6.服务器处于离线状态什么意思?Worktile社区服务器处于离线状态什么意思 当服务器处于离线状态时,意味着该服务器当前无法与网络连接或未启动,无法提供网络服务。离线状态可能由多种原因引起,例如服务器硬件故障、网络连接问题、操作系统崩溃等。在服务器管理中,离线状态通常表示服务器无法正常工作,需要进行故障排除和修复。https://worktile.com/kb/ask/1832440.html
7.移动互联网时代的信息安全与防护超星尔雅学习通网课答案1、【单选题】伊朗核设施瘫痪事件是因为遭受了什么病毒的攻击?() A、埃博拉病毒 B、熊猫烧香 C、震网病毒 D、僵尸病毒 2、【单选题】震网病毒攻击针对的对象系统是()。 A、Windows B、Android C、ios D、SIMATIC WinCC 3、【单选题】美国“棱镜计划”的曝光者是谁?() http://xuzhou.ehqc.cn/html/95_13.html
8.路由器一直显示离线是什么问题路由器一直显示离线是什么问题 路由器一直显示离线可能是以下几种原因: 1. 路由器设置问题:可能是路由器的设置有问题,例如IP地址、子网掩码、网关等设置与网络配置不匹配,导致路由器无法连接到互联网。 2. 路由器故障:可能是路由器硬件出现故障,导致其无法正常连接到互联网。可以尝试重新启动路由器或者进行硬件故障排https://www.zcbm580.com/pos/6qvjn90qe.html
9.工业路由器显示离线是什么原因?如何解决?问题一:外网设置好了,路由器怎么显示离线? 解决:首先询问了一下客户那里设备的接线情况,客户回复接线图片,查看图片设备接线正确无误(lan口接电脑、wan口连接网线),查看网络设置—外网设置,看到客户这里连接类型选择了static ip 改为dhcp,保存并应用后设备在线 https://www.baimatech.com/bzwd-2022-12-12-02.html
10.有大佬知道米家全屋智能开关和灯泡都离线了是什么情况吗NGA玩家今天这个点好像都离线了,服务器炸了,如果有中枢网关蓝牙mesh设备都不会抽风。只是因为服务器炸了手机https://bbs.nga.cn/read.php?tid=39359009
11.网关服务器的意思网关华为云帮助中心为你分享云计算行业信息,包含产品介绍、用户指南、开发指南、最佳实践和常见问题等文档,方便快速查找定位问题与能力成长,并提供相关资料和解决方案。本页面关键词:网关服务器的意思。https://support.huaweicloud.com/topic/964505-1-W
12.DataStudio数据服务API网关认证中心数据可视化离线另外自己开发调度引擎和基于Python的执行引擎。使用Python开发执行引擎是数据工厂的离线分析功能的重要核心构建。这使得用户可以在DataStudio中使用Python基于执行引擎的SDK进行脚本开发,调用数据访问接口,实现循环、异步执行SQL、引入DataFrame框架等高级离线分析功能成为可能。https://www.jianshu.com/p/cacdcf5ec088
13.智能控制技术范文12篇(全文)由于采集的数据仅覆盖装置所在地附近的区域,无法推算整个系统的运行状态,故如何将电力系统暂态稳定紧急控制模式由现有的“离线计算策略表,实时故障匹配”模式向“在线预决策、实时匹配”的新控制模式发展以及原系统中出现的一些问题与其在新系统中相应的解决方案必须进行深入的研究。https://www.99xueshu.com/w/ikeyve5gy2gl.html