在低功耗MCU上实现人工智能和机器学习

news2025/2/24 9:04:43

作者:Silicon Labs

人工智能(AI)和机器学习(ML)技术不仅正在快速发展,还逐渐被创新性地应用于低功耗的微控制器(MCU)中,从而实现边缘AI/ML解决方案。这些MCU是许多嵌入式系统不可或缺的一部分,凭借其成本效益、高能效以及可靠的性能,现在能够支持AI/ML应用。这种集成化在可穿戴电子产品、智能家居设备和工业自动化等应用领域中,从AI/ML功能中获得的效益尤为显著。具备AI优化功能的MCU和TinyML的兴起(专注于在小型、低功耗设备上运行ML模型),体现了这一领域的进步。TinyML对于直接在设备上实现智能决策、促进实时处理和减少延迟至关重要,特别是在连接有限或无连接的环境中。

TinyML是指在小型、低功耗设备上应用机器学习模型,尤其是在微控制器(MCU)平台上,这些MCU经过优化,可以在设备有限的资源体系内运行。这使得边缘设备能够实现智能决策,支持实时处理并减少延迟。量化(Quantization)和剪枝(Pruning)等技术用于减小模型大小并提高推理速度。量化通过降低模型权重的精度,显著减少内存使用而几乎不影响准确性;剪枝则通过去除不太重要的神经元,进一步减小模型规模并提升延迟性能。这些方法对于在资源有限的设备上部署ML模型至关重要。

PyTorch和TensorFlow Lite都是实现机器学习模型的主流框架。PyTorch是一个开源机器学习库,被广泛用于人工智能应用的开发,包括可以部署在微控制器上的应用程序。PyTorch提供了用于机器学习的工具和库,包括计算机视觉和自然语言处理,可用于低功耗和小尺寸设备。

TensorFlow Lite for Microcontroller(TFLM)能够在非常受限的MCU类设备上运行具有Flatbuffer转换功能的TF Lite模型。这减少了模型的大小,并优化了它在MCU上的推理。

另一个重要的工具是来自ARM的CMSIS-NN库,它为Cortex-M处理器提供了优化的神经网络内核来运行TFLM模型。CMSIS-NN库提高了性能并减少了内存占用,使其更容易在基于ARM的MCU上运行ML模型。

此外,一些MCU还配备了专用的AI/ML硬件加速器,如Silicon Labs(芯科科技)的EFM32无线SoC和MCU,可以显著提高ML模型的性能,使更复杂的应用程序能够在这些设备上更快、更高效地运行。人工智能加速器擅长并行化任务,如矩阵乘法、卷积和图形处理。通过利用多样化的并行性,它们可以一次执行大量的计算。这使得人工智能工作负载的速度大大提高,同时保持低功耗。这些加速器还增强了内存访问模式,减少了数据传输开销,主CPU—CortexM可以进入低功耗睡眠模式,以节省更多的能量或管理额外的任务。通过使数据更接近计算单元,它们减少了等待时间。其结果是增强了性能、降低了功耗和延迟。

实际应用

TinyML的实际应用是多种多样且有影响力的。一个值得注意的示例是音频和视觉唤醒词,当说出特定的关键字或在图像中检测到某人时,设备会触发动作。这项技术被用于智能扬声器和安全摄像头,支持它们在识别到唤醒词或检测运动时激活。另一种应用是工业环境中的预测性维护。工厂设备上的传感器持续监测振动和温度等参数,可使用TinyML模型检测来异常并在故障发生之前预测维护需求,这有助于减少停机时间和维护成本。

手势和活动识别是TinyML的另一种令人兴奋的应用。配备加速度计和陀螺仪的可穿戴设备可以监测身体活动,如走路、跑步或特定手势。这些设备使用TinyML模型实时分析传感器数据,为健身追踪或医疗诊断提供有价值的见解。在农业领域,TinyML被用于环境监测。智能农业系统分析土壤湿度和天气条件,以优化灌溉,提高作物产量和资源效率。

