机器学习(ML)早已渗透到云计算的许多领域。随着 ChatGPT 等大模型的爆火,越来越多基于 AI 的应用应运而生。
于是问题来了:AI 怎么和嵌入式设备结合?“AI + 硬件”到底怎么落地?这是越来越多人开始关心的话题。
边缘 ML 的发展趋势,指向了 tinyML。TinyML 的目标,是在资源受限的设备上实现 ML 算法,比如基于 Arm Cortex-M 处理器的微控制器。这篇文章就重点拆解 TinyML 应用中比较典型的三类真实用例。
一、用例1:关键词识别
最常见的 tinyML 用例之一,是关键词识别。
关键词识别,指的是设备能够识别“嗨,Siri”“Alexa”“你好”这样的唤醒词或指令词。关键词识别在边缘设备上的用途很多。比如,用低功耗处理器持续监听一个关键词,唤醒更强大的处理器;又比如,用微控制器解码“前进”“后退”“停止”“向右”“向左”等指令,控制机器人的运动。
在 tinyML 里,关键词识别通常通过麦克风捕捉语音输入信号。语音信号本质上是随时间变化的电压,经过数字信号处理后被转换为频谱图。这个频谱图就是一个与输入信号频率对应的时间序列。
然后,频谱图会被送入神经网络,用来训练微小的 ML 算法识别特定单词。整个流程如图 1 所示。

图 1:对输入语音信号进行数字处理,生成用于训练神经网络检测关键词的频谱图。(图片来源:Arm)
典型的实现方式,是把固定的语音窗口送入神经网络。网络随后会评估某个关键词被说出的概率。例如,如果有人说“是”,神经网络可能报告 91% 的概率是“是”,2% 的概率是“不是”,1% 的概率是“在”。
通过语音控制机器的能力,正在被许多设备制造商密切关注,未来几年有望集成到更多设备中。
二、用例2:图像识别
tinyML 的第二种典型用例,是图像识别。
边缘设备做图像识别的应用场景相当多。检测门边是否有人、有包裹还是什么都没有,这种场景大家可能已经不陌生。还有很多其他应用,比如监测老式模拟仪表、检测草坪长势、统计鸟的数量等等。
图像识别看起来门槛不低,但有几个低成本平台可以帮助开发者快速上手。我最常用的是 OpenMV。
OpenMV 是一个开放式机器视觉平台,包含集成开发环境(IDE)、用 Python 编写的库框架,以及来自 Seeed Technology 的相机模块,能帮助开发者快速构建机器视觉应用(图 2)。

图 2:OpenMV 相机模块可用于图像识别,在简单的 IDE 环境下使用 Python 即可完成开发。(图片来源:Beningo Embedded Group)
这块相机模块基于 STMicroelectronics 的 STM32H7 Cortex-M7 处理器,通过板上的扩展针座可以进一步扩展。硬件可以采用电池供电,也可以更换相机模块。一个不错的入门用例,是基于 CIFAR-10 数据集和 Arm CMSIS-NN 库做图像识别。对于不方便访问 YouTube 的读者,也可以在社区中搜索相关用例分享。
三、用例3:预测性维护
最后一种典型用例,是预测性维护。预测性维护利用统计分析、ML 等工具来预测设备状态,主要依据包括:
比如一个工厂里可能有一系列电机、风扇和机器人生产设备。公司希望尽量缩短停机时间,最大化产量。如果设备装有传感器,通过 ML 和上述技术对数据进行解读,就能判断设备何时接近故障状态。这样的系统架构大致如图 3 所示。

图 3:tinyML 用于预测性维护的智能传感器架构。(图片来源:STMicroelectronics)
将智能传感器连接到运行 tinyML 的低功耗微控制器,可以构建出许多实用的应用。例如,监测暖通空调设备、检查空气过滤器、检测电机的不规则振动等等。

这样一来,预测性维护会变得更有条理,帮助企业摆脱各种高昂的应急维修,转向更优化的维护计划。
四、结语
TinyML 在边缘的潜在应用几乎无穷无尽。我们已经讨论了当前最常见的几类场景,但它还能用于手势检测、引导控制等领域。随着越来越多的边缘设备开始使用 tinyML,真正的问题变成了:你会用 tinyML 在边缘做什么?
说明:文中内容部分引用自网络,侵权请联系删除。