MCU上跑AI—实时目标检测算法探索

MCU上跑实时目标检测算法

前几年一直忙着别的事情没有在技术分享上下功夫, 这段时间稳定下来就想和几个志同道合的朋友做点有意义的事情, 于是乎就使用MCU做了个与AI有识别相关的 "小玩意儿".

本人负责嵌入式端相关的编码, AI相关的工作由好友 AgeWang 负责.

这儿把一些成果给大家展示一下, 希望能给广大开发者提供一个简单的思路, 仅作参考

在大家印象中, AI 这种高大上的玩意儿一般是在 A系列 的芯片上面跑的, 当然本人也接触过一些 A系列 芯片, 一般的性能差一点的芯片跑起来也非常吃力, 但要说在 MCU 芯片上冕能跑AI是都不都不敢想. 但是现如今确确实实是行, 而且效果还不错.

话不多说进入真题, 先给大家展示一下效果:


展示环节

  • 模型优化: 在 MCU 资源限制下重新设计算法结构, 网络结构依然超过了150层, 确保检测精度不崩。
  • 部署优化 : 针对 Cortex M 指令集做了底层优化。
  • 后处理: 用了简化版的 NMS, 保证速度够快, 占用也小。
  • 内存管理: 最大化复用中间 Buffer, 推理时只占用 248KB RAM, 这对于一般 512KB RAM 的中高端 MCU 来说完全可以接受。
  • 推理性能 : 在 Cortex-M33 上, 通过指令集加速优化, 算法一秒大约推理 8帧 图像(单帧 124ms)。



MCU实时目标检测


  • 检测效果: 在行人检测数据集上, mAP 超过 60, 同时也能迁移到火焰、任意自定义目标检测任务。

所需资源

模块 介绍 最低成本(元)
摄像头 主要用于视频图像的采集 5
显示器 主要用于视频图像的显示 10
MCU 主要是协调摄像头得采集, AI的计算以及LCD显示屏的显示 6
外围电路 PCB板(最小系统所需的基本电路)

备注: 以上成本仅供参考(如果想要显示效果更好, AI识别更快价格也就更贵)

以上是所需的基本硬件模块, 当然也可以直接打板不使用模块.

本演示主要是通过摄像头采集图像至 MCU, MCU 执行 AI yolo 算法, 获取结果, 通过 LCD 显示. 如下图所示:

扩展思考

  • 输入端除了火焰, 还可以是其他物品猫, 狗, 鸟, 也可以是人, 也可以是人的不同形态, 如跌倒的老人或者小孩儿.
  • 输入的除了图像也可以是音频, 温湿度, 光照强度, 当然也可以是他们的组合
  • 输出端除了 LCD显示屏, 也可以 I/O 输出, 如开关门, 浇水, 喂鱼等

其他尝试

  • 本人在多款MCU都测试过, 如 STM32 ESP32 等, 只要基本的RAM合适, 看理论上都能进行运行AI算法.
  • STM32STM32Cube.AI 专门为 AI 进行了优化
  • ESP32 也有专门的库以及demo, 可供大家参考


备注

  • 感谢 AgeWang 提供AI算法支持
相关推荐
fanstuck1 小时前
1M 上下文能怎么用?我用 Seed Evolving 做了一个招标文件版本差异审查器
服务器·人工智能·数据分析·开源·aigc
墨舟的AI笔记3 小时前
React 组件库的 Tree Shaking:按需加载与副作用的工程化治理
人工智能
曦尧3 小时前
Microsoft Ontology Playground:用纯前端工具打通 Fabric IQ 本体论学习通路
ai·自动化
WoooChi4 小时前
DailyTech-20260724
人工智能·科技·业界资讯
zh路西法4 小时前
【CAM Grad-CAM Grad-CAM++】深度学习模型可解释性:从原理到YOLOv8部署实战
人工智能·深度学习·yolo·yolov8·grad-cam·cam
雨辰AI4 小时前
全集实战:企业级大模型服务化部署全栈指南|FastAPI 封装 + Nginx 负载均衡 + 高可用架构 从单机到生产一步到位
人工智能·ai·负载均衡·fastapi·ai编程
触底反弹4 小时前
Vibe Coding 不写 Git,等于悬崖边飙车
人工智能·git·面试
xuxie994 小时前
start9 霍尔双相编码器
单片机
咖啡屋和酒吧5 小时前
健康管理:现代生活的科学守护
人工智能·生活·精选
兆龙电子单片机设计5 小时前
【STM32项目开源】STM32单片机语音分类垃圾桶-蓝牙APP
stm32·单片机·嵌入式硬件·物联网·开源·自动化·毕业设计