TinyML还增强了健康监测功能。诸如连续血糖监测仪(CGM)这样需要长时间电池寿命和实时数据处理的设备,都能够极大地受益于这项技术。此外,智能床传感器可以在没有直接接触的情况下评估病人的呼吸模式,为远程观察提供不间断的健康数据。这一创新在管理老年人护理和慢性疾病方面特别有价值,因为持续监测有助于及早发现潜在的健康问题。

启动开发

要开始构建自己的TinyML应用,您需要了解TinyML的基础知识并选择合适的硬件。根据您的应用,您可能需要传感器来收集数据,例如加速度计、麦克风或摄像头。设置开发环境包括安装Simplicity Studio集成开发环境(IDE)、SDK和TinyML所需的资源库。

下一步是收集和准备与应用相关的数据。例如,如果您正在构建一个手势识别系统,您需要收集不同手势的加速度计数据。收集数据后,您需要对其进行预处理,使其适合训练您的模型。训练模型需要在功能强大的机器上使用高级框架,如TensorFlow或PyTorch。一旦训练完毕,模型需要使用量化和剪枝等技术进行优化。

在完成优化后,即可将模型转换为适合MCU的格式,如TensorFlow Lite格式。最后一步是将优化后的模型部署到MCU,将其与应用程序代码集成,并对其进行全面测试,以确保其满足性能和精度要求。基于实际性能的不断迭代和改进对于完善TinyML应用至关重要。

利用芯科科技的解决方案在微控制器上实现人工智能和机器学习

芯科科技提供了一系列解决方案,有助于在MCU上实现AI/ML。EFR32/EFM32(xG24、xG26、xG28)和SiWx917系列微控制器由于其低功耗和强大的性能而非常适合TinyML应用。以下是在芯科科技MCU上实现AI/ML的详细技术指南:

数据采集与预处理

数据采集:使用连接到MCU的传感器采集原始数据,例如加速度计、陀螺仪和温度传感器等传感器都可用于各种应用。

预处理:对数据进行清理和预处理,使其适合训练。这可能包括过滤噪声、对数值进行归一化处理以及将数据分割到窗口中。为此,芯科科技提供了数据采集和预处理工具。

数据采集工具则由合作伙伴SensiML提供:https://github.com/sensiml/sensiml_xG24_dual_audio_imu_capture

模型训练

模型选择:根据应用选择合适的ML模型。常用的模型包括决策树(decision tree)和支持向量机(vector machine)。

训练:在高性能云服务器或带有GPU的本地PC上使用TensorFlow训练模型。这包括将预处理数据输入模型并调整参数以最小化误差。

模型转换:使用TensorFlow Lite转换器将训练模型转换为与TF Lite Micro兼容的格式。TensorFlow Lite for Microcontrollers (TFLM)中的FlatBuffer转换包括将TensorFlow Lite模型转换为FlatBuffer格式,这是一种紧凑的二进制格式,可以高效地存储和快速地访问。这个过程对于在内存和处理能力有限的微控制器上运行机器学习模型至关重要。FlatBuffers支持直接访问模型而无需解压。一旦采用FlatBuffer格式,该模型可以由微控制器执行,使其能够执行推理任务。这种转换减小了模型大小,使其适用于内存非常有限的设备,并且可以快速访问和执行模型,而无需进行大量解析。此外,它还确保该模型可以在运行速率低于1GHz、代码空间有限(通常低于3MB)、SRAM有限(约256KB)的MCU上被无缝集成和执行。

模型部署

与Simplicity SDK集成:使用芯科科技的Simplicity SDK将TF Lite Micro与MCU集成。

闪存模型(Flashing the Model):将转换后的模型移植到MCU的Flash上。这可以使用Simplicity Studio完成,它为芯科科技MCU的编程提供了一个用户友好的界面。

推理和优化:应用量化和剪枝等优化技术,以减小模型大小并提高性能。

运行推理:一旦模型部署完成,它可以在MCU上运行推理。这包括向模型中输入新数据并获得预测结果。

