AI与单片机之:STM32上运行AI大模型的四种方案!(含案例,建议收藏)

AI与单片机之:STM32上运行AI大模型的四种方案!(含案例,建议收藏)

前几天小编写了2篇文章

“为什么AI会改变单片机的未来?

单片机上如何运行AI?单片机如何“学会思考”之TinyML崛起!(含案例,建议收藏)

引起了非常多的留言、关注和加群讨论。但是,仍然有读者朋友给小编留言,能否整理一些关于比较常用芯片比如STM32实用AI大模型的案例。为了满足粉丝朋友的诉求,小编整理了“在STM32单片机上运行AI大模型的”真实案例。

从粉丝的一个问题引出本文的思考:AI 模型能跑在 STM32 上吗?

一:先说结论

先说结论:不仅能跑,还一共有四种方案。

方案一:STM32官方提供的 STM32Cube.AI(X-CUBE-AI)

其实原理是我们把在 PC 上训练好的神经网络自动转换成可在 MCU 上运行的 C 库;然后在自己的软件/代码工程中调用已经编译产生的C库。

图片

方案二:直接用 TensorFlow Lite Micro(TFLM)+ CMSIS-NN 在 STM32 上做端侧推理。

TensorFlow是由谷歌开发并开源的一个机器学习库,它支持模型训练和模型推理。这里提到的TFLM,全称是TensorFlow Lite for Microcontrollers,翻译过来就是“针对微控制器的TensorFlow Lite”。

它适用于微控制器和其他一些仅有数千字节内存的设备。 

可以直接在“裸机”上运行,不需要操作系统支持、任何标准 C/C++ 库和动态内存分配。核心运行时在 Cortex M3 上运行时仅需16KB,加上足以用来运行语音关键字检测模型的操作,也只需 22KB 的空间。

方案三:NanoEdge AI Studio

对于“异常检测/分类/回归”这类小模型,还可以用 NanoEdge AI Studio 生成适配 STM32 的库。

图片

Nanoedge AI Studio是用于STM32部署边缘AI的软件,Studio可生成四种类型的库:异常检测、单分类、多分类、预测。它支持所有类型的传感器,所生成的库不需要任何云连接,可以直接在本地学习与部署,支持STM32所有MCU系列。

方案四:STM32N6 + NPU

STM32N6 这代芯片把 NPU(Neural-ART)直接塞进 MCU,峰值可达百亿次级别运算,面向更重的视觉/音频任务——这等于把“在 STM32 上跑 AI”从“小巧求稳”,推进到“更大模型也能实时”。

图片

二:四种方案的对比?该怎么选择?

路线

适用任务

优点

注意点

STM32Cube.AI(X-CUBE-AI)

小到中等 CNN/MLP、KWS、人形检测、回归/分类

图形化/命令行一体,自动把模型转成优化的 C 代码;新版本支持 ONNX 量化网络与在线开发/板农场验证

模型算子需被支持;建议 Int8 量化;结合板端性能页面做预估

TFLite Micro + CMSIS-NN

经典 TinyML 示例(hello_world、kws、gesture、person_detection)

上面文章中提到过的

开源、可控;CMSIS-NN 将核函数映射到 Cortex-M,常见可获 4–5× 提速/能效改善

需要自己选/裁剪算子与内存;工程化工作量稍大

NanoEdge AI Studio

异常检测、简单分类/回归(工业声音、振动等)

向导式生成库,数据量要求低,上手快

黑盒程度更高,适合追“快落地”的项目

STM32N6 + NPU

更重的视觉/音频(目标/人形、语音场景)

MCU 等级首次具备“类 MPU”级别的 AI 推理吞吐;官方工具链直接支持

面向新芯片与生态,需对齐支持的模型/算子与工具

三:直接上干货:可复制的案例分享

方案1案例:STM32 AI Model Zoo(图像分类等多任务)

图片

STM32 AI 模型库(Model Zoo)是一个针对 STM32 微控制器优化的可以直接用于设计参考的机器学习模型集合。

(1)它包含大量面向应用的模型,这些模型通常可以直接用于再训练(retraining)。

(2)提供在标准数据集上已经预训练好的模型。

(3)附带脚本,用以简化在用户自己数据集上对任一模型进行再训练、量化(quantization)、评估或基准测试(benchmarking)的过程。

(4)提供将用户 AI 模型自动生成对应应用端代码(部署代码)的示例。

关注我:回复“STM32 AI Model Zoo”可以获取到小编已经为读者朋友准备好的下载链接。

下面是针对AI模型库的案例集:(字体太小可以将下面图片保存到自己手机中放大查看)。

图片

方案2案例:TensorFlow Lite Micro(配 CMSIS-NN)

STM32 TFLM Demos(KWS/手势/人形等)

图片

上面的案例中包含了最基础的 “Hello World”,以及语音命令识别(Micro Speech)、手写数字分类(MNIST)等工程模板,可以从零起步逐层提升

我们学习在单片机中使用AI的能力。

关注我:回复“stm32-tflm-demo”可以获取到小编已经为读者朋友准备好的下载链接。

方案3案例:NanoEdge AI Studio

NanoEdge 数据采集 + 在线训练 + 上板推理(电流/振动/声音)

图片

这个案例可以实现在STM32平台上实现数据记录(datalogging) 功能,并集成 NanoEdge AI 库用于异常检测 / 模型学习 / 推理。包括示例C代码、NanoEdge AI 所需库、硬件连接说明、多个开发板与传感器的组合支持。

