前阵子用ESP32做离线人脸识别,好不容易把TFLite Micro模型移植完,结果每次识别人脸要等3秒,卡顿到怀疑人生,本来想做个智能门锁的,这速度开门都能把人急死。 直到我挖到乐鑫官方藏的这个「性能开挂神器」——ESP-NN,直接把AI运算速度拉了好几倍,现在识别响应几乎秒出,幸福感直接拉满!🚀
到底什么是ESP-NN?
ESP-NN是乐鑫官方专门为自家ESP系列芯片量身打造的优化版神经网络算子库,完美适配TensorFlow Lite Micro,相当于给AI运算开了专属加速buff,不用你自己手写汇编优化,官方直接给你把性能榨到顶👍 目前支持全系列主流ESP芯片:
✅ ESP32-S3:专门适配了向量指令,优化幅度最猛
✅ ESP32-P4:最新高性能款,专属汇编优化
✅ ESP32/ESP32-C3:通用优化,老款芯片也能吃红利
性能到底有多猛?直接上硬数据!
官方实测的优化数据我给你们扒出来了,看完直接惊掉下巴:
👉 【ESP32-S3】最夸张的卷积算子优化比例直接干到10.06倍,常用的Relu6激活函数更是快了9.87倍,等于原来跑10秒的运算现在1秒就搞定
👉 【ESP32-P4】卷积算子最高优化7倍,深度卷积也能翻2倍,360MHz主频配合优化,跑轻量AI模型完全无压力
👉 就算是普通ESP32、ESP32-C3,也能获得可观的性能提升,不用换硬件就能给项目提速
怎么用?30秒就能配置完!
操作真的超级简单,完全没有门槛:
1.保证你用的是ESP-IDF开发环境2.执行idf.py menuconfig,找到「ESP-NN」选项3.选择「NN_OPTIMIZATIONS」即可,默认就是优化版本,调试的时候可以切回ANSI C版本方便排错 ⚠️ 小提示:ESP32-S3和P4会自动调用专属汇编优化版本,不用额外配置,官方都给你安排明白了!遇到问题怎么办?
如果用的过程中碰到Bug,或者想要新功能,可以直接去GitHub的esp-nn仓库提Issue,通用问题也可以去乐鑫官方论坛提问,想贡献代码的话直接看仓库里的CONTRIBUTING.md就行,开源项目大家一起玩才香😎
最后给大家几个我踩过坑总结的小建议:
1.只要是在ESP上跑TFLite Micro的项目,优先开ESP-NN优化,省下来的算力还能跑其他外设逻辑2.做高算力AI应用优先选ESP32-S3或者P4,向量指令的优势真的太大了,性价比拉满3.跑大模型的时候尽量把常用数据放到内部内存,性能还能再涨一截https://github.com/espressif/esp-nn
你们有没有用ESP做过什么有意思的离线AI项目?比如语音唤醒、垃圾分类识别、人脸门锁之类的?欢迎在评论区分享你的玩法,大家一起交流呀~
觉得这篇干货有用的话,别忘了点赞👍 收藏⭐ 关注哦,后续还会给大家更更多嵌入式AI的开挂技巧和开源工具!