软件工具链:新的软件工具包旨在支持开发人员使用一些最流行的工具套件(如TinyML和TensorFlow)快速构建和部署人工智能和机器学习算法。AI/ML软件帮助设计人员创建新的应用程序。除了原生支持TensorFlow来为高效推理提供优化内核之外,芯科科技还与一些领先的AI/ML工具提供商(如SensiML和Edge Impulse)合作,以确保开发人员拥有端到端的工具链来简化机器学习模型的开发,这些模型针对无线应用的嵌入式部署进行了优化。通过将这一全新的AI/ML工具链与芯科科技的Simplicity Studio开发平台以及xG24、xG28和xG26系列SoC结合使用,开发人员可以创建能够从各种互联设备获取信息的应用,这些设备都可以相互通信,从而做出智能的、由机器学习驱动的决策。

芯科科技提供各种工具和资源来支持ML应用。以下是其中一些例子:

机器学习应用:芯科科技提供集成化的硬件、软件和开发工具,帮助客户快速创建适用于工业和商业应用场景的、安全的智能设备。开发平台支持嵌入式机器学习(TinyML)模型推理,由Tensorflow Lite for Microcontrollers(TFLM)框架支持。该存储库包含一组利用ML的嵌入式应用程序:https://github.com/SiliconLabs/machine_learning_applications

机器学习工具包(MLTK):这是一个带有命令行实用程序和脚本的Python软件包,可支持基于芯科科技的嵌入式平台开发的机器学习模型。它包括从命令行界面或Python脚本执行ML操作的各项功能,并可确定ML模型在嵌入式平台上的执行效率,以及使用谷歌Tensorflow训练ML模型。

参考数据集:MLTK附带参考模型使用的数据集。这些数据集可以在Github上找到:

https://github.com/SiliconLabs/mltk/blob/master/docs/python_api/datasets/index.md

音频特征生成器(Audio Feature Generator):芯科科技提供了与TensorFlow Lite模型一起使用的音频特征生成器。它根据sl_ml_audio_feature_generation_config.h中的配置去进行前端的初始化来生成功能,并以流模式来初始化和启动麦克风。Audio Feature Generator | API Documentation | Machine Learning | latest | Silicon Labs

MLPerf Tiny BenchmarkMLPerf Tiny Benchmark是由一家开放工程联盟MLCommons设计的性能评估套件。它旨在衡量ML系统在推理方面的性能和能效,将训练好的ML模型应用于新数据。该基准是专门为低功耗的最小设备量身定制的,通常用于深度嵌入式应用,如物联网(IoT)或智能传感。

芯科科技参与了MLPerf Tiny基准测试,提交了展示机器学习工具包(MLTK)功能的解决方案。该工具包包括TinyML基准测试使用的几个模型,可在GitHub上获得,涵盖异常检测、图像分类、关键字识别和视觉唤醒词等应用程序。

与以前的版本相比,使用MLPerf Tiny v1.0的结果显示出了推理速度提高,以及代码规模和内存使用量的减少。例如,Plumerai的推理引擎表现出了显著的增强,包括支持时间序列神经网络,如基于LSTM的循环神经网络(RNN),这在运动传感器、健康传感器、语音和音频应用中很常见。

AI/ML合作伙伴

芯科科技与业界领先的供应商合作,包括Edge Impulse、SensiML、NeutonAI和Eta Compute等AutoML工具链和SaaS云伙伴建立了合作关系。此外,诸如Sensory和MicroAI等解决方案提供商,以及包括Capgemini和Jabil在内的设计合作伙伴都是该网络的一部分。这些联盟提供了可简化综合解决方案开发的平台,使初学者更容易接触到边缘的AI/ML。

TinyMLMCU上的优势:

  • 成本低-MCU价格合理
  • 绿色环保-能耗低
  • 易于集成-可轻松将MCU集成到现有环境中
  • 隐私与安全-在本地处理数据,无需联网传输
  • 快速原型开发-快速开发概念验证解决方案
  • 自主可靠-微型设备在任何环境下都能稳定运行
  • 实时处理-将延迟降至最低

嵌入式开发应用流程

