**这是本文档旧的修订版!**
TinyML对RP2040的支持
TinyML - 微型机器学习被广泛定义为机器学习技术和应用的一个快速发展的领域,包括硬件、算法和软件,能够在极低功耗下(通常在mW范围或以下)执行设备上的传感器数据分析,因此,可以实现各种始终在线的用例,并针对电池驱动的设备。
机器学习(ML)是一个动态而强大的计算机科学领域,它几乎渗透到我们与之互动的每一个数字事物,无论是社交媒体、手机、汽车,甚至是家用电器。 尽管如此,还有很多ML想去的地方,但却很难到达。这是因为许多最先进的机器学习模型需要大量的计算资源和功耗来执行推理,这是运行ML模型并对其输入数据进行预测的行为。 对高性能计算资源的需求将许多ML应用程序限制在云上,在云上可以随时使用数据中心级别的计算。 为了允许ML扩展其应用范围,并开启进程中的应用新时代,我们必须找到在更小、资源更受限的设备上促进ML推理的方法。这种追求导致了被称为微型机器学习或TinyML (TinyML基金会的商标术语,已成为该技术的同义词)的领域。
Edge Impulse于2022年3月1日,正值树莓派诞生10周年之日,正式宣布TinyML对树莓派Pico、RP2040的支持TinyML对树莓派Pico、RP2040的支持,这样在强大的RP2040处理器上每个人都可以创建自己的自定义机器学习解决方案,从收集数据到在设备上运行推理。
1. 如何使用?
要开始使用树莓派RP2040和Edge Impulse,你需要:
- Raspberry Pi 2040微控制器: 预构建的固件和Edge Impulse Studio导出的二进制是为Raspberry Pi Pico量身定制的,但只需几个简单的步骤,您就可以收集数据,并与其他基于RP2040的板运行您的模型,如Arduino Nano RP2040 Connect。
- (可选)如果你正在使用树莓派Pico,可以通过我们的嵌入式系统学习板,使它更容易连接外部传感器的数据收集/推断。
这个开发板的Edge Impulse固件是开源的,托管在GitHub上 - Edge Impulse firmware for Raspberry Pi RP2040。
2. 支持的应用:
TinyML的典型应用包括:
- 关键字识别
- 物体识别与分类
- 手势识别
- 音频检测
- 机器监控
TinyML应用程序在日常生活中的一个例子是谷歌和Android设备中使用的音频唤醒词检测模型。图2显示了一个尾迹字检测组件的示例。为了“打开”,当他们听到“OK谷歌”,Android设备使用了一个运行在DSP上的14kB语音检测ML模型。其他许多虚拟助理也是如此
3. TinyML软件:TensorFlow
在很多方面,TinyML背后的工具和概念背后的软件是它最重要的特性。 一般来说,TinyML开发中最流行和内置的生态系统是用于微控制器的TensorFlow Lite (TF Lite Micro)。TinyML在TF Lite Micro上的通用工作流如下图4所示。 TF Lite Micro是专门为资源受限的设备上的ML任务而设计的,其中mcu是重点。 一个基于python的环境,TF Lite Micro充满了内置的库和工具包:
- 数据采集
- 预处理
- 模型架构
- 培训
- 评价
- 优化
- 量化
TinyML的好处: TinyML的主要好处是它的可移植性。在廉价的微控制器上运行,使用小电池和低功耗意味着,使用TinyML,人们可以轻松地将ML集成到几乎任何廉价的东西中。 除此之外,TinyML还具有增加安全性的好处,这是由于计算的局部特性。在美国,数据不需要发送到云端。在物联网等应用程序中处理个人数据时,这一点非常重要。