在开始使用 TinyML时,可能都有一个令人生畏的经历。传统上看,选择合适的神经网络模型、训练模型并对其进行调整以进行部署的过程非常复杂。然而,随着专门为 TinyML 应用设计的 人工智能/机器学习(AI/ML)资源数量的不断增加,可以随时得到支持和帮助。在本文中,我们回顾并解释 TensorFlow Lite、Edge Impulse 和 Fraunhofer AIES 在资源有限的微控制器上训练和部署 AI 模型过程中使用的流行方法。
TinyML:部署于网络边缘应用
在工业电机振动监测应用中,开发人员将通过收集来自数十个不同电机的振动传感器数据开始设计过程,通常使用加速度计。每个电机都应处于潜在故障的不同阶段,因此能够收集具有代表性的数据。同样,处于完美工作状态的电机数据也需要记录。下一步是选择合适的算法,这些算法本质上是几行代码,可以发现构成偏离完美运行状态的振动特征规则。开发团队在不了解各个振动传感器数据之间关系和复杂性的情况下,训练算法根据传感器数据进行预测。因此,所创建的机器学习算法构成一个系统模型,并可以生成电机运行状况的预测。重要的是要强调,虽然 ML 模型是一种有益的资源,但推理会根据训练数据而不是准确的答案进行预测、估计和近似。
基于网络边缘的推理越来越受欢迎,原因有如下几个。首先,无需将数据回传至服务器进行推理,因而边缘推理消除了延迟和带宽成本。同时,由于没有数据被传输或存储在云服务器上,其额外的好处是数据隐私更容易得到保护。为这些边缘应用选择的微控制器通常只消耗很少的功率,其中许多能够长期使用电池工作,从而降低了安装复杂性。综上所述,许多用于科学推理应用程序的高性能 GPU 需要消耗数百瓦的能量,在某些情况下可能达到500 瓦,而微控制器的典型功耗曲线则为毫瓦甚至微瓦级。
能够加速开发和部署的 TinyML 资源
随着在网络边缘推理概念的兴起,也出现了一些专门为低功耗微控制器设计的资源。
TensorFlow Lite for Microcontrollers
业已成熟的机器学习资源之一是 TensorFlow,它最初由 Google 于2015 年开发,是一个端到端的开源机器学习平台,可提供一个由工具、程序库和社区资源组成的全面、灵活生态系统。TensorFlow 允许开发人员构建和部署各种机器学习应用,例如科学、医学和各种商业应用等。
TensorFlow Lite for Microcontrollers 开源程序库由 Google 于 2017 年推出,旨在满足人们对在只有数十 KB 内存的低功耗微控制器上进行推理的日益增长需求。TensorFlow Lite 的核心运行时间二进制库(runtime binary library)仅适用于 Arm Cortex M3 上的 18 kB 内存,并且可以运行多种不同的基本神经网络模型。它可以在“裸机”上运行,因为它不依赖于操作系统、C 或 C++ 库或直接内存分配要求。其程序库是用 C++ 11 编写,需要 32 位微控制器。
TensorFlow Lite for Microcontrollers使用的模型是 TensorFlow 训练环境中可用模型的转换、微控制器优化型代表。TensorFlow Lite for Microcontrollers在 Arm Cortex-M 系列上得到很好的支持和广泛测试,并可移植到其他 MCU 架构,例如基于 Tensilica 的 Espressif ESP32 系列和 Synopsys ARC 处理器内核系列。开发人员可以在此处查找TensorFlow Lite for Microcontrollers的综合指南。
除了TensorFlow Lite for Microcontrollers之外,另一组优化的程序库资源TensorFlow Lite可用于 Android、iOS 和基于 Linux 的嵌入式单板计算机,例如 Raspberry Pi 和 Coral Edge TPU。
图 1 展示了使用 TensorFlow Lite for Microcontrollers 的工作流程。
图 1:TensorFlow Lite for Microcontrollers 的工作流程。(来源:TensorFlow.org)
Edge Impulse
Edge Impulse 为嵌入式微控制器设备提供了一个完整的机器学习培训到部署(training-to-deployment)平台。 Edge Impulse 预计将用于全球 20,000 多个项目,其目标是在最短的时间内让嵌入式 ML 项目从开始进入到生产,并将部署时间从几年缩短到几周。其重点是使用配备各种传感器的嵌入式设备,包括音频和视觉设备,并大量部署它们。目标嵌入式设备包括从资源受限的低功耗微控制器到功能更强大的微处理器和 CPU,所支持的模型类型包括 TensorFlow 和 Keras。
图 2:Edge Impulse — 用于微控制器机器学习开发的完整综合平台。(来源:Edge Impulse)
Edge Impulse 的典型 ML 应用包括工业、物流和医疗保健应用,例如预测性维护、资产跟踪和监控以及人类和动物感测等。
Edge Impulse 遵守Responsible AI Institute行为准则,会要求用户签署一份许可,证明他们的应用程序不涉及犯罪、监视或国防用途。
图 3 说明了 Edge Impulse 的模型测试功能。在此示例中,STMicroelectronics MCU 与数字麦克风一起结合使用,目的是识别两个单词,即 house 和 zero。模型测试输出显示出每个词、背景噪声和其他未分类词的概率百分比。
图 3:Edge Impulse 的模型测试功能。(来源:贸泽电子)
Fraunhofer AIfES
德国研究机构Fraunhofer用C语言开发了一个独立于AI嵌入式系统(AIfES)平台的程序库。AIfES 为开源型,可在 GNU 通用公共许可(GPL)配置下使用。它使用标准库 GNU GCC,因而可显著简化系统实施,并且几乎可以在任何硬件设备上运行,包括从 8 位微控制器到功能更强大的智能手机处理器和台式计算机 CPU等。 AIfES 库的一个版本也可供基于 Arduino 平台设计的创新者使用。
AIfES 可免费用于个人项目,而对于商业应用则需要许可协议。
图 4 展示了涵盖各种平台类型的 AIfES 库功能和兼容性。 Fraunhofer AIfES 库与流行的 Python ML 框架(例如 TensorFlow、Keras 和 PyTorch)兼容,并且过程相似。
图 4:Fraunhofer 人工智能嵌入式系统AIfES 库功能。(来源:Fraunhofer微电子电路和系统研究所(Fraunhofer Institute for Microelectronic Circuits and Systems))
TinyML 实施的后续步骤
在本文中,我们重点介绍了适合快速开发和部署基于网络边缘 TinyML 应用的三个机器学习库和平台。为网络边缘部署开发嵌入式机器学习工业物联网(IIoT)应用可能是一个非常巨大的挑战,但可用的设计资源和工作流程能够极大地简化神经网络的复杂性,也减少了对深入理解数据科学原理的需求。
上一篇:携手Open RAN领域合作伙伴,VIAVI可在本地、云或以“即服务”提供测试和保障
下一篇:Ignion选用AWS云服务来变革物联网设计流程
推荐阅读最新更新时间:2024-11-08 19:59
- LTC6912CGN-1 演示板,双路数控 PGA/可编程数据采集测控系统
- 【训练营】史努比dog
- TA2069AFG 3V立体声耳机放大器典型应用
- AM2F-2418SZ 18V 2 瓦 DC/DC 转换器的典型应用
- 555电子琴
- CL7 线性、100mA、恒流 PWM 调光 LED 驱动器的典型应用
- 使用 ROHM Semiconductor 的 BA30BC0WT 的参考设计
- REF194 升压型 3.3V 基准的典型应用电路,具有限流电压基准
- 使用 ON Semiconductor 的 STK433-730-E 的参考设计
- 使用 ROHM Semiconductor 的 BD45381 的参考设计