开发具有机器学习功能的应用需要两个不同的工作流程:

  • 使用Simplicity Studio来创建无线应用的嵌入式应用开发工作流程。
  • 创建将添加到嵌入式应用的机器学习功能的机器学习工作流程。
  • 目标应用
  • 运动检测:在商业办公大楼里,许多灯都是由运动探测器控制的,该探测器监测占用情况,以确定灯是否应该打开或关闭。然而,当员工在办公桌前打字时,由于动作仅限于手和手指,因为运动传感器本身无法识别他们的存在,所以可能会出现自动关灯而无法为员工可提供照明。通过将音频传感器与运动探测器连接起来,额外的音频数据(如打字的声音)可以通过机器学习算法进行处理,从而使照明系统能够更明智地决定灯是应该打开还是关闭。

    预测性维护:可使用芯科科技的EFR32 MCU来开发一个预测性维护系统。这需要使用连接的传感器来收集机器的振动和温度数据,同时训练一个模型来根据这些数据预测潜在的故障,然后将该模型部署在MCU上,实现对机器的实时监控和维护计划。

    健康监测:使用EFM32 MCU构建可穿戴健康监测设备。使用传感器收集心率和体温等生命体征的数据。训练一个模型来检测数据中的异常。在MCU上部署该模型,帮助用户对健康情况提供实时分析了解。

    智能农业:使用芯科科技的MCU开发智能灌溉系统。使用连接的传感器收集土壤湿度和天气数据。训练一个模型,以便根据这些数据来优化水的使用。将该模型部署在MCU上,控制灌溉系统,提高作物产量。

    结论

    MCU不再局限于简单任务,而是正成为实现AI的强大平台。通过探索面向AI优化的MCU,我们可以为电池供电的智能设备开辟新的潜在应用。无论是智能家居设备还是工业传感器,AI驱动的MCU正在重塑嵌入式系统的未来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2304311.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QQ登录测试用例报告

QQ登录测试用例思维导图 一、安全性测试用例 1. 加密传输与存储验证 测试场景:输入账号密码并提交登录请求。预期结果:账号密码通过加密传输(如HTTPS)与存储(如哈希加盐),无明文暴露。 2. 二…

细说STM32F407单片机2个ADC使用DMA同步采集各自的1个输入通道的方法

目录 一、示例说明 二、工程配置 1、RCC、DEBUG、CodeGenerator 2、USART6 3、TIM3 (1)Mode (2)参数设置 (3) TRGO (4)ADC1_IN0 1)ADCs_Common_Settings 2&a…

[python脚本]论文1.(一)CPU/内存数据分析和分组

CPU 收集到的CPU数据,格式如下: 由于这里6个数据为一组来收集latency的数据以及各个分位值的数据,而本质上每一行都是一次完整的测试,因此这里将这个csv文件分为两个文件,第一个是和latency相关的,将6条数…

一周学会Flask3 Python Web开发-Jinja2模板基本使用

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 我们平台开发web系统,必须用到网页,单纯的静态网页无法满足我们的需求。我们可以使用模版引擎技术&am…

《操作系统 - 清华大学》8 -3:进程管理:进程特点

深入剖析进程的特点、实现及进程控制块 一、进程的特点 (一)动态性 进程具有明显的动态性。它可以被动态创建,在执行过程中会发生状态切换,从一个状态转变为另一个状态。当所有任务执行完毕后,进程还会结束运行。整…

Java 大视界 -- 总结与展望:Java 大数据领域的新征程与无限可能(96)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

【微服务】深入解析spring aop原理

目录 一、前言 二、AOP 概述 2.1 什么是AOP 2.2 AOP中的一些概念 2.2.1 aop通知类型 2.3 AOP实现原理 2.3.1 aop中的代理实现 2.4 静态代理与动态代理 2.4.1 静态代理实现 三、 jdk动态代理与cglib代理 3.1 jdk动态代理 3.1.1 jdk动态代理模拟实现 3.2 CGLIB 代理…

pikachu靶场搭建教程

需要的东西 phpStudy: 链接: https://pan.baidu.com/s/1fJ-5TNtdDZGUf5FhTm245g 提取码:0278 pikachu-master: Github链接:https://github.com/zhuifengshaonianhanlu/pikachu 链接: https://pan.baidu.c…

游戏引擎学习第119天

仓库:https://gitee.com/mrxiao_com/2d_game_3 上一集回顾和今天的议程 如果你们还记得昨天的进展,我们刚刚完成了优化工作,目标是让某个程序能够尽可能快速地运行。我觉得现在可以说它已经快速运行了。虽然可能还没有达到最快的速度,但我们…

