超级版主
 
- 积分
- 5157
- 金钱
- 5157
- 注册时间
- 2019-5-8
- 在线时间
- 1286 小时
|
本帖最后由 正点原子运营 于 2025-11-22 14:34 编辑
第五十七章 乐鑫AI库简介
1)实验平台:正点原子DNESP32S3开发板
2)章节摘自【正点原子】ESP32-S3使用指南—IDF版 V1.6
3)购买链接:https://detail.tmall.com/item.htm?&id=768499342659
4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/esp32/ATK-DNESP32S3.html
5)正点原子官方B站:https://space.bilibili.com/394620890
6)正点原子DNESP32S3开发板技术交流群:132780729
乐鑫的ESP-WHO库是一个基于乐鑫芯片的图像处理开发平台,其中包括了实际应用中可能出现的开发示例,如人脸检测、人脸识别、猫脸检测和手势识别等。开发者可以根据这些示例衍生出丰富的实际应用。ESP-WHO库的运行基于ESP-IDF,而ESP-DL则为ESP-WHO库提供了丰富的深度学习相关接口,配合各种外设可以实现许多有趣的应用。
本章分为如下几个部分:
57.1 AI处理过程
57.2 乐鑫ESP-WHO库下载
57.3 移植ESP-WHO源码库
57.1 AI处理过程
在乐鑫的ESP-WHO库中,AI处理原理可能还包括其他的技术和方法,如特征提取、分类器设计、模型训练和优化等。这些技术结合在一起,使得ESP-WHO库能够提供高效、准确的人脸检测和识别功能。AI处理过程通常包括三个主要步骤:输入、处理和输出。
①:输入是AI系统的第一步,这一步就是把要处理的图像数据传输到AI库当中处理。
②:处理是AI系统的核心,它包括一系列的计算和推理过程。处理阶段利用各种算法和模型对输入数据进行处理,从中提取有意义的信息或模式。这一步骤可能涉及数据清洗、特征提取、分类、回归分析、聚类等多种数据处理技术。
③:输出是AI系统的最后一步,它根据处理结果得出结论或预测。例如,如果AI系统用于人脸识别,输出可能是识别出的人脸标签或身份信息。
下图是人脸检测处理过程。
图57.1.1 AI处理过程
上图中,我们完成了摄像头的图像数据获取后,将这些数据传递给AI处理库(ESP32-WHO)。该库利用卷积神经网络模型等算法对图像进行深入处理。经过处理,我们获得了AI库处理后的图像数据。
57.2 乐鑫ESP-WHO库下载
ESP-WHO 是乐鑫专为 AIoT 领域推出的软件开发框架,可帮助用户实现嵌入式领域的人脸检测与识别功能,可配合 ESP-EYE 开发板、ESP-WROVER-KIT(亚马逊 AWS 认证设备)及其他搭载 ESP32 芯片的开发板,结合各类摄像头、显示屏等硬件,形成完整应用。我们可在乐鑫官方网站下的方案/人脸检测(ESP-WHO)路径找到ESP-WHO软件库,如下图所示。
图57.2.1 ESP-WHO下载网页
上图中,“Github下载”链接可引导读者进入远程仓库下载ESP-WHO源码库,方便获取相关代码资源。而右侧的“进入BBS”则提供了ESP-WHO中文讨论区的入口。对于在使用ESP-WHO过程中遇到的问题或疑问,读者可以在讨论区发帖寻求帮助。乐鑫官方或经验丰富的博主会定期查看并回复,帮助解决相关问题。
57.3 移植ESP-WHO源码库
在上文中,我们介绍了如何从远程仓库下载乐鑫ESP-WHO源码库。接下来,本文将重点介绍如何将该AI库移植到实际工程中。为了便于说明,我们将以摄像头例程作为移植模板。以下是详细的移植流程:
一、克隆ESP-WHO源码库
首先在本地找到一个合适的位置,利用git命令克隆Github的ESP-WHO源码库,克隆命令如下:
图57.3.1 克隆ESP-WHO源码库
克隆完成后,使用cd命令进入ESP-WHO源码库,命令如下:
图57.3.2 进入ESP-WHO源码库
接着,在此目录下输入更新子模块命令,命令如下:
图57.3.3 更新子模块
到了这里,我们已经把乐鑫AI库下载完成,下面作者来介绍这个源码库的子文件的描述,如下表所示:
表57.3.1 AI库子文件夹描述
上表,我们需要的文件夹包括components和examples。其中,components文件夹中的文件用于移植到工程中,而examples文件夹中的案例则可以作为参考。
二、移植ESP-WHO到工程当中
首先,把esp-who-master\components路径下的esp-code-scanner、esp-dl、fb_gfx和modules文件夹复制到摄像头例程中的components文件夹目录下,如下图所示。
图57.3.4 AI库移植到工程当中
然后,打开上图modules文件夹,并删除其他文件夹和文件,只保留ai文件夹、CMakeLists.txt和Kconfig文件。删除后的modules文件夹结构如下。
图57.3.5 删除后的modules文件夹结构
接着,打开上图的ai文件夹,删除除了who_ai_utils.cpp/hpp文件之外的文件。删除后的ai文件架构如下:
图57.3.6 删除后的ai文件架构
最后,修改CMakeLists.txt文件,因为刚刚我们已经删除了某些文件夹,所以这个CMakeLists.txt文件的内容也相应修改。修改后的内容如下:
- set(src_dirs
- ai)
- set(include_dirs
- ai)
- set(requires esp32-camera
- esp-dl
- fb_gfx)
- idf_component_register(SRC_DIRS ${src_dirs}
- INCLUDE_DIRS ${include_dirs} REQUIRES ${requires})
- component_compile_options(-ffast-math -O3 -Wno-error=format=-Wno-format)
复制代码 至此,我们已经完成了移植过程。以后的章节,我们将深入探讨如何实现人脸识别和人脸检测等相关应用。 |
|