# ESP-DL [[中文]](./README_cn.md)
ESP-DL is a library for high-performance deep learning resources dedicated to [ESP32](https://www.espressif.com/en/products/socs/esp32), [ESP32-S2](https://www.espressif.com/en/products/socs/esp32-s2), [ESP32-S3](https://www.espressif.com/en/products/socs/esp32-s3) and [ESP32-C3](https://www.espressif.com/en/products/socs/esp32-c3).
## Overview
ESP-DL provides APIs for **Neural Network (NN) Inference**, **Image Processing**, **Math Operations** and some **Deep Learning Models**. With ESP-DL, you can use Espressif's SoCs for AI applications easily and fast.
As ESP-DL does not need any peripherals, it can be used as a component of some projects. For example, you can use it as a component of **[ESP-WHO](https://github.com/espressif/esp-who)**, which contains several project-level examples of image application. The figure below shows what ESP-DL consists of and how ESP-DL is implemented as a component in a project.
<p align="center">
<img width="%" src="./img/architecture_en.drawio.svg">
</p>
## Get Started with ESP-DL
For setup instructions to get started with ESP-DL, please read [Get Started](./docs/en/get_started.md).
> Please use the [latest](https://github.com/espressif/esp-idf/tree/master) ESP-IDF on master branch.
## Try Models in the Model Zoo
ESP-DL provides some model APIs in the [Model Zoo](./include/model_zoo), such as Human Face Detection, Human Face Recognition, Cat Face Detection, etc. You can use these models in the table below out of box.
| Name | API Example |
| :-------------------- | :------------------------------------------------------------ |
| Human Face Detection | [ESP-DL/examples/human_face_detect](examples/human_face_detect) |
| Human Face Recognition | [ESP-DL/examples/face_recognition](examples/face_recognition) |
| Cat Face Detection | [ESP-DL/examples/cat_face_detect](examples/cat_face_detect) |
## Customize a Model
To customize a model, please proceed to [How to Customize a Model Step by Step](./tutorial), where the instructions with a runnable example will quickly help you design your model.
When you read the instructions, the following materials might be helpful:
- DL API
* [About Variables and Constants](./docs/en/about_type_define.md): information about
- variable: tensors
- constants: filters, biases, and activations
* [Customize a Layer Step by Step](./docs/en/implement_custom_layer.md): instructions on how to customize a layer.
* [API Documentation](./include): guides to provided API about Layer, Neural Network (NN), Math and tools.
> For API documentation, please refer to annotations in header files for the moment.
- Platform Conversion
- Quantization Toolkit: a tool for quantizing floating-point models and evaluating quantized models on ESP SoCs
* Toolkit: see [Quantization Toolkit](./tools/quantization_tool/README.md)
* Toolkit API: see [Quantization Toolkit API](./tools/quantization_tool/quantization_tool_api.md)
- Convert Tool: the tool and configuration file for floating-point quantization on coefficient.npy
* config.json: see [Specification of config.json](./tools/convert_tool/specification_of_config_json.md)
* convert.py: see [Usage of convert.py](./tools/convert_tool/README.md)
> convert.py requires Python 3.7 or versions higher.
- Software and Hardware Boost
* [Quantization Specification](./docs/en/quantization_specification.md): rules of floating-point quantization
## Feedback
[Q&A](./docs/en/Q&A.md) lists answers to frequently asked questions.
For feature requests or bug reports, please submit an [issue](https://github.com/espressif/esp-dl/issues). We will prioritize the most anticipated features.
idf.py add-dependency "espressif/esp-dl^1.1.0"