espressif/esp-dl
espressif/esp-dl has 1,222 GitHub stars and 233 forks. GitHot measured +1 stars in 24 hours and +13 in 7 days. Last checked 2026-11-13 03:23 UTC. Last push 2026-10-30.
Espressif deep-learning library for AIoT applications
实测星标增长
- 24小时
- +1
- 7天
- +13
- 15天
- 正在收集历史
- 1个月
- 正在收集历史
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README_cn.md
原文ESP-DL [English]
ESP-DL 是一个专为 ESP 系列芯片设计的轻量级且高效的神经网络推理框架。通过 ESP-DL,您可以轻松快速地使用乐鑫的系统级芯片 (SoC) 开发 AI 应用。
Overview
ESP-DL 提供了加载、调试和运行 AI 模型的 API。该框架易于使用,并且可以与其他乐鑫 SDK 无缝集成。ESP-PPQ 作为 ESP-DL 的量化工具,能够量化来自 ONNX、Pytorch 和 TensorFlow 的模型,并将其导出为 ESP-DL 标准模型格式。
ESP-DL 标准模型格式: 该格式类似于 ONNX,但使用 FlatBuffers 而不是 Protobuf,使其更轻量级并支持零拷贝反序列化,文件后缀为
.espdl。灵活混合量化: ESP-DL 支持 8bit (w8a8)、16bit (w16a16) 以及混合精度 (w8a16) 三种量化方式,可在模型中任意组合使用,在保持模型精度的同时最大化推理效率。
高效算子实现: ESP-DL 高效地实现了常见的 AI 算子,如 Conv、Pool、Gemm、Add 和 Mul等。目前算子支持状态。部分算子在 ESP32-S3 和 ESP32-P4 上的性能测试数据请参考 benchmark_report.md。
静态内存规划器: 内存规划器根据用户指定的内部 RAM 大小,自动将不同层分配到最佳内存位置,确保高效的整体运行速度同时最小化内存使用。
双核调度: 自动双核调度允许计算密集型算子充分利用双核计算能力。目前,Conv2D 和 DepthwiseConv2D 支持双核调度。
8bit LUT Activation: 除了Relu, PRelu(n>1)之外的所有激活函数,ESP-DL 默认使用 8bit LUT(Look Up Table)方式实现,以加速推理。
更新
- [2026/10/15] 近期对 Conv、Gemm、MatMul、Resize、Reduce、LUT、Transpose、Pooling 等大量算子进行了优化。MobileNetV2、YOLO11 等模型在 ESP32-S3 上获得 3 倍以上加速,在 ESP32-P4 上获得 1.9 倍以上加速。感谢 Hosi121、BoumedineBillal 等的贡献。
- [2026/9/1] 从 ESP-DL v3.3.11 开始全面支持 w8a16 混合量化方法。
- [2026/7/30] 新增 PP-OCRv6 OCR 模型及 示例,在 ESP32-P4 上端侧识别中文、英文及 46 种拉丁字母文字。
- [2026/6/5] 添加 esp32s3-pie-simd 和 esp32p4-pie-simd两个skills, 方便code agent将代码重写为PIE指令加速版本。
- [2026/5/13] 推出 espdl-quantize skill,自动迭代搜索最优 esp-ppq 量化策略,降低人工调参成本并提升量化模型精度。详见 how_to_use_espdl_quantize_skill.rst。
- [2026/4/23] 支持使用AutoQuant进行模型量化,该工具自动探索最优量化策略与参数配置,从而降低人工调参成本。详见AutoQuant使用文档:how_to_use_AutoQuant.rst.
- [2026/4/20] ESP32-P4 的 Conv 和 Gemm 算子升级为 per-channel 量化,显著提升模型精度。注意:需依赖 ESP-PPQ ≥ 1.2.10 及 ESP-DL ≥ 3.3.1。新版 ESP-DL 保持向后兼容,原有 per-tensor 模型不受影响。
- [2026/3/12] 新增 YOLO26 模型,感谢 BoumedineBillal 的贡献。开始训练和部署您的 YOLO26 模型。
- [2026/3/11] ESP-DL Agent Tool 已更新为 espdl-operator skill,让 AI Agent 实现算子更加便捷。参见 how_to_implement_operators_with_ai_agent.rst。
- [2026/2/27] 支持使用TrainedQuantizedThresholdPass量化模型。参见 quantize_model_with_TQT.rst.
- [2026/1/14] 在netron中支持可视化
.espdl模型,方便模型调试.
2026 年之前
- [2025/10/20] 发布 ESP-DL v3.2.0, 进一步增强了模型量化和部署的能力。
- [2025/07/22] 将 ESP-PPQ 的包名从 ppq 改为 esp-ppq,以避免与 ppq 冲突,同时将 ESP-PPQ 依赖包全部升级到最新版。注意: 量化脚本中需注意修改包名为esp-ppq。
- [2025/04/30] 我们发布了全新的 esp-detection 项目和
ESPDet-Pico模型,可轻松训练并部署目标检测模型。espdet_pico_224_224_cat 模型 和 示例 是基于 esp-detection 训练的猫咪检测模型,欢迎试用并反馈意见! - [2025/02/18] 新增支持 YOLO11n 模型,提供 espdl 模型 及 示例。
- [2025/01/09] 更新了 espdl 模型架构,发布 ESP-DL v3.1.0。注意:旧版模型可被新架构加载,但新版模型不兼容旧版本。
- [2024/12/20] 发布 ESP-DL v3.0.0。
Getting Started
软件要求
- ESP-IDF
ESP-DL 基于 ESP-IDF 运行。有关如何获取 ESP-IDF 的详细说明,请参阅 ESP-IDF 编程指南。
请使用 ESP-IDF
release/v5.3或更高版本。
- ESP-PPQ
ESP-PPQ 是基于 ppq 的量化工具。如果你想量化自己的模型,可以使用如下方式安装 esp-ppq,更多安装方法请参考 入门指南:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
pip install esp-ppq
[!NOTE]
- 示例代码中安装的是 linux pytorch cpu 版本,请根据实际情况安装对应的 pytorch。
Model Quantization
首先,请参考 ESP-DL 算子支持状态,确保您的模型中的算子已经得到支持。
ESP-PPQ 可以直接读取 ONNX 模型进行量化。Pytorch 和 TensorFlow 需要先转换为 ONNX 模型,因此请确保你的模型可以转换为 ONNX 模型。更多详细信息请参阅:
如何量化模型
如何量化 MobileNetV2
如何量化 YOLO11n
Model Deployment
ESP-DL 提供了一系列 API 来快速加载和运行模型。更多详细信息,请参阅:
ESP-DL Model Zoo
目录 models 包含为 ESP32 系列芯片优化的预训练和量化模型集合。每个模型都以 ESP-IDF 组件的形式提供,便于集成。更多详情请参阅 ESP-DL 模型库。
Support Operators
如果你有遇到不支持的算子,请将问题在issues中反馈给我们,我们会尽快支持。
也欢迎大家贡献新的算子, 具体方法请参考创建新模块(算子)。