关注我:回复“stm32ai-nanoedge”可以获取到小编已经为读者朋友准备好的下载链接。

方案4案例:STM32(集成 NPU,如 STM32N6)

这个案例是应用在 STM32N6 系列开发板的入门级图像分类示例工程。它展示了如何利用 STEdgeAI 工具将量化后的AI模型部署到 STM32N6 平台上,并通过Neural-ART NPU 加速器实现高效推理。

包含了完整的图像采集、预处理、分类显示流程,可在STM32N6570-DK

 等硬件上运行。

通过该示例,开发者可快速上手 STM32N6 的 AI 部署流程,体验端到端的图像分类应用,从模型生成到实时推理一站式实现。

关注我:回复“stm32 N6”可以获取到小编已经为读者朋友准备好的下载链接。

可以加小编的微信,将上面所有案例一次性共享给您。

推荐几个小编关注的学习AI和大模型的公众号:

Read more

Flutter 三方库 matrix 鸿蒙终端底层复杂超维数学算力适配突破:无缝植入极限级张量系统与密集线性代数矩阵运算推演算法,解锁端侧图形处理边界-适配鸿蒙 HarmonyOS ohos

Flutter 三方库 matrix 鸿蒙终端底层复杂超维数学算力适配突破:无缝植入极限级张量系统与密集线性代数矩阵运算推演算法,解锁端侧图形处理边界-适配鸿蒙 HarmonyOS ohos

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 matrix 鸿蒙终端底层复杂超维数学算力适配突破:无缝植入极限级张量系统与密集线性代数矩阵运算推演算法,全面解锁端侧图形视觉处理边界并拔高数据分析算力上限 在图形学渲染、物理引擎模拟、复杂地理坐标转换以及端侧小型机器学习框架中,底层的矩阵运算(Matrix Operations)是决速步骤。matrix 库是一个专注于高性能线性代数计算的 Dart 库。本文将详解该库在 OpenHarmony 环境下的适配与实战应用。 封面 前言 什么是 matrix?它为 Dart 提供了一套类似于 NumPy 的多维数组运算接口。在鸿蒙操作系统这种强调极致流畅度和复杂视觉动效的系统中,利用高效的矩阵算法可以显著提升自定义 Canvas 绘图或实时传器数据处理的性能,避免因 Dart 层的低效循环导致的 UI 掉帧。 一、原理解析 1.1 基础概念 matrix 库核心基于

By Ne0inhk
Python连接和操作Elasticsearch详细指南

Python连接和操作Elasticsearch详细指南

Python连接和操作Elasticsearch详细指南 * 一、服务器端配置 * 1. 修改 Elasticsearch 配置文件 * 2. 开放防火墙端口 * 二、本地 Python 连接 Elasticsearch * 1. 连接 Elasticsearch * 2. 索引操作 * 3. 文档操作 * 4. 搜索内容 * 5. 聚合查询 * 6. 批量操作 * 三、注意事项 * 四、故障排除 * 结论 Elasticsearch 是一个强大的搜索引擎,广泛应用于数据存储和搜索场景。通过 Python,我们可以方便地与 Elasticsearch 进行交互。本文将详细介绍如何在本地使用 Python 连接到服务器上的 Elasticsearch,并进行基本的操作。 一、服务器端配置 在开始之前,确保你的 Elasticsearch

By Ne0inhk

如何用Qwen2.5做代码生成?0.5B模型Python调用详细步骤

如何用Qwen2.5做代码生成?0.5B模型Python调用详细步骤 1. 为什么选择Qwen2.5-0.5B做代码生成? 你是不是也遇到过这样的场景:写个脚本卡在某个函数上,查文档太慢,搜答案又一堆不相关的?或者只是想快速生成一段处理CSV的代码,但懒得从头敲?这时候,一个轻量、快速、能理解中文指令的AI助手就特别实用。 Qwen2.5-0.5B-Instruct 正是为此而生。它是通义千问Qwen2.5系列中最小的成员,只有约5亿参数,模型文件不到1GB,但它可不是“缩水版”。经过专门的指令微调,它对中文语境下的任务理解非常到位,尤其是像“写个Python函数来读取Excel并去重”这种具体需求,回答得很接地气。 最关键的是——它不需要GPU。你在一台普通的云服务器、甚至本地笔记本的CPU上就能跑起来,响应速度还很快。不像动辄几十GB显存的大模型,这个小家伙特别适合集成到工具链里,做自动化代码辅助。 我最近就在一个数据清洗项目里用它当“编程搭子”,每次要写重复逻辑时就丢一句“帮我写个函数,输入是字典列表,按某个字段去重”,几秒钟就出结果,改改变量名就能用,

By Ne0inhk

Python MCP实战:构建 FastAPI 服务端与客户端示例&MCP客户端调用

引言 在现代微服务架构中,服务间的通信协议选择至关重要。除了常见的 RESTful API、gRPC 等,MCP(Message-oriented Communication Protocol)作为一种面向消息的通信协议,也逐渐在特定场景中展现出其优势。本文将通过一个具体的 Python 示例,演示如何基于 fastapi-mcp 和 mcp 库,构建一个 MCP 服务端和客户端,并实现工具(Tool)的远程调用。 服务端将使用 FastAPI 框架,通过 fastapi-mcp 库将一个 API endpoint 暴露为 MCP 工具。客户端则会演示如何连接到 MCP 服务,列出可用的工具,并远程调用它。 核心组件: * 服务端 (main.py): 一个基于 FastAPI

By Ne0inhk