diff --git a/README.md b/README.md new file mode 100644 index 0000000..2a0ef86 --- /dev/null +++ b/README.md @@ -0,0 +1,98 @@ +# ESP-WHO + +ESP-WHO 是基于乐鑫芯片的图像处理开发平台。其中包含了实际应用中可能出现的开发示例。 + +## 概述 + +ESP-WHO 提供了例如人脸检测、人脸识别、猫脸检测和手势识别等示例。您可以基于这些示例,衍生出丰富的实际应用。ESP-WHO 的运行基于 ESP-IDF。[ESP-DL](https://github.com/espressif/esp-dl) 为 ESP-WHO 提供了丰富的深度学习相关接口。配合各种外设可以实现许多有趣的应用。 + +

+ +

+ + + +## 准备工作 + +### 硬件 + +我们推荐新手开发者使用乐鑫设计的开发套件。ESP-WHO 提供的示例是基于以下开发套件开发的。开发套件与芯片的对应关系如下表所示。 + +| SoC | [ESP32](https://www.espressif.com/zh-hans/products/socs/esp32) | [ESP32-S2](https://www.espressif.com/zh-hans/products/socs/esp32-s2) | [ESP32-S3](https://www.espressif.com/zh-hans/products/socs/esp32-s3) | +| :-------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | +| Kit Board | [ESP-EYE](https://www.espressif.com/zh-hans/products/devkits/esp-eye/overview) | [ESP32-S2-Kaluga-1 V1.3](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s2/hw-reference/esp32s2/user-guide-esp32-s2-kaluga-1-kit.html) | [ESP-S3-EYE](https://www.espressif.com/zh-hans/products/devkits/esp-s3-eye/overview) | + +> 对于上面未提及的开发套件,需要手动修改外设的管脚配置,例如摄像头、LCD 和按键等。 + +### 软件 + +#### 获取 ESP-IDF + +ESP-WHO 的运行基于 ESP-IDF。关于获取 ESP-IDF 的细节,请参考 [ESP-IDF 编程指南](https://idf.espressif.com/)。 + +> 请使用最新的 esp-idf/master 分支。 + +#### 获取 ESP-WHO + +```bash +git clone --recursive https://github.com/espressif/esp-who.git +``` + +> 不要忘记 `--recursive` 拉取 ESP-WHO 的所有 submodule。如果忘了,可以进入项目,通过 `git submodule update --init` 拉取和更新 submodule。 + +## 运行示例 + +ESP-WHO 的所有示例都存放在文件夹 [examples](./examples) 中。进入文件夹,可以看到以应用命名的文件夹,例如 `human_face_detection`、`cat_face_detection` 和 `motion_detection` 等。进入其中一个应用,比如进入 `human_face_detection`。可以看到几个以显示方式命名的文件夹,如 `terminal`: 结果显示在终端;`lcd`:结果显示在 LCD 屏上;`web` 结果显示在网页上。每个应用都包含一个 README 说明对各个开发条件的支持情况。 + +对于硬件准备中所提到的开发套件,所有示例都是开箱即用的。执行以下两个步骤即可运行示例。 + +### 步骤1:设定目标芯片 + +打开终端,进入一个示例(例如:examples/human_face_detection/lcd),设定目标芯片。 + +```bash +idf.py set-target [SoC] +``` + +将 [SoC] 替换成您的目标芯片, 例如 esp32,esp32s2,esp32s3。 + +### 步骤2:运行和监视 + +```bash +idf.py flash monitor +``` + +### 自定义配置 + +ESP-WHO 提供一些可配置的参数。在终端输入 `idf.py menuconfig` ,依次 (Top) -> Component config -> ESP-WHO Configuration 可进入 ESP-WHO 的配置界面,如下图所示: + +![](./img/esp-who_config.png) + +#### 摄像头配置 + +进入摄像头配置,可以根据开发套件选择摄像头管脚配置,如下图所示: + +![](./img/esp-who_config_camera_config_select_pinout.png) + +如果管脚配置中,没有所使用的开发套件,请选择 ``Custom Camera Pinout``,并正确配置对应管脚,如下图所示: + +![](./img/esp-who_config_camera_config_custom.png) + +#### Wi-Fi 配置(仅对使用 web 的示例有效) + +进入 Wi-Fi 配置,可以对 Wi-Fi 进行配置,如密码等,如下图所示: + +![](./img/esp-who_config_wifi_config.png) + + + +## 开发套件的默认二进制文件 + +各开发套件的默认二进制文件存放在文件夹 [default_bin](./default_bin) 中。可使用[烧写工具](https://www.espressif.com/zh-hans/support/download/other-tools)烧录二进制文件。 + + + + +## 反馈 + +如果在使用中发现任何问题,请提交相关 [issue](https://github.com/espressif/esp-who/issues) ,我们将尽快予以答复。 diff --git a/README.rst b/README.rst deleted file mode 100644 index 1834d19..0000000 --- a/README.rst +++ /dev/null @@ -1,191 +0,0 @@ -################################################################################## -ESP-WHO -################################################################################## - -ESP-WHO 是基于乐鑫芯片的图像处理开发平台。其中包含了实际应用中可能出现的开发示例。 - -概述 -==================================================================================================== - -ESP-WHO 提供了例如人脸检测、人脸识别、猫脸检测和手势识别等示例。您可以基于这些示例,衍生出丰富的实际应用。 -ESP-WHO 的运行基于 ESP-IDF。`ESP-DL `_ 为 ESP-WHO 提供了丰富的深度学习接口。 -配合各种外设可以实现许多有趣的应用。 - -.. figure:: ./img/architecture_cn.drawio.svg - :alt: architecture of ESP-WHO - :align: center - - .. - - - -准备工作 -==================================================================================================== - -硬件 --------------------------------------------------------------------------------------- - -按照所有示例的一般流程,可将硬件准备分为三个部分: - -+ 摄像头模块: ESP-WHO 中的所有示例用到的摄像头驱动均来自 `ESP32-Camera `_ ,您可从中挑选摄像头型号;您也可以选择其他摄像头,只是需要自行支持驱动。 - -+ 处理单元: ESP32,ESP32-S2,ESP32-S3 中的任意一款。 - -+ 显示方式: LCD 等。 - - -对于新手,我们还提供了开发套件 `ESP-WROVER-KIT `_ ,`ESP-EYE `_ ,`ESP-S3-EYE `_ ,他们的概况如下: - -+----------------+----------+------------------+------------------+ -| 开发板名称 | 芯片型号 | 摄像头型号 | 显示方式 | -| | | +------+-----+-----+ -| | | | 终端 | Web | LCD | -+----------------+----------+------------------+------+-----+-----+ -| ESP-EYE | ESP32 | OV2640 或 OV3660 | Y | Y | N | -+----------------+----------+------------------+------+-----+-----+ -| ESP-S3-EYE | ESP32-S3 | OV2640 或 OV3660 | Y | Y | Y | -+----------------+----------+------------------+------+-----+-----+ -| ESP-WROVER-KIT | ESP32 | OV2640 或 OV3660 | Y | Y | N | -+----------------+----------+------------------+------+-----+-----+ - -软件 --------------------------------------------------------------------------------------- - -获取 ESP-IDF -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -ESP-WHO 的运行基于 ESP-IDF。关于获取 ESP-IDF 的细节,请参考 `ESP-IDF 编程指南 `_ 。 - -.. attention:: 请使用最新的 esp-idf/master 分支。 - - -获取 ESP-WHO -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code:: shell - - git clone --recursive https://github.com/espressif/esp-who.git - -.. attention:: 不要忘记 ``--recursive`` 拉取 ESP-WHO 的所有 submodule - - 可以通过 ``git submodule update --init`` 拉取和更新 submodule - - -运行示例 -==================================================================================================== - -示例对开发套件的支持情况如下表所示: - -+------------------------+---------------------------------------+ -| 示例名称 | 支持的开发板 | -| +---------+------------+----------------+ -| | ESP-EYE | ESP-S3-EYE | ESP-WROVER-KIT | -+------------------------+---------+------------+----------------+ -| Camera with Terminal | Y | Y | Y | -+------------------------+---------+------------+----------------+ -| Camera with Web Server | Y | Y | Y | -+------------------------+---------+------------+----------------+ -| Camera with LCD | N | Y | N | -+------------------------+---------+------------+----------------+ - -步骤1:设定目标芯片 --------------------------------------------------------------------------------------- - -打开终端,进入一个您想运行的示例,设定目标芯片。 - -.. code:: shell - - idf.py set-target [SoC] - -将 [SoC] 替换成您的 目标芯片, 例如 esp32,esp32s2,esp32s3。 - - -步骤2:通用配置 --------------------------------------------------------------------------------------- - -通用配置指的是每个示例都会涉及到的配置,例如,摄像头配置、模型选择等。 -您可以通过 ``idf.py menuconfig`` 打开配置界面。 -依次 (Top)-> Component config -> ESP-WHO General Configuration 进入通用配置,如下图所示: - -.. figure:: ./img/esp-who-general-config.png - :alt: ESP-WHO General Configuration - :align: center - - .. - - -步骤2.1:摄像头配置 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -进入摄像头配置,如下图所示,您可以选择: - -+ 摄像头输出的图片格式, - -+ 摄像头的管脚配置。 - -.. figure:: ./img/esp-who-general-config-camera.png - :align: center - -.. attention:: - 摄像头的管脚配置是按照开发套件来区分的。如果管脚配置中,没有您所用的开发套件,请选择 ``Custom Camera Pinout``,正确配置对应管脚,如下图所示: - -.. figure:: ./img/esp-who-general-config-camera-custom-pinout.png - :align: center - - -步骤2.2:指示灯配置 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -进入指示灯配置,如下图所示,您可以配置: - -+ 指示灯的打开和关闭 - -+ 指示灯的管脚 - -+ 指示灯的明暗 - -.. figure:: ./img/esp-who-general-config-led.png - :align: center - - -步骤2.3:人工智能应用配置 -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -进入人工智能应用配置,您可以根据提示选择您想运行的模型,如下图所示: - -.. figure:: ./img/esp-who-general-config-dl.png - :align: center - - - - -步骤3:示例配置 --------------------------------------------------------------------------------------- - -部分示例还有自己的配置菜单。进入后,您可根据描述进行配置。示例配置菜单可以在 (TOP) -> Example Configuration 中找到。 - -以 ``Camera with Web Server`` 为例,配置菜单如下图所示: - -.. figure:: ./img/esp-who-example-config.png - :align: center - - -步骤4:运行和监视 --------------------------------------------------------------------------------------- - -.. code:: shell - - idf.py flash monitor - - - -开发套件的默认二进制文件 -==================================================================================================== - -各开发套件的默认二进制文件存放在目录 `./default_bin <./default_bin>`_ 下。 -您可以使用 `烧写工具 `_ 烧录二进制文件。 - - -反馈 -==================================================================================================== - -如果您在使用中发现任何问题,请提交相关 `issue `_ ,我们将尽快予以答复。 diff --git a/img/esp-who-example-config.png b/img/esp-who-example-config.png deleted file mode 100644 index 9cd0158..0000000 Binary files a/img/esp-who-example-config.png and /dev/null differ diff --git a/img/esp-who-general-config-camera-custom-pinout.png b/img/esp-who-general-config-camera-custom-pinout.png deleted file mode 100644 index e504e25..0000000 Binary files a/img/esp-who-general-config-camera-custom-pinout.png and /dev/null differ diff --git a/img/esp-who-general-config-camera.png b/img/esp-who-general-config-camera.png deleted file mode 100644 index 01e84df..0000000 Binary files a/img/esp-who-general-config-camera.png and /dev/null differ diff --git a/img/esp-who-general-config-dl.png b/img/esp-who-general-config-dl.png deleted file mode 100644 index f1bc49d..0000000 Binary files a/img/esp-who-general-config-dl.png and /dev/null differ diff --git a/img/esp-who-general-config-led.png b/img/esp-who-general-config-led.png deleted file mode 100644 index 43df0ae..0000000 Binary files a/img/esp-who-general-config-led.png and /dev/null differ diff --git a/img/esp-who-general-config.png b/img/esp-who-general-config.png deleted file mode 100644 index 1c1fcb9..0000000 Binary files a/img/esp-who-general-config.png and /dev/null differ diff --git a/img/esp-who_config.png b/img/esp-who_config.png new file mode 100644 index 0000000..08830da Binary files /dev/null and b/img/esp-who_config.png differ diff --git a/img/esp-who_config_camera_config.png b/img/esp-who_config_camera_config.png new file mode 100644 index 0000000..58fa2d4 Binary files /dev/null and b/img/esp-who_config_camera_config.png differ diff --git a/img/esp-who_config_camera_config_custom.png b/img/esp-who_config_camera_config_custom.png new file mode 100644 index 0000000..6265eca Binary files /dev/null and b/img/esp-who_config_camera_config_custom.png differ diff --git a/img/esp-who_config_camera_config_select_pinout.png b/img/esp-who_config_camera_config_select_pinout.png new file mode 100644 index 0000000..ac4b935 Binary files /dev/null and b/img/esp-who_config_camera_config_select_pinout.png differ diff --git a/img/esp-who_config_wifi_config.png b/img/esp-who_config_wifi_config.png new file mode 100644 index 0000000..615104c Binary files /dev/null and b/img/esp-who_config_wifi_config.png differ