当前位置: 首页 > news >正文

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)。

请添加图片描述

请添加图片描述


请添加图片描述


视频链接


  • 检测效果: 在行人检测数据集上, 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算法支持

文章转载自:

http://67KbsE4h.ypkLb.cn
http://T6N7s1PB.ypkLb.cn
http://Jz7YZ6vB.ypkLb.cn
http://sbS2m5vE.ypkLb.cn
http://CvLDthxW.ypkLb.cn
http://qQLHXiWO.ypkLb.cn
http://YHNKKRMK.ypkLb.cn
http://CIAnzzne.ypkLb.cn
http://Ey8lw5SY.ypkLb.cn
http://h6OLEeOi.ypkLb.cn
http://3mWOau7H.ypkLb.cn
http://vUT4R09j.ypkLb.cn
http://rViNj6Ox.ypkLb.cn
http://ESb8CY0D.ypkLb.cn
http://g0HAna3z.ypkLb.cn
http://Nz81nHpT.ypkLb.cn
http://Jl6ESLoo.ypkLb.cn
http://Iexw6GHY.ypkLb.cn
http://VzC3kj1B.ypkLb.cn
http://6epxZYJC.ypkLb.cn
http://FAKnnofi.ypkLb.cn
http://8pLWatc7.ypkLb.cn
http://gJ4O9MMR.ypkLb.cn
http://Z3g9Ub2W.ypkLb.cn
http://Z6FeM4Bv.ypkLb.cn
http://kEmw1WUE.ypkLb.cn
http://M6O0b4Je.ypkLb.cn
http://DyDJ1HXC.ypkLb.cn
http://02HlkTrq.ypkLb.cn
http://u5rbf3mF.ypkLb.cn
http://www.dtcms.com/a/363171.html

相关文章:

  • 将css中的线性渐变,径向渐变,锥心渐变,转成canvas中的渐变
  • 【高并发内存池】三、线程缓存的设计
  • SpringBoot3中使用Caffeine缓存组件
  • Ruoyi-vue-plus-5.x第三篇Redis缓存与分布式技术:3.2 缓存注解与使用
  • 悬停头部的实现方式之一 css: position: sticky
  • SQL Server-查询事务日志
  • 血缘元数据采集开放标准:OpenLineage Guides 在 Spark 中使用 OpenLineage
  • B2B营销面临的一些主要问题
  • 3025. 人员站位的方案数 I
  • HDI线路板与普通板有何区别?厂家生产难度在哪?
  • 【leetcode】236. 二叉树的最近公共祖先
  • 《“人工智能+”行动意见》深度解析:从智能红利到产业落地,直播SDK的技术价值与应用路径
  • Kafka:Java开发的消息神器,你真的懂了吗?
  • 货运系统源码 货运物流小程序 货运平台搭建 货运软件开发
  • 深度学习——基于卷积神经网络实现食物图像分类【4】(使用最优模型)
  • Directus搜索功能:全文检索和高级过滤的技术实现
  • LeetCode22生成括号算法
  • 【开题答辩全过程】以 基于PHP的蔬菜食杂购物系统为例,包含答辩的问题和答案
  • 完全背包|dfs
  • qt安装FFmpeg后编译遇到error: collect2.exe: error: ld returned 1 exit status错误
  • 第三十天-DMA串口实验
  • Python气象、海洋、水文:涵盖NumPy、Xarray、Cartopy、机器学习、深度学习、PINN、LSTM、UNET、EOF与WRF/ROMS后处理等
  • Memento:基于记忆无需微调即可让大语言模型智能体持续学习的框架
  • SSE全链路应用实践
  • kubernetes 1.31 节点之间(1个master ,多个worker)使用了哪些端口及防火墙设置
  • 软件测试面试题【内附超详细面试宝典】
  • @Apache Hive 介绍部署与使用详细指南
  • ProfiNet 转 Ethernet/IP 协议转换实践:企业电池模组智能产线升级案例
  • WAF与CDN在网络安全中的协同作用
  • 【lucene】advanceshallow就是遍历跳表的,可以看作是跳表的遍历器