欢迎访问江南电竞app

低功耗MCU也能跑AI?揭秘TinyML应用实战!

2025-08-25 来源:电子工程专辑 原创文章
177

关键词: 边缘设备AI TinyML MCU 模型优化 实际应用

边缘设备上的人工智能(AI)正凭借其直接在低功耗设备上实现先进的计算能力,彻底改变嵌入式电子设备领域。传统上,神经网络需要强大的硬件和丰富的资源,但随着微型机器学习(TinyML)等技术的发展,即使计算资源有限,也能直接在设备上进行推理。在微控制器(MCU)上部署神经网络可以降低延迟、增强数据隐私并提高能效,而无需依赖昂贵且集中的云基础设施。

TinyML与边缘AI

TinyML为嵌入式系统带来了革命性的进步,使得在仅有数十KB RAM的设备上也能直接部署机器学习模型。其应用涵盖语音分析、图像识别以及基于信号处理的异常检测等多个领域。借助适用于MCU的TensorFlow Lite等优化框架,神经网络可以在MCU(STM32、ESP32或nRF52)上运行,而无需使用复杂的操作系统。

采用TinyML的一个有趣方面是模型优化。神经网络通常为高性能硬件设计,必须缩小尺寸并降低功耗才能在嵌入式设备上运行。量化和剪枝等技术可最大限度地减少内存占用并加快推理速度,使实施在廉价的低功耗MCU上成为可能。

PARTNER CONTENT
更多>
如何利用自偏置转换器简化交流/直流反激式设计
德州仪器2025-08-21
通嘉科技推出中大功率電源應用之高性能集成PFC+LLC Combo解決方案-LD7771/T                
通嘉科技华东区FAE张伟群/系統開發一部陈耀宗2025-08-22
使用数字控制器在次级侧实现 LLC 电流模式控制
德州仪器2025-08-19


图1:TinyML——AI与嵌入式系统的交集(来源:t4.ftcdn.net)

MCU优化AI模型

神经网络训练通常在资源充足的计算机上进行,然后将其转换为与嵌入式设备兼容的格式。第一步是选择合适的模型。轻量级网络(例如MobileNet)或基于低复杂度卷积神经网络(CNN)的模型非常适合此类应用。训练完成后,模型将以TensorFlow Lite(TFLite)格式导出,从而减小模型大小并提高在资源受限的硬件上的性能。为了进一步优化模型,量化是最有效的技术之一。

通过将网络权重从32位浮点数转换为8位整数格式,不仅能在不影响精度的前提下大幅减少内存占用,还能显著提升计算效率。另一方面,剪枝则可以消除冗余的神经元连接,从而在不改变网络行为的情况下减轻其负担。这两个过程都可以使用TensorFlow模型优化工具包等工具执行,然后将模型编译为可在MCU上运行的格式。

MCU上部署AI模型

模型优化完成后,下一步就是集成到兼容的MCU上。一个实际案例是使用ESP32和适用于MCU的TensorFlow Lite。这款MCU支持Wi-Fi和蓝牙,非常适合传输处理后的数据,因此特别适合边缘机器学习。实现过程首先是将量化模型转换为字节数组,然后将其包含在固件代码中。

通过TensorFlow Lite Micro库,模型被加载到MCU的RAM中,并可用于实时推理。典型的执行流程包括从传感器捕获数据、进行预处理,然后将其传递给神经网络进行预测。例如,语音识别就是一个常见的应用。连接到MCU的麦克风会采集音频样本,并使用梅尔倒谱系数(MFCC)等特征提取技术进行处理。然后将预处理后的数据传递给神经网络模型,以识别特定的关键词。推理过程仅需几毫秒,使系统无需连接到外部服务器即可响应。

MCUTinyML的实际应用案例

TinyML的应用已在多个行业产生影响。在农业领域,基于TinyML的传感器可以监控土壤湿度和温度等环境参数,从而优化用水并提高作物产量。微软FarmBeats开发了一项极具创新性的项目,利用集成TinyML的节能传感器收集土壤状况数据,以优化灌溉管理,在不浪费水资源的前提下提升作物产量。这些设备可在无网络覆盖的偏远地区运行,因为它们可在本地处理数据,从而无需持续连接云端。

TinyML的实际应用正在改变在MCU上直接收集和处理数据的方式,使系统无需持续连接至网络即可运行。在许多应用的开发过程中,开发人员可使用的工具包括广为人知的适用于MCU的TensorFlow Lite,该工具允许在资源有限的设备上运行深度学习模型,而Edge Impulse则简化了训练数据的收集和管理。Arduino Nano 33 BLE Sense和Raspberry Pi Pico等开发板为实际解决方案的实施提供了绝佳的硬件平台。

在工业监控领域,搭载机器学习模型的MCU可用于检测机器异常、分析振动和噪声,并实施预测性维护,从而降低成本并防止突发故障。例如,可以在制造工厂中部署一个基于TinyML的电机控制系统,该系统在本地处理MEMS传感器采集的数据,并在检测到异常振动时触发干预警报。

在安防领域,集成AI的MCU可用于识别可疑动作或检测异常声音,并触发实时通知,而无需将敏感数据发送到外部服务器。Arduino与博世合作开发了一个具体的应用:基于Arduino Nano 33 BLE Sense的TinyML系统通过分析陀螺仪和加速度计数据识别突发运动,适用于家庭安防系统或贵重物品的监控。通过这种方式,无需将敏感数据发送到外部服务器即可触发实时通知,从而确保隐私和安全。

