查看: 1360|回复: 7

黑科技:在只有150MHz的MCU上跑通全套时装识别系统

[复制链接]
  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32003
    最后登录
    2024-4-9
    发表于 2021-12-6 16:50:16 | 显示全部楼层 |阅读模式
    黑科技:在只有150MHz的MCU上跑通全套时装识别系统


    它不是传说,它就在这儿

    如果说,在一个只有150MHz主频,256KB闪存,96KB RAM,没有摄像头接口,没有显示接口,朴实无华的MCU上,实现一整套应用人工智能技术的时装识别系统,包括采集时装图像,识别时装种类,并把结果以每秒30帧以上流畅的显示出来,是不是可以干脆利落地回怼“臣妾做不到啊!”。
    但是,如果是LPC5500的话,那就不一样了,回答一定是干脆响亮的“小case!”
    咱不吹牛,上图上视频为证:
    先是一个极客范儿十足的硬件:
    14.png
    这是一个扩展了LCD和摄像头的LPC55S69-EVK开发板,图中的摄像头模块是OV7670。


    下面这张是一张运行中的特写:
    15.png
    在150MHz的LPC5500上只花了21ms就完成了识别,小编还学到了英语,“Sandal”是凉鞋的意思。


    再来一个T恤:
    16.png
    同样是21ms。
    这不但显示出LPC5500可以绝对实时地识别,还有就是深度学习识别具有几乎完美的“时间确定性”:对于任何输入,都在固定的时间内给出输出。
    这个模型总共能识别十种时装,分别是:


    1、T-shirt/top(T恤)
    2、Trouser(裤子)
    3、Pullover(套衫)
    4、Dress(裙子)
    5、Coat(外套)
    6、Sandal(凉鞋)
    7、Shirt(汗衫)
    8、Sneaker(运动鞋)
    9、Bag(包)
    10、Ankle boot(踝靴)
    训练模型使用了是经过数据增广后的fashion-mnist数据集。
    先来看看这个方案的演示视频:
    真是令人不禁感叹,这世道真是变了,竟然还有如此神奇的MCU!


    其实,说神奇也不神奇,你只要会用,你就能创造神奇!这里用到的都是NXP已经推出很久的技术,只是把它们有机地组合在一起了,且看小编一一道来。

    没有摄像头接口?
    LPC5500有一颗魔术师之心

    这是咋回事?原来,LPC5500内部有一个可编程的专用处理模块,它最擅长的地方在于可以得心应手地操作GPIO口(其中有32个GPIO口支持单周期翻转和读取)来生成或者识别多种多样、光怪陆离的时序波形,还可以花式传输数据,充当一个智能DMA,甚至可以在CPU休眠的时候打点很多外设的基本操作与数据收发。


    对于时装识别的系统,我们使用这个专用处理模块去识别来自OV7670摄像头的波形,并提取出内部的图像数据。详情点击Camera Interface in LPC55(S)xx (nxp.com.cn)。


    这个模块还没有通用的编程工具,但NXP为客户常常用到的时序和总线协议开发了相应的库,支持的功能除了在本文中的摄像头接口,还包括LCD的显示、多线SPI协议、5.1声道I2S输出、旋转编码器、简易的的2D像素处理管线等,可以通过查看应用笔记和咨询分销商来了解更多。

    没有LCD接口?
    高速SPI来救场

    虽然LPC5500没有直接与裸LCD屏打交道的并行接口,但凭借最高50MHz频率的SPI,搭配SPI LCD模块,可以在320x240的分辨率下达到视频中流畅的刷新效果。


    有了专用处理模块实现的摄像头接口和高速SPI的加持,使得LPC5500可以在不少微型计算机视觉任务中媲美更高端的微控制器,并且极富性价比。

    没有充足的算力和空间?
    专业模型瘦身术加持

    和动辄几个T的NPU相比,LPC5500在150MHz下的理论最大算力也只有0.0003T,比四两和千金还鲜明。在这种平台上部署深度学习,是痴人说梦吗?
    其实,不要被华丽的宣传所迷惑,深度学习对于不同任务所需要的算力相差6个数量级都是很正常的,而且常常出现算力和存储空间要求有天壤之别的模型,因为架构的合理性和对执行硬件的适应性不同,而有差不多的表现。
    对于这次识别时尚装备的任务,我们通过用步幅为2的卷积来替换池化;拆解大的卷积为空间卷积+通道线性组合,这样几乎是“嗖”地一下,就降低了模型算力要求和内存规模。


    另外为了保证精度,我们用修改图片背景、增加多个缩放级别、添加随机噪声等增强数据集的方法,使得原本纯黑底色的fashion-mnist数据集,也可以识别丰富背景下大小不同的时装,最终得到的模型只有不到16K参数,在150MHz的LPC5500上运行一次只需21ms,占用内存不到80KB。即使这样,识别精度也还保持在88%。

    MCU上无法运行TF或PyTorch?
    用eIQ推理技术来搞定

    模型推理技术负责贯彻执行神经网络模型中的计算操作。
    在PC上,既可以使用流行的Tensorflow、PyTorch等框架来训练和推理,也可以安装专用的推理引擎(比如TensorRT等),但它们无法运行在Cortex-M设备上。
    不过,NXP的eIQ机器学习套件支持了3套专门为微控制器量身定做的推理技术,分别是:
    开源的Tensorflow Lite for Microcontrollers (TFLm),

    原版开源但经过NXP深度优化过的GLOW,

    以及可以在MCU和MPU上通用的DeepView-RT。

    在这个demo中,我们选用了我们最熟悉的和ARM CMSIS-NN库配合使用的TFLm,配合在GCC和KEIL下支持的“.incbin”伪指令,直接像包含头文件一样包含模型文件到工程里,方便实验。

    总结

    从这个项目可以看出,LPC5500确实是在“大路货”的微控制器中有不平凡的潜能,在关键时刻或许能顶得上一个高端微控制器。
    而且,深度学习技术也并没有很多吃瓜小伙伴们想象得那么高不可攀,通过合理化简模型架构和改进数据集的质量,可以大幅减少对算力和存储器的需求。
    简单地说,对于中小规模的图像分类,语音口令检测,基于运动传感器或AD采集数据的一些分类和异常判断,一般的主流Cortex微控制器大多能支持,可能缺少摄像头接口或显示接口反而是硬伤,而这一切在NXP的LPC5500面前都不是事儿。




    欢迎大家尝试复刻!

    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-7-8 09:06
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    18

    主题

    438

    帖子

    26

    金牌会员

    Rank: 6Rank: 6

    积分
    2209
    最后登录
    2024-3-5
    发表于 2021-12-6 17:27:06 | 显示全部楼层
    LCP55S69真强大,实现这个功能的工程师更厉害
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32003
    最后登录
    2024-4-9
     楼主| 发表于 2021-12-6 17:35:47 | 显示全部楼层
    zmh169 发表于 2021-12-6 17:27
    LCP55S69真强大,实现这个功能的工程师更厉害

    你不尝试着搞搞麽,好兄弟
    签到签到
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    主题

    789

    帖子

    1

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2695
    最后登录
    2024-4-4
    发表于 2021-12-7 08:13:58 | 显示全部楼层
    强大了
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 09:40
  • 签到天数: 1409 天

    [LV.10]以坛为家III

    48

    主题

    3486

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    7296
    最后登录
    2024-4-19
    发表于 2021-12-7 09:37:55 | 显示全部楼层
    一个字,牛!
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2021-12-7 09:45:42 | 显示全部楼层
    像这个应用案例,是不是使用Cortex-A系列的嵌入式Linux可以更轻松与完善的方式实现?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-4-9 17:01
  • 签到天数: 1478 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    92609
    最后登录
    2024-4-9
    发表于 2021-12-7 17:56:46 | 显示全部楼层
    这个资源情况下能做出这种效果,当真是黑科技啊 TS1 - 副本 (2).jpg TS1 - 副本 (4).jpg TS1 - 副本 (3).jpg TS1 - 副本 (6).jpg TS1 - 副本 (9).jpg TS1 - 副本 (8).jpg TS1 - 副本 (7).jpg TS1 - 副本 (5).jpg TS1 - 副本 (10).jpg TS1.jpg
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-7-8 09:06
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    18

    主题

    438

    帖子

    26

    金牌会员

    Rank: 6Rank: 6

    积分
    2209
    最后登录
    2024-3-5
    发表于 2021-12-8 08:08:11 | 显示全部楼层
    NXP管管 发表于 2021-12-6 17:35
    你不尝试着搞搞麽,好兄弟

    手头没有55S69,需日天兄支援
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-20 13:24 , Processed in 0.149822 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表