从零开始制作一个漂亮的悬浮按钮

0.1血版 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &l…

Win11更新系统c盘爆满处理

1.打开磁盘管理 2.右击c盘选择属性&#xff0c;进行磁盘管理&#xff0c;选择详细信息。 3.选择以前安装的文件删除即可释放c盘空间。

从零实现机器人自主避障

1. 编译工具安装 sudo apt update sudo apt install python3-catkin-pkg python3-rosdep python3-rosinstall-generator python3-wstool python3-rosinstall build-essential sudo rosdep init rosdep update2. 构建节点 mkdir -p ~/ros2_ws/src cd ~/ros2_ws ros2 pkg creat…

【Nacos】从零开始启动Nacos服务(windows/linux)

文章目录 前言前置条件官方网址一、Nacos下载1.1 选择Nacos版本1.2 下载 二、解压2.1 解压到某个文件夹 三、 启动3.1 方式一&#xff1a;直接使用命令启动3.1.1 进入bin文件夹3.1.2 进入命令行工具3.1.3 执行命令 3.2 方式二&#xff1a;修改配置文件后启动3.2.1 修改启动脚本…

即插即用Transformer、扩散模型、机器人规划、长文本检索增强生成 | Big Model Weekly 第57期...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 01 ProTransformer: Robustify Transformers via Plug-and-Play Paradigm 近年来&#xff0c;基于Transformer的架构在机器学习的各个领域占据了主导地位。本文介绍了一种新颖的鲁棒性注意力机制&#xff0c;旨…

FPGA DSP:Vivado 中带有 DDS 的 FIR 滤波器

本文使用 DDS 生成三个信号&#xff0c;并在 Vivado 中实现低通滤波器。低通滤波器将滤除相关信号。 介绍 用DDS生成三个信号&#xff0c;并在Vivado中实现低通滤波器。低通滤波器将滤除较快的信号。 本文分为几个主要部分&#xff1a; 信号生成&#xff1a;展示如何使用DDS&am…

DeepSeek各模型现有版本对比分析

文章目录 一、基础模型系列&#xff1a;V1 到 V3 的演进二、专用模型系列&#xff1a;推理与多模态三、版本选型与商业化趋势 DeepSeek作为最近特别火爆的模型&#xff0c;本文将对DeepSeek现有的主要版本进行对比分析,涵盖参数规模、训练数据、功能改进、应用场景和性能表现等…

ASP.NET Core Clean Architecture

文章目录 项目地址一、项目主体1. CQRS1.1 Repository数据库接口1.2 GetEventDetail 完整的Query流程1.3 创建CreateEventCommand并使用validation 2. EFcore层2.1 BaseRepository2.2 CategoryRepository2.3 OrderRepository 3. Email/Excel导出3.1 Email1. Email接口层 4. 定义…

紫光同创开发板使用教程(二):sbit文件下载

sbit文件相当于zynq里面的bit文件&#xff0c;紫光的fpga工程编译完成后会自动生成sbit文件&#xff0c;因工程编译比较简单&#xff0c;这里不在讲解工程编译&#xff0c;所以我这里直接下载sbit文件。 1.工程编译完成后&#xff0c;可以看到Flow列表里面没有报错&#xff0c…

1. 自定义组件基础

相关资源&#xff1a; &#x1f4ce;day10 图片素材.zip 1. 自定义组件基础 概念&#xff1a;在ArkUI中由框架直接提供的称为系统组件 -> Column&#xff0c;Button等&#xff0c;由开发者定义的称为自定义组件 作用&#xff1a;自定义组件可以对 UI和业务逻辑进行封装&…

MySQL MHA 部署全攻略:从零搭建高可用数据库架构

文章目录 1.MHA介绍2.MHA组件介绍3.集群规划4.服务器初始化5.MySQL集群部署5.1 安装MySQL集群5.2 配置一主两从5.3 测试MySQL主从5.4 赋予MHA用户连接权限 6.安装MHA环境6.1 安装MHA Node6.2 安装MHA Manager 7.配置MHA环境8.MySQL MHA高可用集群测试8.1 通过VIP连接MySQL8.2模…