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

ECLIPSE插件开发:AI如何帮你自动生成代码

快速体验 1. 打开 InsCode(快马)平台 https://www.inscode.net 2. 输入框内输入如下内容: 开发一个ECLIPSE插件,功能是在编辑器右键菜单中添加'AI重构'选项,点击后可以自动优化当前选中的Java代码。要求插件能够识别代码中的重复模式,提供智能重构建议,并生成优化后的代码。插件界面简洁,与ECLIPSE原生UI风格一致。使用OSGi框架开发,兼容ECLIPSE最新版本。 1. 点击'项目生成'按钮,等待项目生成完整后预览效果 最近在做一个ECLIPSE插件开发的项目,需要实现一个"AI重构"功能。这个功能听起来简单,但实际开发过程中遇到了不少坑,今天就把我的经验分享给大家。 1. 插件功能设计 这个插件的核心功能是在编辑器右键菜单中添加"AI重构"选项。当用户选中一段Java代码后,

告别AI代码“失忆症“!Claude Code效率翻倍的2个插件实战指南

告别AI代码"失忆症"!Claude Code效率翻倍的2个插件实战指南 引言:当AI变成"不靠谱队友"的那些糗事 想象一下,你刚给Claude Code布置完"加个博客评论区"的任务。第二天打开对话,他一脸懵地问:"你是说要给文章加个红色五角星吗?"这种"AI失忆症"是不是让你想摔键盘? 别慌!今天要分享的这套组合拳——Superpower工作流+Claude mem记忆插件,能让你的AI编程效率直接飙到300%,让"AI写代码如行云流水"不再是梦! 一、Superpower工作流:给AI装个"项目管理大脑" 1.1 传统开发VS Superpower开发,

AI助力公益软件开发:MIN(公益版)下载指南

快速体验 1. 打开 InsCode(快马)平台 https://www.inscode.net 2. 输入框内输入如下内容: 使用快马平台生成一个MIN(公益版)下载页面,包含以下功能:1. 简洁的下载按钮和说明;2. 自动检测用户设备类型并提供相应版本;3. 集成统计功能记录下载量;4. 响应式设计适配各种设备。使用Kimi-K2模型生成基础代码,并自动部署到云端。 1. 点击'项目生成'按钮,等待项目生成完整后预览效果 最近在参与一个公益项目,需要快速搭建一个MIN(公益版)软件的下载页面。作为一个非专业开发者,我惊喜地发现借助AI辅助开发工具,整个过程变得异常简单。下面分享我的实践过程,希望能帮助有类似需求的朋友。 1. 需求分析与规划 首先明确了这个下载页面需要实现的四个核心功能:简洁的下载界面、自动设备检测、下载量统计和响应式设计。传统开发方式可能需要前端、后端和运维多方协作,

【高级玩法】OpenClaw 多会话管理与子代理:让 AI 团队为你打工

【高级玩法】OpenClaw 多会话管理与子代理:让 AI 团队为你打工

目录 前言:一个不够用?那就来一队! 一、什么是多会话? 1.1 会话的概念 1.2 为什么需要多会话? 1.3 会话类型 二、会话管理基础 2.1 查看会话列表 2.2 创建新会话 2.3 切换到指定会话 2.4 查看会话状态 2.5 结束会话 三、子代理(Sub-agents)详解 3.1 什么是子代理? 3.2 子代理的工作流程 3.3 什么时候用子代理? 3.4 创建子代理 3.5