边缘AI(Edge AI)的一个实际应用案例是构建用于控制家居设备的语音识别系统。该系统基于Arduino Nano 33 BLE Sense开发板实现,并通过Edge Impulse进行训练,形成一个超低功耗的语音助手,可在无网络连接的情况下识别“开灯”或“开门”等简单命令。该系统特别适用于行动不便、希望独立操作家用设备的用户。

另一个基于Arduino Nano 33 BLE Sense的有趣项目是室内空气质量监控。该设备使用集成在开发板中的HTS221传感器来检测环境的温度和湿度。项目实现的第一步是通过USB将MCU连接到计算机进行编程。完成此初始步骤后,需要安装相应的库文件,例如Arduino_HTS221,以访问环境数据。

图2:Arduino Nano 33 BLE Sense Rev2(来源:Arduino)

图3:Arduino Nano 33 BLE Sense上的HTS221传感器(来源:Arduino)

如果您还想包括挥发性有机化合物的检测,可以将附加传感器(例如盛思锐SGP40)及其相应的库文件集成到您的项目中,并查阅数据手册。

图4:盛思锐SGP40传感器(来源:盛思锐)

环境数据收集可通过Edge Impulse实现,记录不同条件下的温度和湿度值,用于训练一个能够识别可能预示异常状况的变化模式的机器学习模型。训练完成后,该模型将通过适用于MCU的TensorFlow Lite上传到Arduino Nano 33 BLE Sense开发板。编程草图读取传感器数据并运行模型,以实时分析环境。若检测到异常,系统可触发相应动作,如点亮警告LED或向外部设备发送蓝牙信号。

以下是读取HTS221传感器数据并将其显示在串口监视器上的示例代码:

#include <Arduino_HTS221.h>
void setup() {
    Serial.begin(115200);
    while (! Serial);
    if (! HTS221.begin()) {
        Serial.println("Error initializing the HTS221 sensor!");
        while (1);
    }
}
void loop() {
    float temperatura = HTS221.readTemperature();
    float umidita = HTS221.readHumidity();
    Serial.print("Temperatura: ");
    Serial.print(temperatura);
    Serial.print(" °C, Umidità: ");
    Serial.print(humidita);
    Serial.println(" %");
    delay(2000);
}

在空气质量监控项目中,提供的代码允许从集成在Arduino Nano 33 BLE Sense中的HTS221传感器读取数据,以检测环境的温度和湿度。在setup()函数中,初始化串行通信并验证传感器初始化是否成功。如果传感器未被正确检测到,程序将进入无限循环,并通过串行监视器报告错误。

在loop()函数中,代码分别使用readTemperature()和readHumidity()方法从传感器读取温度和湿度值。随后,将获取的值打印在串行监视器上,以实时显示环境条件。数据每2秒读取一次,这是通过delay(2000)函数实现的,从而实现定期更新。这种基本结构可轻松监控环境条件,并可将系统适配于其他应用,例如异常检测或与机器学习模型集成,以分析并做出智能数据驱动的决策。

为确保系统的可靠性,必须在不同的环境条件下进行测试,验证模型的准确性,并尽可能优化检测阈值以减少误报。该项目的进一步扩展包括与移动应用程序的集成,借助低功耗蓝牙(BLE)技术,可实现空气质量的实时监控。开发简洁的用户界面可借助MIT App Inventor或Flutter等工具实现,这些工具提供了在智能手机上直接可视化数据的实用解决方案。

要深入了解开发此项目所需的资源,可查阅Arduino_HTS221库的官方文档。Arduino论坛是解决各种技术问题的有效支持渠道。Edge Impulse提供了针对嵌入式设备收集和训练机器学习模型的分步教程,而适用于MCU的TensorFlow Lite则提供了在低功耗MCU上实施机器学习的指南。

资源管理性能优化

在MCU上执行AI模型会对可用资源的管理提出严格要求,这需要对内存、计算能力和能效进行仔细的优化。其中一个最关键的方面是内存的管理,而MCU中的内存通常极其有限;因此,必须采用避免浪费的内存分配策略,并尽可能使用静态缓冲区。

此外,使用AI模型量化技术有助于减小神经网络的规模,从而减少内存消耗并提高性能,而使用硬件加速器(如果可用的话)则代表着提高处理速度的机会。一些先进的MCU集成了专门用于处理神经网络的数字信号处理器(DSP),从而可减轻主CPU的计算负担,并更快、更高效地执行推理。此外,使用修剪技术可以减少所需的运算次数,在不影响模型准确性的情况下提高性能。

关于能效,尤其是对于电池供电的设备,可通过使用低功耗模式(例如深度睡眠模式)以及根据操作需求动态调整模型执行频率来降低非活动期间的功耗。此外,采用触发事件是一种有效的策略,仅在特定刺激下触发推理,从而减少活动处理时间并优化计算资源的使用。

精心选择AI模型架构也会影响其在MCU上的实现效率:轻量级神经网络专为资源受限的环境而设计,能够在准确性和计算消耗之间取得良好的平衡。这些技术的集成使我们能够构建兼具高性能与高效率的AI模型,足以应对MCU在资源上的限制。

总结与展望

TinyML在嵌入式系统中的应用为在资源受限的设备上实现AI开辟了新的可能性。直接在MCU上执行推理的能力可实现更快、更安全、更节能的应用。随着优化技术的发展和专用硬件的改进,边缘设备上的机器学习将继续扩展,为家庭自动化、安防和环境监控等领域带来创新。

将AI集成到嵌入式系统中已不再是遥不可及的梦想,而是人人皆可实现的现实,即使使用廉价硬件也是如此。借助正确的优化技术和精心的资源管理,智能解决方案可直接在MCU上实现,从而催生新一代自主互联的设备。




app江南
Baidu
map