TinyML 的应用潜力几乎是无限的。每天,创新者和工程师都会使用低功耗微控制器将一些想法变为现实。能够在资源最少的 MCU 上进行推理促成了基于边缘工业物联网 (IIoT) 设备的兴起,这其中一个例子是电池供电的无线电机状态监测传感器,它使用紧凑型微机电系统 (MEMS) 加速度计和神经网络算法来测量振动特征的变化。因为它使用电池,并且不需要有线网络通信和线路电源,所以很容易部署,并且成本很低。另一个例子是紧凑型农作物监测设备,使用 LoRaWAN 等远程、低功耗广域网 (LPWAN) 非常适合远程部署此类传感器。
在开发 TinyML 应用时,我们这里重点介绍一些可用的硬件评估套件,这些套件能够帮助您启动基于微控制器的机器学习应用项目。
本文中展示的开发套件和评估板得到一些流行的机器学习库和用于 TinyML 工作流程资源的支持,包括用于微控制器的 Google TensorFlow Lite 和 Edge Impulse,因而它们能够成为您第一个项目的理想起点。
谷歌 AIY 视觉套件(Google AIY Vision Kit)
或许集成度最高和准备就绪用于构建机器学习的平台是 Google AIY vision kit ,参见图 1。
图 1:Google AIY 视觉套件。(来源:Google)
Google AIY 视觉套件包装在坚固而简单的模切(die-cut)纸板箱中,其中包括流行的 Raspberry Pi Zero 单板计算机。该套件包含创建神经网络视觉设备的所有硬件、布线和固件,能够实现面部检测、确定情绪等任务,并可识别一组 1,000 个日常物品。除了 Raspberry Pi Zero 之外,该套件还包括一个 Raspberry Pi V2 摄像头、Google Vision Bonnet(帽形)以及需要的所有柔性 PCB 电缆和接线。Google Vision Bonnet 使用英特尔 Movidius Myriad 2 MA2450 低功耗视觉处理单元 (VPU) 来执行图像处理推理任务,多色 LED 和压电蜂鸣器提供套件的视觉和听觉输出。
视觉检测算法无需互联网连接即可运行。支持网站可提供有关套件设置和实现提供的所有 Google TensorFlow Lite 神经网络示例的分步教程。
本教程中的第一个演示是快乐检测器模型。一旦摄像头检测到人脸,套件上的 LED 就会亮起。微笑会将 LED 颜色变为黄色,皱眉则将 LED 变为蓝色。如果笑容很大,那么压电蜂鸣器会发出声音。如果检测到多个面部,LED 和压电输出则对应于所有面部表情的总分。
物体图像识别演示需要连接到 Raspberry Pi 以接收输出消息,用户可以通过将 HDMI 屏幕连接到 Raspberry Pi 或从另一台计算机建立 SSH 连接来实现此目的。本教程涵盖了这两种连接方法。使用 HDMI 屏幕时,还需要键盘和鼠标。
图 2 说明了显示出概率的图像分类算法终端输出。
图 2:图像分类终端输出。(来源:Google)
SparkFun 15170 开发板
另一个需要强调的评估平台是 SparkFun 15170 开发板,请参见图 3。该板设计为TinyML与 Google 的联合协作,其功耗则比 Google AIY 套件低得多。
图 3:SparkFun 15170 开发板。(来源:SparkFun)
SparkFun 15170使用 Ambiq Apollo3 Blue 超低功耗 32 位 ARM Cortex 微控制器,其中集成了Ambiq的专利亚阈值功率优化技术 (SPOT),时钟频率为 48MHz,能够在突发模式下增加到 96MHz,典型功耗曲线为 6μA/MHz。与 MCU 一起整合的还包括蓝牙®低功耗(BLE5) 无线收发器。板上集成的其他硬件包括 STMicroelectronics ST LIS2DH 3 轴加速度计和两个 Knowles MEMS 麦克风,开发板上还含有一个 OV7670 摄像头连接器、四个 GPIO 引脚、四个用户 LED、一个用户按钮和一个 FTDI 串行编程接头。如果按照3V时1.6mA的电流消耗,该板可以使用单个纽扣电池运行 10天。
读者可以在Google的CodeLab repository 中找到使用SparkFun 15170开发板的示例字触发应用。该示例采用第 2 部分中介绍的TensorFlow Lite for microcontrollers,并使用卷积神经网络来检测“是”与“否”,并闪烁不同颜色的 LED 来指示结果。
如果您希望开发其他 TinyML 应用,可以在 Pete Warden 和 Daniel Situnayake 编写的TinyML 书籍中找到更多示例。读者还可以通过访问 TinyML 基金会网站找到许多有价值的资源和讲座。
意法半导体32F746G Discovery Kit
TinyML 书中重点介绍的另一个开发板是意法半导体32F746G 开发套件(STM 32F746G Discovery Kit),参见图 4。该套件配备的资源虽然比边缘传感器设备所需多得多,但它是 TinyML 应用原型设计的绝佳平台,其中使用了具有多种低功耗特性和睡眠模式的 STM32F746NGH6 微控制器,非常适合低功耗边缘设备的开发和部署。 32F746G Discovery套件主要包括 4.3 英寸 480 x 272 彩色 LCD-TFT 电容式触摸屏、两个 STM MEMS 麦克风、128Mb Quad-SPI 闪存和 64Mb可存取 SDRAM、板载 ST-Link 调试器编程接口、以及立体声扬声器输出。外围接口和连接包括 USB、虚拟 COM 端口、SPDIF、Arduino Uno V3 接头和以太网插座。该板通过意法半导体的 STM32Cube IDE 和全套 CubeMX 库提供支持。贸泽电子 的 YouTube 频道上提供了展示此评估板的视频介绍。
图 4:意法半导体32F746G 开发套件。(来源:意法半导体)
LCD 对于需要在训练和测试期间更直观地指示建议模型结果的机器学习项目特别有用。
Silicon Labs Thunderboard Sense 2物联网开发入门套件
本文重点介绍的最后一款 TinyML 开发板是 Silicon Labs 的 Thunderboard Sense 2,请参见图 5。Thunderboard Sense 2 的核心是 Silicon Labs EFR32 Mighty Gecko 无线片上系统 (SoC),该2.4GHz 无线电系统支持多种协议,包括BLE、Thread 和 Zigbee。 EFR32 系列微控制器具有极低功耗,是许多 IIoT/IoT 应用的理想选择。该板还包含有完整的传感器系列,包括相对湿度和温度、气压、室内空气质量和气体、环境光和紫外线、数字麦克风、霍尔效应传感器以及 6 轴 MEMS 组合陀螺仪和加速度计。Thunderboard Sense 2的其他功能包括集成的 Segger J-Link 调试器、USB 虚拟COM端口和高亮度 LED等。
图 5:Silicon Labs 的Thunderboard Sense 2 IoT 开发入门套件。(来源:Silicon Labs)
Thunderboard Sense 2 是 Edge Impulse 支持的多个开发板之一,Edge Impulse 是一个集成的工作流程平台,旨在训练、测试和部署嵌入式微控制器机器学习应用。
在 Edge Impulse 中,有几个示例模型可供试验,例如用于手势识别的连续运动识别。图 6 突出显示了用于指导创新者完成开发过程的具体方法。为了准备通过 Edge Impulse 一起使用目标板,需要在开发计算机上托管几个工具来协助数据采集过程,也可以使用多种来源实现数据收集,请参见图 7。
图 7:Edge Impulse 数据采集选项。(来源:Edge Impulse)
无论希望实现何种基于边缘的应用,您都会发现本文中重点介绍的开发板之一应该符合您的要求。如果您需要更多灵感,可能会发现贸泽电子的一些机器学习项目示例很有帮助。一个例子是通过Edge Impulse 平台用于在包装生产线的标签位置检查应用。
现在是时候进行开发了!