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

极致性能的服务器Redis之Hash类型及相关指令介绍

极致性能的服务器Redis之Hash类型及相关指令介绍

目录 1. Hash介绍 2. hset 3. hget 3. hdel 5. hkeys 6. hvals 编辑 7. hgetall  8. hexists 9. hmget 10. hlen 11. hsetnx 12. hincrby 13. hincrbyfloat 1. Hash介绍 Redis 哈希类型是键值对的集合,字段与值均支持字符串、数字等类型,适合建模用户信息、配置项等对象类数据。其支持单字段 / 多字段的增删改查、字段存在性判断、值自增自减等原子操作,且底层通过压缩列表或哈希表优化存储,空间利用率高、查询效率快,是 Redis 中存储结构化数据的核心类型之一。 在Redis中因为本身就是按照哈希的KV结构来进行存储的,所以当我们想要使用Redis里面的哈希的时候,实际上是哈希的哈希,在后者中,

By Ne0inhk
《算法题讲解指南:优选算法-二分查找》--23.寻找旋转排序数组中的最小值,24.0~n-1中缺失的数字

《算法题讲解指南:优选算法-二分查找》--23.寻找旋转排序数组中的最小值,24.0~n-1中缺失的数字

🔥小叶-duck:个人主页 ❄️个人专栏:《Data-Structure-Learning》 《C++入门到进阶&自我学习过程记录》《算法题讲解指南》--从优选到贪心 ✨未择之路,不须回头 已择之路,纵是荆棘遍野,亦作花海遨游 目录 23.寻找旋转排序数组中的最小值 题目链接: 题目描述: 题目示例: 解法(二分查找): 算法思路: C++算法代码:(以nums[ n - 1 ]为参照物) C++算法代码:(以nums[ 0 ]为参照物) 算法总结及流程解析: 24.0~n-1中缺失的数字 题目链接: 题目描述: 题目示例: 解法(二分查找): 算法思路: C++算法代码: 算法总结及流程解析: 结束语

By Ne0inhk
《二分查找:从 “折半” 到 “精准命中” 的算法逻辑拆解》

《二分查找:从 “折半” 到 “精准命中” 的算法逻辑拆解》

前引:算法面试中,二分查找是 “高频考点” 之一,它不仅能考察求职者的逻辑思维,还能检验对时间复杂度优化的理解。而在实际开发中,二分查找更是处理 “有序数据查找” 问题的最优解无论是缓存查找、数据索引,还是参数优化,都能看到它的身影。但很多开发者对二分查找的理解停留在 “基础用法”,忽略了其在复杂场景下的拓展应用,也未能规避常见的边界错误。本文将结合面试真题和实战案例,全面解析二分查找的原理、优化技巧、场景延伸,帮你既能轻松应对面试,又能在实际开发中高效运用,真正发挥二分查找的 “效率优势”! 目录 【一】“二分”算法原理剖析 【二】简单的二分查找 (1)题目链接 (2)算法解析 【三】找目标范围 (1)题目链接 (2)算法解析 (3)代码 【四】搜索插入位置 (1)题目链接 (2)算法解析

By Ne0inhk
Ubuntu系统下Python连接国产KingbaseES数据库实现增删改查

Ubuntu系统下Python连接国产KingbaseES数据库实现增删改查

摘要:本文将介绍Ubuntu系统下如何使用Python连接国产金仓数据库KingbaseES,并实现基本的增删改查操作。文中将通过具体代码示例展示连接数据库、执行SQL语句以及处理结果的全过程。这里把Python连接KingbaseES的经验整理一下,希望能帮到同样踩坑的兄弟。 目录 1.环境准备与驱动安装 1.1 科普ksycopg2知识 1.2 官方下载ksycopg2驱动 1.3 安装ksycopg2驱动 2. 连接KingbaseES数据库 3. 创建数据表 4. 实现增删改查功能 4.1 新增 4.2 查询 4.3 修改 4.4 删除 4.5 封装一个类crud方便复用 5.总结 1.环境准备与驱动安装 KingbaseES提供了专门的Python驱动包ksycopg2,它是基于Python DB API 2.0规范实现的线程安全数据库适配器!

By Ne0inhk